第 3 章 コンピュータネットワーク
3.1 コンピュータネットワークとは
最近になって,「インターネット」という言葉が世間でもてはやされるようになった. しかし,インター ネットが実際にどのようなものであるかを知る人は少ないのではないだろうか?ここでは,インターネット とはどのようなものか,その内容についての解説をする. インターネットに関する文献としては
[1], [2]
等 にまとめられている.3.1.1
コンピュータネットワークの歴史コンピュータネットワーク
(computer network)
とは, 大型計算機, UNIX ワークステーション,パー ソナルコンピュータなどを通信回線で接続し,相互にデータ(情報)の交換を行うシステムを指す.冒頭の歴史にも述べた通り,コンピュータネットワークは,1969年の
ARPANET
に始まる. このこ ろのネットワークは2台のコンピュータの間を電話回線による情報のやり取りを,一定時間ごとに複数のコ ンピュータの間で行うことで仮想的なネットワークを作っていた1 .
Host A Host B
Host C Host D
毎時0分 毎時0分
毎時20分 毎時20分
毎時40分 毎時40分
特定のコンピュータは通信時には他の1台としか通信でき ない場合に
,
4台のコンピュータによる相互の電話回線での 接続には,
このようなスケジュールで通信を行えば良い.
こ の場合,
20分以内にデータの転送が終了しなければ,
他の ホストへのデータ転送に影響が出る.
コンピュータネット ワークに接続された各コンピュータはホスト( host )
と呼ば れる.
電話回線による転送を行っていた時代
2
では通信速度は最大でも9600 bps 3
であった.その後, 専用回線を利用し, TCP/IPと呼ばれる通信規約を採用した,常時接続型のネットワークに移行 していく.
1
UUCP (Unix to Unix CoPy)
と呼ばれる規格.2
1990
年頃までは,電話回線での通信の方が主流であった.3
bps
とはbits per second
のこと.一般に電話回線では非同期通信を行うため, 8ビットのデータを転送するためには10
ビッ トのデータを送る必要があった.したがって,20分間(=1200秒間)に送ることの出来るデータ量は,およそ1 M
バイト程度 であることがわかる.一般にバイトを省略する記号として“B”
を使い,ビットを省略する記号として“b”
を使う.海外(主にアメリカ) 日本
1979
USENET
1981
CSNET
1982
ARPANET
がTCP/IP
を採用1984
DNS
の開発JUNET (UUCP)
1986
NFSNET
1988 東京大学・東京工業大学・慶応義塾大学間
を専用回線で接続する
WIDE
プロジェ クト1989
CompuServe
とインターネットの接続
1990 初の商用プロバイダ
“The World”
ARPANET
終了この表にもある通り, 1980年代半ば頃までには, アメリカ国内の主要研究機関はコンピュータネット ワークにより相互に接続されていた. 日本国内では,1998年の
WIDE
プロジェクトにより,はじめて 常時接続型のネットワークの実験が始まる.海外(主にアメリカ) 日本 1991
WWW
の開発1992 日本初のプロバイダ
IIJ, AT&T Jens
1993
InterNIC
の設立IIJ
によるIP
接続の開始1994 日本インターネット協会設立, JUNET 解散
1990年代初頭には,国立主要大学内と大学間コンピュータネットワークが整備され,国立主要大学や企 業間で常時接続型のネットワークが利用できるようになる.
3.1.2 LAN
とインターネットコンピュータネットワークの中で
LAN
とはLocal Area Network
の略であり, 一つのビル内のネット ワークや, 大学キャンパス内のネットワークのように, 地理的に限定された場所に設置されたネットワー クを指す. より詳しくは, LAN単位で論理的にネットワークが閉じているものを指す.WAN
とはWide
Area Network
の略であり,広域に広がるネットワークを指す言葉で, LANから見たとき外部のネットワークのことを
WAN
と呼ぶ.名古屋大学の場合,(基本的には)一つの建物ごとに
LAN
が構成され,いくつかの建物内LAN
を結ぶLAN
10数個が相互に接続され,大学全体のLAN
を構成している. 一方,日本全体を見たとき,文部科学 省学術情報ネットワーク(SINET)
のバックボーン(backborn)
と呼ばれる高速ネットワークがあり,いく つかの大学がバックボーンに接続され, バックボーン接続点から近隣の大学へ接続されている.(SINET接続図.
http://www.sinet.ad.jp/
より転載)日本国内には他に
WIDE, IMnet
などいくつものバックボーン・ネットワークが存在し, 大学・企業等は それぞれに応じたネットワークに接続し, それぞれのバックボーンは相互に接続し,一方で, 海外へも接続 を行っている.このように多くのネットワーク(この場合はバックボーン単位で一つのネットワークと考えている)が 相互に接続された現在のネットワークをインターネット
(Internet)
と呼ぶ.3.1.3
ネットワークのハードウェア今日のコンピュータネットワークは,ホスト・コンピュータを含む各種のネットワーク機器を相互にネッ トワーク・ケーブルで結ぶことで構成されている. ここでは,どのようなケーブルや機器が利用されている かを解説しよう.
3.1.3.1
ネットワークケーブル現在のコンピュータネットワークは,一部の例外を除くと,ネットワークは有線ケーブルで接続する. こ れらのケーブルは金属線(メタル)のものと光ファイバー
(Optical Fiber)
のものがある.3.1.3.1.1
メタルケーブルによるネットワークネットワークケーブル(メタル・主要なもの)
規格名 通信速度 接続トポロジー コネクタ形状 ケーブル形状
10Base-5 10Mbps
バス接続AUI
コネクタ(D-Sub 25 pin)
同軸10Base-2 10Mbps
バス接続BNC
コネクタ 同軸Token Ring 4Mbps/16Mbps
リング接続RJ-45 UTP-3
10Base-T 10Mbps
スター接続RJ-45 UTP-3
100Base-TX 100Mbps
スター接続RJ-45 UTP-5
1000Base-TX 1Gbps
スター接続RJ-45 UTP-6
この表の中で, 10Base-5 の太い同軸ケーブルは被膜が黄色のものが多かったため, “Yellow Cable” と呼 ばれることがある. 現在は
UTP
ケーブル(Unshielded Twisted Pair,
より対線) を利用した10Base-
T/100Base-TX
が主流である. これは, 被膜なしの細い8芯のケーブルで,取り回しが容易な上,コネクタが
RJ-45
と呼ばれる,電話用コネクタのちょっと大きいものを利用しているため,接続も容易であるという理由で良く利用されるようになった.
通信速度が
10Mbps
ということは, 10MHzの信号がケーブル内を流れることとなるため,ケーブルの回 りには誘導磁場が発生する. 同軸ケーブルは芯線の回りをシールドが覆っているため,誘導磁場はシールド で遮断されるが, 10Base-T等に利用されるケーブルは, 取り扱いを容易にするため, “Unshielded”となっ ているが,互いに拠り合わされた2本の信号線上に信号を流すことにより,外部への磁場の漏洩を防いでいる
4 . UTP
のカテゴリ(category)
とは,単位長さにおける拠りの回数により決まる規格であり,高速通信用のケーブルほど拠り回数が多くなければ安定した信号を流すことは出来ない.
左は
FDDI
光ファイバーケーブル.
2つの光ファイバーの端面があること がわかる.
右は
UTP-5
ケーブルとRJ-45
コネクタ. UTP-5
ケーブルが4組の拠り 対線で構成されていることがわかる.
3.1.3.1.2
光ケーブルによるネットワーク 光ケーブルとは,純度の高い石英ガラスをファイバー状にしたコアと呼ばれるケーブルを, クラッドと呼ばれる被膜で覆ったもので,その中をレーザ光線を流し,光の 全反射を利用してケーブルの他端へ通信を行う. ケーブルのコアは直径
50
〜60 µ
程度であり,容易に折 れてしまうため,取り扱いには注意を要する. 現在利用されている光ケーブルは,シングル・モードとマル チ・モードの2種類があり,直進光を伝送対象とするものがシングル・モード,屈折光を伝送対象とするも のがマルチ・モード光ファイバーである.光ケーブルでは磁場の問題は発生しないため高速通信が可能である. さらに,異なった波長の光を同一の ファイバー状に流すことができるため通信の多重化が可能となり,これらの性質を組み合わせることにより 超高速通信が可能になっている.
光ファイバーを利用した主な通信規格
規格名 通信速度 接続トポロジー
ATM 100Mbps
〜600Mbps
程度 対向FDDI 100Mbps
リング10Base-F 10Mbps
スター接続100Base-FX 100Mbps
スター接続1000Base-FX 1Gbps
スター接続ATM
は日本国内の電話回線交換器のなすネットワークに用いられている.3.1.3.1.3 ISDN/ADSL/無線 LAN
通常の家庭で利用する電話回線を経由したIP
接続と呼ばれて いるものの中で,ISDN (Integrated Services Digital Network)
と呼ばれるものがある. ISDNで利用され るケーブルは,通常の公衆回線と同様の6極4芯の電話線と同一である.4
10Base-T/100Base-TX
では,8芯のケーブルのうち,2組4本しか利用していない.2組はTX/RX
と呼ばれ,あるホストか ら見たとき,受信用(RX)
と送信用(TX)
として利用される. TX/RXの片側づつを利用するモード(半二重通信)と, TX/RXを 同時に利用するモード(全二重通信)があり, 100Mbpsと呼ぶときには半二重通信での速度を表す.また, TX, RXのそれぞれは2 本1組になったいるが,それぞれのケーブルはTX+, TX −
またはRX+, RX −
と呼ばれ,同じ信号を論理を変えて送信することに より,送信データの信頼性を高めている.すなわち, +側は正論理で送信し,−
側は負論理で送信することで,受け取ったデータの差 をとることで受信データを決定する.このような転送方法をディファレンシャル転送(differential transfer)
と呼ぶ.ハブとホスト間を繋ぐケーブルは, TX-TX, RX-RXと接続された「ストレート・ケーブル」を用いる. ハブのポート内部では
TX-RX
信号線を入れ替える配線になっているため,ホストのTX
信号線のデータはHUB
では受信信号線となる. ハブとハブを接続する場合,または,ホストとホストを接続する場合には, TX-RXとなる接続をした「クロス・ケーブル」を用いる.
最近,一般家庭での常時接続のために,ケーブルネットワークや
ADSL (Asymmetric Digital Subscriber
Line)
が評判になっているが,これらは通常はメタル同軸ケーブルを用いる. Cable ネットワークは,通常音声や画像などを配信するために利用されるが,ケーブルの通信帯域がある程度広いことを利用して,音声 や画像情報を流す帯域とは異なる高周波帯域にデータをアナログ変調して搬送している. ADSLでも,通常 の音声通信を行う帯域とは異なる高周波帯域にデータをアナログ変調して搬送する. そのため,電話局から の距離が遠くなると,高周波帯域にノイズが入りやすくなるので, ADSLの高速通信を行うには電話局から の距離がある程度近いことが必要となる. ADSL, Cableネットワークでは通常モデム
(modem)
を利用す るが,一般にモデムとはデジタル信号をアナログ変調する機器のことを指す.また, 最近になって, IEEE 802.11b という規格の元での無線LAN
5
に注目が集まっている. これは11Mbps
の通信無線で行う規格であり, 2.4GHzの周波数帯域6
を利用する.3.1.3.1.4 WAN
で用いられる媒体 広域ネットワークを構成する場合には, ISDN 交換網, 専用回線,X.25,
フレームリレーなどの方法を利用する. 専用回線は2つのLAN
の間を専用の光ファイバーなどで接続する方法で, 回線自体に他の利用がないため,セキュリティ上非常に安全であるが,回線設置費用, 維持 費用など非常に高価になるのが欠点である. それに対して, ISDN, X.25,フレームリレーなどを利用する方 法は,いわゆる公衆交換網(たとえば
NTT
の電話交換網)を経由して接続する方法で,現在では比較的安 価に広域ネットワークを構成できるが,データが公衆交換網を通過するため,セキュリティ上の問題が生じ る. 最近では, LANからWAN
への接続点で通信の暗号化7
を行い,公衆回線網を通過するデータの安全性 を高める手段が用いられることが多い.なお, NTT が提供する
ISDN
とは, INS-64とINS-1500
にわかれる. INS-64とは通常の電話回線上に デジタル信号で64Kbps
のBチャンネル2本と16Kbps
のDチャンネル1本を伝送する方法である. Bチャ ンネルは音声(をデジタル信号化したもの)や通常のデータを運ぶチャンネルである. 「ISDNの宣伝文 句」にあった「電話しながらインターネット」とは,2本のBチャンネルの中で, 1本を音声に利用し, も う1本をデータ転送に利用する方法である. もちろん,2本のBチャンネルをデータ転送に利用でき,この方法では
128Kbps
を実現できる8 . INS-1500
とは光ファイバーを用いて, 23B+Dという転送を行う方法であり,この場合には, 23
× 64 = 1472 Kbps,
すなわち約1.5 Mbps
を実現可能となる.3.1.3.2
ネットワーク機器このような各種のネットワークケーブルを相互に接続する機器がネットワーク機器と呼ばれる各種の装 置であり, 10Base-T/100Base-TXのようなスター型接続を行うものの場合には, コンピュータと接続する 機器にはハブ
(hub)
と呼ばれる装置を利用する.各種のネットワーク機器は,ネットワークにおける動作状態により,
•
ルータ(router),
5
IEEE 802.11b
に準拠した装置はApple
社のAirPort
など多数が発売されている.通信方式はDSSS (Direct Sequence Spread Spectrum:
直接拡散方式のスペクトラム拡散通信)を用いている.また, 40ビットまたは128
ビットの暗号化通信(WEP: Wired Equivalent Privacy)
もサポートされている.6
2.4GHz
というのは,電子レンジのマイクロ波とほぼ同じ周波数である. また,最近話題のBluetooth
もこの周波数帯を利用す るが, BluetoothはFM
変調を行うため, IEEE 802.11bとの相互接続性はない.この他にもIEEE 802.11a
という5GHz
帯を利 用して54Mbps
通信を行う規格, IEEE 802.11gという2.4GHz
帯で54Mbps
通信を行う規格に沿った機器が販売されている.7
LAN
同士の接続のため, WANを利用する場合, LAN-WAN接続点で暗号化を行う方法をVPN (Virtual Private Network)
と呼ぶ.8INS-64
はフレーム転送で行われている.1フレームは2B+D
で構成され,Bチャンネルは16
ビット,Dチャンネルは4
ビットからなる.さらに,制御シーケンス
12
ビットを含めると,1フレームは48
ビットから構成され,1秒間に4000フレームの転 送が行われる.すなわち, 192000 bpsの転送が行われている.また,公衆回線は300 Hz
の搬送波上に周波数変調でアナログ通信を 行う.この時,約3400 Hz
でフィルターをかけている.一方, S/N比は3000:1
程度である.したがって,アナログ公衆回線の理論的 速度限界は3100 ∗ log
2(3001) ∼ 35800 bps
となり,いわゆる33.6K
モデムはほぼ理論値限界の速度の転送を行っていることがわ かる.なおNTT
が保証している速度限界は9600bps
である.•
ブリッジ(bridge),
•
リピータ(repeater),
•
ハブ(hub),
•
スイッチ(switch)
などと呼ばれる. 同一の機器でも,その動作状態によって呼び名が変ることがありうるので厄介である.
一般に
LAN
の境界でLAN
相互を接続するために用いられる機器を「ルータ」と呼び, LANの中で極 めて重要な役割を果たしている. ハブはネットワーク機器としてはリピータの役割を果たし, 経由するリ ピータの数が多くなると,通信は不安定になる. 通常,ブリッジを経由するたびにリセットする数え方で,リ ピータ段数は3段を越えることは出来ない. なお,スイッチング・ハブと呼ばれる機器はネットワーク機器 としてはブリッジの役割を果たす.3.2 ネットワーク・プロトコル
コンピュータネットワークにおいて,通信を保証するための規約をプロトコル
(protocol)
と呼ぶ. 現在 のネットワークで利用されるプロトコルは,どのようなケーブルを利用できるかという物理的なプロトコル から始まり,電子メールの交換の規則などを定めたソフトウェア的な部分など広範囲にわたって詳細に定め られている.3.2.1
レイヤーモデルネットワークプロトコルは,下の図に示すように,7層にわたる階層構造をなし,上位層でのプロトコルは, すぐ下の層で定められているどのプロトコル上で定義されるかのみを定め, より下位の層のプロトコルは 上位層のプロトコルには影響を与えない. このプロトコルモデルを
OSI
7層モデル(OSI layer model)
と呼ぶ.10Base-T 7.アプリケーション層
6.プレゼンテーション層
5.セッション層
4.トランスポート層
3.ネットワーク層
2.データリンク層
1.物理層 10Base-T 100Base-TX FDDI LocalTalk ISDN
Ethernet PPP
IP AppleTalk(DDP)
TCP UDP ICMP RTMP ATP
ZIP ASP
AFP telnet, ftp, http,
smtp, dns, etc.
NFS, talk, bootp,
dhcp, etc.
OSI層モデル(ごく一部のみ)
各層のおおよその意味は以下の通りである.
1.
物理層 媒体の電気的(光学的)特性や機器の形状の定義.2.
データリンク層 物理的な通信路の確立.3.
ネットワーク層 アドレスの管理と経路の選択.4.
トランスポート層 データを確実に届ける.5.
セッション層 データの受け渡しの手順の定義.6.
プレゼンテーション層 データをユーザに理解できる形や通信に適した形に変換.7.
アプリケーション層 ユーザにサービスを提供.これら各層におけるプロトコルは
IEEE, ISO, RFC (Request For Comments)
等で定義されている.上の「ネットワークのハードウェア」で解説した内容は,「物理層」の定義を解説したことになる. 第2 層から上位の層のプロトコルはソフトウェア的に定義される.
Example 3.2.1
たとえば,telnet
というプロトコルは,トランスポート層のTCP
プロトコル上に定義 されたもので, TCP はネットワーク層のIP
プロトコル9
上で定義されている. IPを定義する下位層はEthernet
プロトコルであり, Ethernetプロトコルは10Base-T, 100Base-TX, FDDI, localtalk
などの物 理媒体上に流すことが可能である.3.2.2
ネットワークパケットコンピュータネットワークにおいて,すべてのデータは物理で定義された媒体上をパケット
(packet)
と 呼ばれるデータ形式で伝送される. ネットワークパケットはヘッダ(header)
と呼ばれる(「宛先の荷札」に対応する)発信元・宛先などを記述する部分と, データまたはペイロード
(payload)
と呼ばれる,通信 内容のデータを含んだ部分から構成される10 .
パケット・ヘッダは各プロトコル上に定義され, すなわち, 各層ごとにパケット・ヘッダがあり, 上位 層のヘッダを含む部分は下位層ではペイロードと見なされる. このようなパケットの構成をカプセル化
(encapslation)
と呼ぶ.Ethernet
ヘッダIP
ヘッダTCP
ヘッダtelnet
データ データリンク層IP
ヘッダTCP
ヘッダtelnet
データ ネットワーク層TCP
ヘッダtelnet
データ トランスポート層上の図のように,データを受け取ったホストは,各層に対応するソフトウェアまたはドライバを用いて,ヘッ ダを解析した後,それを取り除き上位層に対応するソフトウェアに処理を渡すことで,下位層に依存しない プロトコルを実現している.
各プロトコルのプロトコル・ヘッダには,パケット発信元とパケット送信先のネットワーク・アドレス等 が書かれる. すなわち,ネットワーク・アドレス
(network address)
は,プロトコルにより決まる概念で ある.3.2.3
ネットワーク・プロトコルとネットワーク・アドレスネットワークにおいて, ネットワーク・アドレスとは,プロトコルによって決まる概念であるが, ここで 言うアドレスとは,パケット・ヘッダに書き込まれたものだけを扱おう. すなわち,「電子メール・アドレ ス」や「ホームページ・アドレス」とは別個のものと考えておこう.
9
IP
はInternet Protocol
の略.10名前の通り,ヘッダ部分がパケットの先頭になり,ペイロードがヘッダ部分の後に続く形をとる.
3.2.3.1
データリンク層3.2.3.1.1 Ethernet Ethernet 11
(イーサ・ネットと読む)は,元々はXerox
社によって同軸ケーブ ル上に伝送されるデータの規格として開発されたが, 現在ではIEEE 802.3
によって標準化されている.Ethernet
はCSMA/CD
方式12
を行うIEEE 802.3
規格による通信である.Ethernet
プロトコルにおけるアドレスはMAC
アドレス(Media Access Control Address)
と呼ばれ, 16進数2桁(オクテット(octet)
と呼ぶ)が6つ並んだ形式をしている.Example 3.2.2 MAC
アドレスは08:00:20:81:96:62
や00:c0:7b:7f:e1:59
などと書かれる. (Aか らF
は大文字でも小文字でも良い13 .)
MAC
アドレスはホストのネットワーク・インターフェース(Network Interface)
に付けられたアドレス と解釈して良く,実際には,一部の例外を除いて,ネットワーク・インターフェース・カード(NIC)
のカー ドのROM
に書き込まれている. そのような意味でMAC
アドレスのことをハードウェア・アドレスと呼 ぶこともある. なお, MACアドレスの上位3オクテットはNIC
のメーカによって決まった数値であり,最 上位オクテットの最下位ビットは0
になっている.3.2.3.1.2 PPP PPP (Point to Point Protocol)
は, 電話回線, X.25,フレームリレー, SONET (Syn-chronous Optical Network:
同期光通信網), ISDN 等1対1のネットワーク上に構成されるプロトコルで,データリンク層とネットワーク層の下位副層上で定義される. PPPはネットワーク層でどのようなプロト コルを利用するかにより異なったカプセル化を行う. すなわち, PPPパケットは1対1通信を行う物理層 上のプロトコルのため,データリンク層自身にはアドレスは必要とせず,データリンク層ヘッダは圧縮方式 などを定義する機能を持つ. データリンク層を利用して, PPPはネットワーク層アドレスのネゴシエーショ ンを行う機能を持つ. したがって, PPP データリンクを利用して, IPパケットを交換する際に, 通信路確 立時に
IP
アドレスを取得する機能を持つ.3.2.3.2
ネットワーク層3.2.3.2.1 IP IP
プロトコルは「インターネット」で利用される基本的なプロトコルであり,そのアド レス体系をIP
アドレスと呼ぶ. IPプロトコルは,ネットワークを利用する際に今日では必須の知識と考 えられるため,後で詳しく解説する.3.2.3.2.2 AppleTalk AppleTalk
はApple
社によって定義された,元々はApple
のコンピュータや プリンタ等を接続するためのプロトコルであり,古くはLocalTalk
ケーブルと呼ばれるケーブル上にのみ 定義されたものであった. 現在はEthernet
を伝送する各種媒体上で定義され,そのようなAppleTalk
を正 式にはEtherTalk
と呼ぶ14 . AppleTalk
ではアドレスは動的に制御される. すなわち, AppleTalkアドレ スは機器がネットワークに接続された際に,相互のアドレスを検知して,自身のアドレスを自動的に割り当 てる機能を持つ.11
Ethernet
の“ETHER”
とは「エーテル」のことである.12搬送波関知多重アクセス/衝突検出方式
(Carrier Sence Multiple Access with Collision Detection).
ブロードキャスト(broadcast)
型通信とも呼ばれる. 要するに,ホストからパケットを出したとき,ケーブル上にパケットがあるかどうか(衝突)を検出し,衝突が起こっていれば,再送を行う方式.
13しかし,決して
“Mac
アドレス”とは書かないし,「マック・アドレス」などとは呼ばない.14実際
LocalTalk
上のAppleTalk
とEtherTalk
ではプロトコルヘッダの定義が異なる. 正式にはLocalTalk
上のAppleTalk
のデータリンク層をLLAP, EtherTalk
のデータリンク層をELAP, TokenRing
上のAppleTalk
のデータリンク層をTLAP
と呼 び, LLAP, ELAP, TLAPの上位に定義されるプロトコルを総称してAppleTalk
と呼ぶ.3.2.4
プロトコル体系と経路制御とネットワーク機器Ethernet
のようなCSMA/CD
方式のネットワークでは,送出したパケットはネットワーク上のすべてのホストに対して送付される. したがって,何らかの形でネットワークを閉鎖的にしないと, 送出したパケッ トは世界中に転送されてしまう. 一方,通信したい相手は閉鎖したネットワークの外側にある可能性もある ので,何らかの形で閉鎖したネットワークから外部にパケットを転送する必要がある. 閉鎖したネットワー クの外部に宛先のアドレスを元にパケットの転送を行うことを経路制御
(routing)
と呼び,その手続きを 行う機器をルータ(router)
と呼ぶ.実際にネットワークサービスを利用する際に相手を特定するアドレス体系は, ネットワーク層のアドレ ス(IPアドレスや
AppleTalk
アドレス)であるため,ルータとはネットワーク層のアドレスを元に経路 制御を行っている. Section 3.1.3.2で解説した各種ネットワーク機器は,プロトコル体系と密接に結び付い ている.ルータ ネットワーク層のアドレスを元にパケット転送を行う機器.
ブリッジ データリンク層のアドレスを元にパケット転送を行う機器.
リピータ 物理層でパケット転送を行う機器.
ハブ
10Base-T
などのスター型ネットワークの集線装置. 一般にはリピータとして動作する.スイッチ 形式としてはハブの形態をとり,ブリッジ機能を果たすもの.
レイヤー3スイッチ 形式としてはハブの形態をとり,ルータ機能を果たすもの.
Ethernet
ヘッダIP
ヘッダTCP
ヘッダデータ
= ⇒ (1)
IP
ヘッダTCP
ヘッダデータ
= ⇒ (2)
IP
ヘッダTCP
ヘッダデータ
= ⇒ (3)
Ethernet
ヘッダIP
ヘッダTCP
ヘッダデータ ルータの機能
(2)
でIP
ヘッダを見て経路制御を行う. (3)
でEthernet
ヘッダを書き換える.
この時の始点
MAC
アドレスはルータのもの となる.
Ethernet
ヘッダIP
ヘッダTCP
ヘッダデータ
= ⇒ (1)
Ethernet
ヘッダIP
ヘッダTCP
ヘッダデータ ブリッジの機能
(1)
でEthernet
ヘッダを見て経路制御を行う.
なお,ネットワーク機器のルータ動作またはブリッジ動作は,ネットワーク層のプロトコルによって切り替 える機能を持つルータもある. ネットワーク層プロトコルごとに見たとき,ルータで区切られた「閉鎖され た」ネットワークをブロードキャスト・ドメイン
(broadcast domain)
と呼ぶ. LANをリピータだけで 構成すると,あるホストから出たパケットはLAN
内のすべての機器に到達するため,ネットワークが非常に混雑する. スイッチ(ブリッジ)をおくことにより,スイッチの学習機能を用いて,特定の2ホスト間の 通信を他のホストに届かないようにすることが出来る. このような構成を行ったネットワークをスイッチ ング・ネットワークと呼ぶ.
Host A Host B
Host C Host D
HUB Host A
からHost B
へのパケットは, Host C, Host D
へも届いてしまう
.
これは,
ハブがリピータだからである.
Host A Host B
Host C Host D
Switch
ハブをスイッチに取り替えると
, Host A
からHost B
への パケットは, Host C, Host D
へは届かなくなる.
スイッチ はブリッジなので, Host A
とHost B
のMAC
アドレス により,
パケットを送出するポート(ケーブル)を選択して いる.
3.2.5 IP
ネットワーク「インターネット」で利用されるプロトコルは
IP
プロトコルに限られ,それ以外のネットワーク層プロ トコルは,一般にはLAN
の出口のルータではルーティングされない. 今日の「インターネット」を支えて いるものは, IPネットワークであり, IPネットワークの基本的な仕組みは「インターネット」を理解する ためには必要不可欠な知識である.3.2.5.1 IP
アドレスIP
アドレス(IP address)
はIP
プロトコルのアドレス体系で,今日広く利用されているIP
アドレス体系は
IPv4 (IP address Version 4)
と呼ばれる,16進数4桁からなるアドレス体系である.Example 3.2.3 IP
アドレスは133.6.130.5, 127.0.0.1
などと,10進数で表示され,各桁は“.”
で区 切って記述される.IP
アドレスは「インターネット」に接続された世界中のホストに対して割り当てられ, IPアドレスを指定 することにより,世界中のホストを一意的に指定することが出来る. このアドレス体系で指定できるホスト の総数は256 4 = 2 32 = 4294967296
であるので,約42億となるが,実際にはすべてのアドレスを有効に利用できるわけではない.
3.2.5.1.1 IP
サブネットIP
プロトコルのブロードキャスト・ドメインをIP
サブネット(IP subnet)
と呼び, IPサブネットごとにIP
アドレスを割り当てる. 大きな組織では, LANをいくつものIP
サブネッ トに分割し,組織に与えられたIP
アドレスを各IP
サブネットに割り当てている.Example 3.2.4
名古屋大学には133.6.XXX.YYY
という256 2 = 65536
のIP
アドレスが割り当てられて いる. 名古屋大学では,各建物ごとにIP
サブネットを構成し,理1号館では133.6.130.XXX
というIP
ア ドレスが割り当てられている.この例のように, IPアドレスはネットワークを構成する組織ごとに,ある範囲の
IP
アドレスが割り当てら れる. したがって,あるIP
アドレスがその組織のものか,そうでないかを容易に区別できるようにIP
アド レスを割り当てる必要がある. これは,あるホストから他のホストへIP
プロトコルを利用して通信を行う 場合に,直接パケットを送ることが出来るのか,ルータを経由しなければならないのかを区別する必要があ るためである. そのための方法が, IP アドレスのサブネット・マスク(subnet mask)
の概念である. サ ブネット・マスクがn
ビットであるとは,32ビット(IPアドレスのビット長)の上位n
ビットを1,
下 位32 − n
ビットを0
にした数値をサブネット・マスクの値とし, サブネット・マスク値とIP
アドレスの ビットごとのAND
を取ったものを,ネットワーク部と呼ぶ. (残りの部分をホスト部と呼ぶ.)Example 3.2.5
ホストA
がホストB
と通信する場合を考えよう. ホストA
の属するIP
サブネットの サブネット・マスクを利用して,自分自身のIP
アドレスのネットワーク部と,ホストB
のIP
アドレスの ネットワーク部を比較する. この時,両者が一致していれば,ホストA
はホストB
と直接通信可能である と判断し,そうでなければ,ルータを経由しなければならないと判断する.IP
サブネットのIP
アドレスの範囲を表すために,サブネットのネットワーク部のアドレス(ネットワー ク・アドレス)と,サブネット・マスクのビット数を用いて,XXX.YYY/n
等という書き方をする.Example 3.2.6
名古屋大学のIP
アドレスは133.6/16
または,133.6.0.0/16
である. また,名古屋大 学理1号館のIP
アドレスは133.6.130/24
または,133.6.130.0/24
である. 理学部A館のIP
アドレス は133.6.84/22
または,133.6.84.0/22
であり, これは,133.6.84.0
から133.6.87.255
までの範囲を 表す.84 = (1010100) 2 85 = (1010101) 2 86 = (1010110) 2 87 = (1010111) 2
したがって,理1号館内には
256
台, 理学部A館内には1024
台のホストを設置できることとなる.元々は,サブネット・マスクのビット数は
8, 16, 24
のいずれかであって,それぞれ,クラスA,クラスB,ク ラスCと呼ばれていたが,現在では, 8の倍数以外のマスクビットも用いられるようになった.このように, IPアドレスは有限な資源であるため, ホスト数が急増した現在では, 新規の組織が新規
IP
アドレスの取得を申請しても,数個のIP
アドレスしか割り当てを受けないことが多い.3.2.5.1.1.1
プライベート・アドレスIP
アドレスは世界中で一意的なアドレスを用いなければならな いが, IPアドレス体系の中には,プライベート・アドレス(private address)
と呼ばれる, IPサブネット 内だけで利用できるアドレスがある15 .
具体的には10.0.0.0/8, 172.16.0.0/16 - 172.31.0.0/16, 192.168.0.0/24 - 192.168.255.0/24
というクラスAが1個,クラスBが16個, クラスCが256個のアドレスであり,これらのアドレスを持 つパケットはルータで切り落とすことにより, サブネット外部に出してはならない. このルールの元に, プ ライベート・アドレスをサブネット内で自由に利用することが出来る.
15これに対して,世界中からアクセス可能な
IP
アドレス(通常のIP
アドレス)をグローバルIP
アドレス(global IP address)
と呼ぶことがある.プライベート・アドレスはサブネット外部と通信を行わない装置(プリンタ等)に割り当てて利用した り,ルータでアドレス変換を行うことにより,サブネット内部のホストすべてにプライベート・アドレスを 割り当てて利用したりする.
Example 3.2.7
グローバルIP
アドレスが数個しか無い場合,ルータでプライベート・アドレスとグロー バル・アドレスの変換を行って, サブネット内部から外部への通信を行うことが多い. この方法をNAT (Network Address Translation), IP
マスカレード(IP masquerade)
と呼ぶ16 .
3.2.5.2 IP
ルーティングIP
ルーティング(IP routing)
とは, IPプロトコルに関する経路制御のことであり, IPサブネットか ら外部への通信の経路を制御することに相当する.3.2.5.2.1
経路制御とはIP
ルーティングは複雑に入り組んだネットワークを通じて, 目的地にパケッ トを届けるための最も基本的な技術である. もし,パケットを届けるべきホストが同一のサブネットに属し ていれば, 中継点(ルータ)を経由することなくパケットをホストに届けることができる. しかし,目的の ホストが異ったサブネットに属しているときには,ルータを経由してパケットを送信する必要が生じる. す なわち,直接パケットを送ることができる範囲は, IPサブネット内に限られている. そのため,送出するパ ケットは一旦ルータに送信され,ルータに保存された経路表に従って, 目的のホストまたは, 次のルータへ 転送が行われる. このように,ルータは2つ以上のネットワークに接続され,相互のネットワークの間でパ ケットの適切な交換を行う.3.2.5.2.2
経路制御の方法 以下では実際の経路制御の一例を考えてみよう. 現在のインターネットでは, インターネットに参加するネットワークのうち,同一の管理主体やあるいは同一の管理方針に基づいて運営 されるひとまとまりのネットワークを自律システム(autonomous system, AS)
と呼び, ASの集合体と してインターネットが形成されている. したがって,インターネット全体を見たとき,多くのAS
の間での経 路制御(Exterior Gateway Protocol EGP)
が行われ,各AS
内ではAS
内部での経路制御(Interior Gateway Protocol IGP)
が行われるという階層構造が実現されている.各
AS
の管理方針は経路制御に対して影響をおよぼす. 例えば,一つのAS
であるSINET
では「営利目 的のネットワーク利用は行わない」と定められているので,営利目的のAS
相互のパケットをSINET
を経 由させることはできない. このように, EGPでは各AS
の管理方針をもそのプロトコルに反映させる必要 がある.以下では
IGP
の一つの実現であるRIP Version 2
に基づいた経路制御の方法を調べてみよう17 . 3.2.5.2.2.1 RIP
仮に, IPサブネット上にルータが1つしかない状況を考えてみよう. すなわち, IPサ ブネットの外部への出口は1つしかない. この時には,サブネット外部への通信はすべてそのルータを経由 することで行われる. この場合,ルータはサブネット内部のホストすべてに対して,「自分がサブネット外 部へのデフォールトの出口である」という内容のパケットを送出する. 経路制御情報を与えるプロトコル を経路制御パケット(routing information packet)
と呼び18 ,
このような,サブネット内のすべてのホス16正しくは
NAT
とIP
マスカレードとは異なった方法で, NATはネットワーク層での変換を行うのに対して, IPマスカレード はトランスポート層での変換を行う.17このような「出口が一つしかない」ネットワークをスタブ
(stub)
と呼ぶ.18このプロトコルは,トランスポート層で定義され,
520/udp
で定められるroute
と呼ぶプロトコルである.(トランスポート層 に関しては後に解説する.)トに対して送出されるパケットをブロードキャスト
(broadcast)
パケット19
と呼ぶ. また,「デフォール トの出口」(これをデフォールト・ルート(default route)
と呼ぶ)を与えるルータをデフォールト・ルー タ(default router)
と呼ぶ.一方, IP サブネット上に複数のルータがあるときには,どれか一つのルータがデフォールト・ルータと なり,他のルータは特定のサブネットへの経路をサブネットに対してアナウンスする.
いずれの場合にも, ルータからの経路制御パケットを集めることにより, デフォールト・ルートを含む, 経路の一覧を作ることができる. この一覧表を経路表
(routing table)
と呼ぶ. したがって, IPサブネッ ト内のホストはサブネット外部への通信を行う場合には,経路表を参照することにより,適切なルータへの 通信を行えば,後の処理はルータが外側のサブネットの経路表にしたがってパケットを送出し,最終目的ホ ストまで届けることが出来る.Example 3.2.8
経路制御の一例として,下のようにサブネットが接続されていたとしよう.133.6.130/24
133.6.120/24
133.6.130.254 133.6.84.254
130.5.84/22 201.15.32/24
131.18/16 201.15.32.254 130.5.86.254
130.5.87.254 131.18.1.254 131.18.255.254 131.18.2.254
133.6.120.254
ここで, 各楕円は
IP
サブネットを表し, 矢印のついた装置がルータであり,ルータの各インターフェース にはサブネットに応じたIP
アドレスが付けられている. (それ以外には各サブネットにはルータは存在し ないとする.)この時,各サブネットの経路表は以下の通りとなる.133.6.130/24 default 133.6.130.254
201.15.32/24 default 201.15.32.254
133.6.120/24 default 133.6.120.254
130.5.84/22
default 130.5.87.254 133.6.130/24 130.5.84.254 201.15.32/24 130.5.86.254
131.18/16
default 131.18.255.254 133.5.84/22 131.2.1.254 133.5.84/22 131.18.255.254 133.6.120/24 131.2.254 133.6.130/24 131.18.255.254 201.15.32/24 131.18.255.254
この例は次の2つの事実を表している.1.
より広いネットワークに向かうルータがデフォールト・ルートをアナウンスする.2.
ネットワークが複雑化するにしたがって,経路表が大きくなる.19より正しくは, IPプロトコルのブロードキャストなので,
IP
ブロードキャストと呼ばれ,宛先のIP
アドレスはホスト部がすべ て1
となっているアドレスが用いられる.すなわち,133.6.130/24
でのブロードキャスト・パケットは,133.6.130.255
を宛先に 持ち,このアドレスをブロードキャスト・アドレスと呼ぶ.また,ホスト部がすべて0
になるアドレスをネットワーク・アドレスと 呼び,そのサブネット自身のアドレスと考える. したがって,クラスCサブネットで本当にホストアドレスとして利用できるものは,254
個となる.3.2.5.2.2.2 RIP
の問題点RIP
を用いた経路制御では, 上に述べたようにネットワークが複雑化する にしたがって経路表が大きくなるという欠点を持つ. ここでは,次の図のように接続されたネットワークの 間でRIP
によって経路情報が交換されるという状況を考えてみよう.A 1 B 1 C
D 1 1
A, B, C, D
のそれぞれは一つのルータを表し,
図の ようにルータによって接続されているとする.
相互 の接続のためのコストは全て等しいと仮定する.
(接 続コストとは,
ネットワーク相互の間の通信速度や,
相互接続の価格等によって決定される.
)はじめに, このネットワークの相互接続のための経路表を作成するための方法を考えてみよう. RIPで用 いられる経路決定アルゴリズムは
Bellman-Ford
アルゴリズムと呼ばれ,各ネットワーク上で次のような 動作を行う.1.
自分自身への距離を0
に,自分以外の全てへの距離を∞
にセットする.2.
自分がもつ全ての距離データを隣接する全てのルータに転送する20 .
3.
隣接するルータからの情報と自分自身の持つ情報から, 自分自身の情報を更新する. この時, 計算結 果の中から他への距離が最小となるように距離を決定する.より詳しくは,以下のようにして経路表を作成することができる.
アルゴリズム
3.2.9 (Bellman-Ford
アルゴリズム)
ルータi 0
において,
他のルータへの最小コストを決 定する.
ここで, m
回目の反復演算におけるi 0
からi
への距離をb (m) i , V i
は,
ルータi
と隣接する全て のルータの集合, d ij
はルータi, j
の間の距離を表す.
ステップ1 次のように初期化を行う
. b (0) i
0= 0 , b (0) i = ∞, i = i 0 .
ステップ2 全ての
i
に対して,
以下の演算を行う. b (m) i = min j∈V
i{b (m−1) j + d ji }.
ステップ3 全ての
i
に対してb (m) i = b (m−1) i
ならば経路表が確定し,
そうでなければステップ2を繰り 返す.
Example 3.2.10
上のネットワークにおいて, Bellman-Ford アルゴリズムを用いて経路表を決定する.i 0 = A , B , C , D
に対してBellman-Ford
アルゴリズムを実行する必要がある. この時,V A = {B}, V B = {A, C}, V C = {B, D}, V D = {B, C}
である.
【初期化】
ルータ
A
宛先 距離R
A 0
B ∞
C ∞
D ∞
ルータ
B
宛先 距離R
A ∞
B 0
C ∞
D ∞
ルータ
C
宛先 距離R
A ∞
B ∞
D 0
D ∞
ルータ
D
宛先 距離R
A ∞
B ∞
C ∞
D 0
20このプロセスはブロードキャストを用いれば容易に実現できる.