前章でLANとそれを結んだWANでネットワークが形成されていると 説明したが,初期は大学間を実験的に接続していた程度だった ネットワークがどんどん相互接続して広がり,結局 一つの世界規模の巨大ネットワークが出来上がった. これがインターネットである.
どんなメーカーでも互いに通信できるようにするためには 通信規約(プロトコル)の標準化が重要である.インターネットは 多種多様な機器がTCP/IP というプロトコル群に従った動作をすることで 機能している.
アドレスとは相手を一意に特定するために 用いられる識別子でる.インターネットに接続されている ホスト(コンピュータなどのインターネットに接続される機器) は全て異なるアドレスをもつ必要がある.
TCP/IPのIP(プロトコル)で使われるアドレスがIPアドレスである.
現在広く使われているのはIPv4(バージョン4)で IPアドレスは32ビットで表される. 2進表記のままでは読みにくいので,教科書p.147の9行目のように 32ビットを8ビットずつ4つに区切り,4 つそれぞれを 10進表記にして間に「.」を書く表記が多く使われる. これをドットデシマルノーテーションという.
インターネットに接続される すべてのホストは異なるIPアドレスをもつ必要があるから 接続可能なホスト数は$2^{23}$個,すなわち約43億個が上限となる. 2019年での世界人口が約77億人であることから,インターネットが 普及すればするほどIPアドレスが枯渇するようになった.
IPアドレスは32ビットのうち上から何ビットかが ネットワーク部で残りの後半が ホスト部である. 上位何ビットまでをネットワーク部にするかは 使い方によって変えられるようになっている. ネットワーク部を市外局番,ホスト部を市内局番に 例えることができる.世帯数が多い大都市では 市外局番の桁数が短く市内局番の桁数が長いのは,多くの市内局番を 使えるようにするためである.逆に世帯数の少ない 年であれば市内局番の桁数は少なくて良いので 市外局番の桁数を大きくして多くの市外局番を 設定できるようにしている.ネットワーク部とホスト部の 関係も同じで,設計段階で必要なホスト数をみつもって ホスト部の長さを決め,残りをネットワーク部にする.
昔は教科書p.147図13.1のように先頭からみたビットパターンで ネットワーク部の長さが決まる「クラス」という方式が使われていたが 無駄が多いので今は使われない. 今はサブネットマスクによって自由にネットワーク部の 長さを決める.
PCをネットワークに接続してインターネットを利用できるようにするには 自分のホストに
の情報を正しく設定する必要がある.ここではこれを 「ネットワーク設定4情報」とよぶことにする.設定すべき値はネットワーク 管理者が管理しており,それに従って間違えないように設定する 必要がある.重複したIPアドレスを設定すると不具合がおこる.
ネットワーク管理者はIPアドレスの重複が起きないように 使われているIPアドレスを間違いなく記録しておかなければ ならないし,ユーザーもノートPCなどでは移動して別のネットワークに 接続するたびに管理者に設定を聞いて設定しなおさなくてはならない.
DHCPは簡単にいうとネットワーク設定4情報を適切に自動設定する仕組み である.基本的にはネットワークごとにDHCPサーバーを起動させて ておくと考える.クライアントはPCを「DHCPを使う」という設定にしておけば ネットワークを移動してもそのネットワークのDHCPサーバーと 通信して適切な値を知り,自動的にネットワーク設定4情報が設定される.
通信相手の IP アドレスがわかれば通信はできるがIPアドレスは
数字の羅列なので覚えにくい.人間が覚えやすいように国名や企業名などの
意味のある文字列を「.」(ドット)で組み合わせたドメイン名
をIPアドレスに対応させている.例えば本研究室のウェブサーバーの
ドメイン名は
www.yamamotolab.je.u-tokai.ac.jp
であるが,ドットで繋がれたそれぞれの部分の意味は
「研究室内での計算機の名前」.「山本研究室」.「通信ネットワーク工学科」.「東海大」.「学術研究機関」.「日本」
である.終わりに近いほうが大分類で,
前に近いほど詳細分類になる階層構造をもつ.
ドメイン名の始めのほうのいくつかを省略したものをドメインという.
例えば
yamamotolab.je.u-tokai.ac.jp
は山本研究室のドメインで,
u-tokai.ac.jp
は東海大学のドメインである.東海大学のドメインの中に
jt.u-tokai.ac.jp,つまり通信ネットワーク工学科のドメイン
が所属している.このようにドメインは階層構造をもつので
人間にとって理解しやすい.
ドメイン名がわかっても最終的にはIPがわからないと通信できないので, ドメイン名を対応するIPアドレスに変換する機能が必要である. DNS は複数のサーバーが連携して処理を行う分散データベースにより この機能を提供する. DNS は他にも,ドメインのユーザー宛のメールを出す場合,どのメールサーバーが 処理をするか,などの情報も提供する.
文字で 書かれた情報をテキストという 初期のコンピュータはテキストしか扱うことができなかった. テキストにリンク機能をもたせ,リンクを 辿ることで関連するテキストへジャンプする機能が開発された. これをハイパーリンクまたは単にリンクといい, リンクによって関連する情報を辿っていける機能を持たせたテキストを ハイパーテキストとよぶようになった.
現在のコンピュータはテキストだけでなく画像や動画を扱うことが できるので,ハイパーテキストを画像,動画のマルチメディアに 拡張してハイパーメディアというようになった. ハイパーメディアを記述する最も普及している言語がHTML である.
インターネット上にはHTMLで記述されたハイパーメディアを 公開するウェブサーバーが多数設置されており, ユーザーとウェブサーバーはHTTPというプロトコル で通信する.これはインターネット全体に広がる規模の システムであり,WWW(ワールドワイドウェブ)という.
URL は世界中に存在するウェブサーバーが公開しているハイパーメディアを 一意に表すアドレスである.ウェブサーバーのドメイン名と, そのウェブサーバー内でハイパーテキストが存在する場所の組み合わせ である.
相互に通信する機器は共通の通信規約に従うように作ることで 通信が可能になる.この通信規約をプロトコル という.ゲームのルールもプロトコルの一種である.
例えば将棋のルールはプロトコルの一種である.AとBが実際に対面して将棋を指す 場合とPCを使ってインターネットで対戦する場合を考えると,操作は 異なるが将棋のルールは同一である.
インターネット対戦の場合,A がマウスをドラッグしてコマをすすめると そのコマが指示した場所に動く,という部分は対面とインターネット対戦では 異なるが,その動きが許されるか,コマを取れるかという将棋のルールは同じ であることは重要である.
インターネットのプロトコルも通信が無線で行われるか有線で行われるか によって変わる部分と変わらない部分,というように階層構造 を意識して設計されている.
通信プロトコルをどのような階層にわけて設計するべきか,ということが 議論され,ISOによりOSI参照モデルという指針が作られた. OSI参照モデルは具体的なプロトコルではなく,プロトコルを作るときの 設計指針のようなものであることに注意する. OSI参照モデルでは教科書p.151表13.1のようにプロトコルを7階層に 分離している.
インターネットの具体的なプロトコルであるTCP/IPもISO参照モデルに ほぼ準拠している. ただし,TCP/IP とISO7階層モデルの対応を簡単に説明すると,
という違いがある.OSI参照モデルの1から4層と4から7層の間には 大きな区別がある.1から4層までの機能はOSの仕事で,4から7層の機能 はアプリケーションプログラムで実装する.
TCP/IP と書いた場合,インターネットを動作させるためのプロトコル群をさす. 単にTCP+IPという意味ではない.その中でも特にTCPとIPは重要なプロトコルなので TCP/IP とよばれる.
TCP はOSI参照モデルの第4層のトランスポート層にあたり,エラーがあってパケットが 消失した場合は送り直す,などの信頼性を提供する機能をもつ. トランスポート層のプロトコルとして,エラーの再送信などの信頼性を提供する 機能をもたないUDPというプロトコルも使われる.
信頼性提供はトランスポート層として必須の機能ではない.トランスポート層の 本質的な昨日は,第3層のネットワーク層でホストからホストへの 通信を可能にしたあと,そのホストで動作している複数のアプリケーションの どのアプリケーションに伝達するか,という機能を提供することである.
どのアプリケーションとの通信か,を指定するにはポート番号 が使われる.教科書ではIP(ネットワーク層)の説明の部分に書かれているが, ポート番号により適切なアプリケーションにデータが届く機能は トランスポート層の本質的な役割である.
IP(ネットワーク層)の主な機能は,IPアドレスで示された宛先ホストに対して パケットをネットワークの適切な経路を使ってバケツリレーで送信することである. どの経路を使えばいいかの判断が重要で,これを経路制御という.
OSI参照モデルの5から7層にあたるプロトコルはアプリケーションプロトコルと よばれ,インターネットでは教科書p.153 に書かれているようないろいろな アプリケーションプロトコルが利用されている.