パソコン実習室
アドレスとポート
≪ previous  

Ⅳ.パケットを運ぶ

IPアドレス、MACアドレス、ポート番号は、パケットを運ぶ上でどんな働きをするのでしょう。 パソコンで作られたパケットがサーバーまで届けられる(あるいはその逆)時の様子から、その役割が見えて来ます。

Ⅳ.1.Wi-Fiルーターの仕事

 パソコンを出発したパケットは、一般にWi-Fiルーターを経由してインターネットへ進みます。
Wi-Fiルーターは、NAPT※1の機能を使ってグローバルIPアドレスとローカルIPアドレスの相互変換を行い、LANとインターネット間の接続を仲介します。

※1 NAPT(Network Address Port Translation:ネットワークアドレスポート変換)
『1 対 1』の変換を行うNAT(Network Address Translation)を拡張した機能。
IPアドレスとポート番号を変換対象とすることで、『1 対 多』(1つのグローバルIPアドレスと複数のローカルIPアドレス)の変換を可能としています。

NAPTはこの外にIPマスカレード、アドバンスドNAT等々様々な名称で呼ばれます。
特にIPマスカレードはLinuxに実装されて広まった経緯から広く浸透しています。
NATとNAPTは本来別物ですが、説明書等に書かれているNATの記述は、NAPTを指している場合がほとんどです。



【 LANとインターネットの仲介をする 】
 Wi-Fiルーターは傘下のユーザー(パソコン等)からインターネット接続のパケットを受け取ると、ユーザーのIPアドレスをISPから割り振られたIPアドレスに、またユーザーが選択したポート番号を自身が管理するポート番号に書き替えて、インターネット接続の仲介を行います。

 右図は、ユーザーA, Bそれぞれの、ホームページ閲覧とメールチェックの様子を模式化したものです。
 Wi-Fiルーターはそれぞれのパケットの一部を書き替え、自身の要求として各サーバーとの通信を行います。

 以下では、パソコンとWi-Fiルーターの間で送受信されるパケットの一部(IPアドレスとポート番号)に着目して、異なるネットワーク間の通信の仕組みを見て行きます。
ISPからWi-Fiルーターに割り当てられたグローバルIPアドレスを 123.4.5.6 と仮定します。
ユーザーAがアクセスするwebサーバーと、ユーザーBがアクセスするメールサーバーのIPアドレスを、それぞれ以下のように仮定します。
webサーバー : 22.22.2.2  メールサーバー : 99.99.9.9
フレームは省略し、パケット内のIPアドレスとポート番号のみ注目します。
ユーザーA, B の使用しているパソコンを、パソコンA, B としています。


(1) ユーザーAがホームページ閲覧を始めると、パソコンAは次の作業を行います。
空きポート番号(51111)を選択してブラウザに割り当て、通信文(ホームページの要求)や宛先・送信元のIPアドレス、宛先ポート番号と共にパケットに書き込んで送出します。(webページ アクセスなので宛先ポート番号は 80 です)
◎ webサーバーのIPアドレスをURLから検索する方法は「アドレス検索-DNSの話」を参照。


(2) パソコンAのパケットを受けたWi-Fiルーターは変換動作を開始します。
要求パケットの送信元IPアドレス(192.168.1.2)と送信元ポート番号(51111)を参照し、NAPT管理テーブルの内部IPアドレス・内部ポート番号と比較※2します。同じ組み合わせが無ければ新規の通信と判断、外部通信用の空きポート番号を選択(60001)して割り当て、インターネット側のIPアドレス(123.4.5.6)と共に管理テーブルに記録※3します。
(3) Wi-Fiルーターは要求パケットの送信元IPアドレスと送信元ポート番号を外部通信用(123.4.5.6と60001)に書き換えてインターネット側へ送信します。
◎ 前項(2)の検査で同一内容の記録を検出した時は、一致したレコードの外部IPアドレス・
  ポート番号を適用して書き換えます。


(4) 同じ頃ユーザーBはメールチェックを始めました。パソコンBは以下の作業を行います。
空きポート番号(52222)を選択してメール アプリケーションに割り当て、通信文(メール受信要求)や宛先・送信元のIPアドレス、宛先ポート番号と共にパケットに書き込んで送出します。(メール受信なので宛先ポート番号は 110 です)
◎ メール サーバーのIPアドレスをURLから検索する方法は「アドレス検索-DNSの話」を参照。


(5) パソコンBのパケットを受けたWi-Fiルーターは変換動作を開始します。
要求パケットの送信元IPアドレス(192.168.1.3)と送信元ポート番号(52222)を参照し、NAPT管理テーブルの内部IPアドレス・内部ポート番号と比較※2します。同じ組み合わせが無ければ新規の通信と判断、外部通信用の空きポート番号を選択(60002)して割り当て、インターネット側のIPアドレス(123.4.5.6)と共に管理テーブルに記録※3します。
(6) Wi-Fiルーターは要求パケットの送信元IPアドレスと送信元ポート番号を外部通信用(123.4.5.6と60002)に書き換えてインターネット側へ送信します。
◎ 前項(5)の検査で同一内容の記録を検出した時は、一致したレコードの外部IPアドレス・
  ポート番号を適用して書き換えます。

 要求パケットを受信した各サーバーは要求に応じた処理を実行し、その結果を応答パケットにして送り返します。以下はwebサーバーが応答パケットを返した時の概略です。
(7) webサーバーがホームページのデータを応答パケットにして送り返してきました。
応答パケットの宛先IPアドレスと宛先ポート番号には、要求パケットに記述されていた送信元のIPアドレス(123.4.5.6)とポート番号(60001)がそのまま入っています。
◎ webサーバーは応答パケットをWi-Fiルーター宛に送ります。
(8) インターネット側からパケットを受信したWi-Fiルーターは、受信したパケットの宛先IPアドレス(123.4.5.6)と宛先ポート番号(60001)を参照し、NAPT管理テーブルの外部IPアドレス・外部ポート番号と比較※4検出します。同じ内容の組み合わせがあれば正規な応答として処理を続行、検出されなければ不正アクセス※5と判断してそのパケットは破棄します。


(9) Wi-Fiルーターは比較・検出したレコードの内部IPアドレス(192.168.1.2)と内部ポート番号(51111)をピックアップし、その値で応答パケットの宛先IPアドレスと宛先ポート番号を書き換えてLAN側へ送信します。
(10) 応答パケットを受信したパソコンAは、宛先ポート番号(51111)参照して要求元のアプリケーションを判別し、パケットの本文(ホームページのデータ)をブラウザに渡します。※6

※2 比較検査の対象となる項目はこの他に、宛先のアドレスやポート番号、プロトコル種類(TCP or UDP)等があり、メーカーや製品ごとに異なります。
※3 NAPT管理テーブルに記録する項目は上記説明の外に、宛先IPアドレス、宛先ポート番号、プロトコル種類(TCP or UDP)等があります。実際に記録する項目はメーカーや製品ごとに異なります。
NAPT管理テーブル リストの1行を、ここではレコードと呼んでいます。
レコードにも有効期限があって有効期限を過ぎたレコードは削除されます。
有効期限は数十秒~数日です。
※4 比較検査の対象となる項目はこの他に、送信元のアドレスやポート番号、プロトコル種類(TCP or UDP)等があり、メーカーや製品ごとに異なります。
※5 外部からのアクセスを許可できるWi-Fiルーターもあります。LAN内部に公開用のサーバーを設置した場合などに、条件を決めて内部へのアクセスを許可します。
※6 同一パソコン内で複数のブラウザやアプリケーションが同時に通信を行っていても、それぞれ割り当てられているポート番号が異なるので受信データの受け渡しは適切に行われます。


Ⅳ.2.転送方法

 パケットがインターネット内を運ばれる様子は、宅配に代表される物流システムに似ています。それぞれの転送の仕方をザックリと眺めてみます。

Ⅳ.2.1.宅配便の場合

 ある荷物を遠方に届けたい時、段ボール箱に品物を詰め、荷札に宛先(お届け先)や依頼者の情報を記入し、宅配事業者に依頼すれば数日のうちに届きます。
宅配便の荷物が間違いなく届くのは、多くのトラックや集配拠点の関わりがあるからです。


 営業所や集配所に届いた荷物はトラックから下ろされ、荷札の宛先に基づいて転送先(次に向かうべき拠点)が決まります。
 転送先の決まった荷物は、方面別のトラックに積み替えて送り出します。
 こうした転送を拠点ごとに繰り返すことで、物流システムは成り立ったいます。

【 宅配便の転送方法 】
 下図は宅配便の荷物が転送される様子を模式化したものです。
例えば、「A電機店」が「B」さん宛に商品を発送したとしましょう。
「A電機店」を出発した荷物は、集配拠点や物流センターを経由するたびに次々とトラック乗り換えて目的地まで届きます。


積み荷をパケット、荷札をパケットの制御情報、各トラックをフレームと考えれば、そのままインターネットの考え方になります。


Ⅳ.2.2.インターネットの場合

 パソコンを出発しWi-Fiルーターを経由したパケットは、いよいよインターネットの世界へ踏み出します。真っ先に向かうのは契約しているISP(プロバイダー)ですが、その先はどのようにして目的のサーバーまで届くのでしょう。

 ISPは専用のルーターやスイッチ、伝送路を使って自社のネットワークを組み、インターネットはこうしたISPが相互につながり合った、巨大ネットワークと言えます。
インターネット内でパケットを運ぶにあたり、パケットの転送先を判断して送り出す仕事はISPのルーターが担っています。

【 ISPルーターの役割 】
 下の概略図はISPルーター(図の中央)の働きを模式化したもので、ISPルーターがフレームからパケットを抜き出し、次の転送先へ送り出す様子を示しています。

青枠はIPパケット、オレンジ枠はMACフレームを表します。
IPアドレス、MACアドレスのみを表記し、他の情報は割愛しています。
パケット内の数字はIPアドレス、フレーム内の英数字はMACアドレスを表しています。


自分(c3-c3・・c3)宛てのフレームを受信したISPルーターは、次の処理を行います。
  1. 受信フレームからパケットを抜き出す。
  2. 保有している経路情報※7を参照し、宛先(123.4.5.6)に適した転送先(d4d4…)を決める。
  3. 転送先、転送元を記入したフレームを作り、抜き出したパケットをフレームの末尾に追加する。
  4. 完成したフレームを転送先へ送り出す。
※7 経路情報
パケットの転送経路を選択するための情報で、各ルーターには経路表(Routing Table)として保存されています。

【 パケット転送方法 】
下図はインターネットの中をパケットが転送される様子を模式化したものです。
各IPアドレスは図の通りですが、パケット内では以下のように省略表記しています。
[ AさんWi-Fiルーター:123.4… ]、 [B社サーバー:22.2… ]
MACアドレスも表記省略しています。省略方法は下記の通りです。
[正表記:a1-a1-a1-a1-a1-a1]、[各拠点:a1-a1…a1]、[フレーム内:a1a1…]

例えば、AさんがB社のサーバーへアクセスしたとしましょう。
 Aさんが送り出したパケットはフレームに載ってWi-Fiルーターを出発(左下)し、いくつかのISPを経由するたびフレームを乗り換えるようにしてB社のサーバーまで届きます。
 各ISPは、パケットの宛先に最適な転送先を選択し、パケットを転送先へ向かうフレームに載せて送り出します。
フレームはISPを経由するたびに新たな情報(転送先等)で作成されますが、パケットの内容はWi-Fiルーターを出た時から最後まで変わりません。※8



※8 最後まで変わらない
実際には制御情報のTTL(Time To Live)の値を、1つ減算した値に書き換えます。
パケットの無限ループを防ぐための対策で、TTL値が 0 になるとパケットは破棄されます。
※9 ◇ ISP / IX
ISPまたはIXを表しています。どちらを通るかは相互接続の状況によって変わります。
◇ IX (Internet eXchange)
ISPや各種インターネット事業者を相互接続するための通信施設で、インターネット接続の集約拠点とも言えます。大都市に拠点を持ち、全国ネットを構成しています。
ISPはIXと接続することで接続点を持たないISPとも通信可能になります。





前ページ  1 2 3 -

≪ previous [[ アドレスとポート ]]