トランスポート層とは?TCPとUDPの違いを分かりやすく解説

Web

「トランスポート層って何?」
「TCPとUDPの違いが分からない」
「ネットワークの仕組みを理解したい」

インターネットやネットワークの勉強をしていると、トランスポート層という言葉が出てきますよね。

トランスポート層は、ネットワーク通信の中核を担う重要な役割を持っています。この層がなければ、Webサイトもメールもオンラインゲームも、今のように快適には使えないんですね。

この記事では、トランスポート層とは何か、どんな役割があるのか、TCPとUDPの違いは何かなど、初心者の方でも分かるように詳しく解説していきます。

ネットワークの基礎を理解したい方は、ぜひ最後まで読んでください!

スポンサーリンク
  1. トランスポート層とは
    1. ネットワークの階層構造
    2. トランスポート層の定義
    3. なぜ「トランスポート(輸送)」なのか
    4. 実例
  2. トランスポート層の主な役割
    1. 役割1:アプリケーションの識別
    2. 役割2:データの分割と再構成
    3. 役割3:信頼性の確保
    4. 役割4:フロー制御
    5. 役割5:輻輳制御
    6. 実例
  3. TCPとUDP:2つの主要プロトコル
    1. プロトコルとは
    2. TCP(Transmission Control Protocol)
    3. UDP(User Datagram Protocol)
    4. TCPとUDPの比較表
    5. なぜ使い分けるのか
    6. 実例
  4. ポート番号の仕組み
    1. ポート番号とは
    2. 3つの種類
    3. 送信元と宛先
    4. ポート番号の例
    5. ファイアウォールとの関係
    6. 実例
  5. TCPの詳しい仕組み
    1. 3ウェイハンドシェイク(接続確立)
    2. シーケンス番号
    3. 確認応答(ACK)
    4. 再送タイマー
    5. ウィンドウサイズ
    6. 接続終了(4ウェイハンドシェイク)
    7. 実例
  6. UDPの詳しい仕組み
    1. 接続レス型
    2. UDPヘッダー
    3. チェックサム
    4. 順序保証なし
    5. UDPのメリット
    6. UDPのデメリット
    7. 実例
  7. 主要なトランスポート層プロトコル
    1. SCTP(Stream Control Transmission Protocol)
    2. DCCP(Datagram Congestion Control Protocol)
    3. QUIC(Quick UDP Internet Connections)
    4. 実例
  8. トランスポート層のトラブルシューティング
    1. 症状1:接続できない
    2. 症状2:通信が遅い
    3. 症状3:接続が頻繁に切れる
    4. 症状4:特定のアプリだけ通信できない
    5. 実例
  9. よくある質問(FAQ)
    1. Q1: TCPとUDP、どちらが優れていますか?
    2. Q2: ポート番号を自由に変更できますか?
    3. Q3: トランスポート層とネットワーク層の違いは?
    4. Q4: UDPは信頼性がないのに、なぜ使われるのですか?
    5. Q5: 家庭用Wi-Fiルーターもトランスポート層を使いますか?
  10. まとめ

トランスポート層とは

まずは、トランスポート層の基本を理解しましょう。

ネットワークの階層構造

インターネット通信は、複数の層(レイヤー)が重なって動いています。

これをOSI参照モデルまたはTCP/IPモデルと呼ぶんですね。

OSI参照モデル(7層):

  1. 物理層:ケーブルや電波などの物理的な信号
  2. データリンク層:直接つながった機器間の通信
  3. ネットワーク層:IPアドレスを使った経路選択
  4. トランスポート層:アプリ間の確実な通信
  5. セッション層:通信の開始・維持・終了
  6. プレゼンテーション層:データ形式の変換
  7. アプリケーション層:実際のアプリケーション

TCP/IPモデル(4層):

  1. ネットワークインターフェース層
  2. インターネット層
  3. トランスポート層
  4. アプリケーション層

どちらのモデルでも、トランスポート層は中心的な位置にあります。

トランスポート層の定義

トランスポート層とは、送信側と受信側のアプリケーション同士を、確実につなぐ役割を持つ層です。

英語では「Transport Layer」と書きます。

なぜ「トランスポート(輸送)」なのか

Transportは「輸送する」という意味です。

データを荷物に例えると、トランスポート層は配送業者のような役割なんですね。

荷物(データ)を、正しい宛先(アプリケーション)まで、確実に届けます。

実例

例えば、あなたがWebサイトを見る時:

  • アプリケーション層:ブラウザが「このページを見たい」と要求
  • トランスポート層:その要求を確実にWebサーバーに届ける
  • ネットワーク層以下:実際にデータを送る

トランスポート層がなければ、データが届いたか、順番通りかを確認できません。

トランスポート層の主な役割

トランスポート層が何をしているか、詳しく見ていきましょう。

役割1:アプリケーションの識別

同じパソコンで、複数のアプリが同時に通信しています。

ポート番号という仕組みで、どのアプリ宛のデータかを識別するんですね。

例:

  • ブラウザ:ポート80(HTTP)または443(HTTPS)
  • メールソフト:ポート25(SMTP)、110(POP3)
  • オンラインゲーム:専用のポート番号

役割2:データの分割と再構成

大きなデータは、小さな単位に分割されます。

分割:

送信側で、データをセグメントという単位に分けます。

再構成:

受信側で、セグメントを元の順番に並べ直して、元のデータに戻すんですね。

役割3:信頼性の確保

データが正しく届いたか確認します。

確認応答:

受信側が「届きました」という返事を送ります。

再送制御:

届かなかったデータは、もう一度送り直すでしょう。

役割4:フロー制御

送信速度を調整します。

理由:

受信側が処理しきれない速度で送ると、データがあふれてしまいます。

方法:

受信側の状況に合わせて、送信速度を調整するんですね。

役割5:輻輳制御

ネットワーク全体の混雑を防ぎます。

輻輳(ふくそう)とは:

ネットワークが混雑している状態のことです。

制御方法:

混雑を検知したら、送信量を減らします。

実例

例えば、大きな動画ファイル(100MB)をダウンロードする場合:

  1. ファイルを小さなセグメントに分割(数千個)
  2. 各セグメントに番号を付けて送信
  3. 受信側は届いたか確認
  4. 届かなかったセグメントは再送要求
  5. すべて届いたら、番号順に並べて元のファイルに復元

これらをすべてトランスポート層が自動的に行っています。

TCPとUDP:2つの主要プロトコル

トランスポート層には、主に2つのプロトコルがあります。

プロトコルとは

プロトコルとは、通信のルール(約束事)のことです。

トランスポート層では、主にTCPUDPという2つのプロトコルが使われます。

TCP(Transmission Control Protocol)

特徴:

確実にデータを届けることを重視したプロトコルです。

主な機能:

  • 接続確立(3ウェイハンドシェイク)
  • 確認応答
  • 順序制御
  • 再送制御
  • フロー制御
  • 輻輳制御

メリット:

データが確実に、正しい順番で届きます。

デメリット:

確認作業が多いため、少し遅くなる場合があるでしょう。

使われる場面:

  • Webブラウジング(HTTP/HTTPS)
  • メール送受信(SMTP、POP3、IMAP)
  • ファイル転送(FTP)
  • リモート接続(SSH)

UDP(User Datagram Protocol)

特徴:

速度を重視したプロトコルです。

主な機能:

  • データを送るだけ
  • 確認応答なし
  • 順序制御なし

メリット:

確認作業がない分、高速です。

デメリット:

データが届かなくても、気づきません。

使われる場面:

  • 動画・音声のストリーミング配信
  • オンラインゲーム
  • DNS(ドメイン名の解決)
  • VoIP(インターネット電話)

TCPとUDPの比較表

項目TCPUDP
信頼性高い低い
速度やや遅い速い
接続ありなし
確認応答ありなし
順序保証ありなし
用途正確性重視速度重視

なぜ使い分けるのか

TCPを使う理由:

Webページやメールは、文字が一つでも欠けたら意味が変わってしまいます。

確実性が最優先なんですね。

UDPを使う理由:

動画配信は、少しくらい画質が乱れても、止まらない方が重要です。

リアルタイム性が優先されるでしょう。

実例

Webサイト閲覧(TCP):

あなたがAmazonで商品を買う時、商品名や価格が間違って表示されたら困ります。

TCPで確実にデータを取得します。

YouTubeの視聴(主にTCP、一部UDP):

多少画質が乱れても、動画が止まらない方が快適です。

最近は、QUICというプロトコル(UDPベース)も使われています。

ポート番号の仕組み

トランスポート層で重要な「ポート番号」について詳しく見ていきましょう。

ポート番号とは

ポート番号は、アプリケーションを識別するための番号です。

0~65535までの番号が使えます。

3つの種類

ウェルノウンポート(0~1023):

有名なサービス用に予約されています。

  • ポート80:HTTP(Web)
  • ポート443:HTTPS(暗号化Web)
  • ポート25:SMTP(メール送信)
  • ポート22:SSH(安全なリモート接続)

登録済みポート(1024~49151):

企業やアプリが登録して使います。

  • ポート3306:MySQL(データベース)
  • ポート8080:代替HTTP

動的ポート(49152~65535):

一時的に自動割り当てされます。

送信元と宛先

通信には、2つのポート番号が使われます。

送信元ポート番号:

自分のパソコンの、どのアプリから送るか

宛先ポート番号:

相手のパソコンの、どのアプリに送るか

ポート番号の例

あなたがWebサイトを見る時:

あなたのパソコン:

  • 送信元ポート:50000(動的に割り当て)
  • 宛先ポート:80(Webサーバー)

Webサーバー:

  • 送信元ポート:80
  • 宛先ポート:50000(あなたのパソコンに返信)

ファイアウォールとの関係

ファイアウォールは、ポート番号を見て、通信を許可するか決めます。

例:

  • ポート80、443:許可(Web閲覧)
  • ポート3389:ブロック(リモートデスクトップ、セキュリティリスク)

実例

例えば、会社のパソコンで「このサイトが開けない」という場合、ファイアウォールが特定のポートをブロックしている可能性があります。

IT部門に確認すると良いでしょう。

TCPの詳しい仕組み

TCPがどのように確実な通信を実現しているか見ていきましょう。

3ウェイハンドシェイク(接続確立)

TCPは、通信を始める前に「接続」を確立します。

手順:

ステップ1:SYN(シン)

クライアント:「つながりたいです」

ステップ2:SYN-ACK(シンアック)

サーバー:「了解しました。つながりますよ」

ステップ3:ACK(アック)

クライアント:「ありがとう。では始めましょう」

この3回のやり取りで、接続が確立されます。

シーケンス番号

各セグメントに、シーケンス番号という番号が付けられます。

役割:

  • データの順番を管理
  • どこまで届いたか確認
  • 重複を検出

確認応答(ACK)

受信側は、データを受け取ったら「ACK」を返します。

ACK番号の意味:

「この番号までは受け取りました」という確認です。

再送タイマー

ACKが返ってこない場合、タイムアウトになります。

再送:

一定時間内にACKが来なければ、もう一度送り直すんですね。

ウィンドウサイズ

ウィンドウとは、確認なしで送れるデータ量のことです。

スライディングウィンドウ:

確認を受け取るごとに、次のデータを送れます。

これにより、効率的な通信が可能になるでしょう。

接続終了(4ウェイハンドシェイク)

通信を終える時も、きちんと手順を踏みます。

手順:

ステップ1:FIN

クライアント:「終わりたいです」

ステップ2:ACK

サーバー:「了解しました」

ステップ3:FIN

サーバー:「こちらも終わります」

ステップ4:ACK

クライアント:「了解しました」

実例

例えば、100個のセグメントを送る場合、1個ずつ確認していたら時間がかかります。

ウィンドウサイズが10なら、10個まとめて送って、確認を受け取ったらまた10個送る、という効率的な方法が使えるんですね。

UDPの詳しい仕組み

UDPのシンプルな仕組みを見ていきましょう。

接続レス型

UDPには「接続」という概念がありません。

方法:

いきなりデータを送ります。

事前の挨拶なしに、荷物を投げ込むイメージですね。

UDPヘッダー

UDPのヘッダー(制御情報)は非常にシンプルです。

含まれる情報:

  • 送信元ポート番号
  • 宛先ポート番号
  • データ長
  • チェックサム(エラー検出)

TCPのヘッダーより、ずっと小さいんですね。

チェックサム

データが壊れていないか、簡単に確認します。

ただし:

壊れていても、再送はしません。

検出するだけです。

順序保証なし

UDPは、セグメントに順序番号を付けません。

結果:

届く順番がバラバラになることもあります。

アプリケーション側で順序を管理する必要があるでしょう。

UDPのメリット

低遅延:

確認作業がないため、非常に速いです。

シンプル:

実装が簡単で、オーバーヘッドが少なくなります。

ブロードキャスト対応:

複数の相手に同時送信できるんですね。

UDPのデメリット

信頼性なし:

データが届いたか分かりません。

順序保証なし:

順番がバラバラになる可能性があります。

輻輳制御なし:

ネットワークが混雑しても、送信量を調整しません。

実例

例えば、オンラインゲームでキャラクターを動かす時、0.1秒前の位置情報が遅れて届いても意味がありません。

最新の情報を速く受け取る方が重要なので、UDPが使われます。

主要なトランスポート層プロトコル

TCP、UDP以外のプロトコルも見ていきましょう。

SCTP(Stream Control Transmission Protocol)

特徴:

TCPとUDPの中間的な性質を持ちます。

使用例:

電話網のシグナリング(制御信号)

DCCP(Datagram Congestion Control Protocol)

特徴:

UDPに輻輳制御を加えたものです。

使用例:

ストリーミング配信

QUIC(Quick UDP Internet Connections)

特徴:

UDPベースで、TCPのような信頼性を実現します。

使用例:

HTTP/3(次世代のWeb通信)、YouTube、Google検索

メリット:

  • TCPより高速
  • 接続確立が速い
  • モバイル環境に強い

QUICは、Googleが開発した比較的新しいプロトコルで、今後の主流になる可能性があるでしょう。

実例

例えば、最新のChromeブラウザでYouTubeを見ると、QUICが使われていることがあります。

従来のTCPより、動画の読み込みが速く感じるのは、このためですね。

トランスポート層のトラブルシューティング

問題が起きた時の対処法です。

症状1:接続できない

原因:

  • ファイアウォールがポートをブロック
  • サーバーが起動していない
  • ポート番号の間違い

確認方法:

Windows:

netstat -an

Mac/Linux:

netstat -an | grep LISTEN

どのポートが開いているか確認できます。

症状2:通信が遅い

原因:

  • ネットワークの混雑
  • ウィンドウサイズが小さい
  • パケットロスが多い

対処法:

  • 時間帯を変える
  • 有線LANに切り替え
  • ネットワーク機器を再起動

症状3:接続が頻繁に切れる

原因:

  • タイムアウト設定が短い
  • ネットワークが不安定
  • ファイアウォールの設定

対処法:

  • タイムアウト値を調整
  • ネットワークの安定性を確認
  • ファイアウォールログを確認

症状4:特定のアプリだけ通信できない

原因:

  • そのアプリのポートがブロックされている
  • アプリ側の設定問題

対処法:

  • ファイアウォール設定を確認
  • アプリのポート設定を確認
  • 別のポート番号を試す

実例

例えば、オンラインゲームができない場合、ゲーム専用のポート(例:ポート27015)がファイアウォールでブロックされている可能性があります。

ファイアウォールでそのポートを許可すれば、解決することが多いですよ。

よくある質問(FAQ)

Q1: TCPとUDP、どちらが優れていますか?

A: 一概には言えません。用途によって使い分けます。

正確性が重要ならTCP、リアルタイム性が重要ならUDPです。Webブラウジングや銀行取引はTCP、動画配信やゲームはUDPが適しています。

Q2: ポート番号を自由に変更できますか?

A: アプリによっては変更できます。

ただし、ウェルノウンポート(0~1023)は標準サービス用に予約されているため、独自アプリでは1024以上を使うのが一般的です。セキュリティのため、デフォルトポートを変更することもあります。

Q3: トランスポート層とネットワーク層の違いは?

A: 担当範囲が違います。

ネットワーク層(IP)は、パソコンからパソコンへの配送を担当します。トランスポート層(TCP/UDP)は、アプリからアプリへの配送を担当するんですね。住所(IP)と部屋番号(ポート)の関係に似ています。

Q4: UDPは信頼性がないのに、なぜ使われるのですか?

A: 用途によっては、速度の方が重要だからです。

動画配信では、少しデータが欠けても気づきません。それより、リアルタイムで届く方が大切です。また、DNSのように短いデータを1回送るだけなら、再送の仕組みがなくても問題ありません。

Q5: 家庭用Wi-Fiルーターもトランスポート層を使いますか?

A: ルーター自体は主にネットワーク層で動作しますが、トランスポート層のデータを中継します。

ルーターは、IPアドレスとポート番号を見て、どのデバイスにデータを送るか判断します。NAT(ネットワークアドレス変換)という仕組みで、複数のデバイスを1つのIPアドレスで使えるようにしているんですね。

まとめ

トランスポート層についてまとめます。

トランスポート層とは:

  • OSI参照モデルの第4層
  • アプリケーション間の通信を担当
  • データの確実な配送を実現

主な役割:

  • アプリケーションの識別(ポート番号)
  • データの分割と再構成
  • 信頼性の確保
  • フロー制御
  • 輻輳制御

2つの主要プロトコル:

TCP(確実性重視):

  • 接続型
  • 確認応答あり
  • 順序保証あり
  • Web、メール、ファイル転送に使用

UDP(速度重視):

  • 接続レス型
  • 確認応答なし
  • 順序保証なし
  • 動画配信、ゲーム、DNSに使用

ポート番号:

  • 0~65535の範囲
  • アプリケーションを識別
  • ウェルノウンポート(0~1023)は予約済み
  • ファイアウォールで制御

その他のプロトコル:

  • SCTP、DCCP、QUIC
  • それぞれ特定の用途に最適化

トラブル対処:

  • 接続できない → ポート確認
  • 遅い → ネットワーク確認
  • 切れる → タイムアウト設定

トランスポート層は、インターネット通信の要です。

TCPの確実性とUDPの速度という、2つの特性を使い分けることで、様々なアプリケーションが快適に動作しています。この基本を理解すれば、ネットワークトラブルの解決や、システム設計にも役立つでしょう!

コメント

タイトルとURLをコピーしました