|
|||||||||||
▲IT関連情報へ戻る | |||||||||||
▼直感的に理解するイーサネット(第3回) (2003/12/18 更新)
イーサネットで送るデータの単位を「フレーム」と呼びます。この「フレーム」は決まった構造になっています。今回はその構造を見ていきます。
上記のフレーム構造からイーサネットフレームは最小でも64bytesあることがわかります。データ部で送る必要なデータが例え2bytes分であろうと、残り44bytes分のダミーデータを詰め込んで、むりやり64bytesまでは持っていきます。どうしてでしょうか。それは、「衝突」を検出する仕組みの構造上仕方ないからです。下の図を見てください。
CompA はデータを送出し終えています。このあと、CompB が「衝突」検出のJAM信号を送っても、データを送出し終えている CompA は涼しい顔をしています。でも本当は CompA のデータは「衝突」しています。
CompA はデータの送信中に「衝突」を検出します。CompA はランダム時間後にそのデータを送りなおすことができます。
「フレームサイズが 64bytes 以上なら、絶対に送信中に『衝突』が検出できるのか? 誰がそんなこと決めたんだ?」と疑う人も中にはいるでしょう。決めたのはきっとイーサネット黎明期に開発に携わった誰かだと思います。絶対に「衝突」を検出できるかどうかについてですが、検出できないような長いネットワークを作ってはいけないという制約があります。下の図を見てください。
最悪のケースを考えます。ネットワークの一番端にある CompA が送ったデータの先頭がネットワークの反対の端にある CompB の直前で「衝突」したとします。「衝突」から最も近い CompB がそれを検出して、すぐにJAM信号を発します。そのJAM信号が CompA に届くことで CompA も衝突を認識します。つまり 64bytes を送信中に、電気信号がネットワークの端からもう一方の端まで、行って帰ってくることができる長さに、イーサネットは構築しないとダメなのです。10base-T なら、1秒間に 10Mbit 送信できるので、64bytes を送信するのに必要な時間は
(64×8)÷10000000=0.0000512秒 この間に電気信号がネットワークの端から端まで行って帰ってこなくてはいけないのです。それはどのぐらいの長さのネットワークかと言うと、ハブをカスケードで4段までつないでいいぐらいの長さです。そうです、ハブのカスケード接続の制限は、これが原因です。 ですから、ファストイーサ(100base)なら、64bytes を送信するのに必要な時間は (64×8)÷100000000=0.00000512秒 「0」一つ分短くなります。この短時間のうちに電気信号がネットワークの端から端まで行って帰ってこなくてはいけないのですから、さらにネットワークは短くなければなりません。どのぐらいの長さかと言うと、100base ハブをカスケードで2段までつないでいいぐらいの長さです。100base の時にカスケード段数が変わってしまうのはそういう理由です。 ちなみにこの 64bytes を送信するのに必要な時間というのは「スロットタイム」と呼ばれています。単位としては 「512ビット時間」とされています。
長くなってしまいましたが、今回はここまでです。ネットワークには「仕様」となぜその「仕様」なのかの「理由らしきもの」とがあります。なぜ「理由らしきもの」なのかと言うと、自分が納得するための「理由」ということで、「本当の理由」ではないことがよくあるからです。ただ「仕様」だけ覚えると、自分の中でよくわからなくなってきますので、できる限り「理由らしきもの」とセットにして覚えましょう。「理由らしきもの」の中にさらにわからない点が出てきたりしますので、それをまた突き詰めていくと「本当の理由」に近づいていきます、ような気がします。
|
|||||||||||
ご意見・お問合せはinfo@satram.jpまで Copyright 2003 Satellite RAMBLING. All rights reserved. |
|||||||||||