🌐

TCP/IPの仕組み - インターネット通信の基盤を理解しよう

15分 で読める | 2025.12.18

TCP/IPとは

TCP/IP(Transmission Control Protocol/Internet Protocol)は、インターネットで使用される通信プロトコルの集まりです。1970年代にARPANET(インターネットの前身)で開発され、現在のインターネット通信の基盤となっています。

「TCP/IP」という名前は、最も重要な2つのプロトコルであるTCPとIPを組み合わせたものですが、実際には多くのプロトコル(HTTP、FTP、SMTP、DNSなど)を含むプロトコル群を指します。

ポイント: TCP/IPは「プロトコルスタック」とも呼ばれ、各層が特定の役割を担当する階層構造になっています。この設計により、各層を独立して改良・置換できます。

TCP/IPの4層モデル

TCP/IPは4つの層で構成されています。OSI参照モデルの7層と比較すると、より実用的にまとめられています。

名称役割主なプロトコル
4アプリケーション層アプリケーション固有の通信処理HTTP, HTTPS, FTP, SMTP, DNS, SSH
3トランスポート層エンドツーエンドの通信制御TCP, UDP
2インターネット層IPアドレスによる経路制御IP, ICMP, ARP
1ネットワークインターフェース層物理的なネットワーク接続Ethernet, Wi-Fi

データの流れ(カプセル化)

データを送信する際、各層で「ヘッダ」が追加されていきます。これをカプセル化と呼びます。

  1. アプリケーション層: アプリケーションデータを生成
  2. トランスポート層: TCPヘッダ(ポート番号、シーケンス番号など)を追加 → セグメント
  3. インターネット層: IPヘッダ(送信元/宛先IPアドレスなど)を追加 → パケット
  4. ネットワークインターフェース層: Ethernetヘッダ(MACアドレスなど)を追加 → フレーム

IPの役割 - 住所による配達

IP(Internet Protocol)は、パケットを宛先まで届ける役割を担います。郵便システムに例えると、「住所を見て手紙を届ける」部分です。

IPアドレス

インターネット上の各機器を識別するための番号です。IPv4では32ビット(例:192.168.1.1)、IPv6では128ビット(例:2001:0db8:85a3::8a2e:0370:7334)で表されます。

# IPv4アドレスの例
192.168.1.1     # プライベートアドレス
8.8.8.8         # GoogleのDNSサーバー

# IPv6アドレスの例
::1             # ループバックアドレス
fe80::1         # リンクローカルアドレス

IPの特徴

  • コネクションレス: 事前に接続を確立せずにパケットを送信
  • ベストエフォート: パケットの到達を保証しない(信頼性はTCPが担当)
  • ルーティング: 複数のネットワークを経由してパケットを転送

IPだけでは不十分な理由: IPはパケットを「届けようとする」だけで、届いたかどうかの確認や、順番通りに届ける保証はありません。これらの信頼性はTCPが提供します。

TCPの役割 - 信頼性のある通信

TCP(Transmission Control Protocol)は、信頼性のあるデータ転送を実現します。

TCPの主要機能

  • コネクション指向: 通信前に接続を確立(3ウェイハンドシェイク)
  • 信頼性: データの到達確認と再送制御
  • 順序制御: シーケンス番号でデータの順番を保証
  • フロー制御: 受信側の処理能力に合わせて送信速度を調整
  • 輻輳制御: ネットワークの混雑状況に応じて送信量を調整

3ウェイハンドシェイク

TCP接続の確立は、3つのメッセージ交換で行われます。

クライアント                    サーバー
    |                              |
    |-------- SYN (seq=x) -------->|  1. 接続要求
    |                              |
    |<--- SYN-ACK (seq=y,ack=x+1) -|  2. 接続要求の応答 + 自分の接続要求
    |                              |
    |-------- ACK (ack=y+1) ------>|  3. 接続要求応答の確認
    |                              |
    |      接続確立(通信開始)      |

TCPとUDPの違い

特徴TCPUDP
接続コネクション指向コネクションレス
信頼性あり(再送制御)なし
順序保証ありなし
速度比較的遅い高速
用途Web、メール、ファイル転送動画配信、ゲーム、DNS

使い分けの基準: データの正確性が重要な場合はTCP、リアルタイム性が重要で多少のデータロスが許容される場合はUDPを選択します。

ポート番号の役割

ポート番号は、同じIPアドレスで複数のサービスを識別するための番号です。0〜65535の範囲があります。

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

ポート番号  プロトコル  用途
20, 21      FTP         ファイル転送
22          SSH         セキュアシェル
25          SMTP        メール送信
53          DNS         名前解決
80          HTTP        Web
443         HTTPS       セキュアWeb

トラブルシューティングに役立つコマンド

# 接続確認
ping google.com

# 経路確認
traceroute google.com    # macOS/Linux
tracert google.com       # Windows

# TCP接続状態の確認
netstat -an | grep ESTABLISHED

# パケットキャプチャ(管理者権限必要)
tcpdump -i eth0 port 80

まとめ

TCP/IPは、インターネット通信を支える基盤技術です。IPがパケットを宛先まで届け、TCPが信頼性のある通信を実現します。4層のプロトコルスタックにより、各層が独立して機能し、柔軟で拡張性のある通信基盤を提供しています。

← 一覧に戻る