Half/Full Duplex

車線が1つしかない道路より、2車線の道路の方がスムーズに車が走れますが、ネットワークでも同様です。

本項では、Half/Full Duplex(半二重通信と全二重通信)について説明します。

2車線はスムーズ

道路で1車線通行の場合、対抗車が先に来たら通過するまで待っていなければいけません。

1車線通行で対向車が来たら待つ。

通信の場合も1車線通行というのがあって、相手から先にフレームが来ると終わってからでないとこちらからは送ることができません。すでにフレームが送信されているか判断してから送るようになっています。これを、Half Duplex(半二重通信)と言います。

道路でも2車線通行だと、対向車を待つことなくスムーズに進めます。

2車線あれば、対向車を待たずに進める。

実際の通信でも2車線通行があり、送信と受信を同時にできるため、高速な通信が可能です。これをFull Duplex(全二重通信)と言います。

半二重と全二重の違いは、通信量が多くなると顕著に表れます。交通量の多い所で工事などで1車線通行になっていると、とんでもない渋滞になる場合があります。半二重ではそれと同様の状態になる可能性があります。

どうやって実現しているの?

Half/Full Duplexがどういう仕組みで動作しているかです。

少し簡略化して説明しますが、一束のケーブルに複数の芯(銅線)があって、1つの信号を送るのに必要な芯だけ利用するとします。

1つの信号分の芯しか使わないと信号は片側からしか送信できない。

この場合、相手から通信があった時にこちらから通信を送信すると、信号が壊れます。このため、相手の通信が終わってから送信するようになっています。これが、Half Duplexです。

一束のケーブルで、2つの信号を送るのに必要な芯を利用するとします。この場合、1つを送信用、もう1つを受信用として使えます。これが、Full Duplexです。

2つの信号分の芯が使えれば信号は両方から同時に送信できる。

これで、相手からの通信を待つことなく、こちらからも同時に送信することができます。

かなり以前はHalf Duplexが主流でしたが、今ではほとんどがFull Duplexです。

オートネゴシエーション

Half/Full Duplexについて設定したことがある人はほとんどいないと思います。固定設定もできますが、ほとんどの場合は初期値の自動で決定されます。

これを、オートネゴシエーションと言います。ケーブルが接続された機器が起動されると、お互いの機器間でどちらにするか決めるのです。

接続された機器間のオートネゴシエーションでFull DuplexかHalf Duplexかを決める

今ではFull Duplexをサポートしている場合がほとんどなため、オートネゴシエーションでHalf Duplexになることはまずありません。

なお、片方だけがオートネゴシエーションで片方が固定の場合、オートネゴシエーション側の機器はFull Duplexしか対応していない場合を除き、Half Duplexになるかインターフェースがダウンします。つまり、設定が一致していないと通信できない可能性があります。

関連ページ

トラブル対応「通信が非常に遅い
Half/Full Duplexの不一致が原因で発生するトラブルの事例と、対処方法を説明しています。