ビットスタッフィング

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

データ伝送電気通信において、ビットスタッフィング(bit stuffing)は、情報を持たないビットデータに挿入することである。ビットスタッフィングによるビットは、オーバーヘッドビット英語版とは異なる。

ビットスタッフィングは、様々な目的で使用される。同一または合理的に関連するビットレートを持つ必要のないビットストリームを共通ビットレートに合わせるためバッファフレームを満たすためなどである。スタッフィングビットの位置はデータリンクの受信側に伝達され、ビットストリームを元のビットレートまたは形式に戻す際にこれらの余分なビットは除去(デスタッフ)される。ビットスタッフィングを使用して、多重化する前に複数のチャネルを同期させたり、2つの単一チャネルをお互いにレートマッチさせたりすることができる。

上記のようなビットスタッフィングを利用する例には、Plesiochronous Digital Hierarchy(PDH)とSynchronous Digital Hierarchy(SDH)がある。

ビットスタッフィングのもう1つの用途は、ランレングス制限符号化である。すなわち、送信されるデータ中で同じ値が連続するビット数を制限することである。同じ値が最大許容数だけ続くと、反対の値のビットが挿入される。これは一般的なルールであるため、受信側では、スタッフィングビットの位置に関する追加の情報なしに、スタッフィングビットを取り除くことができる。

追加の信号遷移の生成は、信号の受信を確実にするために、またはフレーム同期シーケンスのような特別な予約されたコードを含むデータ発生時にそれをエスケープするために行われる。

CANにおけるビットスタッフィングは、同じビットが5つ続いた後に行われる

上記のようなビットスタッフィングを利用する例にはCANHDLCUSBなどがある。

ビットスタッフィングは、ペイロードが完全である(送信エラーによって損なわれない)ことを保証しない。これは、送信が正しい場所で開始し、終了することを確実にするための方法に過ぎない。別途、誤り検出訂正を使用してフレームが破損していないかを確認し、必要があればフレームを再送信する。

ゼロビット挿入[編集]

ゼロビット挿入は、いくつかのデータ伝送プロトコルで使用される特定のタイプのビットスタッフィングであり、データストリームからのクロック復元を助ける。IBMのSDLC(後にHDLCに改称)によって普及した。

名前は、0のビットの挿入のみを行うことから来ている。0のビットが連続するのを防ぐために1のビットを挿入することはしない。

SDLCとLow-SpeedおよびFull-Speed USBのデータは、NRZIで符号化されて送信される。NRZIでは、0のビットは信号遷移を引き起こすが、1のビットでは変化しない。1のビットが長く続くと、送信されたデータには遷移が存在しない可能性があり、送信機と受信機のクロックの同期が取れなくなる可能性がある。 1が5ビット(SDLCの場合)または6(USB)ビット続いた後に0を挿入することにより、送信機はトランジション間の最大時間を保証する。受信機は、適切なデータリカバリを保証するために、クロックとトランジションを同期させることができる。

SDLCでは、6つの隣接する1のビットを含む送信ビットシーケンス "01111110"がフラグバイトである。ビットスタッフィングは、このパターンが通常のデータでは決して起こり得ないことを保証するので、通常のデータと混同される可能性なしに、フレームの始めと終わりのマーカーとして使用できる[1]

このようなビットスタッフィングの主な欠点は、符号レートが予測できないことである。それは、送信されるデータに依存する。

出典[編集]

  1. ^ Kevin R. Fall and W. Richard Stevens, TCP/IP Illustrated Volume 1: The Protocols, Second Edition, Addison-Wesley, 2012, Kindle Edition loc 3505