IPパケットヘッダー:フォーマット、フィールド

⚡ スマートサマリー

IPヘッダーは、すべてのIPパケットの先頭に配置されるメタデータであり、バージョン、ヘッダー長、全長、TTL(Time To Live)、プロトコル、チェックサム、およびルーターがデータを配信するために読み取る送信元アドレスと宛先アドレスなどのフィールドが含まれています。

  • 🧭 目的: IPヘッダーにはルーティングと配信の詳細が格納されているため、すべてのパケットはネットワークを介して正しい宛先に到達します。
  • サイズ: IPv4ヘッダーの長さは20~60バイトで、インターネットヘッダー長フィールドによって制御されます。
  • 🧱 主要分野: 主要なフィールドには、バージョン、IHL、サービスタイプ、全長、TTL、プロトコル、チェックサム、およびアドレスが含まれます。
  • 🔀 断片化: 識別情報、フラグ、およびフラグメントオフセットにより、大きなデータグラムを正しく分割および再構成できます。
  • 🆚 IPv4とIPv6: IPv6では、可変ヘッダーが固定の40バイトヘッダーに置き換えられ、チェックサムフィールドが削除されます。
  • 🤖 AI支援: AIパケットアナライザーは、IPヘッダーを自動的に解析して異常を検出し、トラブルシューティングを迅速化します。

IPパケットヘッダーのフォーマットとフィールド

IPヘッダーとは何ですか?

IPヘッダーは、IPパケットの先頭にあるメタ情報です。IPバージョン、パケット長、送信元、宛先などの情報が表示されます。

IPv4 ヘッダー形式は 20 ~ 60 バイトの長さで、ルーティングと配信に必要な情報が含まれています。バージョン、ヘッダー長、全長、識別子、フラグ、チェックサム、送信元 IP アドレス、宛先 IP アドレスなどのフィールドで構成されています。これらのフィールドは、ルーティングと配信に必要な重要なデータを提供します。 transmit パケットをあるホストから別のホストへ確実に送信する。

IPv4 ヘッダーのコンポーネント/フィールド

下の図は、IPv4ヘッダーの完全なフォーマットを示しており、各フィールドは正しい位置とビット幅で描かれています。

IPv4パケットヘッダーフォーマット図(すべてのフィールドとそのビット位置を示す)

IPパケットヘッダーの様々な構成要素/フィールドは以下のとおりです。

  • バージョン: 最初のIPヘッダーフィールドは4ビットのバージョンインジケータです。IPv4では、この4ビットの値は0100に設定され、これは2進数で4を表します。ルーターが指定されたバージョンをサポートしていない場合、パケットは破棄されます。
  • インターネットヘッダーの長さ: インターネットヘッダー長(IHL)は、4ビットのサイズです。HELEN(ヘッダー長)とも呼ばれます。このIPコンポーネントは、ヘッダーに含まれる32ビットワードの数を示します。
  • サービスの種類: サービスの種類は差別化サービスとも呼ばれます Code ポイント、またはDSCP。このフィールドは、データストリーミングやVoIP通話のサービス品質に関連する機能を提供します。最初の3ビットは優先度ビットです。また、データグラムの処理方法も指定します。
  • 全長: 全長はバイト単位で測定されます。IPデータグラムの最小サイズは20バイト、最大サイズは65,535バイトです。HELENと全長を使用してペイロードのサイズを計算できます。すべてのホストは576バイトのデータグラムを読み取る必要があります。ただし、ネットワーク内のホストにとってデータグラムが大きすぎる場合は、フラグメンテーション方式が広く用いられます。
  • 識別: 識別子は、IPデータグラムのフラグメントを一意に識別するために使用されるフィールドです。パケット情報の追加など、他の目的でこのフィールドを使用することを推奨する人もいます。 tracる。
  • IP フラグ: フラグは、フラグメントの制御と識別に役立つ3ビットのフィールドです。設定可能な値は次のとおりです。ビット0は予約済みで、必ず0に設定する必要があります。ビット1はフラグメント化しないことを意味します。ビット2はフラグメントを増やすことを意味します。
  • フラグメントのオフセット: フラグメントオフセットは、特定のデータグラム内の特定のフラグメントより前のデータバイト数を表します。8バイト単位で指定され、最大値は65,528バイトです。
  • 有効期間: これは、データグラムがインターネットシステム内に存在できる最大時間を示す8ビットのフィールドです。データグラムが処理されるたびに、TTL値は1ずつ減少します。TTL値がゼロになると、パケットが無限に配信されないように、データグラムは破棄されます。TTL値の範囲は0から255です。
  • プロトコル: このIPv4ヘッダーフィールドは、データグラムの後半部分で伝送されるインターネットプロトコルを示します。例えば、6はTCPプロトコルを、17はUDPプロトコルを示します。
  • ヘッダーチェックサム: 次の要素は16ビットのヘッダーチェックサムフィールドで、ヘッダーにエラーがないかを確認するために使用されます。IPヘッダーはチェックサムの値と比較されます。ヘッダーチェックサムが一致しない場合、パケットは破棄されます。
  • 送信元アドレス: 送信元アドレスは、IPv32 パケットに使用される送信元の 4 ビット アドレスです。
  • 宛先アドレス: 宛先アドレスも32ビットのサイズで、受信者のアドレスを格納します。
  • IP オプション: これは IPv4 ヘッダーのオプションフィールドで、IHL (インターネット ヘッダー長) の値が 5 より大きい場合に使用されます。セキュリティ、レコード ルート、タイム スタンプなどのオプションに関連する値と設定が含まれます。オプションのリストは通常​​、オプション リストの終了 (EOL) マーカーで終わります。
  • 日付: このフィールドには、プロトコル層からIP層にデータを引き渡したデータが格納されます。

IPv4ヘッダーの長さを計算する方法

インターネットヘッダー長(IHL)フィールドは、ヘッダーの正確な長さをルーターに伝え、ヘッダーの終わりとデータの始まりをルーターが認識できるようにします。このフィールドは幅がわずか4ビットであるため、長さをバイト単位で直接格納しません。代わりに、ヘッダーを32ビットワード単位でカウントします。各ワードは4バイトに相当します。

IHL値をバイトに変換するには、4を掛けます。

  • 最小: 国際高等法院(IHL)で認められる最小値は5なので、5 × 4 = 20バイトとなります。これはオプションのないヘッダーです。
  • 最大: IHLの最大値は15なので、15×4=60バイトとなります。残りの40バイトはオプションフィールド用です。

具体的な例を考えてみましょう。パケットがIHL値6で到着した場合、ヘッダー長は6×4=24バイトとなり、標準の20バイトのヘッダーの後に4バイトのオプションが存在することを意味します。ペイロードのサイズを求めるには、trac合計長さフィールドからヘッダーの長さを取得します。合計長さが1,500バイトでヘッダーが24バイトの場合、ペイロードは1,500 - 24 = 1,476バイトになります。

この計算はフラグメンテーション時に重要となる。なぜなら、ルーターはヘッダーサイズを知って、ネットワークの最大容量を超えずに各フラグメントがどれだけのデータを伝送できるかを計算する必要があるからだ。 Transmission ユニット(MTU)。

IPv4とIPv6のヘッダー比較

IPv6ヘッダーは、IPv4ヘッダーよりも処理が簡単で高速になるように再設計されました。固定長を使用し、使用頻度の低いオプションを別の拡張ヘッダーに移動することで、ルータはパケットを回線速度で転送できます。以下の表は、2つのヘッダーをフィールドごとに比較したものです。

機能 IPv4ヘッダー IPv6ヘッダー
ヘッダーサイズ 20~60バイト(可変) 40バイト(固定)
フィールド数 13のフィールドとオプション 8フィールド
アドレスの長さ 32ビットのソースとデスティネーション 128ビットのソースとデスティネーション
ヘッダーチェックサム Present 削除済み
断片化フィールド 基本ヘッダー(識別子、フラグ、オフセット) フラグメント拡張ヘッダーに移動しました
オプション ヘッダー内に収納 拡張ヘッダーに記録されます
長さフィールド 全長(ヘッダー+データ) ペイロードの長さ(ペイロードのみ)

IPv6はチェックサムと可変長オプションを省略するため、ヘッダーに含まれるフィールドが少なくなり、ホップごとの再計算なしにハードウェアで処理できる。

IPヘッダーが重要な理由

IPヘッダーのすべてのフィールドは、ルーターとホストが、互いに恒久的な接続を持たなくても、複数のネットワーク間でパケットを転送できるようにするために存在します。ヘッダーこそが、パケット交換を機能させる鍵なのです。

  • ルーティング: 宛先アドレスは各ルーターにパケットを転送する場所を指示し、送信元アドレスは応答やエラーメッセージを受信するために使用されます。
  • ループ防止: タイムトゥライブフィールドはホップごとに減少するため、経路を誤ったパケットはインターネット上を永遠に循環するのではなく、破棄されます。
  • 適切なプロトコルに従って配送する: プロトコルフィールドは、受信ホストに対し、ペイロードをTCP、UDP、またはその他のプロトコルのいずれに渡すかを指示します。
  • Integrity そして再組み立て: チェックサムはヘッダーの破損を防ぎ、識別子、フラグ、フラグメントオフセットの各フィールドによって、断片化されたデータグラムを正しい順序で再構築することができます。

ネットワーク エンジニアにとって、これらのフィールドを読むことは、 TCP / IP キャプチャは、パケットのドロップ、ルーティングループ、設定ミスを診断する最も速い方法であることが多い。 IPアドレス.

よくあるご質問

ヘッダー長 (IHL) は、ヘッダーのみを 32 ビットワードで測定し、20 バイトから 60 バイトの範囲です。合計長は、データグラム全体 (ヘッダーとデータ) をバイト単位で測定し、最大 65,535 バイトです。trac一方から他方を差し引くと、ペイロードサイズが得られます。

フラグメンテーションは、リンクの最大サイズを超えるデータグラムを分割します。 Transmission パケットはより小さな断片に分割されます。識別情報、フラグ、およびフラグメントオフセットの各フィールドによって、宛先側でこれらの断片を正しい順序で再構成できます。これは、パケットがMTUの小さいネットワークを通過する際に発生します。

IPv4ヘッダーには、バージョン、IHL、サービスタイプ、全長、識別子、フラグ、フラグメントオフセット、TTL、プロトコル、チェックサム、送信元アドレス、宛先アドレスという13個の固定フィールドと、オプションのオプションフィールドがあります。それに続くデータセクションはペイロードであり、ヘッダーフィールドではありません。

いいえ。IPv4ヘッダーのチェックサムはヘッダーフィールドのみを対象とし、ペイロードは対象としません。TCPやUDPなどの上位層プロトコルは、データを保護するために独自のチェックサムを保持しています。TTLはホップごとに変化するため、ルーターは転送のたびにヘッダーのチェックサムを再計算します。

TTLがゼロになると、ルーターはパケットを破棄し、ICMP Time Exceededメッセージを送信元に返します。これにより、パケットが失われるのを防ぎます。ping 永遠にルーティングループに陥る。 traceroute このツールは、パスに沿った各ホップをマッピングするために、この動作に依存しています。

プロトコルフィールドは、宛先でペイロードを受信する上位層プロトコルを識別します。一般的な値は、TCPの場合は6、UDPの場合は17、ICMPの場合は1です。受信ホストはこの番号を読み取り、データを適切なハンドラに渡します。

AIと機械学習ツールは、キャプチャしたIPヘッダーを解析し、送信元アドレスの偽装、異常なTTL値、フラグメンテーション攻撃などの異常を検出します。これらのツールは、手動検査よりも迅速にトラフィックを分類し、脅威を警告しますが、対策を講じる前にエンジニアが結果を確認します。

GitHubコパイロット ドラフトできる Python または、短いコメントからIPヘッダーフィールドを展開し、フラグをデコードし、チェックサムを検証するCコード。 Rev生成されたビットマスクロジックを注意深く確認してください。オフセットが1つずれていると、解析バグが発生することがよくあります。