0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

単方向データリンク層プロトコル

Posted at

ただ送るだけ

最初の例として、何かまずいことが起きる可能性を心配する必要がないので、できるだけ簡単なものを考えるよう。データは一方向のみに伝送される。送信側及び受信側のネットワーク層はいつでも準備が整っている処理時間は無視できる。無限のバッファ領域が利用可能である。そして、中でもデータ・リンク層の間の通信チャネルは決してフレームを壊したり、失ったりしない。この完全に非現実的な「ユートピア」とあだ名を付けたプロトコルは、単位これから作るものの基本的な構造を示すためだけのものである。

プロトコルは送信者と受信者という二つの別々の手続きから構成されている。送信者は送信元マシンのデータ・リンク層で動作し、受信者は宛先のマシンのデータ・リンク層で動作する。順序番号や確認通知は用いないので、MAX_SEQは不要である。イベントのタイプとして可能なのはframe_arrival(すなわち損傷を受けていないフレームの到着)だけである。

送信者は、データをできるだけ早く回線に送り出すだけの無限whileループの状態にある。ループの本体は、(常に親切な)ネットワーク層からパケットをとってくる事、変数sを用いて出力フレームを作成すること、そしてフレームを送り出すことの三つの手続きで構成されている。このプロトコルではフレームのinfoフィールドだけが使用される。というのは、他のフィールドは誤り制御、フロー制御に関係しているが、ここでは誤りやフロー制御の制約は存在していないからである。

infoフィールドとは

データフレームのinfoフィールドは単一のパケットを格納している。
...
繰り返し何なるが、パケットとフレームの関係を理解することが重要である。ネットワーク層はトランスポート層からメッセージを受け取り、ネットワーク層ヘッダーを付加してパケットを構築する。このパケットがデータ・リンク層に渡され、出力フレームのinfoフィールドに入れられる。
p207

逐次確認

フレームが溢れるのを防ぐことを試みる

送信者が受信者が処理できるより早くフレームで溢れさせるのを防ぐ問題に挑戦しよう。このような状況は現実で容易に起こるので、それを防ぐことは非常に有用である。ただし、通信チャネルにはまだ誤りがないものとし、データ・トラフィックはまだ単方向である。

一般的な解決策  受信者が送信者に送信許可を伝えるフィードバックを返す

受信者が送信者にフィードバックを返すようにすることである。パケットをネットワーク層に渡した後に、受信者は小さなダミー・フレームを送信者に送り返し、送信者に次のフレームを送信して良いという許可を与える。1フレーム送った後、送信者は小さなダミー(すなわち確認通知)フレームが届くまで、暇つぶしをしなければならない。この遅延は、フロー制御プロトコルの簡単な例である。

送信者がフレームを一つ送ると、先に進む前に確認通知を待つプロトコルを逐次確認(stop-and-wait)と呼ぶ。

誤り訂正の追加

受信したフレームが誤っているとそれに関わるプロトコルに悪い影響を及ぼす

今度は通信チャネルの通常の状況である。誤りがある場合について考えてみよう。フレームは損傷を受けたり完全い失われたりする。しかし、フレームが伝送中に損傷を受けても、受信側のハードウェアがチャックサムを計算する際に、これを検出するものと仮定しよう。もしーありそうにないことであるがーフレームが損傷を受けているにも関わらずチェックサムが正しくなっていると、このプロトコル(そして他のすべてのプロコトル)は誤りを起こす(すなわち、正しくないパケットをネットワーク層に届ける)

同じフレームかどうかを判別するための順序番号

受信者が初めて見るフレームと再送とを区別できるようにする手段である。これを実現するための自明な方法は、送信者が送信する各フレームのヘッダーに順序番号を付加することである。

ヘッダーはプロトコルによって順序番号に1ビット、数ビット、あるいは複数バイトを提供する。重要な点は、プロトコルが正しく動作するのに十分なだけ大きな順序番号を運ぶことができなければならない。

フレームが届くか傷ついて届くか、届かないかでフレームを送る内容が決まる

あるフレームを送信してタイマーを起動すると、送信者は何か面白いことが起こるのを待つ。三つの可能性がある。すなわち、確認通知フレームが損傷なく届くか、損傷を受けた確認通知フレームがたどり着くかタイマーが切れるかのいずれかである。正しい確認通知が到着すると、送信者はネットワーク層から次のパケットを取り出してバッファに入れ、以前のパケットに上書きする。順序番号も進められる損傷を受けたフレームが到着するかタイマー切れになると、バッファも順序番号も変更されず、そのコピーが送信される。すべての場合において、ついで、バッファの内容(次のパケットまたは重複のいずれか)が送信される。
 正しいフレームが受信者に到着すると、順序番号が検査されて重複かどうか調べられる。重複でなければ受理されてネットワーク層に渡され、確認通知が生成される。重複したフレームや損傷を受けたフレームはネットワーク層に渡されないが、最後に正しく受信したフレームの確認通知を引き起こし、送信者に次のフレームに進むか損傷したフレームの再送を促す。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?