イーサーネットの表記と実際

ツイスト・ペア・ケーブル(RJ-45のコネクタ)を使う接続において、接続機器間で一番速い通信方式を選択しようとします(オート・ネゴシエーションと呼ぶ)。 これは10BASE-Tの動作を拡張することで実現されます。これは送信側から周期的に「リンク・パルス」と呼ぶ信号を送信させ、受信側でこれを受信することで接続を判断しているのですが、これに最大33発のパルスに付加情報を送ることで実現しています。なお、オート・ネゴシエーションに失敗すると、10BASE-Tの半2重通信になります。

10BASE-T、10BASE5、10BASE2の信号形式は、マンチェスタ符号で伝達しています。
これは情報を電位の差で判断させるのではなく、状態の変化で判断させる方式です。
具体的には、0の情報では信号レベルを「HiからLowへ変化」させ、1の情報では信号レベルを「LowからHiへ変化」させるようにします。よってマンチェスタ符号では、例えば0の連続情報を10Mbpsで送るためには、20MHzのサイクルが必要になります。
(なお信号ない状態は信号が変化していない状態になるので、その判別は容易でした。)

対して、100BASE-Tの信号は、MLT-3(Multi-Level Transmission-3)形式で伝達しています。
これは、電気信号としてのレベルが3通り(負電位、ゼロ電位、正電位)あり、
負電位→ゼロ電位→正電位→ゼロ電位→負電位→・・・の順番で変化させる方式です。
そして、「伝達ビットが1なら電位を変化させ、0を送る場合は電位を変化させない」という規則で伝達します。

MLT-3では1が続いた時の伝達クロック周波数が最も高く、この時に使う電位変化サイクルは、ビット伝達サイクルの2分の1になります。
つまり「マンチェスタ符号で伝達」より低いサイクルで伝達できるわけですが、0が続く場合は電位変化が起きないので、伝達に不都合が生じます。
そこで、0が続きすぎるコードを使わないように、4B5Bのコード変換を行います。
4ビット単位(Nibble:ニブル)で、0が連続しないように、次のような5ビットに変換してから送ります。
2進4B5Bコード
0000 11110
0001 01001
0010 10100
0011 10101
0100 01010
0101 01011
0110 01110
0111 01111
1000 10010
1001 10011
1010 10110
1011 10111
1100 11010
1101 11011
1110 11100
1111 11101