オートネゴシエーション

オートネゴシエーション英語: Auto-negotiation、A/N、オートネゴ)は、イーサネットにおけるケーブル接続時の自動設定機能。特にLANケーブルの接続において、通信速度を2つの機器間で互いに送り合って最適値を選択するものを指す。1000BASE-T10GBASE-Tなどの規格で必須となっている。

100Mbps以下の接続でオートネゴシエーションが有効な機器とそうでない機器を直接接続すると、設定によってはスループットが大幅に低下するなどのネットワーク障害の原因になるため、ネットワーク管理者は十分に注意する必要がある。詳細は#運用上の注意の節を参照のこと。

概要 編集

具体例として、以下のような対応規格を持つ2台の機器のLANケーブル接続を考える。

この例では、オートネゴシエーション機能により、両者で共通のプロトコルのうち速度が最高となる「100BASE-TX 半二重」で自動的にリンクを確立し通信を開始する。

一般にLANケーブル接続ポートでは、複数の通信速度、異なる二重通信モード(半二重/全二重)、異なる規格をサポートすることが可能であり、オートネゴシエーションは主にそのような接続ポートを持つ機器で使われる。各機器は自身の対応機能(technology abilities)をお互いに通知し、両者が使用可能なものの中から最良の動作モードが選択される。低速度より高速度のもの、半二重よりも全二重の方が優先される。

オートネゴシエーション可能な機器とそうでない機器を接続することもできる。これは例えば、一方の機器がオートネゴシエーションに対応していなかったり、管理上オートネゴシエーションが無効に設定されていたりする場合が当てはまる。接続時には、オートネゴシエーション可能な機器による並列検出により、相手側に速度を合わせることができる。しかしこの組み合わせの場合、二重通信モードを自動で決定できないため、常に半二重であると仮定され、全二重通信が事実上できない。これは運用上問題となることがある(次節後述)。

オートネゴシエーションでは、通信速度と二重通信モード以外にも、フロー制御・マルチポート対応・マスター/スレーブ設定・EEEなどのパラメタなどがやりとりされる。

OSI参照モデルでは、オートネゴシエーションは物理層に属する。

運用上の注意 編集

家庭用・業務用の多くのネットワーク機器がオートネゴシエーションに対応しており、デフォルトで有効化されている[1][2]。さらに安価な機器ではそもそもオートネゴシエーションを解除して通信モードを手動で設定できないことが多い。そのため、オートネゴシエーションを意識せずに利用しているユーザは多い。しかし、オートネゴシエーションは、誤った使い方をしたり、不用意に解除したりすると、ネットワーク障害の原因になる。

以下のような2つの機器を直接接続する場合に問題となる。

  • 機器A: オートネゴシエーション設定
  • 機器B: 10BASE-Tまたは100BASE-TXの全二重モードで固定動作するもの

このとき、機器Aはオートネゴシエーションの仕様上、半二重として自動設定されるため、A-B間で二重通信モードが不一致となる。この状態でもネットワークは不安定ながら動作するため、pingによる疎通確認試験では問題を認知することができない。しかし、大量のパケット破棄が発生し、スループットが大幅に低下する。

一般に、100Mbps以下のLANケーブル通信では、両者でオートネゴシエーションの有効・無効を揃えておく必要がある。基本的には有効にすることが推奨される[3]が、古い機器や安価な機器などで10BASE-Tにしか対応しないような機器との接続はそもそもオートネゴシエーション機能に対応していないため、接続側のオートネゴシエーションを無効にしなければならない場合もある。

二重通信モードの不一致 編集

2つの機器のうち、片方が全二重、片方が半二重で動作している場合、両者が同時にフレームを送信しようとすると、非常に低いスループットの接続となる。これは、全二重モードではデータを両方向に同時に送受信できるが、半二重モードでは一度に一方向にしか送信できないためである。その結果、全二重の機器で受信中にデータを送信する場合、半二重の機器は送信中のデータ受信を衝突(コリジョン)として検知し、送信中のフレームを再送信しようとする。一方で、全二重の機器では衝突を検出せず、相手側が衝突によって破損しているとして廃棄した場合でも、フレームを再送信しない。このようなフレームの再送・破損が頻発することでスループットの低下を招く。

一見ユーザからは片方向のみの通信に見える場合でもパケット損失が発生することがある。これはTCP通信など、送信側の送ったパケットを受信側が確認応答する環境である場合、実際のデータが一方向にのみ送信されている場合でも、逆方向に送信される確認応答パケットとの衝突が発生していることがありえるためである。

このような二重通信モードの不一致を見つける方法として、両機器の統計情報を用いることができる。全二重の機器では、受信フレームが衝突検出によって切り捨てられることはないため、半二重の機器が送信しようとして打ち切られたフレームからFCSエラーを報告できる。半二重の機器では、タイミングによってはレイト・コリジョン(64バイト以上送ったときに発生する衝突)を検出することがあり、これはCSMA/CDでハードエラーとして解釈されてフレームを再送信しない場合もある。半二重の機器によるレイト・コリジョンと全二重の機器によるFCSエラーの組み合わせは、このような問題のある接続の検出に利用できる。

規格 編集

オートネゴシエーションは、IEEE 802.3の以下の節で規定されている[4]

1995年に100メガビット・イーサネットとしてIEEE 802.3u規格が標準化されたときに、そのオプション機能として初めてオートネゴシエーションの仕様が規定された[5]。この仕様は、ナショナル セミコンダクターによるNWayと呼ばれる特許技術が元になっており、一度ライセンス料を支払うだけで誰でもこのシステムを使えることを保証する文面が公開されている[6]。他メーカはその特許の利用権を購入して実装した[7]

IEEE 802.3uの初版では仕様に不十分な点があったため、メーカの実装にばらつきがあり、異なるメーカの機器間ではオートネゴシエーションが失敗することがあった。初期仕様で議論の余地があった箇所は、1998年の802.3改版時に削除された。

1999年にギガビット・イーサネットとしてIEEE 802.3abが標準化され、この中で従来オプション機能だったオートネゴシエーションが1000BASE-Tでは必須であると規定された[8]。「1000BASE-T全二重固定動作」の設定が用意されているネットワーク機器があるが、これは接続時のオートネゴシエーションで対応規格を1000BASE-T全二重のみとして通知する動作を指す[9]。以降、後発の10GBASE-T2.5GBASE-Tなどもすべて必須と規定されている[10][11]

優先度 編集

接続された2つの機器は、お互いに相手側機器の対応機能を受信すると、両者で共通対応しているもののうちから最良の規格を決定する。802.3の2018年版が規定しているツイストペア規格の優先順位は次の通りであり[12]、機器が共通対応しているもののうちこの一覧の上位にある通信速度が適用される。

  1. 40GBASE-T 全二重
  2. 25GBASE-T 全二重
  3. 10GBASE-T 全二重
  4. 5GBASE-T 全二重
  5. 2.5GBASE-T 全二重
  6. 1000BASE-T 全二重
  7. 1000BASE-T 半二重
  8. 100BASE-T2 全二重
  9. 100BASE-TX 全二重
  10. 100BASE-T2 半二重
  11. 100BASE-T4 半二重
  12. 100BASE-TX 半二重
  13. 10BASE-T 全二重
  14. 10BASE-T 半二重

データ構成 編集

電気信号 編集

 
10BASE-Tのアイドルモード。パルス幅100ナノ秒の単極パルス[13]が16(±8)ミリ秒の間隔で生成される。

オートネゴシエーションは10BASE-Tの接続確立の方式に基づいている[14]ため、初めに10BASE-Tの方式について概説する。10BASE-Tでは他の機器接続の存在を検出するために一定間隔でパルスを送信しており[注釈 1]、機器がフレームのデータ送信していないときはこのパルスを送信する。10BASE-Tでは50〜150ミリ秒間このパルスもフレームも受信できないとリンクダウンを検出する[15]

 
FLPバースト3回分。10BASE-Tのパルス間隔と同様に、FLPバーストの開始タイミングも16(±8)ミリ秒間隔で生成される。

オートネゴシエーションでは、同様のパルスを2ミリ秒以内に最大33個連続して送る。この連続パルスをFLP (fast link pulse)バーストと呼ぶ。

1回のFLPバーストでは全体で16ビットを表現しており、オートネゴシエーションの各種パラメタが含まれる[注釈 2]

 
FLPバーストによる16ビットの符号化例。17個のクロックパルスの間に16ビットが挿入される。

FLPバーストは17個のクロックパルスとその間に挿入される最大16個のビットパルスから成る。クロックパルスは125(±14)マイクロ秒間隔で必ず送られ、その中間に(すなわちクロックパルスの62.5マイクロ秒後に)挿入されるビットパルスの有無で1/0を表現する[17]

FLPバーストの16ビットを「ページ」または「リンクコードワード」(LCW: link codeword)と呼ぶ。ビット0はFLPバーストの最初のビットパルスに対応し、ビット15は最後のビットパルスに対応する。

ベースページ 編集

FLPバーストは16ビットずつデータを送信する。接続時の最初の送信データはベースページ(base page)またはベースLCW (base link codeword)と呼び、以下のような内容を送る。

ベースページ(clause 28)の書式[18][19]
ビット 名称 内容
4-0 セレクタ 対応規格を示す。(値はビット4→ビット0の順)
00001: IEEE 802.3
00010: IEEE 802.9a (廃止)
00011: IEEE 802.5v (廃止)
00100: IEEE 1394
00101: INCITS
5 対応機能
(technology ability)
10BASE-T (半二重) 対応
6 10BASE-T 全二重 対応
7 100BASE-TX (半二重) 対応
8 100BASE-TX 全二重 対応
9 100BASE-T4 対応
10 全二重の対称PAUSE 対応
11 全二重の非対称PAUSE 対応
12 追加ページあり ベースページの後に追加ページ(拡張版)を送信するときに使う。
13 リモートフォルト リンクダウンを検出している(パルスが受信できていない)ときに1を示す。
14 確認応答 (ACK) 相手側からベースページを同じ内容で最低3回受信したときに1を示す。
15 追加ページあり ベースページの後に追加ページを送信するときに使う。

ビット10にあたるPAUSE設定では、両者が1同士の場合にのみ双方向でPAUSEを送受する。また、両者でビット10・11の値が0・11・1の組み合わせとなった場合、前者がPAUSE送信のみ、後者が受信のみとなる[20]

ビット14にあたる確認応答は、相手のベースページを正しく受信したことを知らせるために使う。相手のベースページを同じ内容で最低3回受信したときに1を示し、以降はこのビットを1に保持したままベースページを6~8回送信する[21]

ビット12・15にあたる追加ページありビットは、次節の追加ページを送信しようとしているときに1に設定される。ベースページのこのビットが1になったものを両方の機器が受信した場合にのみ、以降の追加ページが送信される。

追加ページ 編集

追加ページ(Next Pages)を使用すると、前節のパラメタ以外にさらに他のパラメタを通知することができる。例えば上記ベースページに含まれない1000BASE-Tやそれ以上の通信速度の場合にこのページが用いられる。

追加ページには以下の4種類がある。16ビット版を使うときはベースページのビット15を1に、48ビット拡張版を使うときはベースページのビット12を1にする。

  • メッセージページ (message page): 16ビット
  • 自由書式ページ (unformatted page): 16ビット
  • メッセージページ拡張版 (extended message page): 48ビット
  • 自由書式ページ拡張版 (extended unformatted page): 48ビット

これらはメッセージページ、自由書式ページの順で送付される。先行のメッセージページではデータ種別のみを通知し、後発の自由書式ページではデータ種別に応じてその内容やページ数が変化する。 いずれも以下のような形式でデータをやりとりする。

追加ページ(clause 28)の書式[22]
ビット 名称 内容
10-0 データ種別/データ メッセージページの場合: データ種別
(以下は主なもの、値はビット0をLSBとした11ビット値)
7: 100BASE-T2 用途
8: 1000BASE-T 用途
9: 1Gbps以上用途
10: EEE 用途
自由書式ページの場合: データ
(メッセージページで示された種別によって異なる)
11 トグル 1ページごとに01を交互に切り替えて送る。抜け漏れ防止用。
12 確認応答 (ACK) 相手側から追加ページを正しく受信したことを示す。
13 ページ種別 0: 自由書式ページ
1: メッセージページ
14 確認応答2 (ACK2) 相手から来た追加ページの内容に対応可能かを示す。
15 追加ページあり このページの後に別のページを送信するときに使う。
47-16 自由書式 (拡張版のみ)

一例として、1000BASE-Tの場合は以下のように全部で4ページが用いられる。ベースページ、メッセージページを送ったあとに自由書式ページを2ページ分送付する方式が規定されている。

1000BASE-T オートネゴシエーションにおけるページ送付手順・書式[23]
ページ ビット 内容
1: ベースページ 4-0 1: IEEE 802.3 対応
11-5 (100BASE-TXや10BASE-Tなどの対応がある場合には対応値が入る)
15 1: 追加ページあり
2: メッセージページ 10-0 8: 1000BASE-T 用途
13 1: メッセージページ
15 1: 追加ページあり
3: 自由書式ページ1 0 マスタ/スレーブ固定設定
1 1: マスタ, 0: スレーブ (ビット0が1のときのみ有効)
2 1000BASE-T マルチポート 対応
3 1000BASE-T 全二重 対応
4 1000BASE-T 半二重 対応
10-5 (0固定)
13 0: 自由書式ページ
15 1: 追加ページあり
4: 自由書式ページ2 10-0 マスタ/スレーブ用擬似乱数
(相手より大きい値ならマスタ、前ページのビット0が0のときのみ有効)
13 0: 自由書式ページ
15 0: 最終ページ

1Gbpsを超える規格対応の例では、以下のように48ビット拡張版の追加ページを用いる。

1Gbps以上のオートネゴシエーションにおけるページ送付手順・書式[24]
ページ ビット 内容
1: ベースページ 4-0 1: IEEE 802.3 対応
11-5 (100BASE-TXや10BASE-Tなどの対応がある場合には対応値が入る)
12 1: 追加ページあり
2: メッセージページ
拡張版
10-0 9: 1Gbps以上用途
13 1: メッセージページ
15 1: 追加ページあり
3: 自由書式ページ
拡張版
10-0 (0固定)
13 0: 自由書式ページ
15 0: 最終ページ
26-16 マスタ/スレーブ用擬似乱数
(相手より大きい値ならマスタ、ビット27が0のときのみ有効)
27 マスタ/スレーブ固定設定
28 1: マスタ, 0: スレーブ (ビット27が1のときのみ有効)
29 マルチポート 対応
30 1000BASE-T 全二重 対応
31 1000BASE-T 半二重 対応
32 10GBASE-T 対応
33 (1固定, スレーブによる受信クロックの送信利用)
34 ショートリーチ動作
35 10GBASE-T fast retrain 対応
36 (0固定, 対向へのPMAトレーニングリセット要求)
37 (0固定)
38 100BASE-TX EEE 対応
39 1000BASE-T EEE 対応
40 10GBASE-T EEE 対応
41 25GBASE-T 対応
42 40GBASE-T 対応
43 2.5GBASE-T 対応
44 5GBASE-T 対応
47-45 (0固定)

特許 編集

オートネゴシエーションは、以下の特許により保護されている。

その他の伝送媒体 編集

オートネゴシエーションはLANケーブル接続以外の規格にも転用されているものがある。

光ファイバ 編集

1000BASE-Xの各種光ファイバ規格にオプションとして実装されており、8b/10bの特殊シンボル[25]を用いて以下の16ビットのベースページをやりとりする。

1000BASE-X ベースページ(clause 37)の書式[26]
ビット 内容
4-0 (0固定)
5 1000BASE-X 全二重 対応
6 1000BASE-X 半二重 対応
7 全二重の対称PAUSE 対応
8 全二重の非対称PAUSE 対応
11-9 (0固定)
13-12 リモートフォルト
00: 正常, 10: 送信停止中, 01: 受信なし, 11: オートネゴシエーション失敗
14 ACK
15 追加ページあり

バックプレーン・ダイレクトアタッチケーブル 編集

156.25Mbps (6.4ナノ秒/bit)の差動マンチェスタ符号により、以下の48ビットのベースページをやりとりする[27]

ベースページ(clause 73)の書式[28]
ビット 名称 内容
4-0 (S4-S0) セレクタ (ツイストペア規格に同じ)
9-5 (E4-E0) 受信擬似乱数
(Echoed Nonce)
ACK時に相手から来たT4-T0の値を格納する。
11-10 (C1-C0) Capability PAUSE設定 (ツイストペア規格に同じ)
12 (C2) (0固定)
13 リモートフォルト (ツイストペア規格に同じ)
14 ACK (ツイストペア規格に同じ)
15 追加ページあり (ツイストペア規格に同じ)
20-16 (T4-T0) 送信擬似乱数
(Transmitted Nonce)
相手から来たE4-E0の値と比較する。
21 (A0) 対応機能
(Technology Ability)
1000BASE-KX
22 (A1) 10GBASE-KX4
23 (A2) 10GBASE-KR
24 (A3) 40GBASE-KR4
25 (A4) 40GBASE-CR4
26 (A5) 100GBASE-CR10
27 (A6) 100GBASE-KP4
28 (A7) 100GBASE-KR4
29 (A8) 100GBASE-CR4
30 (A9) 25GBASE-KR-S or 25GBASE-CR-S
31 (A10) 25GBASE-KR or 25GBASE-CR
32 (A11) 2.5GBASE-KX
33 (A12) 5GBASE-KR
34 (A13) 50GBASE-KR or 50GBASE-CR
35 (A14) 100GBASE-KR2 or 100GBASE-CR2
36 (A15) 200GBASE-KR4 or 200GBASE-CR4
43-37 (A22-16) (0固定)
44 (F2) FEC対応 25G RS-FEC 動作
45 (F3) 25G BASE-R FEC 動作
46 (F0) 10Gbps FEC 機能あり
47 (F1) 10Gbps FEC 動作

シングルペアケーブル 編集

差動マンチェスタ符号により半二重で48ビットのベースページをやりとりする[29]。信号速度は2種類ある[30]

  • 高速モード: 16+2/3 Mbps (60ナノ秒/bit)
  • 低速モード: 625 kbps (1.6マイクロ秒/bit, 10BASE-T1L用)

シングルペア規格においても1ポートで複数の規格をサポートすることができ、以下の優先度が規定されている[31]

  1. 10GBASE-T1
  2. 5GBASE-T1
  3. 2.5GBASE-T1
  4. 1000BASE-T1
  5. 100BASE-T1
  6. 10BASE-T1S 全二重
  7. 10BASE-T1S 半二重
  8. 10BASE-T1L

関連項目 編集

  • Auto MDI-X - ストレート・クロスケーブル接続の自動設定

脚注 編集

  1. ^ このパルスは、10BASE-Tの用語ではLink Integrity Test (LIT, リンク整合性試験)パルス、オートネゴシエーションの用語ではNLP (normal link pulse, ノーマルリンクパルス)と呼ぶ。
  2. ^ なお、FLPバーストの拡張版として48ビットを表現するものもあり、これは同様の手法で6ミリ秒以内に最大97パルスを連続して送る[16]

出典 編集

  1. ^ Configuring and Troubleshooting Ethernet 10/100/1000Mb Half/Full Duplex Auto-Negotiation”. Cisco. 2012年1月12日閲覧。 “Cisco recommends to leave auto-negotiation on for those devices compliant with 802.3u.”
  2. ^ Jim Eggers and Steve Hodnett (2004年7月). “Ethernet Autonegotiation Best Practices”. サン・マイクロシステムズ. 2011年5月20日時点のオリジナルよりアーカイブ。2019年4月7日閲覧。 “Using autonegotiation is the IEEE 802.3 standard and customers are encouraged to follow the "intent" of IEEE 802.3u/z standards and implement autonegotiation in their Ethernet environments.”
  3. ^ Rich Hernandez (2001年). “Gigabit Ethernet Auto-Negotiation”. Dell. 2012年1月12日閲覧。
  4. ^ IEEE 802.3, p. 221, http://standards.ieee.org/getieee802/download/802.3-2012_section2.pdf 
  5. ^ Jayaswal, Kailash (2005). Administering Data Centers Servers, Storage, and Voice over IP.. Hoboken: John Wiley & Sons. p. 168. ISBN 0471783358 
  6. ^ Archived copy”. 2008年11月19日時点のオリジナルよりアーカイブ。2009年12月2日閲覧。
  7. ^ a b Negotiated Data Solutions LLC. “NWay/IEEE Standard Patent License Offer | Negotiated Data Solutions LLC”. Negotiateddata.com. 2009年1月6日時点のオリジナルよりアーカイブ。2010年2月2日閲覧。
  8. ^ IEEE. “Part 3: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) access method and Physical Layer specifications”. SECTION TWO: This section includes Clause21 through Clause 33 and Annex 22A through Annex 33E.. 2014年6月3日閲覧。
  9. ^ サンマイクロシステムズ, The Sun-Managers Mailing list (2009年4月22日). “SUMMARY: gigabit - fix spd/dpx on the switch ? or autoneg ?”. 2023年11月10日閲覧。
  10. ^ IEEE 802.3-2018, Clause 55.1.1 Objectives
  11. ^ IEEE 802.3-2018, Clause 126.1.2 Relationship of 2.5GBASE-T and 5GBASE-T to other standards
  12. ^ IEEE 802.3-2018, Annex 28B
  13. ^ IEEE Link Task Force Autodetect, Specification for NWay Autodetect”. p. 57. 2011年7月14日時点のオリジナルよりアーカイブ。2019年4月7日閲覧。
  14. ^ Schmidt, Daniel Minoli, Andrew (1998). Switched network services. New York: Wiley Computer Pub.. p. 93. ISBN 0471190802 
  15. ^ IEEE 802.3-2018, Clause 14.2.1.7, Link Integrity Test function requirements
  16. ^ IEEE 802.3-2018, Table 28–1, FLP Burst timing summary
  17. ^ IEEE 802.3-2018, Clause 28.2.1.1, Link pulse transmission
  18. ^ IEEE 802.3-2018, Clause 28.2.1.2, Link codeword encoding
  19. ^ IEEE 802.3-2018, Table 28B–1, Technology Ability Field bit assignments
  20. ^ IEEE 802.3-2022, Table 28B-3 - Pause resolution
  21. ^ IEEE 802.3-2022, Clause 28.2.1.2.5 Acknowledge
  22. ^ IEEE 802.3-2018, Clause 28.2.3.4, Next Page function
  23. ^ IEEE 802.3-2018, Table 40-4, 1000BASE-T Base and Next Pages bit assignments
  24. ^ IEEE 802.3-2018, Table 126–16, 2.5GBASE-T and 5GBASE-T Base and Next Pages bit assignments
  25. ^ IEEE 802.3-2018, Table 36–3, Defined ordered sets
  26. ^ IEEE 802.3-2018, Clause 37.2.1.1 Base Page to management register mapping
  27. ^ IEEE 802.3-2018, Clause 73
  28. ^ IEEE 802.3-2018, Table 73–4, Technology Ability Field encoding
  29. ^ IEEE 802.3-2018, Clause 98
  30. ^ IEEE 802.3-2022, Table 98–1, DME page timing summary
  31. ^ IEEE 802.3-2022, Annex 98B

外部リンク 編集