データ符号化

100M イーサネットのデータ符号化

 データ転送が高速であるということは、頻度が高いということになり、従って、 100M イーサネットのデータ符号化は、10 M イーサネットよりほんの少しだけ複雑です。 ここでは、100M イーサネットのデータ符号化方法と、この符号化をサポートするためにデータリンク層に追加された新しい層について説明します。

 このページでは以下の二つのデータ符号化について説明します。

100BASE-TX と 100BASE-FX
100BASE-T4


データ表現:100BASE-TX と 100BASE-FX の場合

 100M イーサネットが開発されたとき、100 Mbps での転送のさまざまな問題は FDDI においてすでに解決されていました。 別の解決方法を探すために時間を費やすより、ファイバや銅線上の FDDI で使われているいろいろな技術が採用されました。

 イーサネット内部の詳細を論じるときには、IEEE データリンク副層について論じるのが有益です。 IEEE のネットワークでは、TCP/IP や ノベル NetWareなどの上位プロトコルは、 LLC 副層( Logical Link Control )を通してデータリンク層と結ばれています。 LLC 副層は IEEE 802.2 で定義されており、IEEE ネットワーク全体−802.5 のトークンリングを含む−に関連しています。 802.3 イーサネットでは、LLC 副層は、MAC 副層にデータを渡します。その層でデータを送信するためにフレームを準備します。 MAC 副層はまた、CSMA/CD のメディアアクセス機能と親和性があります(これはメディアアクセスで述べられています)。 100M イーサネットが従来のイーサネットと異なるのは、この MAC 副層の部分だけです。 この違いについては層の解説で説明をしています。 100M イーサネットでは、物理層において、いくつかの新しい機能層を使用しています。 新しい層は PCS (物理符号副層 : Physical Coding Sub-layer )を中心に、PMA (物理メディア接続副層 : Physical Medium Attachment sub-layer )と PMD (物理メディア独立副層 : Physical Medium Dependent sub-layer )からなっています。これらの副層についても層の解説の図中で説明をしています。

 100 Mbps のデータ転送において、まず難しいことは、高周波数の信号はツイストペアまたはファイバではうまく伝播しないということです。 10 Mbps のイーサネットでは、マンチェスタ符号化を使用し、その中にはクロックが含まれています。 クロックは通信速度の約2倍になるので、10 Mbps でデータを送信するということは、最悪の場合 20 MHz での通信となります。 100 Mbps では、最高周波数は 200MHz になります。カテゴリ5の UTP は、100MHz でしかないので、 それでは 100M イーサネットは実装できなくなります。ファイバでさえ、200MHz では難しいのです。

 マンチェスタ符号化に代わるものとして、2つの符号化方式が PMA 副層で採用されています。 これについては、後に詳しく説明します。短く言うと以下の通りです。

 100BASE-FX は NRZI( Non-Return-to-Zero:ゼロには戻らない方式)を使用します。 UTP で周波数を低減するために、100BASE-TX は PDM 副層に MLT-3 NRZI-3 と呼ばれる NRZI の一種を付け加えました。

 NRZI と MLT-3 はデータ搬送の周波数低減の問題を解決するのですが、一方でクロック信号の符号化が失われるというリスクもはらんでいます。 ゼロの連続−データ中では珍しくもない−は、NRZI と MLT-3 においては信号に変化がないことを示しています。 信号の変化がないと、受信ステーションは入ってくる信号をきれいに受取れることができません。 入ってくる信号がなければ、受信ステーションがリカバのために使うクロックが流されてしまいます。 認識できたクロックの中に流されたものが十分あれば、ステーションは一連のデータの中から間違ったものを見分けることができます。 この問題を解決するために、データはまず PCS 副層で、4B5B 方式で符号化されます。 4ビットデータが5ビットの符号に置き換えられます。これは、802.3 の 24.2.2.1 に記述されている方式です。 4ビットパターンは5ビットコードに割り当てられています。4ビットの実際のデータを送る代わりに、5ビットのコードが送られます。 これは 4B/5B符号化と呼ばれ、詳しい解説は後の方にあります。 4ビットでは 16 の組み合わせが、5ビットでは 32 の組み合わせがあるので、 4ビット表現で有効なものは、少なくとも2通りの値を持つことができます。この変動値がクロックを確実にします。 16 のシンボルのうち、残った4つがパケットの開始と終了の意味を受け持ちます。さらに、4B5B パターンのうちで、すべてのビットが変化するものは、 アイドル信号として定義されています。100BASE-TX と 100BASE-FX では、データの通信を行っていないときは、 ステーションはアイドル信号を通じて同期を取り続けています。他のイーサネットと違って、100BASE-TX と 100BASE-FX は、 「静か」ではありません。絶えずアイドル信号が送られているからです。

 4B5B と NRZI あるいは MLT-3 との組み合わせによって、100BASE-TX と 100BASE-FX に簡潔な波形がもたらされます。 その信号はファイバや UTP-5 で送るのに十分遅く、100 Mbps を符号化するには十分なだけの密度があります。 100BASE-FX では 100 Mbps から 125 Mbps へ速度を上げるのに 4B5B が使われ、NRZI を半分にすることによって 62.5MHz の速度を出します。 100BASE-TX では、MLT-3 を半分にし、31.25MHz へ速度を落とします。 100BASE-TX の信号が FCC の基準に合致しなければ、PMD 副層で波長を変えることが許されています。 その後、PCS で 4B5B 符号化、PMA で NRZI 符号化がなされますが、それは PMD での MLT-3 符号化の前に行われます。 データの符号化という考え方は、本来は放射の結果、減衰する信号を均一化するためのものです。 セキュリティという観点からも符号化は意味を持ちます。


データ表現:100BASE-T4 の場合

 100BASE-T4 は、信号変換を物理副層で行います。31.25 MHz というのは UTP-5 上で通信を行うのに、十分遅い速度です。 しかし、UTP-3 を使う場合はこれでもまだ速すぎます。UTP-3 では 16 MHz までしか保証していないからです。 カテゴリ3の UTP で 100M イーサネットを使うために、100BASE-T4 が開発されました。100BASE-TX 技術を出発点として、 100BASE-T4 は、4B5B と MLT-3 を結合させ、最大限に活用し、8B6T と呼ばれる新しい符号化を作りあげました。 詳細は信号の符号化のところで説明します。 8B6T は8ビットを3つの状態の6つの組み合わせのコードとして置き換えます。そのことによって 256 バイト分に、729 個のシンボルが対応します。 MLT-3 とは違って、「1」〜「0」〜「-1」という連続は必要ではありません。つまり 8B6T では3つの状態を独立して使うことができるのです。 256 個分は、4B5B のように、それぞれのバイトに一対一で関連付けられています。これは、IEEE 802.3 の付加文書 23A に挙げられています。 9つのシンボルが開始と終了の区切りとコントロールに使われ、これは IEEE 802.3 の 23.2.4.1 にあります。 T4 でどのように信号を低減しているのかを知るために、数学を通して考えてみましょう。 8B6T で必要とされるもっとも速い波形は、「+1」から「-1」への変化で、一つの波長の2値状態で符号化されます。 4B5B と違って、搬送波の周波数は実際のビットの 3/4 だけが必要とされます。つまり8ビットを通信するのに信号は6つということです。 最も速い波形は 37.5 MHz で、これも UPT-3 にとっては速すぎます。さらにもう一つ技術が必要になります。

 8B6T における最後の減速手段は、送信信号をケーブルの1対ではなく3対に分けて送り出すことです。 これは「 T4 の分割・構成」と呼ばれ、詳細については、信号の符号化で説明しています。 最速波形として現在、12.5 MHz が要求されていますので、これならばカテゴリ3のツイストペアケーブルで使うには十分に遅い速度です。 100BASE-T4 でデータが送られるときは、3対の線が使われます。カテゴリ3ケーブルの4対では、3対がデータ通信に使われ、残りの1対がコリジョン検出に使われます。 10BASE-T では同じ対が、通信対として使われます。つまり送信の対と、受信の対があるのです。 他のイーサネットでは使われない2対が双方向に使われ、同じ方向へデータを送信します。 100BASE-T4 では、3対はいつも片方向にデータを送信するために使われます。それらの対が送信に割り当てられているため、 100BASE-T4 では全二重通信をすることはできません。しかし 802.3 は、全二重のイーサネットに関する規定はありません。 全二重に関しては、付加文書 28B で触れられているだけです。

 100BASE-T4 にバイトを分けて送り出す方法は次の通りです。まず、6T バイトを最初の対に送り、 次の 6T を2番目に、続く 6T を3番目に、その次を最初の対に送り、それで 6T の送信が終わります。 従来から使用しているプリアンブルは、受信ステーションが送信クロックと同期をとるためだけでなく、 受信ステーションに対の順番を知らせるためにも使われます。それによって受信エンド側で適切な順番でフレームが組み立てられます。 あるプロトコルでパケットを順にする−フィールドの追加で行えます−のは簡単ですが、 一つのパケットの中で独立したバイトを順に並べるのは難しいことです。イーサネットのプリアンブルや 100BASE-X のアイドル信号と同じように、 T4 コードの最初の部分は、受信エンドが送信クロックと同期をとるためのもっとも簡単な方法として設計されています。 「+1」「-1」「+1」といった大きな変化がそれです。受信側で CRC 計算をするために、最後の5つのコードが使われているのです。