オートネゴシエーション (英語 : Auto-negotiation 、A/N、オートネゴ)は、イーサネット におけるケーブル接続時の自動設定機能。特にLANケーブル の接続において、通信速度 を2つの機器間で互いに送り合って最適値を選択するものを指す。1000BASE-T や10GBASE-T などの規格で必須となっている。
100Mbps以下の接続でオートネゴシエーションが有効な機器とそうでない機器を直接接続すると、設定によってはスループットが大幅に低下するなどのネットワーク障害の原因になるため、ネットワーク管理者は十分に注意する必要がある。詳細は#運用上の注意 の節を参照のこと。
概要
具体例として、以下のような対応規格を持つ2台の機器のLANケーブル接続を考える。
この例では、オートネゴシエーション機能により、両者で共通のプロトコルのうち速度が最高となる「100BASE-TX 半二重」で自動的にリンクを確立し通信を開始する。
一般にLANケーブル接続ポートでは、複数の通信速度、異なる二重通信モード(半二重/全二重 )、異なる規格をサポートすることが可能であり、オートネゴシエーションは主にそのような接続ポートを持つ機器で使われる。各機器は自身の対応機能(technology abilities)をお互いに通知し、両者が使用可能なものの中から最良の動作モードが選択される。低速度より高速度のもの、半二重よりも全二重の方が優先される。
オートネゴシエーション可能な機器とそうでない機器を接続することもできる。これは例えば、一方の機器がオートネゴシエーションに対応していなかったり、管理上オートネゴシエーションが無効に設定されていたりする場合が当てはまる。接続時には、オートネゴシエーション可能な機器による並列検出により、相手側に速度を合わせることができる。しかしこの組み合わせの場合、二重通信モードを自動で決定できないため、常に半二重であると仮定され、全二重通信が事実上できない。これは運用上問題となることがある(次節後述)。
オートネゴシエーションでは、通信速度と二重通信モード以外にも、フロー制御 ・マルチポート対応・マスター/スレーブ 設定・EEE などのパラメタなどがやりとりされる。
OSI参照モデル では、オートネゴシエーションは物理層 に属する。
運用上の注意
家庭用・業務用の多くのネットワーク機器がオートネゴシエーションに対応しており、デフォルトで有効化されている[ 1] [ 2] 。さらに安価な機器ではそもそもオートネゴシエーションを解除して通信モードを手動で設定できないことが多い。そのため、オートネゴシエーションを意識せずに利用しているユーザは多い。しかし、オートネゴシエーションは、誤った使い方をしたり、不用意に解除したりすると、ネットワーク障害の原因になる。
以下のような2つの機器を直接接続する場合に問題となる。
このとき、機器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-T や2.5GBASE-T などもすべて必須と規定されている[ 10] [ 11] 。
優先度
接続された2つの機器は、お互いに相手側機器の対応機能を受信すると、両者で共通対応しているもののうちから最良の規格を決定する。802.3の2018年版が規定しているツイストペア規格の優先順位は次の通りであり[ 12] 、機器が共通対応しているもののうちこの一覧の上位にある通信速度が適用される。
データ構成
電気信号
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)と呼び、以下のような内容を送る。
ビット10にあたるPAUSE 設定では、両者が1
同士の場合にのみ双方向でPAUSEを送受する。また、両者でビット10・11の値が0・1
と1・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ページごとに0
と1
を交互に切り替えて送る。抜け漏れ防止用。
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
固定)
特許
オートネゴシエーションは、以下の特許により保護されている。
アメリカ合衆国特許第 5,617,418号
アメリカ合衆国特許第 5,687,174号
E アメリカ合衆国特許第 RE39405 E号
E アメリカ合衆国特許第 RE39116 E号
971,018 (filed 1992-11-02)
146,729 (filed 1993-11-01)
430,143 (filed 1995-04-26[ 7] )
欧州特許出願 SN 93308568.0 (DE, FR, GB, IT, NL)
韓国特許 No. 286791
台湾特許 No. 098359
日本特許 No. 3705610
日本特許 4234. 特許出願 SN H5-274147
韓国特許出願 SN 22995/93
台湾特許出願 SN 83104531
その他の伝送媒体
オートネゴシエーションは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] 。
シングルペアケーブル
差動マンチェスタ符号 により半二重で48ビットのベースページをやりとりする[ 29] 。信号速度は2種類ある[ 30] 。
高速モード: 16+2/3 Mbps (60ナノ秒/bit)
低速モード: 625 kbps (1.6マイクロ秒/bit, 10BASE-T1L用)
シングルペア規格 においても1ポートで複数の規格をサポートすることができ、以下の優先度が規定されている[ 31] 。
10GBASE-T1
5GBASE-T1
2.5GBASE-T1
1000BASE-T1
100BASE-T1
10BASE-T1S 全二重
10BASE-T1S 半二重
10BASE-T1L
関連項目
脚注
^ このパルスは、10BASE-Tの用語ではLink Integrity Test (LIT, リンク整合性試験)パルス、オートネゴシエーションの用語ではNLP (normal link pulse, ノーマルリンクパルス)と呼ぶ。
^ なお、FLPバーストの拡張版として48ビットを表現するものもあり、これは同様の手法で6ミリ秒以内に最大97パルスを連続して送る[ 16] 。
出典
^ “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 .”
^ Jim Eggers and Steve Hodnett (July 2004). “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.”
^ Rich Hernandez (2001年). “Gigabit Ethernet Auto-Negotiation ”. Dell . 2012年1月12日 閲覧。
^ IEEE 802.3 , p. 221, http://standards.ieee.org/getieee802/download/802.3-2012_section2.pdf
^ Jayaswal, Kailash (2005). Administering Data Centers Servers, Storage, and Voice over IP. . Hoboken: John Wiley & Sons. p. 168. ISBN 0471783358
^ “Archived copy ”. 2008年11月19日時点のオリジナル よりアーカイブ。2009年12月2日 閲覧。
^ a b Negotiated Data Solutions LLC. “NWay/IEEE Standard Patent License Offer | Negotiated Data Solutions LLC ”. Negotiateddata.com. 2009年1月6日時点のオリジナル よりアーカイブ。2010年2月2日 閲覧。
^ 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日 閲覧。
^ サンマイクロシステムズ , The Sun-Managers Mailing list (2009年4月22日). “SUMMARY: gigabit - fix spd/dpx on the switch ? or autoneg ? ”. 2023年11月10日 閲覧。
^ IEEE 802.3-2018, Clause 55.1.1 Objectives
^ IEEE 802.3-2018, Clause 126.1.2 Relationship of 2.5GBASE-T and 5GBASE-T to other standards
^ IEEE 802.3-2018, Annex 28B
^ “IEEE Link Task Force Autodetect, Specification for NWay Autodetect ”. p. 57. 2011年7月14日時点のオリジナル よりアーカイブ。2019年4月7日 閲覧。
^ Schmidt, Daniel Minoli, Andrew (1998). Switched network services . New York: Wiley Computer Pub.. p. 93. ISBN 0471190802
^ IEEE 802.3-2018, Clause 14.2.1.7, Link Integrity Test function requirements
^ IEEE 802.3-2018, Table 28–1, FLP Burst timing summary
^ IEEE 802.3-2018, Clause 28.2.1.1, Link pulse transmission
^ IEEE 802.3-2018, Clause 28.2.1.2, Link codeword encoding
^ IEEE 802.3-2018, Table 28B–1, Technology Ability Field bit assignments
^ IEEE 802.3-2022, Table 28B-3 - Pause resolution
^ IEEE 802.3-2022, Clause 28.2.1.2.5 Acknowledge
^ IEEE 802.3-2018, Clause 28.2.3.4, Next Page function
^ IEEE 802.3-2018, Table 40-4, 1000BASE-T Base and Next Pages bit assignments
^ IEEE 802.3-2018, Table 126–16, 2.5GBASE-T and 5GBASE-T Base and Next Pages bit assignments
^ IEEE 802.3-2018, Table 36–3, Defined ordered sets
^ IEEE 802.3-2018, Clause 37.2.1.1 Base Page to management register mapping
^ IEEE 802.3-2018, Clause 73
^ IEEE 802.3-2018, Table 73–4, Technology Ability Field encoding
^ IEEE 802.3-2018, Clause 98
^ IEEE 802.3-2022, Table 98–1, DME page timing summary
^ IEEE 802.3-2022, Annex 98B
外部リンク
速度 全般 組織 媒体 歴史的な規格 応用 トランシーバ インターフェース 機器