Notice: Trying to access array offset on value of type bool in /var/www/html/wordpress/wp-content/plugins/internal-link-building-plugin/internal_link_building.php on line 86

Notice: Trying to access array offset on value of type bool in /var/www/html/wordpress/wp-content/plugins/internal-link-building-plugin/internal_link_building.php on line 105

[ネットワーク入門]IPパケット構造について

2018年10月14日ネットワークOSI参照モデル, ネットワーク


Notice: Trying to access array offset on value of type bool in /var/www/html/wordpress/wp-content/plugins/internal-link-building-plugin/internal_link_building.php on line 86

Notice: Trying to access array offset on value of type bool in /var/www/html/wordpress/wp-content/plugins/internal-link-building-plugin/internal_link_building.php on line 105

前回書いた記事
OSI参照モデルについて
OSI参照モデル(データリンク層)について
OSI参照モデル(ネットワーク層について

前回の記事で、OSIモデルの全体についてと、物理層、データリンク層、ネットワーク層について記事を書いてきましたが、ネットワーク層のIPパケットの中身について調べて行きたいと思います。

IPパケットのフィールド

  • ヘッダ長フィールド:4bit
  • サービス・タイプ(TOS)フィールド:8bit
  • データグラム長フィールド:16bit
  • IDフィールド:16bit
  • フラグフィールド:3bit
  • フラグメント・オフセットフィールド:16bit
  • TTLフィールド:8bit
  • プロトコル番号フィールド:8bit
  • ヘッダ・チェックサムフィールド:16bit
  • 送信元IPアドレスフィールド:32bit
  • 送信先IPアドレスフィールド:32bit
  • オプションフィールド:32bit単位で可変長
  • データフィールド:可変長

IPパケットの構造

IPパケットの構造は、IPヘッダ部分とデータ部分に分かれる。IPヘッダに関しては、固定部分とオプション部分の2つに分けることができる。ネットワーク層のIPプロトコルでは、上位プロトコル(TCP/IPにおいては、TCPもしくはUDPプロトコル)から渡されたデータをIPアドレスを元に送信先のIPアドレスを持つコンピュータに伝送するための役割を持っているので、IPパケットの先頭部分にあたるIPヘッダには、送信元IPアドレスフィールドと送信先IPアドレスフィールドの情報を持ち、上位層から渡されたデータなどの必要な情報を持っている。

各フィールドの機能

バージョンフィールド

バージョンフィールドではIPプロトコルのバージョンに関する情報を持つ。IPv4,IPv6のバージョンが存在する。

ヘッダ長フィールド

ヘッダ長フィールドでは、IPヘッダ部分のサイズを表している。IPヘッダ部分は固定長部分とオプション部分の長さからなる。

サービスタイプフィールド

サービスタイプフィールドではパケットの優先度などを指定している。

データグラム長フィールド

ヘッダ長フィールドではIPヘッダ部分のサイズを4bytes単位で数えていたが、データグラム長フィールドではIPパケット全体のサイズをbyte単位で数えたものになる。

IDフィールド

IDフィールドでは、パケットをいくつかに分割して小さくしてから送信するという機能を使う際にパケットを識別するために使われる数値になります。

flagフィールド

パケットを分割した際に、後に続くパケットが存在するかどうかの判別に使われている。
また、フラグメント化(パケットの分割)をしてよいか行けないかを判別するために使われている。

フラグメントオフセットフィールド

フラグメントオフセットフィールドでは、フラグメント化されたIPパケットにおいて、フラグメント喉の部分がIPパケットの中に含まれているかを示すための情報を持つ

TTLフィールド

IPパケットの寿命を表すための数値を指定している。パケットを送信するコンピュータは、このフォールドにセットされている数値の時間でしかパケットが存在できなくなっている。

プロトコル番号フィールド

プロトコル番号フィールドでは、上位の層であるトランスポート層のプロトコルを種類を表す番号を格納している。TCPやUDP,ICMP

ヘッダ・チェックサムフィールド

ヘッダ部分のチェックサムを表すためのフィールドである。パケットの整合性のチェックを行う際に使われる。

送信元IPアドレス・宛先IPアドレスフィールド

送信元と送信先のIPアドレスをそれぞれ持っている。

データフィールド

データフィールドは可変長であり、IPパケットとして送信されるデータを含んでいる。TCPやUDP などのデータが含まれることになる。