web-dev-qa-db-ja.com

ビット詰めの例

私は読む例を見ていきます

ビットスタッフィング。次のビット文字列がデータリンク層によってネットワーク層から受信されたとします:01110111101111101111110。ビットスタッフィング後の結果の文字列は何ですか?追加された各ビットを太字にします。

回答:

0111011110111110011111010
               ^      ^  

この答えはどのようにして得られますか?私の理解では、ビットスタッフィングは、フレームの最初と最後に特定のビットシーケンス(フラグ値と呼ばれる)を挿入することで機能します。私が得ないものは:

  1. フラグの値はわかりません!
  2. フレームの大きさは知らされていないので、フラグをどこに置くかをどうやって知るのでしょうか?

追加情報:このネットワークはイーサネットだと思います。

追加情報2:ビットフラグは01111110

正直に私は理解していると思いますが、最後または最初にフラグ01111110を追加しなかったので、答えは不完全ではありませんか?そのビットパターンがメッセージに表示されたときは、処理を行っただけです。

他の例: ここ 彼らもそうします。

13
Celeritas

検討:0111011110111110*0111110*10

0が検出された後、連続する5つの1ビットが0で埋められます。これは一般的な0ビットスタッフィングを想定しています。

11
mani deepak

ネットワーク内のデータリンク層のフレーミングには、ビット指向がその1つであるといういくつかのアプローチがあります。

これは、受信側のリンクで送信しているフレームの開始と終了を知るための方法である必要があるため、HDLCのようなフレーミングにはいくつかの形式があります。 this が表示されます。

多くのタイプのフレーム形式には、物乞いシーケンス(フレームの開始を示す)と終了シーケンス(フレームの終わりを示す)とデータであるフレームの本体があります。発生する可能性のある問題は、フレームの終了の識別が不正確になる可能性のあるボディの終了シーケンスの外観です。

この問題を防ぐために、フレームの送信者は、終了シーケンスのパターンを整理するために本体にビットを詰め込みます。この手法は、ビットスタッフィングとして知られています。

この例を見てください:

ビットシーケンス:110101111101011111101011111110(ビットスタッフィングなし)

ビットシーケンス:110101111101011111101011111110(ビットスタッフィングあり)

5つの連続する1ビットの後、0ビットが詰められます。

詰められたビットは太字でマークされます。

11
Meysam PH

ビット詰め:

入力ストリーム:0110111111100111110111111111100000
ぬいぐるみ:01101111101100111110011111011111000000
詰め込まれていないストリーム:0110111111100111110111111111100000

2
user9197045

「任意の」プロトコルに対して完全に回答するのに十分な情報は質問にありませんが、イーサネットなどのビットスタッフは、5ビットの連続する1ビットの後に0ビットのフレームコンテンツを挿入します。

フレーミングに関する残りの質問と同様に、ヒントは、データリンク層からネットワーク層に渡されるはずのものを調べることです。プレフレーム化されたデータのビットですか、それともフレームのコンテンツだけですか?

1

ビットスタッフィングを実行する必要がある場合は常に、開始マーカーと終了マーカーのFLAGビット値が常に与えられます。最も簡単なトリックは、フラグの最後の2ビットを削除し、新しいビットシリーズをメモすることです。データ、あなたはそこに1ビット詰め込む必要があります。たとえば、与えられたデータが011111011110の場合、ここで私のFLAGは0111110なので、私の新しいFLAGは01111になります。 (0)0括弧はここに詰め込まれていることを意味します。

0
Priyam Tyagi