なんでイーサネットのフレームサイズは64バイト以上?
目次
イーサネットのフレームサイズの最小値
どうして、イーサネットのフレームサイズの最小値が64バイトなんでしょう?
これは衝突を正確に検出するために最小値が決められています。ご承知のとおり、イーサネットの媒体アクセス制御方式は CSMA/CDです。そのCSMA/CD で考えなければいけない重要なことは、「最悪 の条件の下ですべての端末が衝突を検出」できなければいけません。 最悪な条件とは、一番はなれた2台の端末間での通信のときです。10BASE-Tイーサネットでは、4台のハブを経由する場合でしかも各 ケーブルが100mのときが最悪の条件です。
左のコンピュータAから右のコンピュータBにフレームを送信していきます。ケーブルを伝わるのは電 気信号なのでかなり高速に伝わっていきます(20万km/秒程度)が、 もちろんいくらかの時間がかかってしまいます。
Aがフレームを送信し始めて、Bに届くぎりぎりの時間にBがフレームを送信すると、衝突が起こってしまいます。衝突が起こると、 Bは近いのですぐに衝突の検出をすることができます。で、衝突を 検出してもしばらくフレームの送信を続けて、衝突が起こったこと を他の端末に伝えています。これをジャム信号といっています。ジ ャム信号がAに届かないとAは衝突を検出することができません。
つまり、最悪な条件で、正常に衝突を検出するためには、一番遠い相手にフレームが届く時間+衝突が起こった場合のジャム信号が戻ってくる時間が必要です。この時間を「スロット時間」と呼び、イ ーサネットの規格でネットワークの全長と信号の速度を考えて、さらにある程度の余裕を持たせて、512ビット時間としています。ビット時間という単位が出てきていますが、これはあるビットを伝送できる時間を示しています。
たとえば、10Mbpsなら512ビット伝送するためには、
512(ビット)/10000000(ビット/秒)=0.0000512(秒)=51.2(マイクロ秒)
かかります。また、512ビット=64バイトなので、最悪な条件で衝突を検出するためには少なくとも64バイト必要になってきます。このことからイーサネットのフレームサイズの最小値は64バイトです。 ファストイーサネット(100BASE-TX)では、10BASE-Tと互換性を保つためにフレームサイズを64バイトとしています。スロット時間も同じく512ビット時間です。512ビット時間は100Mbpsでは、5.12マイ クロ秒です。つまり、衝突を検出するためにより制限が厳しくなっ ています。そのため、ハブのカスケードの台数が2台と10BASE-Tの ときよりも厳しくなっています。
つまり衝突ってこういうことね!
とすると、「衝突っていうのは、こういことなんだ!」ってことがわかります!
「CSMA/CDで複数の端末が同時にフレームを送信すると衝突が発生する」といっていますね。この「同時」っていうタイミングはどれぐ らいか?と疑問に思ったことはありませんか?(ぼくは最初に聞いた ときに真っ先にこの点が不思議でした)
完全に「同時」っていうのはありえません。いくらかのタイムラグは必ず存在するはずです。ここでのCSMA/CDの「同時」というのは、 「スロット時間の半分」という意味です。
つまり、10BASE-Tである端末がフレームを送信してからスロット時間の半分、つまり25.6マイク ロ秒以内に他の端末がフレームを送信してしまうと衝突が発生しま す。100BASE-TXで、ある端末がフレームを送信してからスロット時間の半分である2.56マイク ロ秒以内に他の端末がフレームを送信したら衝突が発生するという ことになります。
ここまでがCSMA/CDのより詳しい話とイーサネットのフレームサイズ の最小値が64バイトになる理由です。