TCP/IPの基本
IPで宛先へ届け、TCPなどで通信の信頼性を扱うという、インターネット通信の土台を学びます。
インターネット通信は、1つの大きな仕組みだけで動いているわけではありません。
Webサイトを見るときも、メールを送るときも、アプリがサーバーへ接続するときも、複数の通信ルールが組み合わさって動いています。
その土台になる考え方が TCP/IP です。
TCP/IPという名前にはTCPとIPが含まれていますが、実際にはTCPとIPだけを指す言葉ではありません。 インターネットで使われる通信プロトコル群、つまり通信の基本的な仕組み全体を指す言葉として使われます。
この記事では、TCP/IPを細かい仕様としてではなく、インターネット通信の全体像を理解するための入口として整理します。
TCP/IPとは何か
TCP/IPとは、インターネットで通信するために使われる基本的なプロトコル群です。
プロトコルとは、通信のための約束事です。 どのように宛先を指定するか、データをどの単位で送るか、届かなかったときにどう扱うか、アプリケーション同士がどの形式でやり取りするか、といったルールが必要になります。
TCP/IPでは、通信を役割ごとに分けて考えます。
| 役割 | 主な担当 | 説明 |
|---|---|---|
| 宛先へ届ける | IP | を使って、通信を目的地へ向かわせる |
| 届け方を管理する | TCP・UDP | データをどのように送るか、信頼性や軽さをどう扱うかを決める |
| 名前を解決する | DNS | ドメイン名に対応するIPアドレスを調べる |
| アプリ同士でやり取りする | HTTPなど | WebページやAPIなど、アプリケーションのデータをやり取りする |
| 通信を保護する | TLS | HTTPなどの通信内容を暗号化し、改ざんやなりすましを防ぎやすくする |
このように、TCP/IPは単独の機能ではなく、複数の仕組みが分担して通信を成立させる考え方です。
IPは宛先へ向かわせる役割
IPは、Internet Protocolの略です。
IPの中心的な役割は、IPアドレスを使って通信を宛先へ向かわせることです。 インターネット上では、端末やサーバーを識別するためにIPアドレスが使われます。
たとえば、ブラウザがWebサーバーへ通信するとき、最終的には宛先IPアドレスに向かってパケットが送られます。 途中のルーターは、宛先IPアドレスなどを見て、そのパケットを次にどこへ送るか判断します。
ただし、IPは「宛先へ向かわせる」ための仕組みであり、それだけで通信全体の信頼性を保証するわけではありません。
IPだけでは、次のようなことは十分に扱えません。
- データが届いたかどうか
- データが正しい順番で届いたか
- 失われたデータを再送するか
- 1台の端末内のどのアプリへ渡すか
これらには、TCPやUDP、ポート番号、上位のプロトコルが関係します。
TCPは信頼性を重視する
TCPは、Transmission Control Protocolの略です。
TCPは、データを正確に扱いやすくするための仕組みです。 通信相手との接続を確立し、送ったデータが届いたかを確認し、失われたデータがあれば再送し、順番が崩れたデータを正しい順序に整えます。
そのためTCPは、欠けたり順番が崩れたりすると困る通信に向いています。
| 用途 | TCPが向く理由 |
|---|---|
| HTTP/1.1・HTTP/2 | Webページのデータを正しく受け取る必要がある |
| ログイン処理 | 認証に必要な情報が欠けると処理できない |
| ファイル送受信 | 一部が欠けるとファイルが壊れる可能性がある |
| メール送信 | メッセージ内容を正しく届ける必要がある |
ただし、TCPは何でも速くする仕組みではありません。 到達確認や再送などを行うため、通信状況によっては遅延が増えることもあります。
TCPは、低遅延よりも信頼性を重視したい場面で重要になります。
UDPは軽さと柔軟性を重視する
UDPは、User Datagram Protocolの略です。
UDPは、TCPのような接続確立、到達確認、順序制御、再送をプロトコル自体では行いません。 その分、仕組みが軽く、アプリケーション側で必要な制御を設計しやすいという特徴があります。
UDPは、リアルタイム性や柔軟な制御が重要な通信で使われます。
| 用途 | UDPが使われる理由 |
|---|---|
| DNS | 短い問い合わせと応答を素早く処理しやすい |
| 動画通話 | 古い音声や映像を後から正確に届けるより、現在の情報を早く届けたい場合がある |
| オンラインゲーム | 現在の状態を低遅延で更新し続けたい場合がある |
| QUIC・HTTP/3 | UDPの上に新しい信頼性や暗号化の仕組みを重ねている |
UDPは「信頼できないから悪い通信」という意味ではありません。 UDP自体は保証を少なくし、必要な制御をアプリケーションや上位の仕組みに任せる通信方式です。
QUICのように、UDPを土台にしながら、独自に信頼性や暗号化を実現する仕組みもあります。
ポート番号はアプリケーションを区別する
IPアドレスは、通信相手のネットワーク上の位置を示します。 しかし、1台の端末やサーバーの中では、複数のアプリケーションやサービスが同時に通信しています。
そのため、IPアドレスだけでは、通信をどのアプリケーションへ渡すべきか分かりません。
そこで使われるのがポート番号です。
| 情報 | 役割 | 例 |
|---|---|---|
| IPアドレス | どの端末やサーバーへ向かうかを示す | WebサーバーのIPアドレス |
| ポート番号 | その端末内のどのサービスへ渡すかを示す | HTTPSなら443番、DNSなら53番 |
| 通信プロトコル | TCPかUDPかなどを示す | TCP 443番、UDP 53番 |
たとえば、同じサーバーでWeb、DNS、メールなどが動いている場合、それぞれを異なるポート番号で区別できます。
TCPとUDPでは同じ番号を使っていても別の通信として扱われます。 つまり、TCP 443番とUDP 443番は、同じ「443」という番号を使っていても同じ通信ではありません。
DNS、HTTP、TLSもTCP/IPの上で動く
Webサイトを見るときは、IP、TCP、UDPだけで完結するわけではありません。
人間は通常、IPアドレスではなくドメイン名でWebサイトを指定します。 そのため、まずDNSを使ってドメイン名に対応するIPアドレスを調べます。
IPアドレスが分かると、ブラウザは接続先へ通信します。 Webページの取得にはHTTPが使われます。 HTTPSの場合は、HTTPの通信がTLSで保護されます。
| 仕組み | 役割 |
|---|---|
| DNS | ドメイン名からIPアドレスを調べる |
| IP | 宛先IPアドレスへ向けてパケットを運ぶ |
| TCP・UDP | データの届け方を扱う |
| TLS | 通信内容を暗号化し、接続先確認や改ざん検出を行う |
| HTTP | WebページやAPIのデータをやり取りする |
ここで重要なのは、これらが競合する仕組みではなく、役割を分担しているという点です。
たとえばHTTPSは、HTTPをTLSで保護した通信です。 そして多くの場合、その下ではTCPやUDP、IPが使われています。
Webページを開くときの流れ
TCP/IPの視点で、Webページを開く流れを簡単に整理すると次のようになります。
| 段階 | 起きること | 関係する仕組み |
|---|---|---|
| 1 | URLを解釈する | ブラウザ、HTTP/HTTPS |
| 2 | ドメイン名からIPアドレスを調べる | DNS |
| 3 | 宛先IPアドレスへ通信を向かわせる | IP、ルーティング |
| 4 | データの届け方を管理する | TCP、UDP、QUICなど |
| 5 | HTTPSなら通信を保護する | TLS |
| 6 | ページやAPIのデータを要求する | HTTP |
| 7 | 受け取ったデータを画面に表示する | ブラウザ |
実際の通信では、キャッシュ、CDN、ロードバランサー、既存接続の再利用なども関係します。 そのため、毎回すべてが完全に同じ順序で最初から行われるとは限りません。
ただし、基本としては、DNS、IP、TCP/UDP、TLS、HTTPがそれぞれ別の役割を持っていると考えると整理しやすくなります。
TCP/IPと匿名性の関係
TCP/IPは、匿名化のための仕組みではありません。 インターネット上で通信を成立させるための土台です。
そのため、通信を成立させるために必要な情報が、通信経路上や接続先に見える場合があります。
| 情報 | 見える可能性がある場所 | 匿名性上の注意点 |
|---|---|---|
| 送信元IPアドレス | 接続先サーバー、通信経路上の機器など | 接続元ネットワークの手がかりになる |
| 宛先IPアドレス | 通信経路上の機器など | どのサーバーへ向かう通信かを推測される材料になる |
| ポート番号 | ルーター、ファイアウォール、通信ログなど | HTTPS、DNS、など通信種別の推測材料になる |
| 通信プロトコル | ルーター、ファイアウォール、通信ログなど | TCPかUDPかで通信の扱われ方が変わる |
| 通信量と時刻 | 通信経路上の機器、接続先サーバーなど | 行動パターンや他のログとの照合材料になる |
HTTPSやTLSを使えば、通信内容は保護されやすくなります。 しかし、IPアドレス、通信量、通信時刻、接続先との関係などがすべて消えるわけではありません。
匿名性を考えるときは、「通信内容」と「通信を成立させるための外側の情報」を分けて考える必要があります。
まとめ
TCP/IPは、インターネット通信を成立させるための基本的なプロトコル群です。
IPは、IPアドレスを使って通信を宛先へ向かわせます。 TCPは、接続を確立し、到達確認、再送、順序制御によって信頼性を重視します。 UDPは、保証を少なくして軽さや柔軟性を重視します。
ポート番号は、1台の端末やサーバーの中で、通信をどのアプリケーションやサービスへ渡すかを区別するために使われます。
DNS、HTTP、TLSなども、TCP/IPの上で役割を分担して動きます。 Webページを開くときには、DNSでIPアドレスを調べ、IPで宛先へ向かい、TCPやUDPでデータの届け方を扱い、HTTPSではTLSで通信を保護し、HTTPでページ内容をやり取りします。
TCP/IPは匿名化技術ではありません。 通信を成立させるために、IPアドレス、ポート番号、通信プロトコル、通信量、時刻などの情報が扱われます。
この基本を理解すると、DNS、HTTP/HTTPS、TLS、VPN、、通信ログなどを学ぶときに、「どの層の何を扱っている話なのか」を整理しやすくなります。
関連ツール
WhatIsMyIP
WhatIsMyIPは、Webサイト側から見える現在のパブリックIPアドレスを確認できる検証サイトです。
紹介する理由: VPNやTorなどを使ったあと、接続先から見えるIPアドレスが意図した経路のものに変わっているかを確認する入口になるためです。