インターネット ( Internet )とは、世界各地のコンピュータ・ネットワークを相互接続して構成された、地球規模のコンピュータ・ネットワークです。 ここで、 コンピュータ・ネットワーク ( computer network )とは、コンピュータ同士がデータ通信を行うためのシステムです。 コンピュータの話であることが明らかなら、コンピュータ・ネットワークを単にネットワークと呼びます。 インターネットと対比して、会社、学校、プロバイダなど、組織内のネットワークを LAN (Local Area Network)と呼びます。
ネットワークに接続しているコンピュータを ホスト ( host )と呼びます。 ネットワークを相互接続する機器を ルータ ( router )と呼びます。
今、インターネットを経由して、ホストAからホストBへデータを伝送したいとします。 ホストBがホストAと同一のネットワークにあるときは、データは直接ホストBに伝送されます。 そうでなければ、データはルータR1に伝送されます。 それぞれのルータには、 経路表 ( routing table )と呼ばれるリストが格納されています。 ルータR1では、経路表にしたがって、ホストBにたどり着きそうなルータR2が決定されます。 そして、データはルータR1からR2に伝送されます。 ルータR2でも、経路表にしたがってルータR3が決定され、データはR3に伝送されます。 いくつかのルータを経由して、やがてデータはホストBのあるネットワークにたどり着きます。 最後に、ホストBにデータが伝送されます。
インターネットを利用したデータ通信の種類を、 サービス ( service )と呼びます。 インターネットにおけるサービスとして、電子メールやWWWがあげられます。 言い替えれば、インターネットは電子メールやWWWなどのサービスを提供するための基盤です。
IPアドレス ( IP address )とは、インターネットに接続されたコンピュータに割り当てられる番号です。 ここでIPとは、 インターネット・プロトコル ( Internet Protocol )の略です。 プロトコルという専門用語は、通信規約という意味で使われています。
原則として、異なるコンピュータには異なるIPアドレスが割り当てられます。 (例外はプライベートIPアドレスです。 後で説明します。) IPアドレスは、インターネットの中からコンピュータを特定するのに使われます。
例えば、東京女子大学のWWWサーバのコンピュータのIPアドレスは、
203.180.136.86
です。 IPアドレスの書式は、0から255までの範囲の数をドット(.)で区切って4つ書き並べたものです。 ビットの概念を知っていれば、0から255までの数は8ビットで表されることに気づくと思います。 IPアドレスは32ビットで表されます。 前述のIPアドレスを2進数で表すと、
11001011 10110100 10001000 01010110
となります。
現在、インターネットを構成するコンピュータは日を追って増えています。 新しいコンピュータには、まだ使われていないIPアドレスを割り当てる必要があります。
IPアドレスの重複を避けるため、IPアドレスの割り当てを行っている管理組織があります。 (日本の場合は、日本ネットワークインフォメーションセンター(JPNIC)です。) ただし、この管理組織は一台一台のコンピュータにIPアドレスを割り当てているわけではありません。 この管理組織は、会社、学校、プロバイダなど、インターネットを構成する組織(ネットワーク)ごとに、まだ使われていないIPアドレスの範囲を割り当てています。 そしてIPアドレスの範囲をもらった組織は、自分の組織のコンピュータに、自分の組織の判断で、その範囲からIPアドレスを順次割り当てます。
大きな会社などでは、管理組織からもらったIPアドレスの範囲を細分して部 に割り当て、各部はさらに細分して課に割り当てるといったことも行われています。 このようにして、IPアドレスが重複しないようにしています。
IPアドレスの範囲指定は、例えば32ビットの最初の24ビットは決められていて、残りの8ビットは組織に任されるといった、IPアドレスの2進表現に基づいて行われます。 仮に東京女子大学がこのように指定されたとしますと、学内では
11001011 10110100 10001000 00000000
から
11001011 10110100 10001000 11111111
まで、すなわち203.180.136.0から203.180.136.255までの256個のIPアドレスが使えるということです。 (範囲の両端には特別な意味がありますので、実際は254個です。)
ネットマスク ( netmask )とは、IPアドレスの32ビットのうち、どのビットが固定され、どのビットが任意なのかを表す番号です。 上記の例ですと、最初の24ビットが固定(1)、残りの8ビットが任意(0)ですので、
11111111 11111111 11111111 00000000
すなわち255.255.255.0となります。
インターネットを構成するコンピュータには、IPアドレスという固有番号がついていることを知りました。 しかし、IPアドレスは人間にとっては覚えにくいものです。 できれば、コンピュータに名前をつけ、その名前でコンピュータを指定したいところです。 そのためには、次の問題を解決する必要があります。
前者はドメイン名という概念によって、後者はDNSという仕組みによって実現されています。 (DNSについては後で説明します。)
ドメイン名 ( domain name ) とは、インターネットにおいて住所の役割を果たす文字列です。 ドメイン名は階層構造を持ちます。 具体的には、狭い順に階層の名前を並べ、各階層をドット(.)で区切ります。
例えば、東京女子大学のドメイン名は、「twcu.ac.jp」です。 これは、日本(jp)の研究教育機関(ac)の東京女子大学(twcu)という階層構造を表しています。 また、東京女子大学情報処理センターのドメイン名は、「cis.twcu.ac.jp」です。 日本(jp)の研究教育機関(ac)の東京女子大学(twcu)の情報処理センター(cis)という階層構造です。
東京女子大学のWWWサーバのコンピュータに「www」と名前をつけた場合、このコンピュータは「www.twcu.ac.jp」という名前で特定できます。 東京女子大学情報処理センターのWWWサーバのコンピュータに、同じ「www」という名前をつけても大丈夫です。 このコンピュータは「www.cis.twcu.ac.jp」で特定できます。 なお、「www.twcu.ac.jp」や「www.cis.twcu.ac.jp」はコンピュータの名前ですが、これもドメイン名と考えます。
| +---+---+---+---+---+ | | | | | com edu jp uk ... | +---+---+---+ | | | ac co ... | +---+---+-------+ | | | twcu u-tokyo ... | +---+---+---+ | | | cis www ... | +---+---+ | | www ...
基本的に、ドメイン名の各階層にはドメイン名の管理組織が存在します。 (ドメイン名「jp」の場合は、日本レジストリサービス(JPRS)です。) 管理組織は、申請に応じて新しいドメイン名の設置を認めます。 しかし、より下位のドメイン名のことは、そこの管理組織に管理を委任します。
例えば、ドメイン名「ac.jp」の管理組織は、日本に大学が新設されたときには、申請されたドメイン名を「ac.jp」の下に設置します。 しかし、東京女子大学に研究施設が新設さたときは何もせず、ドメイン名「twcu.ac.jp」の管理組織に管理をまかせます。
この、階層構造を反映したドメイン名と、委任の仕組みによって、インターネットで一意となる名前が簡単に用意できます。
ドメイン名の具体的な割り当ては次の通りです。 まず、階層構造の一番上のドメイン名(トップレベルドメインとよばれます)には、主に以下のようなものがあります。
トップレベルドメインには、この他に国別のドメイン名があります。 日本の場合は「jp」です。 ドメイン名「jp」の下には、主に以下のようなドメイン名があります。
ドメイン名「jp」の下には、この他に都道府県を表すドメイン名(地域型JPドメイン名)や、自由に付けられるドメイン名(汎用JPドメイン名)があります。
ネットワークに接続されたコンピュータをホストと呼ぶことを思い出してください。 インターネットのサービスを実現するためには、それぞれのホストにソフトウェアをインストールし、ホスト同士を通信回線で接続しますが、それだけでは足りません。 インストールしたソフトウェアを起動し、それぞれのホストのソフトウェアがネットワーク経由でメッセージを交換して、初めてサービスが実現するのです。 ここで、 メッセージ ( message )とは、何らかの意味がある通信データの単位のことです。
それぞれのホストのソフトウェアは、勝手にメッセージを送りあうのではなく、何らかの規約に従ってメッセージを交換して、インターネットのサービスを実現しています。 サービスを実現するための通信規約を、そのサービスの プロトコル ( protocol )と呼びます。
また、一つのホストの上で、同時に複数のソフトウェアが稼働している場合もあります。 インターネットのサービスにおけるメッセージは、ホストではなくホストのソフトウェアに送りますので、送り先のソフトウェアを区別しなければなりません。 これは、 ポート ( port )と呼ばれる番号で区別します
インターネットにおけるサービスの実現方式には、いくつかのパターンがあります。 その中で基本的なのが、クライアント・サーバ・モデルです。 クライアント・サーバ・モデル ( client-server model )とは、クライアント・ソフトウェアがサーバ・ソフトウェアに要求メッセージを送信し、応答メッセージを待つというパターンです。 ここで、 クライアント ( client )とは、データを要求する側のことで、 サーバ ( server )とは、データを提供する側のことです。
クライアントとサーバの間のメッセージ交換は、必要に応じて何度も行われます。 以下は、そのイメージです。
時間 | クライアント | 通信回線 | サーバ |
---|---|---|---|
1 | 要求メッセージ1 | →→→→ | |
2 | ←←←← | 応答メッセージ1 | |
3 | 要求メッセージ2 | →→→→ | |
4 | ←←←← | 応答メッセージ2 | |
: | : | : | : |
上記は抽象論でしたが、最初に、電子メールについて具体的に話します。 まず、電子メールはインターネットにおけるサービスの一種です。 次に、メール送信のためのプロトコルは、 SMTP (Simple Mail Transfer Protocol) と呼ばれます。 メール受信のためのプロトコルは、 POP (Post Office Protocol) と呼ばれます。 最後に、電子メールはクライアント・サーバ・モデルに基づいています。
電子メールのためのクライアント・ソフトウェアは、メール・ソフトと呼ばれたり、メーラーと呼ばれたりします。 WindowsではOutlook ExpressやWindows Mail, Windows Live Mail, Mac OS XではApple Mailが標準のメール・ソフトです。 また、フリーソフトではMozilla Thunderbirdが有名です。
電子メールのためのサーバ・ソフトウェアは、 メール・サーバ ( mail server )と呼ばれます。 特に、SMTPのためのサーバをSMTPサーバと呼び、POPのためのサーバをPOPサーバと呼びます。
現在、東京女子大学では、WebメールのGmailを使うようになっています。 ここでは、東京女子大学のメール・サーバが稼働していると仮定して、東京女子大学の情報処理教室でメールを送信する場合を考えます。
まず、メール・サーバは、東京女子大学の一室にある(架空の)ホストsmtp.twcu.ac.jpの上で常時稼働しています。 そして、メールを送信しようとするユーザは、情報処理教室のMacでメール・ソフト(例えばApple Mail)を起動し、メールを入力して「送信」をクリックします。 すると、メール・ソフトは、インターネットの中からホストsmtp.twcu.ac.jpを探し出し、メール・サーバとの間で通信状態を確立します。
まず、メール・ソフトは、メール・サーバに対して、差出人を誰々にするようにという要求メッセージを、プロトコルSMTPに従って送ります。 このメッセージを受け取ったメール・サーバは、メール・ソフトに対して、了解という内容(応答メッセージ)を、プロトコルSMTPに従って送ります。
次に、メール・ソフトは、メール・サーバに対して、宛先を誰々にするようにとメッセージを送ります。 メール・サーバは、メール・ソフトに対して、了解という内容を送ります。
最後に、メール・ソフトは、メール・サーバに対して、本文を何々にするようにとメッセージを送ります。 メール・サーバは、メール・ソフトに対して、了解という内容を送ります。 この数回のメッセージ交換の結果、メールのデータがすべてメール・サーバに届きます。 (この後、宛先のメール・サーバに対して、メールの転送が行われます。)
以上のメッセージ交換をまとめると、次のようになります。
時間 | メール・ソフト | 通信回線 | メール・サーバ |
---|---|---|---|
1 | 「差出人を誰々にせよ。」 | →→→→ | |
2 | ←←←← | 「了解。」 | |
3 | 「宛先を誰々にせよ。」 | →→→→ | |
4 | ←←←← | 「了解。」 | |
5 | 「本文を何々にせよ。」 | →→→→ | |
6 | ←←←← | 「了解。」 |
メールの送信の次は、メールの受信です。 ここでも、東京女子大学のメール・サーバが稼働していると仮定します。
まず、メール・サーバは、東京女子大学の一室にある(架空の)ホストpop3.twcu.ac.jpの上で常時稼働しています。 そして、メールを受信しようとするユーザは、情報処理教室のMacでメール・ソフト(例えばApple Mail)を起動し、「受信」をクリックします。 すると、メール・ソフトは、インターネットの中からホストpop3.twcu.ac.jpを探し出し、メール・サーバとの間で通信状態を確立します。
まず、メール・ソフトは、メール・サーバに対して、メールのリストを送るようにという要求メッセージを、プロトコルPOPに従って送ります。 このメッセージを受け取ったメール・サーバは、メール・ソフトに対して、メールのリスト(応答メッセージ)を、プロトコルPOPに従って送ります。
メール・ソフトは、メールが何件あるのかが分かるので、メール・サーバに対して、1番目のメールを送るようにとメッセージを送ります。 メール・サーバは、メール・ソフトに対して、1番目のメールを送ります。 数回のメッセージ交換の結果、すべてのメールがメール・ソフトに届きます。
以上のメッセージ交換をまとめると、次のようになります。
時間 | メール・ソフト | 通信回線 | メール・サーバ |
---|---|---|---|
1 | 「メールのリストを送れ。」 | →→→→ | |
2 | ←←←← | メールのリスト | |
3 | 「1番目のメールを送れ。」 | →→→→ | |
4 | ←←←← | 1番目のメール | |
: | : | : | : |
なお、SMTPサーバのポート番号は、通常25番が使われます。 POPサーバは、通常110番です。
続いて、Webについて具体的に話します。 まず、Webはインターネットにおけるサービスの一種です。 次に、Webのためのプロトコルは、 HTTP (HyperText Transfer Protocol) と呼ばれます。 最後に、Webはクライアント・サーバ・モデルに基づいています。
Webのためのクライアント・ソフトウェアは、 Webブラウザ ( web browser )と呼ばれます。 WindowsではInternet Explorer, Mac OS XではSafariが標準のWebブラウザです。 また、フリーソフトではMozilla FirefoxやGoogle Chromeが有名です。
Webのためのサーバ・ソフトウェアは、 Webサーバ ( web server )と呼ばれます。
ここでは、例として、東京女子大学の情報処理教室で東京女子大学のトップ・ページを閲覧する場合を考えます。
まず、Webサーバは、東京女子大学の一室にあるホストwww.twcu.ac.jpの上で常時稼働しています。 そして、トップ・ページを閲覧しようとするユーザは、情報処理教室のMacでWebブラウザ(例えばSafari)を起動し、アドレス欄にトップ・ページのURL http://www.twcu.ac.jp/を入力します。 すると、Webブラウザは、インターネットの中からホストwww.twcu.ac.jpを探し出し、Webサーバとの間で通信状態を確立します。
Webブラウザは、Webサーバに対して、トップ・ページのHTMLファイルを送るようにという要求メッセージを、プロトコルHTTPに従って送ります。 このメッセージを受け取ったWebサーバは、Webブラウザに対して、トップページのHTMLファイルの内容(応答メッセージ)を、プロトコルHTTPに従って送ります。
Webブラウザは、トップ・ページに画像ファイルが使われていることに気付き、Webサーバに対して、画像ファイルを送るようにとメッセージを送ります。 Webサーバは、Webブラウザに対して、画像ファイルの内容を送ります。 数回のメッセージ交換の結果、必要なデータがすべてWebブラウザに届き、最後にトップ・ページが表示されます。
以上のメッセージ交換をまとめると、次のようになります。
時間 | Webブラウザ | 通信回線 | Webサーバ |
---|---|---|---|
1 | 「HTMLファイルを送れ。」 | →→→→ | |
2 | ←←←← | HTMLファイルの内容 | |
3 | 「画像ファイルを送れ。」 | →→→→ | |
4 | ←←←← | 画像ファイルの内容 | |
: | : | : | : |
なお、Webサーバのポート番号は、通常80番が使われます。
クライアントとサーバは、電子メールやWebのように目に見えるものばかりではなく、目立たない所でも使われています。 ここでは、DHCPサーバとDNSサーバを取り上げます。
はじめに紹介するサーバは、 DHCP (Dynamic Host Configuration Protocol)サーバです。 これは、使われていないIPアドレスを動的に割り当てるソフトウェアです。 プロバイダ経由でパソコンをインターネットに接続する際によく使われます。
買ってきたばかりのパソコンには、IPアドレスは割り当てられていません。 プロバイダと契約しても、普通はIPアドレスは指定されません。 しかし、パソコンにはDHCPクライアントにあたるソフトウェアが組み込まれています。 パソコンをプロバイダに接続するとき、このDHCPクライアントが稼働します。 DHCPクライアントは、DHCPサーバに対してIPアドレスの割り当てを要求します。 DHCPサーバは、この要求に応じ、その時点で未使用のIPアドレスを選び、DHCPクライアントに返答します。 そして、DHCPクライアントはこのIPアドレスをもとにパソコンの設定を行います。 IPアドレスが割り当てられたので、このパソコンはインターネットを構成するホストになり、インターネットのサービスが利用できるわけです。
次に紹介するサーバは、 DNS (Domain Name System)サーバです。 DNSサーバは、ネーム・サーバとも呼ばれます。 これは、ドメイン名からIPアドレスを割り出す(名前解決と言います)ソフトウェアです。 DNSの働きによって、IPアドレスだけではなくドメイン名によってもホストが特定できます。
まず、メール・アドレスやURLなどの形で、ホストにドメイン名が与えられたとします。 すると、そのホストのDNSクライアントは、ドメイン名に対応するIPアドレスを教えるように、DNSサーバに対して要求します。 DNSサーバには、ドメイン名とIPアドレスの対応表が登録されています。 そこで、DNSサーバは、その対応表に基づいて、DNSクライアントに対してIPアドレスを教えます。 最後に、ホストはそのIPアドレスに対して通信を開始します。
先に、IPアドレスを割り当てている管理組織の話をしました。 東京女子大学に割り当てられているIPアドレスの範囲が、仮に前述の通りだとすると、学内には254台しかホストが置けないことになります。 この問題は、プライベートIPアドレスを用いると解決できます。 プライベートIPアドレス ( private IP address )とは、以下の特別な範囲の中のIPアドレスです。
IPアドレス | ネットマスク |
---|---|
10.0.0.0 | 255.0.0.0 |
172.16.0.0 | 255.240.0.0 |
192.168.0.0 | 255.255.0.0 |
プライベートIPアドレスでないIPアドレスは、 グローバルIPアドレス ( global IP address )と呼ばれます。
プライベートIPアドレスは、IPアドレスの管理組織に割り当てられなくても自由に使えるIPアドレスです。 ただし、そのまま使うと、インターネットでIPアドレスが重複する可能性があります。 一般的には、組織を代表するホストにグローバルIPアドレスを割り当て、その他のホストにプライベートIPアドレスを割り当てます。 組織内で通信するときは、プライベートIPアドレスは重複しませんので、とくに工夫は要りません。 組織外と通信するときは、ルータがプライベートIPアドレスをグローバルIPアドレスに変換し、あたかもグローバルなホストが通信しているように見せます。 (このようなルータは、NAT(Network Address Translator)と呼ばれます。) このようにすると、たとえ同じプライベートIPアドレスが複数の組織で使われていても、変換後のグローバルIPアドレスは異なるので、通信に混乱は生じないのです。
IPアドレスは、256×256×256×256=約40億通りあるので、計算上は約40億台のパソコンまでインターネットに接続できます。 しかし、最近、このIPアドレスも使い尽くしてしまいました。 近い将来、インターネットは IPv6 (アイピーブイシックス)と呼ばれる規格に移行するでしょう。
IPv6におけるIPアドレスの具体例は、「2001:db8::1」です。 このように、0〜9とa〜fの1〜4桁の文字列を最大8つ並べ、それらをコロン(:)で区切ります。 IPv6では、億や兆をはるかに超える数のIPアドレスができるので、それらを使い尽くすことはありません。
インターネットが普及していなかったころ、パソコンの使い方としては、必要なソフトをパソコンにインストールし、データをパソコンに保存するのが一般的でした。 インターネットが普及した現在、パソコン・ソフトの代わりにインターネット上のサービスを利用し、データもインターネット上に保存するということが可能になりました。 このようなパソコンの使い方を、 クラウド・コンピューティング ( cloud computing )と言います。 「クラウド」とは「雲」のことですが、ネットワーク業界ではインターネットを雲の形で表現するので、このような名前がつきました。
クラウド・コンピューティングには利点と欠点があります。 利点は、高性能のパソコンが要らなくなり、インターネットに接続できるパソコン(またはスマートフォンやタブレット)で間に合うことです。 また、世界中のどこからでも自分のデータにアクセスできるので便利です。 欠点は、サービスを提供している会社が倒産すると、そのサービスを利用できなくなることです。 倒産しなくても、その会社がサイバー攻撃を受けて、自分のデータが盗まれてしまうことも考えられます。 近い将来、クラウド・コンピューティングが常識になるかもしれません。 利点と欠点を理解して、クラウド・コンピューティングを行うようにしてください。
来週の授業中に、授業評価のアンケートを実施します。 アンケートはマークシート方式なので、鉛筆かシャープペンシルを持参してください。