1. 序章

ネットワークとインターネットの進化は、それに採用されている通信プロトコルの見直しにつながります。 ネットワーク通信に依存するユーザーとさまざまなテクノロジーの両方が毎年増加しているため、これは自然現象です。 したがって、ネットワークはこれらのユーザーとテクノロジーの要件に応じて変化します。

レビューされたプロトコルの例は、HTTP(1999年のV1.1および2015年のV2.0)、SMNP(1990年のV1、1999年のv2、および2002年のV3)、およびIP(1981年のV4および1995年のV6)です。 さらに、これらの例の前に、ネットワークの通信方法に関連する変更が70年代に発生しました。それは、TCPをTCP、IP、およびその他のプロトコルに分割することです。

ただし、レガシーTCPから継承された現在のTCPの特性があります。 したがって、これらのレガシー特性に取り組むために、TCPは疑似ヘッダーの存在を考慮します。

この記事では、TCPのコンテキストで疑似ヘッダーについて説明します。 まず、TCPの歴史的なレビューを行います。 この時点で、初期から最新のTCPの両方に関連する特性がわかります。 そこで、TCPの疑似ヘッダーを調査します。 最後に、最近の疑似ヘッダーの関連性について説明します。

2. 初期のTCPから最新のTCP/IPへ

TCPの最初のバージョンは、1973年にRobert Elliot Kahn VintonGreyCerfによって提案されました。 現時点では、TCPは、今日知られている伝送制御プロトコルではなく、伝送制御プログラムでした。 しかし、この初期のTCPの目標は、最新のTCPの目標と完全に互換性がありました。

  • ネットワーク接続:ゲートウェイはネットワーク間の接続を許可します
  • 分散制御:ネットワークの制御と管理の中心点はありません
  • エラー回復:送信されたパケットは宛先を満たします(失われたパケットの再送信があります)
  • ブラックボックス:ネットワークを別のネットワークに接続するための内部変更はありません

ただし、この時点では、TCPはネットワークルーティングとネットワークトラフィックの転送の両方を処理していました。要約すると、このコンテキストではIPは使用されませんでした。 したがって、たとえば、パケットの発信元と宛先に関する情報がTCPを担当していました。

The RFC 675 この初期バージョンのTCPは、詳細に文書化および提示されています。 初期のTCPと最新のTCPの違いを示す最も興味深い点の1つは、ヘッダーです。 次の画像は、初期のTCPヘッダーをまとめたものです。

時間が経ち、ネットワークがより複雑になるにつれて、ネットワークのルーティングと転送のための異種レイヤーの必要性が高まりました。 このようにして、1976年に初期のTCPから最新のTCP / IPに移行する取り組みが始まりました。最後に、 RFC791RFC793が正式に発表されました1981年の最新のTCP/IP。

ネットワークルーティングがIPによって処理されるようになったため、TCPは必要な情報の点で簡素化されました。 次の画像は、最新のTCP基本ヘッダーを示しています。

3. TCP/IPの疑似ヘッダー

初期のTCPから最新のTCP/IPへの移行は、いくつかの課題につながりました。 関連する例の1つは、TCP(初期と最新の両方)が、定義上、エンドツーエンドのプロトコルであるということです。 このように、発信元アドレスと宛先アドレスは、TCPを介したメッセージの送受信において重要な役割を果たします。 

たとえば、TCPチェックサムは、エンドポイントアドレス(およびその他の情報)を考慮して、送信中に破損していないことを確認する必要があります。 ただし、TCP / IPでは、関連する情報がTCPヘッダーではなくIPヘッダーに配置されるようになりました。 このシナリオでは、IPはネットワーク層でTCPのラッパーとして機能します。

そのため、TCPのエンドツーエンド機能を維持し、IPヘッダーで使用可能なデータの複製を回避するために、TCPに疑似ヘッダーが登場しました。 疑似ヘッダーは、IPヘッダーの一部で構成されます。 静的なIPヘッダーの関連フィールドをカバーします(パケットのルーティングを変更しないでください)。

疑似ヘッダーには、次のフィールドを持つ合計12バイトが含まれます。

  • Src IPアドレス:メッセージ発信元のアドレス(IPヘッダーからインポート)
  • Dst IPアドレス:メッセージの宛先のアドレス(IPヘッダーからインポート)
  • 予約済み:8ビットのゼロ
  • プロトコル:IPヘッダーのプロトコルフィールド。 TCPの場合、値は6です。 ただし、他のトランスポート層プロトコルは UDP などの疑似ヘッダーを使用するため、他のプロトコルフィールド値が使用されます。
  • TCPの長さ:TCPセグメントの計算された長さ。 TCPヘッダーとデータ長が含まれます

次の画像は、疑似ヘッダーを構成するフィールドを示しています。

3.1. TCPチェックサム

疑似ヘッダーの特定のアプリケーションは、TCPを計算することです チェックサム. 疑似ヘッダーに加えて、TCPチェックサムはプロトコルヘッダーと本文も使用します。 計算後、TCPチェックサム値がTCPヘッダーのチェックサムフィールドに割り当てられます。

疑似ヘッダーがオンデマンドで定義されていることを強調することは重要です。 これは、パケット内で明示的に送信されないことを意味します。 チェックサムの場合、最初に、チェックサムを計算するための疑似ヘッダーが作成され、次に破棄されます。 したがって、受信者は疑似ヘッダーを再作成して、パケットが宛先に到着したときにチェックサムを評価します。

4. 最近の疑似ヘッダー

疑似ヘッダーを使用する歴史的な理由の1つは、セキュリティでした。 アイデアは、TCPと疑似ヘッダーデータで暗号化と認証を採用することでした。 このように、設計者は、アドレス情報を保護することにより、man-in-the-middleなどの攻撃を軽減することを目的としていました。

これらのセキュリティプロトコルは、いくつかの理由で進歩しませんでした。 ただし、前のセクションで学習したように、チェックサムは引き続き疑似ヘッダーを使用します。 このため、TCPはこれまでのところ疑似ヘッダーを保持しています。

ただし、疑似ヘッダーがあるため、IPとTCPの間には緊迫した関係があります。 これは、IPが変更されるたびにTCPを再考する必要があることを意味します。たとえば、IPv4からIPv6への移行では、疑似ヘッダーを変更する必要があります。 結果として、TCPのチェックサム計算も変更されます。

説明したシナリオを考慮して、設計者は、疑似ヘッダーを維持することが次世代ネットワークで適切な選択であるかどうかを評価する必要があります。

5. 結論

この記事では、最新のTCP/IPのコンテキストでの疑似ヘッダーについて学習しました。 まず、初期のTCPからTCP/IPまでの歴史的背景を研究しました。 次に、疑似ヘッダーの概念を詳細に調査し、そのアプリケーションを確認しました。 最後に、最近の疑似ヘッダーに関連する課題について説明しました。

TCPのセキュリティと認証に関するプロジェクトが普及していなかったことを考えると、TCP/IPの疑似ヘッダーはその潜在能力を十分に発揮していなかったと結論付けることができます。 ただし、チェックサムなどの他のアプリケーションは、現在有用な疑似ヘッダーを維持しています。 したがって、将来のネットワークで使用される疑似ヘッダーを維持するだけで十分かどうかは不明です。