4 

イーサネットのヘッダやら、IPのヘッダやら、なんだか混乱してきました。
無理やり覚えようとせずに、整理しながら考える。復習しながらみていこう。レイヤ2で使われるイーサネットフレームの構造と、レイヤ3で使われるIPパケットの構造を確認してほしい。
ip
IPv4のヘッダは、基本的には20バイトである。(付加情報をつけることで拡張することも可能)
以下は,IPヘッダの内容です。本当は「0」と「1」のデータが一列に並んで送信されるのですが、スペースの関係で、32ビット(8バイト)で区切り、改行して記載します。

0                    8          16           24           32

バージョン

IHL

ToS

パケット長

識別子

フラグ

フラグメントオフセット

TTL

プロトコル番号

ヘッダチェックサム

送信元IPアドレス(32 bit

宛先IPアドレス(32 bit

オプション(可変bit

Padding(可変bit

✚✚ IPヘッダの構成


ネットワークスペシャリストを目指す女性SEなやなや 

なんだかよくわからないです・・・
イメージが湧きにくいと思いますので、実際のパケットをみてみましょう。
以下は、前にも紹介したWiresharkというソフトを使って取得したIPパケットです。具体的には、192.168.0.4のパソコンからhttp://nw.seeeko.com(IPアドレスは203.104.130.159)のサイトにアクセスしたときのパケットです。
下部にあるのが生のデータであり、「0」と「1」からなるデータを16進数表記しています(青色がIPヘッダ)。上部は、このソフトが生データを分かりやすく表示したものです。
aa

では、ここで、各項目を上記のデータに照らし合わせて解説します。

項目

長さ(bit

上記のパケットの場合の値

16進数表記)

解説

バージョン

4

4

IPのバージョン情報で、バージョン4である4が入る。

IHLIP Header Length)

4

5

IPヘッダのヘッダ長。32ビットの何倍かを整数で示す。付加情報を付けることで32ビットの整数倍にならない場合は、ヘッダ末尾のオプションに詰め物(Padding?)を入れることで、32ビットの整数倍にする。通常は20バイト(=160ビット)なので、ここには5が入る。

ToS(Type of Service)

8

00

パケットの優先度を付ける場合に利用される。あまり使うことはありない。
ToSとして利用される場合とDiffServとして利用される場合の2パターンがある。Tosの場合は、3ビットで優先度をつける。DiffServの場合は6ビットで優先度をつける。

パケット長

16

023d

パケットの長さをバイト長で表します。今回は、16進数で023dなので、10進数にすると、573バイトです。
16bitあるので2の16乗=65535バイトが最大サイズ ※でもこのサイズはフラグメントする前のものではない。だから実際には1500バイト程度がMAXだろう。

識別子

16

0bcf

パケットが分割(フラグメント化)された場合のパケット識別するグループ番号みたいなもの。
大きいサイズのパケットがフラグメント化された場合、この識別子が同じパケットを再組み立てして元のパケットにする。どの順で再組み立てするにはフラグメントオフセットで判断する。

フラグ

3

2進数表記で)

0

1

0

1ビット目:使用しません

2ビット目:DF(Dont Flagment)ビットで、これがOn(=1)だと、フラグメント化(パケットの分割)されない。→今回はDFビットあり、つまり1

3ビット目:More Flagmentsビットで、同じ識別子の中でこれ以上のフラグメント化されたパケットがあるかを示す(あれば1)。同一識別子のパケットの中で、このビットが無いもの(=0)が、最終パケットになる。⇒パケットが一つなので無し、つまり0

フラグメントオフセット

13

2進数表記で)

0000000000000

フラグメント化されたパケットにおける、位置を示す。これによって、分割された同一識別子のパケットの組み立て順序が分かる。先頭パケットのフラグメントオフセットは0になる。今回は、フラグメント化されていないので、0

TTL(生存時間:Time To Live

8

80

このパケットの生存時間。通常は12816進数で80)から始まり、ルータを超える毎に1つずつ減っていく。0になったらこのパケットは廃棄される。この機能がないと、ネットワーク上を永遠に流れるパケットが存在してしまう可能性がある。

プロトコル番号

8

06

TCPUDPなどのプロトコルの種別を記載(プロトコルに関しては、このあと記載)

ヘッダチェックサム

16

de37

IPヘッダが途中で欠落したりしていないかなど、Iヘッダの正確性を確認するための検査用データ

送信元IPアドレス

32

c0a80004

送信元IPアドレス。16進数のc0.a8.00.0410進数表記すると、192.168.0.4

宛先IPアドレス

32

cb68829f

宛先IPアドレス。16進数のcb.68.82.9f10進数表記すると、203.104.130.159

オプション(32ビット x N)-めったに使わないが、ルーティングの負荷情報などのオプションを入れることができる。IPパケットを32の整数倍にする必要があるため、余った部分は詰め物が入れられる。Hedder Lengthと関連を持ち、オプションが増えれば、値も大きくなる。


過去問では、IPヘッダの中身を問われている。
【H18NW午前 問22】
IPv4のIPヘッダに含まれるものはどれか。

ア あて先MACアドレス     イ あて先ポート番号
ウ シーケンス番号        エ 存在時間(TTL)





上記のIPヘッダ情報をみてみよう。
ア:宛先MACアドレスは、イーサネットフレーム
イ、ウ:ポート番号とシーケンス番号はTCPヘッダ

正解:エ

■ヘッダのチェックサムに関して以下の過去問を見てみよう
H23NW午前2問14
問14 IPv4ネットワークにおいて, IPヘッダ, TCPヘッダ,  UDPヘッダのチェックサムフィールドに関する記述のうち,適切なものはどれか。
ア IPヘッダのチェックサムの計算は必須であるが,TCPヘッダ及びUDPヘッダのチェックサムの計算はオプションであり,計算を省略してOを指定してもよい。
イ IPヘッダのチェックサムの対象はヘッダ部分だけであるが,TCPヘッダ及びUDPヘッダのチェックサムの対象はデータ部分も含む。
ウ TCPヘッダのチェックサムの計算は必須であるが. IPヘッダ及びUDPヘッダのチェックサムの計算はオプションであり,計算を省略して0を指定してもよい。
エ どのヘッダのチェックサムフィールドも,チェックサムの対象はヘッダ部分だけである。






正解 イ
 IPヘッダのチェックサムの対象はヘッダ部分だけであるが,TCPヘッダ及びUDPヘッダのチェックサムの対象はデータ部分も含む。

ネットワークスペシャリストを目指す女性SEあれ?

IPヘッダのチェックサムは、パケット全体をチェックしなくてもいいのですか?
 TCPヘッダにて全部をチェックするので、なくてもいいのではないでしょうか。

■プロトコル番号の例
番号 プロトコル 解説
1 ICMP Internet Control Message Protocol 
2 IGMP Internet Group Management Protocol 
6 TCP  Transmission Control Protocol  
8 EGP  Exterior Gateway Protocol 
9 IGP  any private interior gateway   
17 UDP  User Datagram Protocol  
41 IPv6 
46 RSVP Reservation Protocol  
47 GRE  General Routing Encapsulation 
50 ESP  Encap Security Payload
51 AH  Authentication Header
58 IPv6-ICMP ICMP for IPv6  
88 EIGRP     
89 OSPF     
103 PIM   Protocol Independent Multicast 
112 VRRP Virtual Router Redundancy Protocol
133 FC Fibre Channel


スポンサードリンク