オートネゴシエーション
オートネゴシエーション(Auto-negotiation)は、
イーサネットにおけるケーブル接続時の自動設定機能で、特にLANケーブル接続において、接続された2つの機器間で通信速度や二重通信モードなどの最適な設定を自動的に選択する仕組みです。1000BASE-Tや10GBASE-Tなどの規格では必須の機能となっています。
概要
例えば、以下のような対応規格を持つ2つの機器をLANケーブルで接続した場合を考えます。
機器A: 10BASE-T 半二重、100BASE-TX 半二重
機器B: 10BASE-T 全二重/半二重、100BASE-TX 全二重/半二重、1000BASE-T 全二重
この場合、オートネゴシエーションによって、両機器で共通のプロトコルの中で最も高速な「100BASE-TX 半二重」が自動的に選択され、通信が開始されます。
一般的に、LANケーブル接続ポートは複数の通信速度、二重通信モード(半二重/全二重)、異なる規格をサポートしています。オートネゴシエーションは、このような多様な設定が可能な機器で活用され、各機器が互いの対応能力を通知し合い、最適な動作モードを決定します。速度は高速なものが、二重通信モードは全二重が優先されます。
オートネゴシエーションに対応する機器とそうでない機器を接続することも可能です。例えば、片方の機器がオートネゴシエーションに対応していない場合や、設定で無効になっている場合などが該当します。この場合、オートネゴシエーションに対応した機器が相手側の速度を検出し、それに合わせて動作しますが、二重通信モードは自動で決定できず、常に半二重として扱われるため、全二重通信ができません。これが原因で通信速度が低下するなどの問題が発生することがあります。
オートネゴシエーションでは、通信速度や二重通信モード以外にも、フロー制御、マルチポート対応、マスター/スレーブ設定、EEEなどのパラメータが交換されます。
OSI参照モデルでは、オートネゴシエーションは
物理層に位置づけられます。
運用上の注意
多くのネットワーク機器がオートネゴシエーションに対応し、デフォルトで有効になっていますが、設定を誤ったり、不用意に解除したりすると、ネットワーク障害の原因となります。
特に問題となるのは、以下のようなケースです。
機器A: オートネゴシエーション設定
機器B: 10BASE-Tまたは100BASE-TXの全二重モードで固定動作
この場合、機器Aはオートネゴシエーションの仕様上、半二重として自動設定されるため、機器AとBの間で二重通信モードが不一致になります。この状態でも通信は可能ですが、パケットの破棄が多発し、スループットが大幅に低下します。100Mbps以下のLANケーブル通信では、両機器でオートネゴシエーションの有効/無効を揃える必要があり、基本的には有効にすることが推奨されます。ただし、古い機器や10BASE-Tにしか対応しない機器との接続では、オートネゴシエーションを無効にする必要がある場合もあります。
二重通信モードの不一致
片方の機器が全二重、もう片方が半二重で動作している場合、両者が同時にデータを送信しようとすると、スループットが著しく低下します。全二重では同時にデータの送受信が可能ですが、半二重では一度に一方向への送信しかできないためです。全二重の機器が受信中にデータを送信すると、半二重の機器は
衝突(コリジョン)を検出し、フレームを再送信しようとします。一方、全二重の機器は
衝突を検出しないため、フレームを再送信せず、結果としてフレームの再送や破棄が頻発し、スループットが低下します。
統計情報を確認することで、二重通信モードの不一致を検出できます。全二重の機器では、受信フレームが
衝突によって切り捨てられることはありませんが、半二重の機器が送信しようとして打ち切られたフレームからFCSエラーを報告できます。また、半二重の機器では、レイト・コリジョンを検出することがあり、これらは問題のある接続の検出に利用できます。
規格
オートネゴシエーションは、
IEEE 802.3の以下の規格で規定されています。
Clause 28: ツイストペアケーブル (100BASE-TX, 1000BASE-T, 2.5GBASE-T, 5GBASE-T, 10GBASE-T など)
Clause 37: 光ファイバ (1000BASE-SX, 1000BASE-LX など)
Clause 73: バックプレーン (1000BASE-KX, 10GBASE-KR, 25GBASE-KR/CR など)
Clause 98: シングルペアケーブル (1000BASE-T1 など)
1995年に100メガビット
IEEE 802.3u'>[イーサネット]が標準化された際、オートネゴシエーションの仕様がオプションとして初めて規定されました。この仕様は、
ナショナル セミコンダクターのNWayという特許技術が元になっており、誰でも利用できるようライセンスが公開されています。
当初の
IEEE 802.3ab'>[IEEE 802.3]]uの仕様には不十分な点があり、メーカー間の実装にばらつきが見られましたが、1998年の改訂で修正されました。1999年のギガビット[[イーサネット]の標準化では、1000BASE-Tでオートネゴシエーションが必須となり、後発の10GBASE-Tや2.5GBASE-Tも同様に必須と規定されています。
優先度
接続された2つの機器は、互いに対応機能を交換し、両者で共通して対応している規格の中から最適なものを決定します。
IEEE 802.3の2018年版では、
ツイストペアケーブルの優先順位は以下の通りです。上位の通信速度が優先的に適用されます。
データ構成
電気信号
オートネゴシエーションは、10BASE-Tの接続確立の方式を基にしています。10BASE-Tでは、他の機器の存在を検出するために一定間隔でパルスを送信し、フレームのデータ送信がない場合にはこのパルスを送信します。10BASE-Tでは、50〜150ミリ秒間パルスもフレームも受信できないとリンクダウンを検出します。
オートネゴシエーションでは、同様のパルスを2ミリ秒以内に最大33個連続で送信し、これをFLP(Fast Link Pulse)バーストと呼びます。1回のFLPバーストで16ビットの情報が伝送され、各種パラメータが含まれます。
FLPバーストは、17個のクロックパルスと、その間に挿入される最大16個のビットパルスで構成されます。クロックパルスは125マイクロ秒間隔で必ず送信され、ビットパルスはクロックパルスの62.5マイクロ秒後に挿入されるかどうかで1/0を表現します。
FLPバーストの16ビットを「ページ」または「リンクコードワード(LCW)」と呼びます。ビット0が最初のビットパルス、ビット15が最後のビットパルスに対応します。
ベースページ
接続時の最初の送信データはベースページまたはベースLCWと呼ばれ、以下の情報が含まれます。
ビット0-4: 対応する通信速度
ビット5: 半二重/全二重対応
ビット6-9: 予約
ビット10: PAUSE設定
ビット11: 予約
ビット12: 追加ページあり (拡張版)
ビット13: 予約
ビット14: 確認応答
ビット15: 追加ページあり
PAUSE設定では、両者が1の場合にのみ双方向でPAUSEが有効になります。また、ビット10・11が0・1と1・1の組み合わせの場合、前者がPAUSE送信のみ、後者が受信のみとなります。
確認応答ビットは、相手のベースページを正しく受信したことを示すために使用され、最低3回同じ内容を受信した場合に1になります。
追加ページありビットは、追加ページを送信する際に1に設定されます。
追加ページ
追加ページを使用することで、ベースページ以外のパラメータを通知できます。例えば、1000BASE-T以上の通信速度の場合にこのページが使われます。追加ページには、16ビット版と48ビット拡張版の4種類があります。
メッセージページ (16ビット)
自由書式ページ (16ビット)
拡張メッセージページ (48ビット)
拡張自由書式ページ (48ビット)
メッセージページでデータ種別を通知し、自由書式ページでその内容やページ数を伝えます。
1000BASE-Tの場合は、ベースページ、メッセージページ、自由書式ページ2ページで計4ページが使用されます。1Gbpsを超える規格では、48ビット拡張版の追加ページを使用します。
特許
オートネゴシエーションは、いくつかの特許によって保護されています。
その他の伝送媒体
オートネゴシエーションは、LANケーブル接続以外の規格にも転用されています。
光ファイバ
1000BASE-Xの各種光ファイバ規格では、8b/10bの特殊シンボルを用いて16ビットのベースページをやりとりします。
バックプレーン・ダイレクトアタッチケーブル
差動マンチェスタ符号により、48ビットのベースページをやりとりします。
シングルペアケーブル
差動マンチェスタ符号により、半二重で48ビットのベースページをやりとりします。信号速度は、高速モードと低速モードの2種類があります。
シングルペア規格でも、複数の規格に対応でき、優先度が規定されています。
関連項目
Auto MDI-X - ストレート/クロスケーブルの自動設定
外部リンク
Ethernet Autonegotiation Best Practices
Gigabit Ethernet autonegotiation
What is autonegotiation?
Cisco Catalyst Config Guide
How does Autonegotiation work
Autoneg Timing