斉藤さん,はじめまして。 拙著お読みいただき,ありがとうございます。
この辺の話を理解するには,そもそも半二重と全二重のどこが違うのか, という点について理解しておく必要がありますね。
半二重というのは,信号が衝突する可能性があるので, 衝突を避けるために送信動作を見合わせたり, 衝突したら回復処置を講じる,というように, 衝突を意識して送信動作を制御することを指します。 一方,全二重というのは,衝突しないので, 衝突することを考慮せず送信動作を行います。 つまり,本当に送信動作と受信動作を同時併行して実行するかどうかではなく, 送信動作を実行するときに, 衝突を意識して動くのが半二重,衝突を意識しないのが全二重だということです。
TCPが全二重だというのは,この意味です。 ただし,イーサネットが半二重で動いているときは衝突が発生します。 でも,衝突に関する制御はイーサネットコントローラが全部面倒見てくれます。 つまり,イーサネットコントローラが上位のプロトコルに対して, 全二重で動いているように見せかけるわけです。 だから,TCPで衝突を考慮する必要はありません。
More information about text formats
衝突を考慮するかどうかがポイント
斉藤さん,はじめまして。
拙著お読みいただき,ありがとうございます。
この辺の話を理解するには,そもそも半二重と全二重のどこが違うのか,
という点について理解しておく必要がありますね。
半二重というのは,信号が衝突する可能性があるので,
衝突を避けるために送信動作を見合わせたり,
衝突したら回復処置を講じる,というように,
衝突を意識して送信動作を制御することを指します。
一方,全二重というのは,衝突しないので,
衝突することを考慮せず送信動作を行います。
つまり,本当に送信動作と受信動作を同時併行して実行するかどうかではなく,
送信動作を実行するときに,
衝突を意識して動くのが半二重,衝突を意識しないのが全二重だということです。
TCPが全二重だというのは,この意味です。
ただし,イーサネットが半二重で動いているときは衝突が発生します。
でも,衝突に関する制御はイーサネットコントローラが全部面倒見てくれます。
つまり,イーサネットコントローラが上位のプロトコルに対して,
全二重で動いているように見せかけるわけです。
だから,TCPで衝突を考慮する必要はありません。