ネットビギナーガイド

TCP/IP とは|4 階層モデルで理解するインターネットの基礎

TCP/IP とは: インターネットを支える通信規格の総称です。「TCP」と「IP」は別物のプロトコルですが、セットで使われるため一括りに呼ばれます。実際にはこの 2 つだけでなく、UDP・ICMP など多くのプロトコルがまとめて TCP/IP プロトコル群と呼ばれます。

TCP/IP 4 階層モデル

OSI 参照モデル(7 階層)に対して、実装ベースの TCP/IP モデルは 4 階層 で整理されます。

名前主な役割代表プロトコル
L4アプリケーション層アプリの通信ルールHTTP・HTTPS・DNS・SMTP・FTP
L3トランスポート層端末間のデータ転送TCP・UDP
L2インターネット層ネットワーク間の経路選択IP・ICMP
L1ネットワーク インターフェース層物理的な伝送Ethernet・WiFi

(OSI モデルとの対応はOSI 参照モデル記事を参照)

通信の流れを家庭の例で

ブラウザで https://google.com にアクセスしたとき、TCP/IP の各層で何が起きているかを追ってみます。

送信側(あなたの PC)

[アプリ層]    HTTP リクエスト「GET / HTTP/1.1」を作る
                ↓ (TCP に渡す)
[トランス層]  TCP がデータを分割・順序番号付き
                ↓ (IP に渡す)
[インター層]  IP が「宛先 142.250.196.78」を付ける
                ↓ (Ethernet/WiFi に渡す)
[インタフェース層] WiFi 電波として送出

受信側(Google のサーバー)

[インタフェース層] 電波 → デジタル信号 → Ethernet フレーム

[インター層]  IP ヘッダから「自分宛だ」と判定

[トランス層]  TCP が分割パケットを順番通りに組み立て

[アプリ層]    Web サーバーが HTTP リクエストとして処理

各層で「ヘッダ」が付与・剥がされることで、層をまたいだ通信が成立します。

TCP と UDP の違い

トランスポート層の主役は TCPUDP です。

TCP(Transmission Control Protocol)

信頼性重視のプロトコルです。 通信の途中でデータが欠けたり順序が入れ替わったりしないように、以下を保証します。

  • データを順番通りに届ける
  • 紛失したパケットを再送する
  • 受信側が処理しきれないとき送信ペースを落とす

代わりに、これらの確認のためのやり取りで 若干の遅延 が発生します。

使われる場面:

  • Web ブラウジング(HTTP/HTTPS)
  • メール(SMTP/POP3/IMAP)
  • ファイル転送(FTP・SCP)

UDP(User Datagram Protocol)

速度重視のプロトコルです。 信頼性の確認をしない代わりに、低遅延でデータを送れます。

  • データの順序は保証しない
  • 紛失しても再送しない
  • 受信側の負荷も気にしない

使われる場面:

  • DNS(高速な名前解決)
  • 動画・音声ストリーミング(多少の欠落より遅延なしの方が重要)
  • オンラインゲーム
  • VoIP(IP 電話)

比較表

項目TCPUDP
信頼性高い(再送あり)低い(再送なし)
速度中程度速い
データの順序保証ありなし
主な用途Web・メール・ファイル転送動画・音声・DNS

IP(Internet Protocol)の役割

IP は「データをどの宛先 IP に届けるか」を決めるプロトコルです。 郵便でいう「住所」の管理を担当します。

IPv4 と IPv6

項目IPv4IPv6
アドレス長32bit128bit
アドレス数約 43 億事実上無制限
表記例192.168.1.12001:db8::1
NAT の必要性必要(アドレス枯渇のため)不要

家庭の IPv6 対応についてはIPv6 IPoEを参照してください。

ポート番号とは

TCP / UDP の通信は 「IP アドレス + ポート番号」のセット で行われます。 ポート番号は 0〜65535 の数字で、用途ごとに「予約番号」が決まっています。

ポートプロトコル用途
80HTTPWeb(非暗号化)
443HTTPSWeb(暗号化)
25SMTPメール送信
53DNS名前解決
22SSHリモート接続
21FTPファイル転送

ポート開放(ポートフォワーディング)はこのポート番号を指定して、ルーターの外から内側の機器へ通信を通す設定です(ポート開放の手順参照)。

TCP/IP のデバッグに使えるツール

家庭でも使えるネットワーク確認ツールです。

ping(L3 ICMP)

「宛先に届くか」「応答時間はどれくらいか」を確認します。

ping google.com

tracert / traceroute(L3 ICMP)

「経由するルーターをすべて表示」します。

tracert google.com   # Windows
traceroute google.com  # Mac/Linux

netstat / ss(L4)

現在開いている TCP/UDP の接続を一覧表示します。

netstat -an   # Windows/Linux/Mac 共通的に動く

よくある質問

Q. TCP/IP の「IP」と IP アドレスの「IP」は同じ?

A. 同じです。IP アドレスは「Internet Protocol で使うアドレス」のことで、TCP/IP の「IP」と完全に同じです。

Q. HTTP/3 は TCP を使わないと聞いたが?

A. HTTP/3 は TCP の代わりに QUIC(キュイック) という新しいプロトコルを使い、その上で動作します。QUIC は内部的に UDP の上で構築されており、TCP の信頼性 + UDP の速度の両方を目指した次世代プロトコルです。

まとめ

  • TCP/IP は 4 階層モデルでインターネットを実現する通信規格群
  • TCP は信頼性重視・順序保証、UDP は速度重視・再送なし
  • IP は「どこに届けるか」、ポート番号は「どのアプリケーションに渡すか」を決める
  • 家庭でも ping や tracert で通信を確認できる

関連記事

関連記事