Learn

ネットワーク

プロトコルとは何か

プロトコルは通信の約束事です。Web、DNS、TCP/IPを理解する前提として基本を整理します。

インターネット上の通信は、ただデータを送っているだけではありません。 送る側と受け取る側が、同じルールに従ってデータをやり取りすることで成り立っています。

この通信のルールをプロトコルと呼びます。

Webサイトを見るとき、メールを送るとき、アプリがサーバーと通信するとき、裏側ではさまざまなプロトコルが使われています。 HTTP、DNS、TCP、UDP、TLSなどは、それぞれ役割の違うプロトコルです。

初心者にとってはバラバラの専門用語に見えるかもしれません。 しかし実際には、どれも「通信を成立させるための約束事」です。

この記事では、プロトコルを細かく深掘りするのではなく、それぞれが通信の中でどのような役割を持っているのかを整理します。

プロトコルとは通信の約束事

プロトコルとは、通信するための決まりごとのことです。

通信では、次のようなことを決めておく必要があります。

  • どのような形式でデータを送るか
  • どの順番でやり取りするか
  • 相手をどう指定するか
  • データが届いたことをどう確認するか
  • 通信内容を暗号化するか
  • エラーが起きたときにどう扱うか

送る側と受け取る側が別々のルールで動いていたら、通信は成立しません。 データを送ったとしても、受け取る側がその意味を理解できないからです。

つまりプロトコルは、コンピューター同士が正しく通信するための共通ルールです。

なぜ通信には約束事が必要なのか

インターネット上では、世界中のさまざまな機器が通信しています。

PC、スマホ、サーバー、ルーター、DNSサーバー、アプリ、ブラウザなど、多くの機器やソフトウェアが関わります。 それぞれが独自のやり方で通信していたら、データを正しく送ることも、受け取ることもできません。

そこで、通信の種類ごとに共通のルールが決められています。 そのルールに従うことで、違うメーカーの端末同士でも、違うOS同士でも、同じWebサイトへアクセスできます。

プロトコルがあるから、インターネット上の多様な機器が同じ仕組みの中で通信できるのです。

Webで使われる代表的なプロトコル

Webサイトへアクセスするときには、複数のプロトコルや仕組みが関係します。

代表的なものには、次のようなものがあります。

プロトコル・仕組み主な役割
DNSドメイン名に対応するを調べる
HTTPWebページのデータをやり取りする
HTTPSHTTPの通信をTLSで保護する
TCPデータを正確に届ける
UDP速度やリアルタイム性を重視してデータを送る
TLS通信内容を暗号化する

それぞれは、同じ役割を持っているわけではありません。 通信の中で担当する範囲が違います。

DNSの役割

DNSは、ドメイン名に対応するIPアドレスを調べるための仕組みです。

Webサイトへアクセスするとき、あなたは通常、IPアドレスを直接入力しません。 たとえば、example.com のようなドメイン名を使います。

しかし、コンピューターが実際に通信先へデータを送るには、IPアドレスが必要です。 そこでDNSを使って、ドメイン名に対応するIPアドレスを調べます。

つまりDNSは、通信したい相手のIPアドレスを調べるための仕組みです。

従来のDNS問い合わせは、暗号化されずに送られることがあります。 その場合、どのドメイン名を調べたのかが、ネットワーク上で見える可能性があります。

HTTPとHTTPSの役割

HTTPは、Webページのデータをやり取りするためのプロトコルです。

ブラウザがWebサーバーに対して「このページを見せてください」と要求し、サーバーがHTML、画像、CSS、JavaScriptなどのデータを返すときに使われます。

HTTPSは、HTTPの通信をTLSで保護する仕組みです。 HTTPでやり取りする内容をTLSによって暗号化することで、通信経路上から内容を読まれにくくします。

HTTPだけの場合、通信内容は暗号化されません。 一方、HTTPSでは通信内容が暗号化されるため、途中のネットワークから内容をそのまま読まれにくくなります。

ただし、HTTPSを使っていても、通信に関するすべての情報が隠れるわけではありません。 通信先のIPアドレス、通信量、接続タイミングなどは、別の形で見える可能性があります。

TCPとUDPの役割

TCPとUDPは、データの届け方に関係するプロトコルです。

TCPは、データを正確に届けることを重視します。 データが途中で抜け落ちた場合に再送したり、順番を整えたりする仕組みがあります。

Webサイトの閲覧、メール、ファイル転送など、正確性が重要な通信でよく使われます。 なお、現在はHTTP/3のように、UDPを利用するWeb通信の仕組みもあります。

一方、UDPは速度や軽さを重視します。 TCPのように細かく到達確認をしないため、通信の遅延を減らしやすい特徴があります。

音声通話、ビデオ通話、オンラインゲーム、DNSなど、遅延の少なさが重視される通信ではUDPが使われることがあります。

TCPとUDPは、どちらが上位というものではありません。 正確性を重視する通信ではTCP、速度やリアルタイム性を重視する通信ではUDPが使われます。

TLSの役割

TLSは、通信内容を暗号化するためのプロトコルです。

HTTPSでWebサイトへアクセスするとき、実際に通信内容の保護を担当しているのはTLSです。 TLSによって、ブラウザとサーバーの間でやり取りされる内容が暗号化されます。

たとえば、ログイン情報、検索内容、フォームに入力した内容などは、HTTPSによって通信経路上で読まれにくくなります。

TLSは暗号化だけでなく、通信相手の確認や改ざんの検知にも関係します。 ただし、この記事ではまず「通信内容を保護する仕組み」として理解すれば十分です。

また、TLSは通信内容を守るための仕組みであり、通信の存在そのものを完全に隠すものではありません。 どのサーバーと通信しているか、いつ通信したか、どれくらいの量を通信したかといった情報は、別の形で見える場合があります。

1つの通信には複数のプロトコルが関係する

Webサイトへアクセスする通信では、1つのプロトコルだけが使われているわけではありません。

たとえば、ブラウザでWebサイトを開くときには、ざっくり次のような流れになります。

  1. DNSでドメイン名に対応するIPアドレスを調べる
  2. TCPやUDPを使って、データを届ける方法を決める
  3. TLSで通信内容を保護する
  4. HTTPでWebページのデータをやり取りする

実際の通信ではさらに細かい処理があります。 しかし、重要なのは、複数のプロトコルが役割を分担しているという点です。

DNSは通信先のIPアドレスを調べる役割。 TCPやUDPはデータの届け方を決める役割。 TLSは通信内容を保護する役割。 HTTPはWebページの情報をやり取りする役割。

このように、1つのWebアクセスでも複数のプロトコルが組み合わさっています。

プロトコルごとに守る範囲が違う

プロトコルを理解するときに大事なのは、それぞれが担当する範囲を分けて考えることです。

たとえば、HTTPSを使っているからといって、通信に関するすべての情報が隠れるわけではありません。 HTTPSは主に、ブラウザとWebサーバーの間でやり取りされる内容を保護します。

しかし、通信先のIPアドレス、DNS問い合わせ、通信量、接続タイミングなどは、別の視点で見える可能性があります。

また、従来のDNS問い合わせは暗号化されずに送られることがあります。 その場合、どのドメイン名を調べたのかが、ネットワーク上で見える可能性があります。

このように、あるプロトコルが何を守り、何を守らないのかを理解することが重要です。

匿名性を考えるうえで大事な視点

匿名性を考えるとき、プロトコルの理解は非常に重要です。

なぜなら、どのプロトコルを使っているかによって、見える情報や守られる範囲が変わるからです。

たとえば、HTTPSを使っていればWebページの内容は暗号化されます。 しかし、通信先のIPアドレスや通信のタイミングまで完全に隠れるわけではありません。

DNSの仕組みを理解していれば、Webサイトへアクセスする前にドメイン名の問い合わせが発生することが分かります。 TCPやUDPの違いを理解していれば、通信の性質や使われる場面を整理しやすくなります。 TLSの役割を理解していれば、暗号化される範囲と、暗号化されない可能性のある情報を分けて考えられます。

匿名性を高めるには、単に「暗号化されているか」だけを見るのでは不十分です。 通信のどの部分が見えるのか、どの部分が守られているのかを、プロトコルごとに分けて考える必要があります。

まとめ

プロトコルとは、通信を成立させるための約束事です。

送る側と受け取る側が同じルールに従うことで、コンピューター同士は正しくデータをやり取りできます。

Web通信では、DNS、HTTP、HTTPS、TCP、UDP、TLSなど、複数のプロトコルや仕組みが関係します。 それぞれは、通信の中で異なる役割を持っています。

DNSは、ドメイン名に対応するIPアドレスを調べる。 HTTPは、Webページのデータをやり取りする。 HTTPSは、HTTPの通信をTLSで保護する。 TCPは、正確性を重視してデータを届ける。 UDPは、速度やリアルタイム性を重視してデータを送る。 TLSは、通信内容を保護する。

1つの通信でも、複数のプロトコルが組み合わさっています。

匿名性を考えるうえでは、どのプロトコルが何を守り、何を見える状態にするのかを理解することが重要です。 プロトコルの違いが分かると、通信のどこが守られ、どこに情報が残る可能性があるのかを整理しやすくなります。

関連ツール

DNS Leak Test

DNSLeakTest

DNSLeakTestは、DNS問い合わせがどのDNSサーバーへ送られているかを確認できる検証サイトです。

紹介する理由: VPN使用中でもDNSだけが普段のISPや意図しないリゾルバへ出ていると、接続先ドメインの手がかりが残るためです。

URL : https://www.dnsleaktest.com/

外部サイトを開く

関連記事