TCP/IPとは?基礎・仕組み・歴史からTCP/UDP、ルーティング、セキュリティまで完全ガイド
TCP/IP とは
TCP/IP(Transmission Control Protocol / Internet Protocol)は、インターネットをはじめとするパケット交換ネットワーク上で通信を行うためのプロトコル群(プロトコルスイート)です。単一のプロトコルではなく、複数の階層に分かれたプロトコル群が協調して動作することで、異なる機器やネットワーク間でデータを確実かつ効率的にやり取りできるように設計されています。
歴史と背景
TCP/IP の起源は1970年代の米国防総省(DARPA)の研究にさかのぼります。Vint Cerf と Bob Kahn が提唱した「パケット交換ネットワーク間の相互接続を可能にするプロトコル」の設計思想が基礎となり、その後の実装と標準化を経て現在の TCP/IP スイートが確立しました。TCP/IP はインターネットの基盤となり、事実上標準的なネットワーク通信手法として世界中で採用されています(歴史・原論に関する一次資料は IETF や学術資料を参照)。
TCP/IP のアーキテクチャ(階層構造)
TCP/IP は階層的に分割され、一般には以下のように説明されます(OSI参照モデルとの対比もよく行われます)。
- リンク層(ネットワークインターフェース層): イーサネットやWi‑Fiなど、物理的なネットワーク媒体上でのフレーム転送を扱う。
- インターネット層(ネットワーク層相当): IP(IPv4/IPv6)による論理アドレッシングとルーティングを担う。
- トランスポート層: TCP(信頼性が高い接続型)や UDP(軽量なコネクションレス)を提供し、アプリケーション間通信を仲介。
- アプリケーション層: HTTP、SMTP、DNS などの上位プロトコルやアプリケーションがここに位置する。
インターネット層:IP(IPv4 / IPv6)
IP はパケット(IP パケット)に送信元・宛先アドレスを付けてネットワーク間で転送するためのルールです。主な機能はアドレッシング、ルーティング、フラグメンテーション(分割)などです。
- IPv4: 32 ビットアドレス形式で、CIDR(クラスレス)によるネットワーク分割とサブネットマスクが使われます。IPv4 はアドレス枯渇問題を解決するために NAT(Network Address Translation)が広く使われています。
- IPv6: 128 ビットアドレスにより巨大なアドレス空間を提供し、アドレス自動設定や改良されたヘッダ設計を採用しています(RFC 2460)。
- TTL(Time To Live): パケット寿命を示すフィールドで、ループによる無限転送を防ぎます。
- チェックサム: IPv4 ヘッダにはチェックサムがあり、ヘッダの誤り検出を行います(IPv6 はヘッダチェックサムを持たない)。
- フラグメンテーション: 大きなパケットがリンク層の MTU を超える場合、分割して送信される仕組み。フラグメンテーションにはパフォーマンスやセキュリティの課題があります。
ルーティングと BGP/OSPF
IP パケットは送信元から宛先まで複数の経路(ルータ)を経由して運ばれます。ルーティングは経路情報を管理する仕組みで、グローバルなインターネットでは主に以下のプロトコルが使用されます。
- BGP(Border Gateway Protocol): 自律システム(AS)間の経路情報を交換するためのプロトコル。インターネットの「バックボーン」に相当する経路制御を担う。
- OSPF、IS-IS: 同一 AS 内で使用される内部ゲートウェイプロトコル(IGP)。リンク状態型ルーティングで迅速な収束と効率的な経路計算を行う。
トランスポート層:TCP と UDP
トランスポート層はホスト間のプロセス同士の通信を扱います。代表的なプロトコルは TCP と UDP です。
- TCP(Transmission Control Protocol)
- 接続型(コネクション)プロトコルで、信頼性の高いデータ転送を提供します。
- 主な機能: 三者間ハンドシェイク(SYN, SYN-ACK, ACK)による接続確立、シーケンス番号と ACK による到達保証、再送、フロー制御(ウィンドウ制御)、混雑制御(スロースタート、輻輳回避、ファストリトランスミット/リカバリなど)です。
- TCP のヘッダにはポート番号、シーケンス番号、ACK番号、ウィンドウサイズ、フラグ(SYN/ACK/FIN/RST など)が含まれます。
- 近年は CUBIC 等の新しい輻輳制御アルゴリズムが主流の OS で採用されています。
- UDP(User Datagram Protocol)
- コネクションレスでオーバーヘッドが小さいプロトコル。信頼性保証は行わないため、リアルタイム系(音声・映像のストリーミング、VoIP、DNS)で多く使われます。
- 簡潔なヘッダにより高速ですが、再送や順序制御はアプリケーション側で実装する必要があります。
ICMP と ARP
IP スイートには管理・制御用のプロトコルも含まれます。代表的なのが ICMP(Internet Control Message Protocol)と ARP(Address Resolution Protocol)です。
- ICMP: ネットワークのエラー通知や診断(ping の Echo Request/Reply、宛先到達不能、時間超過など)に使われます(RFC 792)。ただし ICMP を悪用した攻撃もあるため、適切なフィルタリングが必要です。
- ARP: 同一リンク上で IP アドレスから MAC アドレスを解決するプロトコル。IPv6 では NDP(Neighbor Discovery Protocol)がこれに相当します。
アプリケーション層と代表プロトコル
TCP/IP スイートの上位には、実際のサービスを提供するアプリケーション層プロトコルがあります。代表例:
- HTTP/HTTPS(Web): TCP 上で動作。TLS による暗号化で HTTPS として利用される。
- DNS(ドメイン名解決): 主に UDP(問い合わせ)と TCP(ゾーン転送や大きな応答)を使用。
- SMTP、IMAP、POP(メール): メール配信/受信に関わるプロトコル。
- SSH、TLS/SSL: セキュアな通信を提供するための暗号化プロトコル。
NAT、ファイアウォール、セキュリティ上の考慮
NAT(Network Address Translation)はプライベートネットワークのアドレスをグローバルアドレスに変換してインターネットに接続する技術で、IPv4 アドレス不足対策として広く使われています。しかし NAT はエンドツーエンドの通信概念を変えるため、P2P や一部アプリケーションに影響を与え、プロトコル設計やセキュリティに影響を及ぼします。
セキュリティ面では IP スプーフィング、DDoS、盗聴、中間者攻撃(MITM)などが懸念されます。対策として TLS(アプリケーション層の暗号化)、IPsec(ネットワーク層の暗号化)、パケットフィルタリング、ACL、侵入検知・防御システム(IDS/IPS)などが使われます。
性能・運用上のポイント
TCP/IP の性能や動作はネットワークの物理特性や設定に大きく左右されます。代表的な考慮点:
- MTU と断片化: MTU が小さいと断片化が増え遅延や再送のコストが増大する。Path MTU Discovery を用いることで断片化を回避できる。
- 遅延(レイテンシ)と帯域幅: 帯域幅が大きくても遅延が高ければ通信効率(特に TCP のスループット)は低下する(TCP の帯域-遅延積を意識)。
- ジッタ: 音声・映像などリアルタイム通信ではジッタ対策(バッファリング、QoS)が重要。
- パケットロスと再送: パケットロスが多いと TCP は再送・輻輳と判断し送信レートを下げるため性能劣化につながる。
トラブルシューティングとツール
基本的な診断ツールとその使い方:
- ping: ICMP Echo による疎通確認と RTT 測定。
- traceroute(tracert): 経路上の各ホップを調べ、どのノードで遅延が発生しているかを特定する。
- tcpdump / Wireshark: パケットキャプチャおよびプロトコル解析。ヘッダやフローを詳細に確認できる。
- netstat / ss: ソケットや接続状況の確認。
現代の課題と将来展望
TCP/IP は長年にわたり進化してきましたが、課題も残ります。IPv6 移行の進展、モバイル・IoT 環境での最適化、低遅延通信(5G とエッジコンピューティング)、暗号化・プライバシー保護の強化、そして大規模 DDoS に対する耐性向上などが主要なテーマです。加えて、QUIC(UDP 上に実装された新しいトランスポートで、TLS 統合とマルチプレクシングを持つ)は TCP の代替や補完として注目を集めています。
まとめ
TCP/IP は単なるプロトコル一式ではなく、ネットワーク通信のための設計思想とそれを実現する多層のプロトコル群です。IP によるアドレッシングとルーティング、TCP/UDP によるトランスポート、そして多種多様なアプリケーションプロトコルが組み合わさって、今日のインターネットを支えています。運用面ではセキュリティ、スケーラビリティ、性能の最適化が継続的な課題であり、新しい技術(IPv6、QUIC、TLS、現代的な輻輳制御など)がその解決に貢献しています。
参考文献
- RFC 791 — Internet Protocol
- RFC 2460 — Internet Protocol, Version 6 (IPv6)
- RFC 793 — Transmission Control Protocol
- RFC 792 — Internet Control Message Protocol
- RFC 1122 — Requirements for Internet Hosts — Communication Layers
- RFC 8301 — QUIC: A UDP-Based Multiplexed and Secure Transport
- History of the Internet — Wikipedia(参考解説)


