インターネットプロトコル(IP)は、ネットワークの境界を越えてデータを中継するための、インターネットプロトコルスイートの中で最も重要な通信プロトコルです。基本的にはインターネットを構築するものである。従来、IPは接続性を提供するものではなく、パケットをどのように生成するかを指定するだけでした。この機能は、TCP(Transmission Control Protocol)によって実現されていました。どちらか一方が欠けてもその役割を果たせないため、お互いに依存していることを示すためにTCP/IPと呼ばれるようになりました。
IPは、郵便システムのようなものだと思ってください。荷物に宛名を書いてシステムに投函することはできますが、あなたと受取人の間には実際の直接的なつながりはありません。その代わりに、相互に接続されたリンクの「ウェブ」があります。ここで登場するのがIPとTCPです。IPはパケットの宛先とそこへの行き方を伝え、TCPはパケットのエラーをチェックし、エラーを検出したら「再送」を要求することで、信頼できる接続を確保します。
IPの基本的な性質
- コネクションレス(Connectionless):IP自体は接続を確立しない。各パケットは独立して送られ、経路や到着順はそれぞれ異なることがある。
- ベストエフォート(Best-effort):IPはパケット配送を保証しない。パケットの遅延・損失・重複・順序の入れ替わりが起こる可能性があり、それらの補償は上位のプロトコル(例:TCP)が行う。
- 階層構造:IPは「ネットワーク層」に位置し、下位のリンク層(イーサネットなど)と上位のトランスポート層(TCP/UDPなど)をつなぐ役割を持つ。
IPアドレスとアドレス体系
- IPv4:従来の形式で、32ビットのアドレスを用いる。一般に「192.0.2.1」のようなドット区切りの10進表記(dotted decimal)で表される。アドレス枯渇を受け、CIDR(クラスレスドメイン間ルーティング)による柔軟なサブネット指定が広く使われている。
- IPv6:128ビットのアドレスを用い、16進のコロン区切り(例:2001:db8::1)で表される。アドレス空間が大幅に拡張され、オートコンフィギュレーションや拡張ヘッダなどIPv4と異なる設計がある。
- プライベートアドレスとNAT:IPv4の枯渇に対応して、社内ネットワーク向けのプライベートアドレス(例:192.168.x.x)が使われる。これらをインターネットに接続する際はNAT(Network Address Translation)で外部アドレスに変換することが多い。
パケット(IPパケット)とヘッダの構造(概略)
IPパケットは「ヘッダ」と「ペイロード(上位プロトコルのデータ)」から成る。ヘッダにはルーティングや制御に必要な情報が含まれる。代表的なフィールド(IPv4を例に簡略化):
- バージョン(Version)
- ヘッダ長(IHL)
- サービス種別 / DSCP(QoS関連)
- 全長(Total Length)
- 識別 / フラグ / 断片化オフセット(フラグメンテーション関連)
- TTL(Time To Live):ルータを通過するごとに減少し、0になると廃棄される(ループ防止)
- プロトコル:上位に渡すプロトコルを示す(例:6=TCP、17=UDP)
- ヘッダチェックサム(IPv4のみ)
- 送信元/宛先IPアドレス
IPv6ではヘッダが簡素化され、チェックサムが廃止されるなどの違いがあり、拡張ヘッダでオプション機能を付加する方式を採る。
ルーティングと転送の仕組み
- ネットワーク上の各ルータは「ルーティングテーブル」を持ち、宛先IPに基づいてどの外向きインターフェイスへ転送するかを決める。
- 最適経路は静的ルート/動的ルーティングプロトコル(OSPF、BGP、RIPなど)により決定される。インターネットのバックボーンでは主にBGPが用いられる。
- パケットは経路途中で分割(フラグメンテーション)されることがある。MTU(Maximum Transmission Unit)より大きいパケットは分割され、受信側で再構成される。
TCPとの関係(TCP/IP)および他のトランスポート層プロトコル
- TCP(Transmission Control Protocol):信頼性のあるコネクション指向のプロトコル。順序制御、再送、フロー制御、コングestion制御を行い、HTTPやSMTPなど多くのアプリケーションで使われる。
- UDP(User Datagram Protocol):簡易で遅延が小さいコネクションレスのプロトコル。DNS、音声・映像ストリーミング、DHCPなど遅延やオーバーヘッドの少なさが優先される用途で使われる。
- IPはこれらトランスポート層のデータを「ペイロード」として運搬する役割を担うため、TCPとIPはセットで利用されることが多く、まとめて「TCP/IP」と呼ばれる。
補助プロトコルとセキュリティ
- ARP(Address Resolution Protocol):IPv4アドレスをリンク層のMACアドレスに変換するための仕組み(同一ネットワーク内)。
- NDP(Neighbor Discovery Protocol):IPv6でARPに相当する機能やアドレス自動設定を提供する。
- ICMP(Internet Control Message Protocol):ネットワークのエラーメッセージや診断(pingやtracerouteに利用)を伝えるためのプロトコル。
- IPsec:IP層での暗号化・認証を行い、VPNやセキュアな通信に用いられる。
実用例と注意点
- ウェブ閲覧:アプリケーション(ブラウザ)→TCP(信頼と順序)→IP(ルーティング)→リンク層(Ethernet/Wi‑Fi)という流れでデータが送られる。
- ストリーミングやVoIP:UDP+IPの組合せが多い。パケット損失を許容してでも遅延を抑える設計。
- ネットワーク設計では、アドレス計画(サブネット割当)、MTU設定、NATやファイアウォールの挙動、ルーティングポリシーなどを総合的に考慮する必要がある。
まとめ
IPはインターネットの"道"を作るプロトコルであり、パケットを宛先まで運ぶためのルールと情報を提供する。一方で信頼性や順序保証を行わないため、その上で動作するTCPやUDPなどのトランスポート層プロトコルと組み合わされて初めて、さまざまな通信サービスが実現される。IPv4からIPv6への移行、NATやセキュリティ技術の適用など、実運用では多くの周辺技術と合わせて理解することが重要です。