Web通信の通り道と役割
ブラウザからWebサーバーまでの通り道をたどり、通信に使う決まりと役割を学びます。
このレッスンのメニュー
ブラウザでWebサイトを開くと、手元のコンピューターからWebサーバーへ要求が送られます。 Webサーバーが返したページのデータも、ルーターやアクセスポイントを通ってブラウザへ届きます。
このページでは、最初にデータが通る機器を確認します。 そのあとで、機器やソフトウェアがデータを正しく受け渡すための決まりを学びます。
ブラウザからWebサーバーまでの通り道
Wi-Fiを使う場合、手元のコンピューターが送ったデータは、まずアクセスポイントへ届きます。 アクセスポイントは、Wi-Fiでつながる機器を自宅や職場のネットワークへ接続します。
自宅や職場の外へ出るデータは、ルーターへ渡されます。 ルーターは、異なるネットワークの間でデータを次の行き先へ渡す機器です。 インターネット上では複数のルーターがデータを受け渡し、Webサーバーがあるネットワークまで運びます。
LAN、WAN、インターネットの関係
自宅、学校、会社の一つの拠点など、限られた範囲で機器をつなぐネットワークをLAN(Local Area Network)と呼びます。 手元のPCとアクセスポイントは、同じLANにつながっています。
離れたLAN同士をつなぐ広いネットワークをWAN(Wide Area Network)と呼びます。 通信事業者の回線や、会社の拠点間ネットワークが例です。
インターネットは、家庭、会社、学校、通信事業者、クラウド事業者などが管理する多数のネットワークを相互につないだものです。 一つの会社が管理する一個のWANではなく、管理者の異なるネットワーク同士が接続されています。
ブラウザとWebサーバーは、利用者へ見せる内容を扱います。 途中のアクセスポイントやルーターは、その内容を画面に表示せず、データを次へ渡します。
データを受け渡すための決まり
別々に作られたブラウザ、OS、ルーター、Webサーバーが通信するには、データの並べ方や処理の順序を揃える必要があります。 たとえば、宛先をデータのどこへ書くか、受信したデータをどのプログラムへ渡すか、要求と返事をどう表すかを決めておきます。
通信する機器やソフトウェアが共有する、このような決まりをプロトコルと呼びます。 一回のWeb通信では、異なる役割を持つ複数のプロトコルを組み合わせます。
| プロトコル | この通信で決めること | 主に処理するもの |
|---|---|---|
| HTTP | ブラウザが何を求め、Webサーバーが何を返すか | ブラウザとWebサーバー |
| TCP | データをどのプログラムへ渡し、欠けたときにどう送り直すか | 送信側と受信側のOS |
| IP | 異なるネットワークを越えて、どの宛先へ運ぶか | 送受信するOSとルーター |
| Ethernet、Wi-Fi | 現在つながっているネットワーク内で、次の機器へどう渡すか | OS、アクセスポイント、スイッチなど |
Webサーバーへ送るHTTPの要求をTCPで運ぶ場合、ブラウザはHTTPのデータをOSへ渡します。 OSはTCPとIPの処理を行い、ネットワークへ送ります。 ルーターはIPの宛先を使って、データを次のネットワークへ渡します。
受信側では、WebサーバーのOSがTCPとIPを処理します。 OSは受信したHTTPのデータを、待ち受けているWebサーバーのプログラムへ渡します。
通信の役割を層に分ける
Webサイトを開けない原因には、Wi-Fiが切れている、宛先までの経路がない、Webサーバーが要求を受け付けていない、といった違いがあります。 原因によって、確認する機器やソフトウェアも変わります。
通信に必要な役割を上下に分けたものを層(レイヤー)と呼びます。 上の層は利用者やアプリに近い処理を担当し、下の層はデータを信号として送る処理に近づきます。
OSI参照モデルは、通信の役割を七つの層に分けて説明するためのモデルです。 インターネットの説明では、役割を四つほどにまとめたTCP/IPモデルも使われます。
| OSI参照モデル | 役割 | 代表例 |
|---|---|---|
| 7 アプリケーション層 | アプリ同士がやり取りする内容を決める | HTTP、DNS、SSH |
| 6 プレゼンテーション層 | データの表し方を揃える | 文字コード、暗号化 |
| 5 セッション層 | やり取りの開始、維持、終了を扱う | セッション管理 |
| 4 トランスポート層 | どのプログラムへ届けるか、欠けたデータを送り直すかを扱う | TCP、UDP、ポート番号 |
| 3 ネットワーク層 | 異なるネットワークを越えて宛先へ運ぶ | IP、IPアドレス、経路 |
| 2 データリンク層 | 同じネットワークにつながる次の機器へ渡す | Ethernet、Wi-Fi、MACアドレス |
| 1 物理層 | ビットを電気、光、電波の信号として送る | ケーブル、光ファイバー、電波 |
送信するときは各層の情報が加わる
ブラウザはHTTPの要求を作り、OSへ送信を依頼します。 送信側のOSは、TCPのポート番号やIPのアドレスなど、データを運ぶために必要な情報を加えます。 同じネットワークへ送るための情報も加え、ネットワークインターフェースへ渡します。
受信側のOSは外側の情報から順に読みます。 最後に、HTTPの要求を待ち受けているWebサーバーへデータを渡します。
各層が、自分の役割に必要な情報を加える処理をカプセル化と呼びます。 ルーターはIPの情報を使うため、通常はHTTPに書かれたURLを読まずにデータを転送できます。
宛先を指定する四つの情報
通信相手を指定する情報は、使う場所によって異なります。
| 情報 | 何を指定するか | 主に使うもの |
|---|---|---|
| ホスト名 | 人が識別しやすい接続先の名前 | ブラウザ、OSの名前解決機能、DNSサーバー |
| IPアドレス | ネットワークを越えて届ける接続先 | 送受信するOSとルーター |
| ポート番号 | 一台のコンピューター内で通信を受け取るプログラム | TCPやUDPを処理するOS |
| MACアドレス | 現在つながっているネットワーク内の接続先 | OS、スイッチ、ネットワークインターフェース |
https://example.com:443/docsというURLでは、example.comがホスト名、443がポート番号、/docsがWebサーバーへ要求する場所です。
ブラウザはDNSを使い、ホスト名に対応するIPアドレスを調べます。
IPアドレスはネットワークインターフェースに設定されます。 コンピューターを別のネットワークへつなぐと、IPアドレスが変わることがあります。
最初にどこを確認するか
次の現象では、どの機器やソフトウェアから確認するか考えてみましょう。
- Wi-Fiの表示が切断になっている
example.comの名前だけ調べられない- 相手のIPアドレスまでは届くが、Webサーバーへ接続できない
- Webサーバーから
404 Not Foundが返る
一つ目は手元のコンピューターとアクセスポイントの接続を確認します。 二つ目はホスト名をIPアドレスへ対応付けるDNSを確認します。 三つ目はポート番号の待ち受けや通信を許可する設定を確認します。 四つ目はHTTPの要求先とWebサーバーの設定を確認します。
次は、同じLANへ直接送るか、ルーターへ送るかを判断する
このページでは、LANの外へ送るデータをルーターへ渡すところまで確認しました。 次のIPアドレスとルーティングでは、PCが自分と宛先のIPアドレスを比べ、同じLANへ直接送るか、LANの出口にあるルーターへ送るかを決める仕組みを学びます。
このレッスンは完了
このページで扱った流れを確認したら、次の内容へ進みます。