全二重通信とは 半二重通信とは
ここではイーサネットに限った話をします。ただし、イーサネットとは10/100/1000BASE-Tだけでなく、 10BASE-2や10BASE-5なども含みます。
10BASE-T、100BASE-TX、1000BASE-Tなどの規格ではUTPケーブルを利用しますが、UTPケーブルには8本の銅線が利用されて おり、受信用と送信用に分かれているため、送受信を同時に行うことができます。
このように、送受信を同時に行うことのできる規格を全二重通信といい、UTPケーブルでは"全二重通信"が多く利用されています。
一方、10BASE-2や10BASE-5においては、同軸ケーブルが利用されます。同軸ケーブルは線が1本(実際には2系統あるが、1つは アース、画像はコチラ)のため、 送受信は同時に行えなえません。そのため、送信と受信を切り替えて行う"半二重通信"が利用されます。
この全二重通信、半二重通信というのは、ケーブルの両端のNIC等のインタフェースで、設定を揃える必要があります。 設定を自動で揃えるため、オートネゴシエーションというものもありますが、やはり設定はお互いオートネゴシエーションに揃えます。
オートネゴ失敗による全二重半二重混在環境とその問題
もし片方で全二重の設定をし、もう片方でオートネゴシエーションの設定をすると、オートネゴシエーション側のインタフェースは、ネゴが取れないため、半二重になってしまいます。その結果、show interfaceを表示すると、半二重側ではcollisionのカウンタが、全二重側ではruntsのカウンタが上がっているはずです。
runtsは、64byte未満の(つまりEthernet規格で定められた最小byte数より小さい)フレームが検出されたときに上がるカウンタです。全二重側では相手が通信していようがいまいが、常に送信しますが、半二重側では相手から通信が来た場合はすぐに通信を止めます。なので、例えば半二重側が10byte送出したタイミングで相手からの通信を検知した場合、10byteのフレームが全二重側に届くわけです。
コメント