第 2 回 プロトコル、パケット通信

本日の内容


このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。

今回の内容は Linux 標準教科書 v.2.0.0 の第10章と似ています

2-1. インターネットの仕組み

インターネットが生まれる前の通信は、決まった相手を意識していました。 これを接続(Connection)などと呼びます。 電話回線は、通話している間、自分と相手との通信線を確保し、専有します。 電話交換機は電話番号の入力により、相手との通信線の接続を確保するもの です。 電話のネットワークの構造は、各電話は電話局とつながるスター型となっています。

インターネットの発明の一つのアイディアは、通信線の一部が故障しても通 信が可能な分散ネットワークという構造になっていることです。 これを実現するには、送信者が通信経路を決定するソース・ルーティ ングではなく、中継地点が通信経路を決定するホップバイホッ プルーティングである必要があります。 さらに、通信中に任意に経路が切り替わるために、発明者のポール・バラン は貨物の貨車を、イギリスの研究者ドナルド・ワッツ・デイヴィスは小包を 考えました。 どちらも、送信するデータの単位は一定の大きさとし、個々のデータに宛先 情報を含めるというアイディアです。 このような通信方式をデイヴィスの名付けによってパケット通 信と呼びます。

インターネットでは、小規模なネットワーク間を中継装置が中継する構成に なっています。 そのため、宛先情報であるアドレスには、受信者固有の情報の 他に、インターネットを構成している個別のネットワークのうちのどのネッ トワークに属しているかの情報も必要です。 このため、インターネットでは、ネットワークにネットワークアドレスが振 られ、さらに接続している端末にはホストアドレスが振られています。 そして、それらを組み合わせたアドレスをIPアドレスと言います。

アドレスは全インターネットを通じて、唯一でないとなりません。 それを保証するために、現在のインターネットは国際組織ICANNで管理され、 世界5地域に分割管理され、さらに、国ごとに管理組織を置いています。 日本の管理組織は JPNIC です。 IPアドレス自体は管理ルールがあり、また使用料がかかりますので、通常、 インターネット組織は一つのネットワークアドレスを持っています。

一方で、通信装置の特性として、通常は100台程度の装置しか接続できない ことが多いです。 すると、一組織一ネットワークアドレスでは、単純に考えると100台程度しか接続でき ないことになってしまいます。 そのため、組織内で、さらにネットワークアドレスを分割して使う サブネットアドレスという、組織内だけで通用するネットワー クアドレスを使用できるようになっています。 組織内で任意に設定できるため、サブネットを示すため、 サブネットマスクサブネット長 という情報を付加します。

現在広く使用されているIPv4(インターネット・プロトコルバージョン4)で は、IPアドレスは 32bit で、8bit 毎の10進数を.(ピリオド)で区切って表 現されます。 そのうち、ネットワークアドレスはアドレスにより可変長になっています。

なお、IPアドレスのうち、ホスト部分のビットがすべて0 のアドレスは特定 のホストを表さない、ネットワークアドレスとして使われます。 一方、ホスト部分のビットがすべて1のアドレスはすべてのホスト表す ブロードキャストアドレスと呼ばれます。 また、サブネットマスクやサブネット長はアドレスの後に/(スラッシュ)を つけて付記します。

クラスアドレスネットワークアドレ ス
A0.0.0.0〜127.0.0.00〜127
B128.0.0.0〜191.255.0.0128.0〜191.255
C192.0.0.0〜223.255.255.0192.0.0〜223.255.255
133.20.160.1
クラスBのIPアドレス。ネットワークアドレスは 133.20.0.0
133.20.160.1/255.255.255.0
255は 8bit のビットすべてが1である数です。/の後はサブネットマス クを表し、3組目までのアドレスに対応するサブネットマスクのビットが1で あることを意味しています。 つまり、これは、 133.20.160 までがネットワークアドレスで、最後の 1 だけがホストアドレスであることを示しています。 133.20 はもともとクラスBのアドレスなので、160 がサブネットアドレス であることがわかります。
133.20.160.1/24
/の後が単なる数の場合、これはサブネット長を意味しています。24bit は 8bit で区切ると3桁になるので、実際には 133.20.160.1/255.255.255.0 と同じ意味になります。

特殊なIPアドレス

0.0.0.0/0.0.0.0
デフォルト(インターネット全体)
10.0.0.0(クラスA)
プライベートアドレス(無許可で自由に使用可能。但し、組織外に流す のは禁止)
127.0.0.0
ループバックアドレス(自分自身)
172.16.0.0〜172.31.255.255(ネットワークアドレス16個、クラスB)
プライベートアドレス。実験に最適。
192.168.0.0〜192.168.255.255(ネットワークアドレス256個、クラスC)
プライベートアドレス。家庭用のルータなどに使われている。
255.255.255.255/255.255.255.255
ローカルネットワーク全体

ドメインネームサービス

インターネットの通信は IP アドレスで行われますが、このアドレスに組織 の名前をつけて、それをIPアドレスに変換するネットワークサービスがあり ます。 このサービスを利用するにはネームサーバーを設定する必要があります。

ネームサーバーを正しく設定してある端末では、名前から、その名前で 登録してあるIPアドレスを検索して、利用できるようになります。 例えば、edu.net.c.dendai.ac.jp という名前は 133.20.160.42 というアド レスで登録してあるので、名前でもIPアドレスでも同じように使えます。

2-2. プロトコルと階層構造

TCP/IP

インターネットの開発当初は、ファイルを転送するためのソフトウェアを作っ ていました。 これは、以下の手順となります。

  1. ファイルをパケットの分解して、パケットを送ることと、
  2. パケットを転送することと、
  3. パケットを受け取って、パケットを組み立ててファイルを構成す る

開発当時、メモリーも中継装置もともに高額でした。 中継装置に組み込むのは転送するだけにすれば良いことがわかり、そこのソ フトウェアだけ独立しました。 もともとはTransmission Control Protocol という名前でしたが、そこから、 ネットワーク間の転送部分だけのソフトを Internet Protocol という名前 で分離しました。 この2つのインターネットの中核のソフト(プロトコル)の組を TCP/IP と 呼びます。

もともとのネットワークは ARPA で開発していたので ARPANET と呼ばれて いましたが、後に、この IP を使用するネットワークを Internet と呼ぶよ うになりました。 インターネット発明当時は転送装置は Interface Message Processor と呼 ばれてましたが、後に Router と呼ばれるようになりました。

階層構造

WWW の通信プロトコルは TCP を用います。 TCP には全部で 65536 個のポートがありますが、そのうちの 80 番を使い ます。

一方で、IP はネットワーク間の転送を行うプロトコルなので、個々のネッ トワークの通信は固有の仕組みで通信が行われます。 例えば、 Ethernet や Wifi などの方式が使われます。 これらはネットワーク内のみの通信を前提としていますが、パケット通信で あり、固有のアドレス(Media Access Control アドレス、 MACアドレス、ハードウェアアドレス)と呼ばれます。

その結果、Ethernetを流れるWeb の通信のパケットは概ね次のようになります。

Ethernet パケット
ヘッダボディ(ペイロード)
宛先MACアドレス送信者MACアドレス
IPパケット
ヘッダボディ(ペイロード)
宛先IPアドレス送信者IPアドレス
TCPパケット
ヘッダボディ(ペイロード)
宛先TCPポート送信者TCPポート
HTTPパケット
GET /index.html HTTP/1.0↓↓

転送の仕組み

インターネットは多くのネットワークを接続したネットワークです。 通信を行う場合、ネットワーク内とネットワーク外との状況が考えられます。

ネットワーク内の通信では、そのネットワークの機能を使用した通信を行い ます。 但し、インターネット通信を行うには、送受ともIPアドレスを用いた通信に なります。 したがって、ネットワーク装置のアドレスとIPアドレスの対応付が必要にな ります。 これを行うが Address Resolution Protocol(ARP)というプロトコルです。 ARP プロトコルで、相手先の MAC アドレスを調べてから、その MAC アドレ ス宛にパケットを送ります。

ネットワーク外への通信の場合、転送装置(ルータ)に送ります。 転送装置は最低で一台あれば良いですが、あらゆる外部宛の通信を送る転送 装置をデフォルトゲートウェイと呼びます。 それぞれの端末はデフォルトゲートウェイとなる IPアドレスを登録してお く必要があります。 デフォルトゲートウェイ自体は必ずネットワーク内にありますので、転送の手順はネットワーク内通信に準じます。

2-3. 演習

演習2-1

ipconfig コマンドを使って、使っている端末の下記の項目を調べなさい。 なお、出力されている情報が足りない場合はipconfig /all | more を使うこと。

  1. IPアドレス
  2. サブネットマスク
  3. デフォルトゲートウェイ
  4. MACアドレス
  5. ネームサーバーアドレス

演習2-2

nslookup コマンドを使って、以下のアドレスの IP アドレスを 求めなさい。

  1. www.dendai.ac.jp
  2. www.google.com
  3. www.amazon.co.jp
  4. www.microsoft.com

演習2-3

Wireshark を起動してパケットを観察しなさい。

Wireshark を起動したままで Teraterm を利用し edu.net.c.dendai.ac.jp に 80 番で接続し、 GET /index.html HTTP/1.0 を打ち、 HTTP プロトコルが、 Ethernet 上をどのように流れるかを観察しなさい。


坂本直志 <sakamoto@c.dendai.ac.jp>
東京電機大学工学部情報通信工学科