WEB PROTOCOL

TCP/IP(Transmission Control Protocol / Internet Protocol)

データをセグメントに分割し、IPパケットとしてネットワークを通じて送信・再組立する通信プロトコル

INTERACTIVE VISUALIZATION
送信
TCP処理
受信
プロトコル
TCP/IP
セグメント分割+パケット転送
セグメント数
3
データ: 13バイト
受信済み
0 / 3
正常受信
進捗
1 / 15
初期状態
シナリオ
データ "Hello, World!" を3つのセグメントに分割し、IPパケットで送信・再組立します
ステップ1 / 15
自動再生でTCP/IP通信の流れを順番に確認できます
送信元アプリケーションがデータ「Hello, World!」を送信しようとしています。
データサイズ: 13バイト → 3セグメントに分割予定
セグメント状況
Seq 1待機中
"Hello"
Seq 2待機中
", Wor"
Seq 3待機中
"ld!"
解説

📌
TCP/IPとは

TCP/IPは、インターネット通信の基盤となる2つのプロトコルの組み合わせです。TCP(Transmission Control Protocol)はデータを「セグメント」に分割し、シーケンス番号を付けて順序と信頼性を管理します。 宅配便に例えると、大きな荷物を複数の箱に分けて番号をふり、届いたら番号順に組み立て直す仕組みです。IP(Internet Protocol)は各セグメントに送信元・宛先の「IPアドレス」を付け、ネットワーク上で正しい場所に届けます。 宅配便で言えば伝票(住所)を貼って配送する部分です。上のツールで「基本的な通信」シナリオを試すと、データが分割・転送・再組立される全過程が確認できます。

📌
特徴

  • 🔒信頼性のある通信TCPはデータの到着を確認し、ロスしたパケットを自動で再送します。すべてのデータが確実に届くことを保証するため、Webページやメールなど「欠けてはいけない」通信に使われます。「パケットロスと再送」シナリオで動作を確認できます。
  • 📦セグメント分割大きなデータを小さなセグメントに分割して送信します。各セグメントにシーケンス番号が付くため、受信側で正しい順序に再組立できます。MTU(最大転送単位)に合わせてサイズを調整します。
  • 🔢順序の保証パケットがネットワーク上で異なるルートを通り、到着順がバラバラになっても、TCPがシーケンス番号を使って正しい順序に並べ替えます。「順序の入れ替わり」シナリオで確認できます。
  • 📐階層構造アプリケーション → TCP → IP → ネットワークという階層(レイヤー)で処理が分離されています。各層が独立しているため、技術の入れ替えが容易です。

📌
ユースケース

🌐 Webブラウジング(HTTP/HTTPS)
Webページの閲覧にはTCP/IPが使われます。HTMLファイル、画像、CSSなどが確実に届くことが必要なため、信頼性のあるTCPが選ばれます
📧 メール(SMTP/IMAP)
メールの送受信にもTCP/IPが使われます。メール本文や添付ファイルが欠けると困るため、信頼性のある通信が必須です
📁 ファイル転送(FTP/SFTP)
ファイルのアップロード・ダウンロードにTCP/IPを使用します。ファイルの内容が正確に転送されることが保証されます
🔌 API通信(REST/GraphQL)
サーバーとの通信でリクエストとレスポンスを正確にやり取りするために使われます

📌
用語解説

セグメント(Segment)
= TCPがデータを分割した単位
TCPがアプリケーションデータを分割した塊です。各セグメントにはシーケンス番号が付与され、受信側で正しい順序に再組立するための情報を持ちます。
Seq 1: "Hello"Seq 2: ", Wor"
シーケンス番号(Sequence Number)
= セグメントの順序を示す番号
各セグメントに付与される番号で、受信側がデータを正しい順序で再構成するために使われます。 パケットが順番どおりに届かなくても、この番号で正しく並べ替えられます。
3arrived1 ✓2 ?3 ✓
パケット(Packet)
= IPヘッダー+TCPセグメントの転送単位
IPがTCPセグメントにIPヘッダー(送信元・宛先IPアドレス)を付けたものです。 ネットワーク上ではこのパケット単位でルーターを経由して転送されます。
IP HeaderTCP SegmentIP Packet

📌
通信の手順

アプリケーションがデータを送信してから、宛先で受信されるまでの7つのステップを追いかけます。

1
アプリケーションがデータを送信
アプリケーション(ブラウザなど)がデータを送信要求します。
2
TCPがセグメントに分割
TCPが大きなデータを小さなセグメントに分割し、シーケンス番号を付与します。
3
IPがパケットに格納
IPが各セグメントにIPヘッダー(送信元・宛先アドレス)を付け、パケットにします。
4
ネットワークを経由して転送
パケットがルーターを経由して宛先に向かいます。経路はパケットごとに異なる場合があります。
5
宛先IPがパケットを受信・展開
宛先のIP層がパケットからIPヘッダーを除去し、TCPセグメントを取り出します。
6
TCPがセグメントを再組立
TCPがシーケンス番号を使ってセグメントを正しい順序に並べ、元のデータに再組立します。
7
アプリケーションがデータを受信
完全なデータがアプリケーションに渡されます。
App DataTCP SegIP PktTCP AsmApp Data各セグメントがこの流れで処理される

関連コンテンツ

TCP 3ウェイハンドシェイク

TCP 3ウェイハンドシェイク

SYN・SYN-ACK・ACKの3パケットによる接続確立の流れを可視化

TCPコネクション切断

TCPコネクション切断

4ウェイハンドシェイク(FIN/ACK)によるTCP接続の切断フローを可視化

TCPフロー制御

TCPフロー制御

スライディングウィンドウ、スロースタート、AIMDによるTCPの流量制御メカニズムを可視化

HTTP通信

HTTP通信

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

TLSハンドシェイク

TLSハンドシェイク

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

DNS名前解決

DNS名前解決

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