auto negotiationの仕組み

旧サイトからの移設分エントリです。

最近はインターネットも一般的になってきたこともあって、その仕組みについての知識もだいぶ普及してきたようです。
パケット通信とはなんぞや、や、 HTTP, FTP, SMTP, POP等のプロトコルレベルの話からTCP/IPの仕組みぐらいまでが一般的ですかね。
OSI参照モデルなんかは大学でも情報系の学科なら必修ですね。

実践的な話ではTCPの場合のコネクションをはるまでの過程やルーティングの話がありますね。私も基本的な話はだいぶ分かっていたつもりなので すが、最近ひとつ疑問につきあたりました。

オートネゴシエーションの仕組みはどうなっているのか、です。

あのHUB< ->NIC間等で通信スピードと方式の検出を行うあれです。まさに基礎の基礎。なにしろ最初の一歩・ケーブルを挿す、の直後ですから。 というわけで調べてみました。

今回は一次情報の場所がわからなくて困りました。まずRFCを調べたけど空振り。ということでgoogleからあさってみました。で、見つけたのがここ(⇒Charles Spurgeon's Ethernet Web Site)。ここが一次情報源だと思います。

で、 肝心のauto negotiationの仕組みはというと、詳しくは分かりませんでした。(といってもただじっくり読んでないだけですが。)おおざっぱに言うと、FLP (fast link pulse)やNLP(normal link pulse)と呼ばれる既定のパルス波を用いて以下の優先順位で検出を行っているらしいです。

priorityTechnology
11000BaseT - Full duplex
21000BaseT - Half duplex
3100BaseT2 - Full duplex
4100BaseTX - Full duplex
5100BaseT2 - Half duplex
6100BaseT4
7100BaseTX - Half duplex
810BaseT - Full duplex
910BaseT - Half duplex

まぁはっきりいって実用上ほとんど意味がない知識かもしれませんが、専門家としては知っていても損はないかと思います。恐らくこの文書を読めば一通りは書いてあると思います(⇒Gigabit Ethernet Auto-Negotiation(PDF))。

もしLANケーブルの近くに何かパルスを乱すようなものがあった場合にはそれが原因でオートネゴシエーションが失敗するかもしれませんね。もっともそんな場合には方式を固定してもまともに通信できるかどうか定かではありませんが。

See also