
コンピュータネットワークにおいて、トランスポート層はインターネットプロトコルスイートおよびOSIモデルにおける抽象化層です。この層のプロトコルは、アプリケーションにエンドツーエンドの通信サービスを提供します。 [ 1 ]: §1.1.3コネクション指向通信、信頼性、フロー制御、多重化などのサービスを提供できます。
インターネットの基盤となるインターネットプロトコルスイート[ 1 ]のトランスポート層の実装の詳細と意味論は、一般的なネットワークのOSIモデルとは異なります。現在インターネットのこの層で使用されているプロトコルはすべてTCP/IPの開発に端を発しています。OSIモデルでは、トランスポート層はしばしばレイヤー4、またはL4 [ 2 ]と呼ばれますが、TCP/IPでは番号付きレイヤーは使用されません。
インターネットプロトコルスイートの中で最もよく知られているトランスポートプロトコルは、伝送制御プロトコル(TCP)です。TCPはコネクション指向の伝送に使用され、コネクションレス型のユーザーデータグラムプロトコル(UDP)はよりシンプルなメッセージング伝送に使用されます。TCPはステートフルな設計のため、信頼性の高い伝送とデータストリームサービスを組み込んでおり、より複雑なプロトコルです。TCPとUDPは、インターネット上のほぼすべてのトラフィックを構成し、主要なオペレーティングシステムすべてに実装されている唯一のプロトコルです。定義され実装されているその他のトランスポート層プロトコルには、データグラム輻輳制御プロトコル(DCCP)とストリーム制御伝送プロトコル(SCTP)があります。
トランスポート層サービスは、トランスポート層プロトコルへのプログラミングインターフェースを介してアプリケーションに伝達されます。サービスには、次の機能が含まれる場合があります。[ 4 ]
インターネットプロトコルスイートでは、トランスポート層プロトコルは、異なるホストで実行されているアプリケーションプログラム間の通信を提供します。TCPはポート番号を使用してアプリケーションサービスを識別し、ホスト間で異なるフローを多重化します。UDPも同様に、送信元ポートと宛先ポートのフィールドを定義し、宛先ポートは特定のインターネット宛先アドレスのコンテキストで解釈されます。[ 6 ] [ 7 ]ソケットアドレスは、インターネットアドレスとトランスポート層ポートを組み合わせたものです。TCPでは、接続は一対のソケットによって識別されます。[ 8 ]
TCPは、コネクション指向で信頼性の高い、順序通りのバイトストリームサービスを提供します。アプリケーションのバイトストリームはTCPセグメントとしてネットワーク上で伝送され、各セグメントはIPデータグラムとして送信されます。TCPの信頼性は、シーケンス番号、チェックサム、確認応答、および失われたセグメントや破損したセグメントの再送信に基づいています。[ 6 ] [ 9 ] TCPには、アドバタイズされたウィンドウに基づくフロー制御メカニズムも含まれており、TCPエンドポイントは、スロースタート、輻輳回避、再送信タイムアウトの指数バックオフなどの基本的な輻輳制御アルゴリズムを実装する必要があります。[ 10 ]
UDP は、最小限のコネクションレス型のメッセージ指向トランスポート サービスを提供します。RFC 768では、UDP はアプリケーション プログラムが最小限のプロトコル メカニズムでメッセージを送信するための手順を提供するものであり、配信や重複保護の保証はないと説明されています。順序付けられた信頼性の高いデータ ストリームを必要とするアプリケーションは、代わりに TCP を使用するように指示されています。[ 7 ] RFC 8085も同様に、UDP を最小限の信頼性の低いベスト エフォート型のメッセージ パッシング トランスポートと説明し、UDP を使用するアプリケーションは、使用例に応じて信頼性、輻輳制御、チェックサム、またはその他の機能のための追加のメカニズムを実装する必要がある場合があると述べています。[ 11 ]
UDPはマルチキャストやブロードキャストアプリケーションにもよく使用されますが、送信者が異種パスを介して多数の受信者に送信する可能性があるため、このような使用法では輻輳制御、フロー制御、信頼性が複雑になります。IETFは信頼性の高いマルチキャストフレームワークと構成要素を定義しているため、マルチキャストアプリケーションで信頼性を実現することは不可能ではありません。むしろ、信頼性はUDP自体では提供されず、アプリケーションまたは追加のプロトコルによって提供される必要があります。[ 12 ]
OSI接続モードトランスポートプロトコル仕様では、クラス0(TP0)からクラス4(TP4)までの5つのクラスのトランスポートプロトコルが定義されています。クラス0はエラー回復機能がなく、エラーのない接続を提供するネットワークサービスで使用するために設計されていますが、クラス4はエラー回復機能を備えており、信頼性の低いネットワークサービスでも動作できます。[ 13 ]
プロトコルの硬直化により、TCPとUDPはインターネット上で広く使用されている唯一のトランスポートプロトコルとして説明されてきました。ミドルボックスの不耐性を回避するために、新しいトランスポートプロトコルは、許容されるプロトコルのワイヤイメージを模倣するか、またはUDPにカプセル化され、多少のオーバーヘッドを受け入れる可能性があります。 [ 14 ] QUICは後者のアプローチに従います。QUIC仕様では、パケットがUDPデータグラムで伝送されるUDPベースのトランスポートプロトコルとして定義されており、QUIC自体は接続、ストリーム、信頼性の高い配信、フロー制御、輻輳制御を提供します。[ 15 ]
このリストは、インターネットプロトコルスイート、OSIプロトコルスイート、NetWareのIPX/SPX、AppleTalk、およびファイバーチャネルのトランスポート層によく配置されるプロトコルの一部を示しています。
ISO/IEC 8073/ITU-T 勧告 X.224「情報技術 - オープンシステム相互接続 - 接続モードトランスポートサービスを提供するプロトコル」では、クラス 0 (TP0) からクラス 4 (TP4) までの 5 つの接続モードトランスポートプロトコルが定義されています。クラス 0 にはエラー回復機能はなく、エラーのない接続を提供するネットワーク層で使用するために設計されています。クラス 4 は TCP に最も近いですが、TCP には OSI がセッション層に割り当てるグレースフルクローズなどの機能が含まれています。すべての OSI 接続モードプロトコルクラスは、高速データとレコード境界の保持を提供します。クラスの詳細な特性は次の表に示されています。[ 18 ]
ISO/IEC 8602/ITU-T勧告X.234で規定されているコネクションレス型のトランスポートプロトコルも存在する。[ 19 ]
とは異なり、UDPパケットがIPv6ノードによって生成される場合のデフォルトの動作は、UDPチェックサムがオプションではないことです。