half duplexとfull duplex

最近のPCおよびルータ、スイッチは、ほぼ100%full duplexで運用されているはずです。しかも、固定ではなくauto設定で、ユーザーはもちろん管理者もduplexについてはほとんど意識することはないでしょう。

しかし、最新の装置でも、固定設定は可能でhalf duplexを設定することもでき、half duplexで通信することができます。

half duplexというのは、2つのノード間で通信をおこなう際に、送信と受信を交互におこない、送受信を同時におこなうことができません。

full duplexでは送受信が同時に可能であり、100Mbpsのfull duplexであれば、送信を100Mbps、受信を100Mbpsで同時に通信できるので、実質200Mbpsの通信が可能ということになります。

あるノード間がhalf duplexでリンクされている場合に、各ノードから同時に通信をおこなうと、コリジョンが発生し、完全な通信がおこなえません。

では、どうしてhalf duplexが設定できるようになっているのでしょうか?
half duplexを設定しなければならないのはどういう場合でしょうか?

「full duplexに未対応の装置との互換性を保つため」というのが答えだと考える人が多いでしょう。

しかし、厳密に言うとそうではなく、「Ethernetの規格を満たすため」です。

half duplexの通信がおこなえない装置はethernetの規格を満たしているとは言えないためです。

では、どうしてethernetの規格はhalf duplexを規格に残しているのでしょうか。
ここまで考えていくと、ようやくhalf duplexが何であるかが理解できます。

現在のethernetはノード同士が「リンク」によって接続されているが、ethernet初期はそうではなく「バス」によって接続されていた。

バスというのは、一本のケーブルにたくさんのノードがぶら下がるような形である。

現在のetherネットでも見ようによってはバスに見えるかもしれないが、ノードを接続するには、直接ケーブルで接続するか、間にスイッチやルータを経由する必要があり、それらの装置はノードであって、その間はリンクで接続されるから、バスとは異なるのである。

バス型のethernetでは、通信をおこなえるノードが3台以上存在できる。
これを Mixing Segmentと呼ぶ。

一方、現在使用されているUTPケーブルなどはケーブル上にノードが2台までしか存在できない。
これを Link Segment と呼ぶ。
そしてLink Segmentでは送受信用のケーブルが対になっているために衝突が発生しないので、
全二重通信がおこなえる。

こうしてみてくると、「半二重通信はMixing Segmentでの通信方法」だということがわかる。
可能ならば全二重通信のほうがよいにきまっている。