WEB PROTOCOL

TCP/IPモデル(TCP/IP Protocol Suite)

実際のインターネットで使われている4層の実装ベースモデル。各層の役割とデータの流れを可視化

INTERACTIVE VISUALIZATION
アプリ
トランスポート
インターネット
NIC
モデル
TCP/IP
4層モデル
注目層
概要
プロトコル
-
進捗
1 / 8
初期状態
シナリオ
TCP/IPモデルの4つの層の役割と代表的なプロトコルを学びます
ステップ1 / 8
自動再生でTCP/IPモデルの各層の役割を順番に確認できます
TCP/IPモデルは、実際のインターネットで使われている実装ベースの4層モデルです。OSI参照モデル(7層)を簡素化し、実用的な構成にまとめたものです。
RFC文書やネットワークプログラミングでは、このTCP/IPモデルに基づいてプロトコルが設計・記述されています。
レイヤー状態
L4
アプリ
L3
トランスポート
L2
インターネット
L1
NIC
解説

📌
TCP/IPモデルとは

TCP/IPモデルは、実際のインターネットで使われている4層の実装ベースのネットワークモデルです。OSI参照モデルの7層を実用的な4層に簡素化し、すべてのインターネット通信の基盤として機能しています。

荷物の配送に例えてみましょう。荷物を箱に入れる(アプリケーション層)→伝票を貼る(トランスポート層)→住所を書く(インターネット層)→配送トラックに積む(ネットワークインターフェース層)。各段階で情報が付加され、受取人の元では逆順に開封されます。

荷物を箱に入れる (アプリケーション層 — HTTP, DNS等)
伝票を貼る (トランスポート層 — TCP, UDP)
住所を書く (インターネット層 — IP)
配送トラックに積む (NIC層 — Ethernet, Wi-Fi)

なぜこのモデルが重要なのでしょうか? RFC(インターネット標準仕様)、ソケットプログラミング、クラウドインフラのすべてがこのモデルに基づいています。Google、AWS、Netflixのインフラも、この4層で構成されています。ネットワークエンジニアやバックエンド開発者にとって、TCP/IPモデルの理解はネットワーク障害の診断やパフォーマンスチューニングの基礎となります。

上のツールで「TCP/IPモデル 4層」シナリオを再生すると、4つの層の役割と代表的なプロトコルが確認できます。

📌
特徴

  • 🔧実装ベースTCP/IPモデルはOSI参照モデルのような「こうあるべき」という理論ではなく、「実際にこう動いている」という実装から生まれたモデルです。1970年代にDARPAが開発したARPANETの実装経験をもとに体系化され、理論よりも実用性を重視しています。そのため、各層の境界が明確で、プロトコルの実装がシンプルになっています。現在のすべてのインターネット通信は、このモデルに基づいて動作しています。
  • 📦階層化の簡素化OSI参照モデルが7層に分けていた機能を、TCP/IPモデルでは実用的な4層にまとめています。OSIのアプリケーション層・プレゼンテーション層・セッション層を1つのアプリケーション層に、物理層・データリンク層をネットワークインターフェース層に統合しました。これにより、開発者は7つの層を意識する必要がなく、4つの層だけでネットワークプログラミングが可能になっています。
  • 🔌プロトコル独立性各層は上下の層のインターフェースだけを意識すればよく、内部実装は自由に変更できます。たとえば、トランスポート層でTCPからQUICに変更しても、アプリケーション層やインターネット層には影響しません。IPv4からIPv6への移行も、インターネット層だけの変更で済みます。この設計により、新しいプロトコルの追加や既存プロトコルの改良が容易になっています。
  • 📄インターネット標準(RFC準拠)TCP/IPモデルに基づくすべてのプロトコルは、RFC(Request for Comments)文書として公開されています。HTTP/1.1はRFC 2616、TCPはRFC 793、IPv4はRFC 791で定義されています。RFCは誰でも無料で読める公開仕様であり、異なるベンダーの機器やソフトウェアが相互に通信できるのは、このRFC準拠の仕組みがあるからです。

📌
ユースケース

🌐 Webアプリケーション開発
HTTP(アプリケーション層)でAPIリクエストを送信し、TCP(トランスポート層)で信頼性のある通信を確保し、IP(インターネット層)でルーティングし、Ethernet/Wi-Fi(NIC層)で物理的にデータを転送します。フロントエンド開発者はHTTPを、バックエンド開発者はTCPソケットを直接扱うことがあります。
☁️ クラウドインフラ(AWS VPC)
AWS VPCはインターネット層(IPサブネット、ルーティングテーブル)とNIC層(セキュリティグループ、ENI)を仮想化したものです。VPCピアリング、NATゲートウェイ、ロードバランサーはすべてTCP/IPモデルの各層に対応する機能を提供しています。
💻 ソケットプログラミング
BSD Socket APIはTCP/IPモデルに直接対応しています。socket()でNIC層、bind()でインターネット層のアドレスを設定し、connect()/listen()でトランスポート層のTCP接続を確立し、send()/recv()でアプリケーション層のデータを送受信します。
🔍 ネットワーク監視
tcpdumpやWiresharkはTCP/IPモデルの各層のヘッダーをデコードして表示します。ネットワーク障害の際、問題がどの層で発生しているか(DNS解決失敗=アプリ層、TCPリセット=トランスポート層、ルーティング不可=インターネット層)を特定するのに不可欠なツールです。

📌
用語解説

TCP/IPスタック
= プロトコルの階層構造
TCP/IPモデルの4層を「スタック(積み重ね)」と呼びます。各層のプロトコルが上から下へ積み重なっており、データが送信される際は上位層から下位層へ順番に処理されます。OS内部ではカーネルのネットワークスタックとして実装されており、LinuxではNet Subsystemがこの役割を担います。アプリケーション開発者はスタックの最上位(ソケットAPI)だけを意識すればよい設計になっています。
L4L3L2L1
ソケット(Socket)
= 通信のエンドポイント
ソケットは「IPアドレス + ポート番号」の組み合わせで、ネットワーク通信の接続点を表します。BSD Socket APIはTCP/IPモデルへのプログラミングインターフェースであり、C言語のsocket()、bind()、listen()、accept()、connect()、send()、recv()関数で操作します。PythonやNode.jsなど高級言語でも、内部ではこのSocket APIが使われています。
192.168.1.1:808093.184.216.34:443
カプセル化(Encapsulation)
= ヘッダーの付加
データが上位層から下位層へ渡される際、各層がヘッダー情報を付加するプロセスです。アプリケーションデータにTCPヘッダー(20バイト)が付加されて「セグメント」に、IPヘッダー(20バイト)が付加されて「パケット」に、Ethernetヘッダー(14バイト)が付加されて「フレーム」になります。受信側では逆順に各層でヘッダーが除去される「脱カプセル化」が行われます。
DataTCP+DataIP+TCP+DataEth+IP+TCP+Data
RFC(Request for Comments)
= インターネット標準仕様書
インターネットの技術仕様を定めた公開文書です。IETF(Internet Engineering Task Force)が管理し、誰でも無料で読めます。RFC 793(TCP)、RFC 791(IPv4)、RFC 2616(HTTP/1.1)、RFC 7540(HTTP/2)などが代表的です。新しいプロトコルを設計する際は、まずRFCのドラフトを公開し、コミュニティのレビューを経て正式なRFCとなります。
RFC 793TransmissionControl Protocol
ポート番号(Port Number)
= アプリケーションの識別子
トランスポート層でアプリケーションを識別するための16ビットの数値(0-65535)です。Well-Known Ports(0-1023)にはHTTP=80、HTTPS=443、SSH=22、DNS=53などが割り当てられています。Registered Ports(1024-49151)はアプリケーション固有、Dynamic Ports(49152-65535)はクライアント側の一時ポートに使われます。
:80HTTP:443HTTPS:22SSH
IPアドレス
= ネットワーク上の住所
インターネット層でデバイスを一意に識別するためのアドレスです。IPv4は32ビット(例: 192.168.1.1)で約43億個のアドレスを提供しますが、インターネットの普及で枯渇が進んでいます。IPv6は128ビット(例: 2001:db8::1)で事実上無限のアドレスを提供し、移行が進んでいます。プライベートIPアドレス(10.x.x.x、192.168.x.x等)はLAN内で使用され、NATでグローバルIPに変換されます。
IPv4192.168.1.1IPv62001:db8::1

📌
データの流れ

Webブラウザでページにアクセスしたとき、データがTCP/IPの各層を通って送信される4つのステップを追いかけます。各層でヘッダーが追加(カプセル化)され、受信側では逆順にヘッダーが除去(脱カプセル化)されます。

1
アプリケーション層: データ生成
HTTPリクエスト「GET / HTTP/1.1」を生成します。Host、User-Agent、Acceptなどのヘッダーとボディを含むアプリケーションデータが作成されます。HTTPSの場合はTLSで暗号化されます。この段階ではまだ純粋なアプリケーションデータです。
2
トランスポート層: セグメント化
アプリケーションデータにTCPヘッダー(20バイト)を付加して「セグメント」を作成します。送信元ポート(49152)、宛先ポート(443)、シーケンス番号、チェックサムが含まれます。大きなデータはMSS(Maximum Segment Size)に分割されます。
3
インターネット層: パケット化
TCPセグメントにIPヘッダー(20バイト)を付加して「パケット」を作成します。送信元IP、宛先IP、TTL(Time to Live)、プロトコル番号(TCP=6)が含まれます。ルーティングテーブルに基づいて次のホップが決定されます。
4
NIC層: フレーム化と送信
IPパケットにEthernetヘッダー(14バイト)とFCSトレーラー(4バイト)を付加して「フレーム」を作成します。MACアドレスで次のホップ(デフォルトゲートウェイ)を指定し、ビット列に変換してケーブルや電波で送出します。
AppTCPIPEthカプセル化の流れ(上位→下位)

📌
TCP/IPモデル vs OSI参照モデル

TCP/IPモデル
  • -4層構造(実用的でシンプル)
  • -実装ベース(実際のインターネットから生まれた)
  • -RFC準拠(IETF管理の公開仕様)
  • -「インターネットは実際にこう動いている」
  • -ネットワークプログラミングの実践で使用
OSI参照モデル
  • -7層構造(詳細で理論的)
  • -理論モデル(ISOが策定した国際標準)
  • -ISO 7498規格
  • -「ネットワークはこうあるべき」
  • -ネットワーク教育や概念説明で使用

対応関係

TCP/IPOSI参照モデルデータ単位
アプリケーション層第7層 アプリケーション 第6層 プレゼンテーション 第5層 セッションメッセージ
トランスポート層第4層 トランスポートセグメント
インターネット層第3層 ネットワークパケット
NIC層第2層 データリンク 第1層 物理フレーム
OSIモデルは教育や概念の整理に便利ですが、実際のネットワークプログラミングではTCP/IPモデルが使われます。面接やネットワーク資格試験では両方のモデルの理解が求められるため、対応関係を把握しておくことが重要です。

関連コンテンツ

OSI参照モデル

OSI参照モデル

ネットワーク通信を7つの階層に分類した国際標準の理論モデル。各層の役割とデータの流れを可視化

パケット交換

パケット交換

データを小さなパケットに分割して独立にルーティングする通信方式を可視化

回線交換

回線交換

通信前に専用の経路を確保してからデータを送る通信方式を可視化

HTTP通信

HTTP通信

ブラウザとサーバー間のHTTPリクエスト/レスポンスの仕組みを可視化

TLSハンドシェイク

TLSハンドシェイク

HTTPSで安全に通信するためのTLSハンドシェイクの仕組みを可視化

DNS名前解決

DNS名前解決

ドメイン名からIPアドレスへの階層的な問い合わせの流れを可視化