「トランスポート層って何?」
「TCPとUDPの違いが分からない」
「ネットワークの仕組みを理解したい」
インターネットやネットワークの勉強をしていると、トランスポート層という言葉が出てきますよね。
トランスポート層は、ネットワーク通信の中核を担う重要な役割を持っています。この層がなければ、Webサイトもメールもオンラインゲームも、今のように快適には使えないんですね。
この記事では、トランスポート層とは何か、どんな役割があるのか、TCPとUDPの違いは何かなど、初心者の方でも分かるように詳しく解説していきます。
ネットワークの基礎を理解したい方は、ぜひ最後まで読んでください!
トランスポート層とは

まずは、トランスポート層の基本を理解しましょう。
ネットワークの階層構造
インターネット通信は、複数の層(レイヤー)が重なって動いています。
これをOSI参照モデルまたはTCP/IPモデルと呼ぶんですね。
OSI参照モデル(7層):
- 物理層:ケーブルや電波などの物理的な信号
- データリンク層:直接つながった機器間の通信
- ネットワーク層:IPアドレスを使った経路選択
- トランスポート層:アプリ間の確実な通信
- セッション層:通信の開始・維持・終了
- プレゼンテーション層:データ形式の変換
- アプリケーション層:実際のアプリケーション
TCP/IPモデル(4層):
- ネットワークインターフェース層
- インターネット層
- トランスポート層
- アプリケーション層
どちらのモデルでも、トランスポート層は中心的な位置にあります。
トランスポート層の定義
トランスポート層とは、送信側と受信側のアプリケーション同士を、確実につなぐ役割を持つ層です。
英語では「Transport Layer」と書きます。
なぜ「トランスポート(輸送)」なのか
Transportは「輸送する」という意味です。
データを荷物に例えると、トランスポート層は配送業者のような役割なんですね。
荷物(データ)を、正しい宛先(アプリケーション)まで、確実に届けます。
実例
例えば、あなたがWebサイトを見る時:
- アプリケーション層:ブラウザが「このページを見たい」と要求
- トランスポート層:その要求を確実にWebサーバーに届ける
- ネットワーク層以下:実際にデータを送る
トランスポート層がなければ、データが届いたか、順番通りかを確認できません。
トランスポート層の主な役割
トランスポート層が何をしているか、詳しく見ていきましょう。
役割1:アプリケーションの識別
同じパソコンで、複数のアプリが同時に通信しています。
ポート番号という仕組みで、どのアプリ宛のデータかを識別するんですね。
例:
- ブラウザ:ポート80(HTTP)または443(HTTPS)
- メールソフト:ポート25(SMTP)、110(POP3)
- オンラインゲーム:専用のポート番号
役割2:データの分割と再構成
大きなデータは、小さな単位に分割されます。
分割:
送信側で、データをセグメントという単位に分けます。
再構成:
受信側で、セグメントを元の順番に並べ直して、元のデータに戻すんですね。
役割3:信頼性の確保
データが正しく届いたか確認します。
確認応答:
受信側が「届きました」という返事を送ります。
再送制御:
届かなかったデータは、もう一度送り直すでしょう。
役割4:フロー制御
送信速度を調整します。
理由:
受信側が処理しきれない速度で送ると、データがあふれてしまいます。
方法:
受信側の状況に合わせて、送信速度を調整するんですね。
役割5:輻輳制御
ネットワーク全体の混雑を防ぎます。
輻輳(ふくそう)とは:
ネットワークが混雑している状態のことです。
制御方法:
混雑を検知したら、送信量を減らします。
実例
例えば、大きな動画ファイル(100MB)をダウンロードする場合:
- ファイルを小さなセグメントに分割(数千個)
- 各セグメントに番号を付けて送信
- 受信側は届いたか確認
- 届かなかったセグメントは再送要求
- すべて届いたら、番号順に並べて元のファイルに復元
これらをすべてトランスポート層が自動的に行っています。
TCPとUDP:2つの主要プロトコル
トランスポート層には、主に2つのプロトコルがあります。
プロトコルとは
プロトコルとは、通信のルール(約束事)のことです。
トランスポート層では、主にTCPとUDPという2つのプロトコルが使われます。
TCP(Transmission Control Protocol)
特徴:
確実にデータを届けることを重視したプロトコルです。
主な機能:
- 接続確立(3ウェイハンドシェイク)
- 確認応答
- 順序制御
- 再送制御
- フロー制御
- 輻輳制御
メリット:
データが確実に、正しい順番で届きます。
デメリット:
確認作業が多いため、少し遅くなる場合があるでしょう。
使われる場面:
- Webブラウジング(HTTP/HTTPS)
- メール送受信(SMTP、POP3、IMAP)
- ファイル転送(FTP)
- リモート接続(SSH)
UDP(User Datagram Protocol)
特徴:
速度を重視したプロトコルです。
主な機能:
- データを送るだけ
- 確認応答なし
- 順序制御なし
メリット:
確認作業がない分、高速です。
デメリット:
データが届かなくても、気づきません。
使われる場面:
- 動画・音声のストリーミング配信
- オンラインゲーム
- DNS(ドメイン名の解決)
- VoIP(インターネット電話)
TCPとUDPの比較表
項目 | TCP | UDP |
---|---|---|
信頼性 | 高い | 低い |
速度 | やや遅い | 速い |
接続 | あり | なし |
確認応答 | あり | なし |
順序保証 | あり | なし |
用途 | 正確性重視 | 速度重視 |
なぜ使い分けるのか
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つの特性を使い分けることで、様々なアプリケーションが快適に動作しています。この基本を理解すれば、ネットワークトラブルの解決や、システム設計にも役立つでしょう!
コメント