返信

ナイペータさん,こんにちわ。

> LANアダプタは、全二重と半二重どっちなのか??

LANアダプタの動作は接続相手によって決まります。
つまり,スイッチングハブに接続するときは全二重,
リピータハブに接続するときは半二重で動きます。
144ページにオートネゴシエーションの説明がありますが,
そこに書いてあるように,パルス信号で相手がどちらなのか検出して,
動作モードを自動的に切り替えるわけです。

> 「TCPの送信動作は、全二重で両方向に信号を送りあう」

LANアダプタが全二重でも半二重でもTCPは全二重で動くのですが,
この辺を理解するには,そもそも全二重と半二重がどうちがうのか
ということを理解しておかなければいけません。

半二重というのは,信号が衝突する可能性があるので,
衝突を避けるために送信動作を見合わせたり,
衝突したら回復処置を講じる,というように,
衝突を意識して送信動作を実行することを指します。
一方,全二重というのは,衝突しないので,
衝突することを考慮せず送信動作を行います。
つまり,本当に送信動作と受信動作を同時併行して実行するかどうかではなく,
送信動作を実行するときに,
衝突を意識して動くのが半二重,衝突を意識しないのが全二重だということです。
TCPが全二重だというのは,この意味であって,
本当に全二重で動いているとは限りません。

では,LANアダプタが半二重のときは,実際にどう動くのか,
という疑問があるかもしれません。
それは,次のようになります。
LANアダプタにはパケットを一時的に格納するバッファメモリがあり,
パケットを送信するときは一旦そこにパケットを格納します。
そして,信号の状態を見て,送信可能な状態になったときに
送信動作を実行します。
つまり,TCP/IPソフトが,衝突を意識せずに送信パケットをLANアダプタに渡しても,
パケットを一旦メモリに格納して,タイミングを見計らって送信するから,
大丈夫だということです。
だから,TCPは衝突を意識する必要がないので,
全二重で動くものと見なしてよい,ということになるんです。

<code>Only

  • 使用できるHTMLタグ: <code>
  • 文字で図を描く場合に<code>と</code>で囲んでください
画像認証
機械的なスパムメッセージ送信を防止するために画像認証を設けています。ご協力ください。
Image CAPTCHA
Enter the characters shown in the image.