全4381文字
PR

 Part2では、オートネゴシエーションはどのように伝送速度などを決定するのか、その仕組みを解説していく。

33本のパルスで伝える

 まず100Mイーサネットでのオートネゴシエーションの仕組みから見ていこう。

 ベースとなるのは、10BASE-T向けに開発された「NLP」である(図2-1)。これはLANケーブルでつないだネットワーク機器同士が16ミリ秒間隔で互いに送り合う電気パルスである。機器はイーサネットフレームを送らないときも常にNLPを送信しており、これが相手から届くことでリンクが正常だと認識する。

図2-1●パルス列を使ってデータを相手に届ける
図2-1●パルス列を使ってデータを相手に届ける
10BASE-Tではもともとリンクが正常かどうかを確認するためにNLPというパルスを使っていた。これと互換性がある形で、オートネゴシエーションに使う「FLPバースト」というパルス列が定義されている。FLPバーストは33本のパルスで構成され、奇数番目の17本はクロック同期に、偶数番目の16本はデータを送るために使われる。
[画像のクリックで拡大表示]

 続いてオートネゴシエーションの動作を100Mイーサネットの1つである100BASE-TXを例に見てみよう。

 機器を起動しLANケーブルをつなぐと、相手に「FLPバースト」というパルス列を送り出す。これは33本のパルス(FLP)で構成され、クロック同期とオートネゴシエーションに使うデータを相手に届ける役目を持つ。

 FLPバーストの間隔は、NLPと同じ16ミリ秒と決められている。これは100BASE-TXに対応していない10BASE-T専用機器がFLPバーストの先頭パルスを認識できるようにするためだ。これにより10BASE-T専用機器はFLPバーストのデータを読み取れなくても、リンクがつながっていることを認識できる。

 FLPバーストの33本のパルスのうち、奇数番目の17本はクロック同期用に、偶数番目の16本はデータ用に使われる。データ用のパルスについては、パルスがある場合を「1」、パルスがない場合を「0」としている。つまり、データを表すビットに「0」が含まれるときは、実際にはパルスの数は33本より少なくなる。

メッセージは16ビット

 1個のFLPバーストで16ビットのメッセージを送ることになる(図2-2)。これはオートネゴシエーションでやりとりする基本的なデータで、「ベースページ」と呼ばれる。

図2-2●オートネゴシエーションの基本的なメッセージのフォーマット
図2-2●オートネゴシエーションの基本的なメッセージのフォーマット
100BASE-TXなどの100Mイーサネットでは、1個のFLPバーストで送る「ベースページ」と呼ばれるメッセージだけでデータをやりとりする。16ビットのうち7ビットの「技術能力フィールド(Technology Ability Field)」を使って、サポートする速度や複信方式、PAUSEフレームへの対応を示す。また、将来の高速規格に対応するため、追加のメッセージの有無について記述するNPやXNPというフラグが定義されている。
[画像のクリックで拡大表示]

 ベースページに含まれる各ビットには、分かりやすいようにD0~D15のラベルが付けられている。先頭の5ビットであるD0(S0)~D4(S4)は「セレクターフィールド」と呼ばれ、LAN技術の種類を選択するために使われる。ナショナルセミコンダクターの独自技術をベースにした「IEEE 802.9」など、他のLAN技術も選択できるようにしている。ただ現在では、イーサネット(IEEE 802.3)を示す「00001」で固定となっている。

 続くD5(A0)~D11(A6)の7ビットは「技術能力フィールド(Technology Ability Field)」と呼ばれ、対応する規格や複信方式などを記載する。例えば、D6(A1)が「1」なら10BASE-T(全2重)を、D8(A3)が「1」なら100BASE-TX(全2重)をサポートしていることを示す。

 D10(A5)とD11(A6)は「PAUSE操作」に対応しているかどうかを伝えるためのビットである。

 PAUSE操作とは、「PAUSEフレーム」と呼ばれる特殊なイーサネットフレームを使ったフロー制御のこと。フレームを受信するスイッチのフレームバッファーがあふれそうになると、フレームの廃棄を防ぐために送信側のスイッチにいったんフレームの送信を止めてもらう仕組みがある。これをフロー制御という。このときフレーム送信の停止を要求するために受信側のスイッチが送信側に送るのがPAUSEフレームである。

 PAUSEフレームはMACヘッダーの「長さ/タイプ」フィールドに「8808(16進数)」をセットした特別なフレームである。PAUSEフレームは送信停止の指示に加え、送信再開までの時間を指定する情報も送信する。受信側スイッチでの処理が進んでフレームバッファーが空いてくると、送信側スイッチに対して再開までの時間をゼロに設定したPAUSEフレームを送る。それを受け取った送信側スイッチは、直ちにフレームの送信を再開する。