ここでは,前回説明したCSMA/CDのしくみをより深く探っていこう。ここがわかればイーサネットで送信できる最小フレームが64バイトであることや,リピータ・ハブの接続段数に制限がある理由も理解できる。ポイントは,目に見えないフレームの「本当の姿」を把握することにある。

フレーム・サイズは64バイト以上

図3 イーサネット・フレームの最小サイズは64バイト
仮に送信したいデータが46バイトより小さくても,そのままでは送れない。
 初めにイーサネット・フレームについて確認しておこう(図3[拡大表示])。ここを理解しておかないと,次に進めない。

 フレームとはイーサネットでデータをやりとりする単位である。ケーブルを流れるイーサネット・フレームは,フレーム本体とその前にくっついたプリアンブル部分で構成される。プリアンブル部分は,信号をやりとりする端末間で同期をとり,あとに続く信号がフレームであることを識別するための区切りの役目を果たす。

 具体的には,「10101010」という1と0が交互に並んだビット列が7バイト(オクテット)分続き,最後の1バイトが「10101011」となる(図3参照)。パソコンやリピータ・ハブは,この最後の2ビット(11)を見て,それ以降の信号がフレームであると判断する。

 フレーム本体は,さらにヘッダー部分とデータ部分,およびFCSの三つのフィールドに分かれる。ヘッダー部分はアドレス情報などを格納するフィールドで合計14バイトである。FCSは,受信したフレームが正しいかどうかを確認するための4バイトのデータである。これらヘッダー部分とFCSの合計18バイトを除いた残りが,アプリケーションなどのデータを入れるデータ部分で,そのサイズは46バイトから1500バイトまでと決まっている。

 ここで,送信できるサイズに上限がある理由は直感的に理解できるのではないだろうか。サイズが無制限だったら,あるパソコンが非常に大きなデータを送信すると,ほかの端末は延々と待たされてしまうからだ。

 一方,最小のサイズが46バイトである理由はなんだろうか。こちらは,いくら小さくても不都合はないように思える。実は,この「64バイト」という数値には大きな理由があり,CSMA /CDのしくみと密接に関係している。

カギを握る“スロット時間”とは

 「最小フレームが64バイト」という理由を理解するカギを握るのは“スロット時間”と呼ぶ概念だ。ここが今回の最大のポイントであり,CSMA/CDを理解する核心部分である。

 まず,CSMA/CDを考えるとき,最も重要なことはなにかを考えよう。それは,「最悪の条件下でも,すべての端末がコリジョンを検出できる」ことである。これが実現できなければCSMA/CDは成り立たないからだ。

図4 コリジョン検出のカギを握る“スロット時間”
CSMA/CDが正しく機能するためには,すべての端末がコリジョンを正しく検出できる時間だけは信号を送出し続けなければならない。
 では,その最悪の条件とはなにか。それは「最も離れた2台の端末間でフレームを送受信するとき」である。具体的に図で見ていこう(図4[拡大表示])。

 今,パソコンAとBがあり,AがBに向けてフレームの送信を始めたとする(1)。ここで,Aの送出信号がBに届くギリギリのタイミングでBがAに信号を送信し始めてしまったとしよう。Bは信号を送信し始めて,すぐAからの信号を受け取るため,直ちにコリジョンの発生を検出する(2)。

 するとBは信号の送出をやめ,代わりにジャム信号を送信する。Bがジャム信号を送信するのはどうしてだろうか。それは,Bがコリジョンを検出後,すぐに信号の送信をやめてしまうと,ほかの端末にコリジョンが発生したことが正しく伝わらない可能性があるからだ。このため,Bはある程度のサイズ(規格では32ビット)の無意味な信号(ジャム信号)をくっつけて送信するのである。

 一方,遠く離れたAはBからの信号が届くまで,コリジョンが発生したことがわからない。したがって,もしBからの信号が届く前にAがフレーム全部を送信し終わってしまったら,Aは正常にフレームを送信できたと判断してしまう。

 この事態を避けるためには,Aがフレームを送信し始めてから,送信し終わるまでの間にBからのコリジョンを伝える信号がAに届き,それを認識できなければならない(3)。イーサネットでは,これを512ビット(64バイト)を送信するのにかかる時間,すなわち「512ビット時間」と定め,この時間のことを“スロット時間”と呼ぶ。このスロット時間こそがイーサネットの中核技術であるCSMA/CDのすべてをつかさどる時間である。