3 Minutes NetWorking
No.14

3MinutesNetWorking

第14回レイヤ2 イーサネット/IEEE802.3

■ イーサネットとIEEE802.3の関係

インター博士

さて、レイヤ2の話が続く。
今日はイーサネットとIEEE802.3の話だ。

ネット助手

LANの規格ですね。
その2つはほぼ同一と聞きましたけど?

インター博士

そうだな、当然と言えば当然だ。
まず、最初にイーサネットが存在した。

ネット助手

創世記みたいですね。
そしてイーサネットはこう言いたもうた。「光あれ

インター博士

黙って聞け
1970年代の末期にXeroxが開発。1980年に、Xerox、intelDECの3社が共同で規格をまとめた。これを3社の頭文字をとって、DIX-Ethernetと言う。▼ link

ネット助手

最初からIEEEの規格ではなかったってことですか?

インター博士

そうだ。
このDIX-Ethernetが便利だっていうので、IEEEが標準化したものがIEEE802.3だ。

ネット助手

イーサネットはIEEE802.3の生みの親なんですね。
確かに同じになりますね、これは。

インター博士

うむ。
なので最近では、IEEE802.3も含めてイーサネットと表記されることが多い。

ネット助手

ははぁ、了解です。

■ イーサネットのフレーム構造

インター博士

イーサネットは、LANの規格として、同軸ケーブル(10Mbps)CSMA/CDアクセス制御方式バス型・スター型物理トポロジを使用する。

ネット助手

あれ? 同軸ケーブルって今は使うのはよろしくない、となっているのでは?

インター博士

うむ。今はそうだ。
だが、イーサネット/IEEE802.3が作られた当初は同軸ケーブルが基本だったのだ。なのでそういうことになっている。

ネット助手

過去の名残って奴ですか。

インター博士

そうだな。これについてはまた先で説明する。
それはともかく、レイヤ2ではフレームを作成するのだったな。

ネット助手

また出てきましたね。カプセル化って奴ですか。
レイヤ2ではレイヤ3で作成されたパケットをフレームにするんです、はい。

インター博士

うむうむ。いくらなんでも覚えたようだな。
さて、イーサネットの場合、パケットに付け加えられる情報は以下の通りになる。

8バイト6バイト6バイト2バイト46〜1500バイト4バイト
プリアンブル宛先MACアドレス送信元MACアドレスフレームタイプパケットFCS

[Table14-01:イーサネットフレーム]

インター博士

青色の所は、フレームに包まれるパケットの部分だ。それ以外のところが、イーサネットでフレームを作るときに付け加えられる情報になる。
このようなレイヤ2の情報を付加するということだな。

ネット助手

パケットが最小で46バイトだから、1フレーム全体で最小72バイト。最大で1526バイトってことですか。

インター博士

そう考えることもできる。だがプリアンプルは、これは「フレームですよ。プリアンブルが終わるとデータが始まりますよ」という前触れの部分だ。
ここは計算に入れないで、最小64バイト、最大1518バイトと考えるのが普通だ。

ネット助手

ふむふむ。

インター博士

プリアンブルが終わると、宛先MACアドレスと送信元MACアドレスがある。
MACアドレスについては前回話したな。

ネット助手

えぇ、48ビットのNICにつけられたアドレスですよね。

インター博士

その後、タイプがある。ここまでがパケットの先頭につける情報だ。
そして、パケットの後ろにエラーチェック用のFCSをつけて、フレームが完成する。

ネット助手

なるほどなるほど。
その後レイヤ1に引き渡し、電気信号に変えて相手に伝えるわけですね。

インター博士

そうだ。ちなみにIEEE802.3ではタイプのところが「長さ/タイプ」が入る。
さらにパケットが最大1497バイトになり、減った3バイト分IEEE802.2で決められたLLC副層の情報が入る。そこがイーサネットとIEEE802.3の違いだ。

ネット助手

そんだけなんですか?

インター博士

他にも4ビットほどオプションがつけれるようになったが、それだけだ。
実際の長さはオプションをつけなければ変わらないし、中身もほぼ同一だ。

ネット助手

ははぁ。

■ イーサネットの特徴

インター博士

さて、このように作られたイーサネットのフレームは、NICを通してメディア上を流れる。

[Figure14-01:イーサネットによるフレーム伝送]

インター博士

イーサネットでは、送信されたフレームは、メディアを通りすべてのノードに到達する
このような型をブロードキャスト型という。

ネット助手

ぶろーどきゃすと?
全員が受け取るんですね。

インター博士

そうだ。特定の誰かにデータを送るときでも、全員が受け取ることになる。
とりあえず、全員に送っておけば、送りたい人にも届く。シンプルだろ?

ネット助手

シンプルっていうか、豪快っていうか。

■ CSMA/CD

インター博士

問題は、誰かが送っている最中は他の人は送信できない。同軸ケーブルは伝送路が1本しかないので衝突が発生するからだ。

ネット助手

同軸ケーブルは、銅線1本でベースバンド方式だから、信号が1つしか通らないんですよね。

インター博士

露骨な解説ありがとう
ともかく、そのためイーサネットでは「フレームを送る=メディアへアクセスする」時にCSMA/CDという制御を使う。

ネット助手

しーえすえむえー/しーでぃー?

インター博士

これはメディアへアクセスする際の3つの行動の頭文字をとったものだ。
そうだな自由に発言権がある会議だと考えるのが手っ取り早い。

ネット助手

会議ですか?

インター博士

うむ。
まず、発言がある場合、他の人が発言していないかどうか確かめる。誰かが話していたら終わるのを待つ。これがキャリア検知(CS)だ。

ネット助手

ふむふむ。

インター博士

誰かが話し終わったら、誰でも次に発言してよい。
別に発言の順番などない。これが多重アクセス(MA)

ネット助手

多重アクセス。

インター博士

発言したい人がたまたま同時に発言してしまった場合。つまり自分が喋りつつ、他人の声が聞こえた場合、いったん話すのを止め、少し待つ。
これが衝突検出(CD)だ。

ネット助手

ん?
誰かの発言が終わるのを待ってから喋るのに、何故他の人と発言がぶつかる事があるんですか?

インター博士

それは、音が伝わるスピードに限界があるからだ。
誰かが喋る声が聞こえる前に、誰も喋っていないから発言してしまうという可能性があるのだ。さらに誰も喋っていないことを確認してから、喋りだすまでにラグがあるからだな。

ネット助手

ははぁ。

インター博士

実際のイーサネットの場合は、以下のようになる。

1.送信準備
  • イーサネットフレームを作成。衝突カウンタを0にする。
ネット助手

衝突カウンタって?

インター博士

衝突の回数を数えるものだ。後で使う。

2.CSMA
  • キャリア信号を検知する。なければ一定時間待った後、送信開始。
インター博士

何故一定時間待つかというと、フレームを連続して送るノードがあった場合、そのノードが占有してしまうことになる。
なので一定時間まって、他ノードが送信するチャンスを与えるためだ。

ネット助手

ははぁ、多重アクセスですね。

インター博士

そうだ。

3.CD
  • 送信中に衝突したかどうか検出。衝突していなければ、送信完了。
  • 衝突していた場合、フレームの送信を一時中止し、JAM信号を送信。4へ進む。
ネット助手

衝突してなければ、これで終わりですか。

インター博士

衝突が発生してなければ、無事相手に届いたことになるからな。

4.バックオフ
  • 衝突カウンタをプラス1。
  • 衝突カウンタが16ならば、作成したフレームを破棄。送信中止。
  • 16未満ならば、ランダムな時間待機後、2に戻る。
インター博士

この衝突が起きた場合の行動をバックオフと言い、待つランダムな時間のことをバックオフ時間と呼ぶ。

ネット助手

ふむふむ。衝突が起きて、相手に上手く届かなかった場合、もう一度送りなおすのですね。
でも、何故16回送るのに失敗したら、止めてしまうのです?

インター博士

あまり連続して衝突が発生する場合、ネットワーク自体に障害が発生しているか、あまりにも混雑しすぎている事が多い。
その場合、何度やっても無意味だからだ。

ネット助手

ははぁ。

インター博士

言葉だけでは、わかりづらいかもしれんので、下の図でもう一度説明する。

[Figure14-02:CSMA/CD]

インター博士

うむ。CSMA/CDはわかったかな?

ネット助手

う〜ん。なんとか。

■ 受信側の対応

インター博士

ならばよし。
さて、送信の場合はCSMA/CDでアクセス制御を行うわけだが。フレームを受け取った側が行うことも説明する。

ネット助手

うへぇ。受信側もなにか制御をするんですか。

インター博士

送信時ほど複雑なことを行わない。
イーサネットはフレームが全員に届くのだったな?

ネット助手

えぇ、上でそうおっしゃってますよね。

インター博士

誰かに送ったのだが、全員に届いてしまう。
それだったら、宛先など必要ないだろう?

ネット助手

そう言われればそうですね。

インター博士

だが、自分が読む必要のないデータをわざわざ読んで、「これは自分にはいらない」と判断するのも莫迦らしい。
なのでやはり宛先は必要なのだよ。

ネット助手

それもそうですけど。いるのかいらないのかどっちなんですか?

インター博士

もちろん必要だ。
なので、受信した時点で、宛先MACアドレスと自分のMACアドレスを比較する

ネット助手

自分宛てかどうか確かめるんですね。

インター博士

そうだ。自分宛でない場合は、その場で破棄する。
そうすれば、わざわざ自分宛てでないフレームを処理する手間が省ける。

ネット助手

なるほど。

インター博士

その後、エラーチェックを行い、正しいデータであることを確かめる。
エラーだったら、破棄する。それが終わったなら、レイヤ3に引き渡し、上位の処理を行うわけだ。

ネット助手

自分宛かどうか確かめ、エラーがないかどうか確かめ、その上で次に進む、と。

■ ベストエフォート型配送

インター博士

さきほども言ったが、イーサネットはCSMA/CDというシンプルなアクセス制御を行う。
言葉にすれば、「誰かが通信してるなら、待つ。誰もしてないなら送信できる。もし誰かとぶつかったらもう1回」だ。

ネット助手

そう聞くと、なんかやけに簡単ですね。

インター博士

簡単なのだよ。なので制御に特別な機器が必要ない。なので安価にネットワークが構築できるわけだ。
これがイーサネットが普及し、現在の主流になってる理由の1つだな。

ネット助手

シンプルさは勝利の秘訣って感じですか。

インター博士

だが、シンプルさ故の欠点もある。エラーフレームは問答無用で破棄してしまう所だ。
もしかしたら、衝突以外のノイズなどでエラーになってしまったかもしれない。しかし送信した側は破棄されたかどうかわからない

ネット助手

そうですね。
相手に送ったはいいですけど、それが破棄されたかどうか確かにわからないですね。

インター博士

だからといって、受け取った側がエラーだからと修正したりもしない。
このような通信方法はベストエフォート型配送という。

ネット助手

べすとえふぉーと。

インター博士

うむ。まあイーサネットはかなり信頼性の高い方式なので、それほどエラー発生率が高いわけではないけどな。
ただ上位レイヤで、確実に配送する方法を確保するためのプロトコルを使用はする。

ネット助手

え〜っと。レイヤ4ですね。

インター博士

ほほぅ、その通りだ。それについてはその時話そう。
さて、イーサネットについてはもう少し話すことがあるので、次回もイーサネットの話だ。

ネット助手

了解です。
3分間ネットワーキングでした〜♪

Xerox
ゼロックス社
情報関連機器メーカ。
日本だと富士ゼロックスや、富士写真フィルムなどが有名。
intel
インテル社
ご存知CeleronやPentiumを作り出しているメーカ。
DEC
ディジタルイクイップメント社[Digital Equipment Corporation]
Compaq社に吸収合併されて今はありません。
パケットに…
パケットの頭と後ろに情報が付け加えられる。
先頭につけるのをフレームヘッダ、後ろに付け加えられるのをフレームトレーラと呼ぶ。
タイプ
使用されるレイヤ3以上のプロトコルを、16進数で表記します。
例えばIPv4なら0800、ARPなら0806など。
オプション
VLAN使用時のタグ情報が入ります。
VLANについては後述。
ブロードキャスト型
[broadcast]
ブロードキャストは、全体に送信するという意味で使用される。
今後も頻繁に出てくる言葉である。
CSMA/CD
[Carrier Sense Multiple Access / Collision Detection]
キャリア検知・多重アクセス/衝突検出、と訳される制御方式。
キャリア信号
[carrier]
メディア上を流れている信号の事。運ぶ[carry]もの。
一定時間
IFG[Interframe Gap]
フレーム間隔時間と呼ぶ。
10Mbpsのイーサネットの場合9.6μs(マイクロ秒)。
100Mbpsの場合は960ns(ナノ秒)。
JAM信号
[jam]
jamは故障・妨害の意味。
他ノードへ衝突が発生したことを伝え、今受け取ったフレームを破棄するようにするに伝える。
バックオフ
[backoff]
身を引く、引っ込める。
ベストエフォート型配送
[best effort deliver]
最善努力型配送。
確実に配送できるよう努力はするが、それ以上の保障はしないという配送方法。
ネット助手ネット君の今日のポイント
  • イーサネットとIEEE802.3はフレームの情報が少し違う。
  • 宛先MACアドレスと送信元MACアドレスをフレーム情報として付加する。
  • イーサネットは送ったフレームが全ノードに届くブロードキャスト型ネットワークである。
  • イーサネットはCSMA/CDアクセス制御方式を使用する。
    • キャリア信号があるかどうかチェックする(CS)。
    • なければ一定時間待ってから送信する(MA)。
    • 衝突が発生したかどうかチェックする(CD)。
    • 発生した場合、少し待ってから再送する(バックオフ)。
  • 受信側は、宛先MACアドレスが自分宛かどうか確かめ、違うならばフレームを破棄、自分宛ならば上位レイヤに引き渡す。
  • イーサネットはベストエフォート型配送である。

3 Minutes NetWorking No.14

管理人:aji-ssz(at)selene.is.dream.jp