6. トランスポート層

トランスポート層は、Linux ネットワーキングの基本的な部分であり、異なるホスト上のアプリケーション間のエンドツーエンド通信と信頼性の高いデータ転送を担当します。データを構造化され、管理しやすい方法でネットワークを介した転送のために準備します。

データセグメンテーション

トランスポート層の主な機能の 1 つはデータセグメンテーションです。これは、大量のデータをセグメントと呼ばれるより小さく管理しやすいチャンクに分割する処理です。このプロセスにより、データ転送がより効率的で回復力のあるものになります。送信中にセグメントが失われたり破損したりした場合、データセット全体ではなく、その小さな部分だけを再送信すれば済みます。セグメントが宛先に到着すると、トランスポート層がそれらを正しい順序で再構築します。

ネットワークポートの理解

IP アドレスはネットワーク上の正しいホストを識別しますが、どのアプリケーションやサービスがデータを受信すべきかを指定するものではありません。ここでネットワークポートが重要になります。HTTP(Web トラフィック)や SMTP(電子メール)などのサービスは、特定の周知のポートでリッスンしています。例えば、HTTP は通常ポート 80 を使用します。トランスポート層は、各セグメントに送信元および宛先ポート番号を付加し、データが受信ホスト上の正しいプロセスに配信されることを保証します。

主要なトランスポートプロトコル TCP と UDP

現代のネットワークで使用される主要なトランスポートプロトコルは、TCP(Transmission Control Protocol:伝送制御プロトコル)と UDP(User Datagram Protocol:ユーザーデータグラムプロトコル)の 2 つです。ここでは UDP を簡単に説明した後、信頼性の高い通信で最も広く使用されている TCP に焦点を当てます。

UDP(ユーザーデータグラムプロトコル)

UDP はコネクションレス型のプロトコルであり、高速ですが信頼性の低いデータ転送方法を提供します。すべてのセグメントが到着することや、正しい順序で到着することを保証しません。これは欠点のように思えるかもしれませんが、UDP はライブビデオストリーミングやオンラインゲームなど、正確性よりも速度が重要となるアプリケーションに非常に効果的です。数フレームのビデオが失われることは、よりスムーズで高速なストリームを実現するための許容できるトレードオフであることがよくあります。

TCP(伝送制御プロトコル)

TCP は、信頼性の高いコネクション指向のデータストリームを提供します。データが交換される前に、TCP は両方のホストが通信の準備ができていることを保証するために、正式な接続を確立します。

TCP ハンドシェイク

接続を確立するために、TCP はスリーウェイハンドシェイクと呼ばれるプロセスを使用します。

  1. SYN: クライアントは接続を開始するために、サーバーに SYN(同期)セグメントを送信します。
  2. SYN-ACK: サーバーは、クライアントのリクエストを確認するために SYN-ACK(同期確認)セグメントで応答します。
  3. ACK: クライアントは ACK(確認)セグメントをサーバーに送り返し、接続が確立されたことを確認します。

ハンドシェイクが完了すると、データを確実に交換できます。TCP はシーケンス番号を使用して各セグメントを追跡し、受信ホストがそれらを正しい順序で再構築し、欠落したセグメントの再送信を要求できるようにします。電子メールの例では、トランスポート層は各セグメントに SMTP の宛先ポート(ポート 25)とクライアントホストからの送信元ポートを付加します。

ログインして学習進捗を保存

サインイン

演習

このトピックには特定のラボはありませんが、関連する Linux スキルと概念を練習するために、包括的なLinux 学習パスを探ることをお勧めします。

クイズ

信頼性の高いトランスポートプロトコルとは何ですか?(回答は英語で、大文字と小文字を区別します)