イーサネットのフレームについて

イーサネットのフレームについて

イーサネットのフレームについて

イーサネットのフレームについての情報を整理しました。

 

参照サイト
http://ascii.jp/elem/000/000/427/427324/

 

参照サイト
図解!ネットワークの仕組み

 

 

形式

主にEthernet Ⅱ(DIX)のフレーム形式と
IEEE802.3のフレーム形式が有る。

 

 

Ethernet Ⅱのイーサネットのフレーム

プリアンプル部 プリアンプル(64bit)
ヘッダ部 宛先MACアドレス(48bit) | 発信元MACアドレス(48bit) | タイプ(16bit)
データ部 データ(46~1500byte)
FCS部   FCS(32bit)

 

 

IEEE802.3のイーサネットのフレーム

プリアンプル部 プリアンプル(56bit) | SFD(8bit)
ヘッダ部 宛先MACアドレス(48bit) | 発信元MACアドレス(48bit) | 長さ/タイプ(16bit)
データ部 データ(46~1500byte)
※宛先SAP、発信元SAP、制御、データ、パディングが有る。
FCS部   FCS(32bit)

 

 

プリアンプル部

今となっては10BASEのための互換性のために残してるだけ。
Wiresharkで通常の方法でパケットキャプチャしても載ってこない。

 

 

プリアンプル

最初に有るもの。
受信側がデータを受け取る準備をするための信号(同期信号)のこと。
7バイト。(=56ビット)

 

 

SFD

フレーム開始部。
Start Frame Delimiter。
1バイト。(=8ビット)

 

 

 

ヘッダ部

 

 

宛先MACアドレス、発信元MACアドレス。

48ビットのユニークな値。
※0か1が48個並んでいるって言うこと。24個目まではベンダー固有の値。
例 000000001111111100000000111111110000000011111111
※それを、8ビットずつに区切る。
1~8個目、9~16個目、17~24個目、25~32個目、33~40個目、41~48個目。
※で、それらを2進数から16進数に変換する。それが馴染みのあるMACアドレス。

 

 

長さ/タイプ

1536(0x0600)以上の場合はタイプを表す。
0800(0x0800)はIPv4、
0806(0x0806)はARP、
86dd(0x86dd)IPv6。などなど。
それ以下の場合はデータ部の合計バイト数を表す。

 

Ethernet Ⅱ フレームの場合、
ARPパケットならばタイプ0806の後に
Hardware type、Protocol type、
Hardware size、Protocol sizeと続いていく。

 

IPv4の場合(ICMP,TCP,HTTP,DNSパケット等々)ならば
タイプ0800の後にHeader length、
Differentiated services Field、
Total lengthと続いていく。

 

 

 

データ部

宛先サービスアクセスポイント(宛先SAP)

 

 

発信元サービスアクセスポイント(発信元SAP)

0x06がIP。

 

 

制御

 

 

データ

IPなどの上位層のパケットが入る。

 

 

パディング

水増し、詰め物、などの意味。
データを固定長として扱いたい時に
無意味なデータを追加して長さを合わせる。

 

 

 

FCS部

送信側は、フレームの最初からデータ部最後迄の
CRC値を計算し、FCSフィールドに入れる。

 

受信側はフレームのCRC値を計算したやつと
表記されてるFCSフィールドのCRC値を比較して誤り検出を行う。