オートネゴシエーションとは

 イーサネットには、10BASE-T、100BASE-TX、1000BASE-Tのように通信速度が違う規格があり、それぞれに半2重通信、全2重通信といった通信モードがあります。

 やっかいなことに、接続する機器間で通信速度と通信モードを揃えておく必要があり、両側で同じ設定にしておかなければ、正常な通信ができません。

 機器間の接続ごとに通信速度と通信モードを揃えるのはとても大変な作業です。そこで、オートネゴシエーション(Auto-Negotiation)という仕組みが考えられています。

 オートネゴシエーションは、接続している機器間で通信速度(10Mbps/100Mbps/1Gbps)と通信モード(半2重/全2重)を交渉して、最適なモードに自動設定してくれる仕組みです。

 例えば、自分のインターフェイスの通信速度が100Mbpsで、通信モードが全2重をサポートしており、相手側のインターフェイスが100Mbpsの全2重モードをサポートしていれば、両側のインターフェイスで、100Mbpsの全2重モードに自動的に切り替えてくれます。

 このように自動(Auto)で、交渉(Negotiation)して、お互いにとって最速な動作のとなる通信速度と動作モードで切り替えてくれるので、大変便利なの機能なのですが、実は問題もあります。

 それは、機器間で通信モード(半2重/全2重)の設定が合わないという状況が、発生してしまうのです。片方がの通信モードが半2重、もう片方の通信モードが全2重となるケースが、しばしば発生してしまいます。

 具体的には、片方がオートネゴシエーション機能を有効にし、もう片方でオートネゴシエーション機能を無効にし、固定的に通信速度を100Mbpsの全2重に設定している時などに、この現象が発生する場合があります。

その原因は、オートネゴシエーションの動作の仕組みに関係があります。