TCPの全二重通信について

初めて投稿させていただきます。宜しくお願いします。

ネットワークの勉強をするにあたり「ネットワークはなぜつながるのか」を読ませていただいています。

その本のP70に、「TCPは全二重型」とあるのですが、
自分の認識ですと全二重は上りと下りが同時に可能であることなのですが、
自分の普段のPC環境では、10BASE-Tを利用しているため、半二重型であると思います。

それでなぜ通信が可能なのか困惑しているのですが、TCPの全二重と通信における(?)半二重とでは意味が異なるのでしょうか。
とても初歩的で申し訳ないのですが、教えていただけませんでしょうか。

名前: 
斉藤
日時: 
05/08/15 14:30

コメント

斉藤さん,はじめまして。
拙著お読みいただき,ありがとうございます。

この辺の話を理解するには,そもそも半二重と全二重のどこが違うのか,
という点について理解しておく必要がありますね。

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

TCPが全二重だというのは,この意味です。
ただし,イーサネットが半二重で動いているときは衝突が発生します。
でも,衝突に関する制御はイーサネットコントローラが全部面倒見てくれます。
つまり,イーサネットコントローラが上位のプロトコルに対して,
全二重で動いているように見せかけるわけです。
だから,TCPで衝突を考慮する必要はありません。

返信ありがとうございます。

全二重と半二重の違いにいて、とても分かりやすい説明をしていただきありがとうございます。
とてもスッキリしました。
意識をして動作するか、意識せずに動作するかがポイントですね。

ありがとうございました。