Learn

ネットワーク

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など、アプリケーションのデータをやり取りする
通信を保護するTLSHTTPなどの通信内容を暗号化し、改ざんやなりすましを防ぎやすくする

このように、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/2Webページのデータを正しく受け取る必要がある
ログイン処理認証に必要な情報が欠けると処理できない
ファイル送受信一部が欠けるとファイルが壊れる可能性がある
メール送信メッセージ内容を正しく届ける必要がある

ただし、TCPは何でも速くする仕組みではありません。 到達確認や再送などを行うため、通信状況によっては遅延が増えることもあります。

TCPは、低遅延よりも信頼性を重視したい場面で重要になります。

UDPは軽さと柔軟性を重視する

UDPは、User Datagram Protocolの略です。

UDPは、TCPのような接続確立、到達確認、順序制御、再送をプロトコル自体では行いません。 その分、仕組みが軽く、アプリケーション側で必要な制御を設計しやすいという特徴があります。

UDPは、リアルタイム性や柔軟な制御が重要な通信で使われます。

用途UDPが使われる理由
DNS短い問い合わせと応答を素早く処理しやすい
動画通話古い音声や映像を後から正確に届けるより、現在の情報を早く届けたい場合がある
オンラインゲーム現在の状態を低遅延で更新し続けたい場合がある
QUIC・HTTP/3UDPの上に新しい信頼性や暗号化の仕組みを重ねている

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通信内容を暗号化し、接続先確認や改ざん検出を行う
HTTPWebページやAPIのデータをやり取りする

ここで重要なのは、これらが競合する仕組みではなく、役割を分担しているという点です。

たとえばHTTPSは、HTTPをTLSで保護した通信です。 そして多くの場合、その下ではTCPやUDP、IPが使われています。

Webページを開くときの流れ

TCP/IPの視点で、Webページを開く流れを簡単に整理すると次のようになります。

段階起きること関係する仕組み
1URLを解釈するブラウザ、HTTP/HTTPS
2ドメイン名からIPアドレスを調べるDNS
3宛先IPアドレスへ通信を向かわせるIP、ルーティング
4データの届け方を管理するTCP、UDP、QUICなど
5HTTPSなら通信を保護する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、、通信ログなどを学ぶときに、「どの層の何を扱っている話なのか」を整理しやすくなります。

関連ツール

Public IP Check

WhatIsMyIP

WhatIsMyIPは、Webサイト側から見える現在のパブリックIPアドレスを確認できる検証サイトです。

紹介する理由: VPNやTorなどを使ったあと、接続先から見えるIPアドレスが意図した経路のものに変わっているかを確認する入口になるためです。

URL : https://www.whatismyip.com/

外部サイトを開く

関連記事