読者です 読者をやめる 読者になる 読者になる

自分研究会

一日の振り返りと課題を探す

レイヤ2:イーサネット/IEEE802.3

http://www5e.biglobe.ne.jp/%257eaji/3min/14.html

 

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

今日は、イーサネットIEEE802.3の話。
この2つはLANの規格。

※今更ながら、「LAN」とは、コンピュータや通信機器をケーブルや無線電波などで接続し、
相互にデータ通信できるようにしたネットワークのこと。

そして、イーサネットIEEE802.3この2つはほぼ同一である。


まず、初めにイーサネットが存在した。

1970年代の末期にXeroxが開発。
1980年に、Xeroxintel、DECの3社が共同で企画をまとめた。
これを3社の頭文字をとって、DIX-Etherrnetと言う。

最初からIEEEの規格ではなかった。
DIX-Etherrnetが便利だったので、IEEEが標準化したものがIEEE802.3.


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

 

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


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

<<同時ケーブルは今は使わない方がいいのでは?>>

確かにそう。
しかし、イーサネット/IEEE802.3が作られた当初は同軸ケーブルが基本だった。
要するに過去の名残。

 

レイヤ2では「フレームを作成」する。
つまりカプセル化する。
レイヤ3で作成されたパケットをフレームにする。


イーサネットの場合、パケットに付け加えられる情報は以下の通りとなる。

 

f:id:sakamotosakamo:20161026013300p:plain

 

 


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

パケットが最小で46バイトだから、1フレーム全体で最小72バイト。
最大で1526バイトと考えることもできる。

 

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


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


IEEE802.3との違い

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

イーサネットとの違いはこれだけ。

 


イーサネットの特徴

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



 

f:id:sakamotosakamo:20161026013429p:plain

 

 

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

※ブロードキャスト型:全員に送信するという意味。

 

CSMA/CD

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

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


そのため、イーサネットでは「フレームを送る=メディアへアクセスする」時にCSMA/CDという制御をつかう。

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


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

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

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

 


イーサネットの場合


1.送信準備

イーサネットフレームを作成。衝突カウンタを0にする。

※衝突カウントとは、衝突の回数を数えるもの


2.CSMA

キャリア信号を検知する。なければ一定時間待ったあと、送信開始。


※なぜ一定期間待つかというと、フレームを連続して送るノードがあった場合、そのノードが占有してしまうことになる。
なので、一定時間待って、他ノードが送信するチャンスを与える。(多重アクセス回避)

 

3.CD

送信途中に衝突したかどうかを検出。衝突していなければ、送信完了。
衝突していた場合、フレーム送信を一時中止し、JAM信号を送信。

 


4.バックオフ

衝突カウンタをプラス1。
衝突カウンタ16ならば、作成したフレームを破棄。送信中止。
16未満ならランダムな時間待機後、2に戻る。

 

 

 

■受信側の対応

送信時ほど複雑ではないが、受信側も制御を行う。
イーサネットはフレームが全員に届く。

誰かに送ったが、全員に届いてしまうのであれば宛先は不要なはず。
しかし、自分が読み込む必要のないデータをわざわざ読み込んで、「これは自分にはいらない」と判断するのは煩わしい。
なので、宛先は必要。

受信をした時点で、宛先MACアドレスと自分のMACアドレスを比較する。
自分宛でない場合は、その場で破棄する。
そうすれば、わざわざ自分宛でないフレームを処理する手間が省ける。

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

 

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

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

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

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

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

 

<今日のポイント>

イーサネットIEEE802.2はフレームの情報量が少し違う
・宛先MACアドレスと送信元MACアドレスをフレーム情報として付加する
イーサネットは送ったフレームが全ノードに届くブロードキャスト型ネットワークである
イーサネットCSMA/CDアクセス制御方式を使用する
 └キャリア信号があるかどうかチェックする(CS)
 └なければ一定時間待ってから送信する(MA)
 └衝突が発生したかどうかチェックする(CD)
 └発生した場合、少し待ってから再送する(バックオフ)
・受信側は、宛先MACアドレスが自分宛かどうか確かめ、違うならフレームを破棄、自分宛なら上位レイヤに引き渡す
イーサネットはベストエフォート型配送である