情報システム概論 I
電子・情報工学系
新城 靖
<yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/coins/dsys-2005/2006-02-13
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/
http://www.cs.tsukuba.ac.jp/~yas/
- オペレーティング・システムの構造、カーネル、シェル、ライブラリ
- ハードウェアの分類
URL を打ち込んでから Web ブラウザに表示されるまでどんな要素が働いてい
るか理解する。
新城の定義。情報とは、コピーしても同じものと思えるもの。物は、コピーす
ると別のものになる。お金は、情報だがコピーしてはいけない。
新城の定義(その2)。情報とは、情報処理の対象となるもの。情報処理とは、
次の3つ。
- 計算(computation)
-
数の加減乗除、文字列の比較・置き換え、選択など。
プログラミング言語でできることは、主にこれ。
メモリ中のものしか計算の対象にならない。
CPUは、メモリ中のデータしか書き換えられない。
- 通信(communication)
-
データをあるコンピュータ(プロセス)のメモリから別のコンピュータ(プロ
セス)のメモリにコピーすること。
- 記憶(storage)
-
「整理」して、永続的な記憶にコピーする。
実際には、いろいろな要素が混じって、厳密には分類不可能。
記憶媒体を移動させる/共有すると通信になる。
通信内容を保存することもできる。
computerとcalculatorは違う。電卓。電子式卓上計算機。
- 情報を符合化し、01の並びに変える。
- ビット列を、プログラムに従って処理(計算、通信、記憶)する。
- プログラムもまたビット列として与える。
内部でどうやっているかは、よくわからない。
外から見える人間の情報処理
- 計算(computation)
- 数の計算。1+2=3。
- フィルタリング。必要な情報を選び出す。
- 通信(communication)
- 電話する。
- 黒板に字を書く。
- マスメディアを使う。テレビ、新聞、放送。
- 直接会って会話する。ボディ・ランゲージ。
- 記憶(storage)
- 紙に字を書く。
- 覚える。
- HDDレコーダでテレビ番組を録画する。
インターネットの定義。
なぜ事務室にコピー機があるのか。
情報のコピーにどんな意義があるのか。
ネットワークのネットワーク、つまり、いくつかのネットワー
クが
ルータ(router)というコンピュータを使って
相互接続されたもである。

最小のinternet(小文字)
ネットワーク
とは、それぞれ独立した方針で運営されているコンピュータ・ネットワーク
である。
インターネットではないコンピュータ・ネットワーク
- 組織内のLAN (Local Area Network)
- 銀行のATMのネットワーク
- センサーネットワーク
LAN は、狭い範囲のコンピュータを接続するためのネットワーク。
固有名詞。
世界最大のインターネット(小文字)は、インターネット(大文字)と呼ばれる。
固有名詞としてのインターネットの意味
- TCP/IP という共通の通信プロトコルにもとづくネットワークのネットワーク
- このネットワークを活用し発展させる人々のコミュニティー
- このネットワークを通じて到達できる資源の集積
現在のインターネットは、
ARPANET
という、1960年代の終りにアメリカ国防省の資金による研究プロジェクトの結
果作られたネットワークが元になっている。ARPANET の研究成果の1つとし
て、TCP/IP という通信プロトコルがある。
- プロトコル(protocol), 通信プロトコル(communication protocol)
-
通信を行う機器、コンピュータ、あるいは、プログラムの間でどのよう
な手順で行うかを定めた規則
インターネットという言葉は、TCP/IP では到達できなくても、
何らかの方法で電子メールを交換できる範囲を意味することもある。
電子メールが、インターネットの「応用」で最も重要。
方法には、UUCP (Unix-to-Unix system copy, ファイルをダイアルアップでコ
ピーする)などがある。
通信量で見た場合、
1994年まで世界最大のネットワークは、電話であった。
1995年では、インターネット上を流れるデータの通信量が、電話による音
声の通信量を超えた。
ネットワークとして見た時の電話の特徴
- つながっている機器は、電話機(音声と電気信号を変換する機械)である。
- ネットワークを流れるデータは、音声のみである。
- 電話には、電話番号が振られている。
- どの電話もどの電話とも接続可能である(例外あり)。
- 電話を掛ける時、電話を使う人は、電話番号を指定するだけでよい。
電話を使う人は、途中の通信を中継している交換機の存在を気にしなくてもよい。
インターネットの特徴
- つながっている機器は、コンピュータである。
- ネットワークを流れるデータは、コンピュータで扱えるデータ(ビットの並び、2進数)である。
- コンピュータにはIPアドレスと呼ばれる番号がふられている。
- どのコンピュータもどのコンピュータとも接続可能である(例外あり)。
- 通信をするとき、使う人は、IPアドレスを指定するだけでよい。
使う人は、途中の通信を中継しているコンピュータ(ルータ)の存在を気にしなくてもよい。
電話にはない、インターネットの特徴は、末端のコンピュータの力を借りて、
さまざまなサービスが提供できることにある。
問題:あるコンピュータをインターネットに繋ぐにはどうすればよいか。
答え:既にインターネットに繋がっている所になんとかしてつなぐ。
- LAN をつかう。Ethernet または無線LAN
- アクセスラインのサービスを利用する。
自宅から電話局、または、インターネット接続サービス・プロバタイダまでの
回線を、アクセスラインとよぶ。
- 電話回線、ISDN
- ADSL
- 光ファイバを使ったもの
- ケーブルテレビの線
- 携帯電話、PHS、無線LAN技術の応用
アクセスラインの先は、インターネット接続サービス・プロバイダ。
NTTと同じような通信会社に分類される。ケーブルテレビ局などをのぞいて、
自前で通信媒体を持っている所は少なく、NTTなどから専用線を借りてイン
ターネット接続サービスを提供している。
法律用語: 電気通信事業法
- 第一種通信事業者
- 自前で回線設備をもっている
- 第二種通信事業者
- 第一種通信事業者から回線を借りて通信サービスを提供する
インターネット接続サービス・プロバイダまでの接続
- 常時接続
- ダイアルアップ接続(使うときだけ電話経由で)

図? インターネット接続サービス・プロバタイダまでの接続方法
インターネット接続サービス・プロバイダより先は、どうなっているか。
インターネット接続サービス・プロバイダ間も、仕組みとしては、ルータで接
続されている。
ルータ間の接続には、NTTなどから借りた専用線(銅線、光)が使われる。

図? インターネット接続サービス・プロバタイダ間の接続
インターネット接続サービス・プロバイダが直接相互接続している場合もあるが、
ある場所に置かれた特別なルータで相互接続されている場合もある。
この相互接続の場所を
NSPIXP (Network Service Provider Inter eXchange Pint)
や
CIX (Commercial Internet eXchange)
とう。
世界のインターネットの中心は、アメリカである。世界各国は、基本的には、
アメリカのインターネットのどこかに接続する。
アメリカ以外の2国間の通信も、アメリカ経由になることが多い。
- アメリカは、高い国際回線の費用を負担していない(国際条約違反)
- アメリカは、他の国の間の通信を傍受できる。
国内のインターネット接続サービス・プロバイダのいくつかは、独自の国際専
用回線をアメリカに向けて引いている。
アジアやヨーロッパにもアメリカを通らずに通信する回線も増えて来ている。
インターネットで現在よく利用されているサービス(アプリケーション、
応用)には、次のようなものがある。
- 電子メール
- ネットワーク・ニュース
- ファイル転送(ftp)
- WWW (The World Wide Web)
- 遠隔ログイン
- 文字による対話
- 音声、動画像による1対1の対話、多地点間を結ぶ会議
「応用」とは、通信の専門用語。
電子メールでもWWWでも、TCP/IPという仕組みを用いて通信を行っている。
この節では、TCP/IP の仕組みについて簡単に説明する。
大事な考え方には、次のようなものがある。
- プロトコル・スタック
- クライアントとサーバ
- DNS
電子メールでもWWWでも、TCP/IPを用いた通信では、
図のように、4つの
プロトコルの
層(layer)(
通信の手順を決めた規則)
が使われる。TCP/IP自身は、
TCP層
と
ipそう
という2つのプロトコルから成り立っている。
ネットワーク通信では、
さまざまなプロトコルが決められ、全体として層をなしている。この様子を、
プロトコル・スタック(protocol stack)
と呼ぶ。

TCP/IPにおけるプロトコル・スタック
インターネットでは、大きなデータを小さなデータの断片(データグラム、
パケット)に分割して送る。
データグラム(datagram)は、データと電報(telegram)から作られた造語。
データグラムに分割することで、次のような利点がある。
- 複数人で使う時に効率よくネットワークが使える。
ある人が大きなデータを流しても、ネットワーク占有してしまうことはない。
- 大きなデータの一部が壊れたとしても、壊れた部分だけを再送すればよい。
- 複数の回線を束ねて高速化できる。1つの通信のデータグラムを複数の
回線にばらす。
- 最大長を定めたり、大きさを固定にすることで処理が簡単になる。
特にハードウェアで扱う時に。
- ルータが故障したり回線が故障した時に迂回できる。
IP (Internet Protocol)
は、(信頼性がない)データグラム転送サービスを提供する通信プロトコルである。
IPのデータグラムは、次のような性質を持つ。
- データの送り手と受けての間に結合(connection,通信路)が作られない
- 複数回に分けて送り出したデータの順番が入れ替わる可能性がある
- 送り出したデータが途中で失われることもある
データグラムは、
パケット
と呼ばれることもある。
データグラムは、葉書に似ている。IPのデータグラムが配達
されるときに使われる番号が、
IPアドレス
である。IPアドレスとしては、現在32ビットの整数が使われている。
(IPv6 では、IP アドレスは、128ビットになる。)

ルータによるデータグラムの転送
ルータは、IPアドレスを見て、データグラムの送り先を判断する。
郵便局で、住所を見て、送り先を判断するのと似ている。郵便局は、一番末端
のもの(ポストから集配したり家に配ったりする)ではなくて、中間的な集配を
する郵便局がある。
同様に、ルータも、自分自信は、最終到達地点のコンピュータを知らなくても、
別のルータに送るだけのようなものもある。
ルータは、隣のルータや回線が故障した時には迂回路を探す。
迂回絽がなければ通信は途絶する。
ルータとルータは、どの回線やルータが生きているか、通信速度はどうなって
いるか等の情報を交換し会う。これらの情報を元に、各ルータは、受け取った
データグラムを次の最適の経路/ルータに送る。
IPアドレス
を表現する時には、普通、8ビットずつ区切って、0から255までの10進
数を4つで表現される。たとえば、次のように書く。
12.34.56.78
これは、10進数でいくつになるかを計算したい時には、次のようにして計算
する。
(((12 * 256)+34)*256+56)*256+78
TCP(Transmission Control Protocol)
は、IP の機能を利用して、信頼性のある(reliable)双方向の
ストリーム転送サービス(stream transport service)
を提供する通信プロトコルである。
(図)。
ストリーム
には、次のような性質がある。
- データの送り手と受けての間に結合(connection,通信路)が作られる
- 複数回に分けて送り出したデータの順番が入れ替わることはないが、データの区切りは保存されない
- 送り出したデータが相手に届くようにする(途中で失われた時には、再
送する)
TCPで通信をする時に、通信相手を識別するにはIPアドレスと
ポート番号(port number)
が使われる。ポート番号は、16ビットの整数で、よく使われる
アプリケーション
(
サービス
)
には、あらかじめどの番号を使うかが決めらている。これを
well-knownポート番号(well-known port number)
という。

TCP/IPによりより提供されるストリーム
TCP層の上には、
応用層
が定義されている。この層では、電子メールの転送、ファイル転送、遠隔ログ
イン、WWW、といった TCP/IP を利用するプログラムの間の通信方法が定義さ
れている。
TCP/IPを使った通信は、まるでコンピュータ同士(プログラム同士)が電話で
会話するように進められる。
表? TCP/IPの上に定義されているプロトコルの例
ポート番号 | プロトコルの名前 | 目的 |
21 | FTP(File Transfer Protocol) | ファイル転送 |
22 | ssh | 遠隔ログイン(ssh) |
23 | Telnet | 遠隔ログイン(telnet) |
25 | SMTP(Simple Mail Transfer Protocol) | 電子メールの転送 |
79 | finger | fingerコマンド |
80 | HTTP(HyperText Transfer Protocol) | WWWのデータ転送 |
110 | POP(Post Office Protocol Version 3) | 電子メールの受信 |
119 | NNTP(Network News Transfer Protocol) | ネットワーク・ニュースの記事の転送 |
143 | IMAP(Internet Mail Access Protocol) | 電子メールの受信・保管 |
513 | login | 遠隔ログイン(rlogin) |
IPのデータグラムを転送するためには、さまざまな物理的な媒体
(電線、光ケーブル、電波)
が使わる。
IP の視点からは、LAN や アクセスライン も物理層と見なす。OSI 7層モデルでは違う。
ダイアルアップなどを使った通信では、 PPP(Point to Point Protocol)とい
うプロトコルの上に、IPデータグラムが転送される。
- ホスト
-
ネットワークに接続されているコンピュータの中で、ネットワークに1ヵ所の
出入り口(
ネットワーク・インタフェース(network interface)
)を持っているもの
- ルータ
- 2ヵ所以上の出入り口を持っているコンピュータ
ルータは、ネットワークとネットワークを接続するた
めのコンピュータである。
ルータは、入ってきたIPのデータグラムのIPアドレスを見
て、どのネットワークに送ればよいかを判断する。
ルータは、
ゲートウェー(gateway)
と呼ばれることもある。
- 電話的定義
- 電話回線より速い
- 通信の専門用語
- 変調を行い、1つの線に複数の信号を同時に流す
- 世俗的な定義
- 通信速度が 500 k bps 以上のアクセスライン
部屋の中から大学キャンパス程度までの範囲を接続するためのネットワーク。
イーサネットと無線LANがよく使われる。
イーサネット
- もともとはコピー機で有名な Xerox 社が開発したLANの仕組み。
IEEE (Institute of Electrical and Electronic Engineers,
アイトリプルイー) という学会に設置された委員会で標準化された。
委員会の名前は、IEEE 802.3。
- 通信速度としては、10 M, 100 M, 1 M, 10G 等の種類がある。
- 物理媒体は、同軸ケーブル(テレビのアンテナの引き込み線でも使われている)、
非シールドより対線(Unshielded Twisted Pair Cable)、
光ファイバが使われる。
無線LAN
- 主に免許が要らない周波数帯の電波を使う。
(以前は赤外線を使うもの使われていた。)
- 規格としては、IEEE 802.11b, IEEE 802.11g, IEEE 802.11a などがある。
イーサネットのデータグラムをそのまま流せる。
- 速度は、最大 11M bps から 54M bps 程度と言われているが、
実際にはそれほどは出ない。雑音や混信に弱い。
Wi-Fi (Wireless Fidelity, ワイファイ) は、アメリカの業界団体が無線LAN
の相互接続認定した機器。
ディジタル信号の0、1の並びを、電気信号へ変換する。
- 振幅変調 (AM, Amplitude Modulation)
- 周波数変調 (FM, Frequency Modulation)
- 位相変調 (QM, Phase Modulation)
直交振幅変調 (QAM Quadrature Amplitude Modulation) は、AM とQM を組み
合わせる。
音声を流すための銅線(光ではない線)に、音声では使わない高い周波数の信
号を流してデータ通信を行う仕組み。DSL (Digital Subscriber Line, ディジ
タル加入者回線)の一種。Asymmetric とは、上り下りを非対称にして、下りを
高速にしたもの。
- 音声
- 3.4KHz 以下
- 上り
- 25KHz-150KHz
- 下り
- それ以上
変調は、QAM。
スプリッタは、音声の通信とデータ通信(上り/下り)を分ける。
NTT 等の電話会社は、光ファイバによるアクセスラインを商品としては、
100Mbps で売っている。技術的にはもっと高速な通信(10G bps程度) は可能。
線の部分よりも、ルータの速度が問題で押さえている。
銅線を使うものより、混信(漏話、cross talk)や雑音に強いので、電話局よ
り離れても安定している。配線には銅線より手間がかかる。
輪切りにすると、中心から、導線、絶縁体、外部導体(シールド)がある。単
純な線より、雑音に強い。イーサネット、テレビのアンテナ線(丸いもの)、
ケーブルテレビの配線にも使われる。
外側の導線が雑音を防ぐ。
イーサネットにも配線にも使われていたが、最近はイーサネットはより対線や
光ファイバが多い。
ケーブルテレビ会社が提供するインターネット接続サービスでは、各家庭には、
ADSL と同様に、スプリッタとモデム(ケーブルモデム)を置く。
モデムは、電話回線やケーブルテレビの線など
もともとアナログ信号しか通らないような回線でディジ
タル情報(ビットの並び)を送るための機器。電話回線につなぐモデムでは、
ディジタル情報(ビットの並び)は、音声(表す電気信号)に変換されて
アナログの回線に送られる。反対側では、再びディジタル情報に戻される。
UTPケーブル、より線ということもある。
線がよってあるので、雑音が相殺される。
イーサネットで使われているものは、線が8本(4ペア)。
速度によって、利用するペアが違う。
2種類ある。
- ストレート
- 単純に結線されている。ハブとコンピュータを接続する時に使う。
- クロス
- ペアが逆になるように結線されている。ハブとハブを接続するために使う。
ハブがない時でも、2台のコンピュータを接続する時にも使える。
最近のハブやコンピュータは、ケーブルの違いを自動的に認識することが多い
ので、ケーブルの種類に悩まなくてもよくなりつつある。古い機器では、区別
が大事。
多重接続(Multiple Access)とは、同じ周波数帯で複数の局が同時に利用する
意味。同時といっても、複数の通信を区別する必要がある。その方法にはいく
つかの方法がある。
- FDMA。周波数で分ける。初期の自動車電話。
- TDMA。時間で分ける。PDC (Personal Digital Cellular)。PHS。コードレス電話。
- CDMA。符合でわける。
携帯電話でデータ通信の方法
- 固定電話と同じように音声信号に変換して送る。
- パケットととしてディジタルのまま送る。
携帯電話の音声の通信でも、内部的には連続的な音声の信号を、ディジタル・
データに変換し、分割してパケットとして送り出している。
携帯電話の課金の方法には次の2つの方法がある。
TCP/IP のネットワークは、Best Effort のネットワークである。
- データを送信したとしても、途中で失われることがある。その場合、TCP
では再送して回復を試みるが、必ず送り届けられる保証はない。
(UDP では、
自動的には再送はされない。)
時間切れで遅れなかったと報告されても、実際には送られていたということもある。
- 利用可能な通信帯域(あるいは、通信速度)が、変動する。混んでくる
と、データが失われないまでも、帯域が狭くなる(速度が遅くなる)。
Best Effort に対して、予約ができるネットワークもある。
- 通信を開始する時点で、途中のルータ(交換機)で利用可能な帯域
が予約できる。予約できない時には、そもそも通信の開始ができない。
(電話なら通話中になる。)
- メッセージを送信できたか、送信できなかったかが必ずわかる。
コンピュータの世界では、ある物を指し示すための情報という意味の類語:
- 名前(name)
- 識別子(ID, Identifier)
- ハンドル(handle)
- 参照(reference)
- ポインタ(pointer)
- アドレス(address)
- 場所(location)
名前サービスとは、高レベルの名前を低レベルの名前に変換するサービス。
- 高レベルの名前
- 文字列、人間が解釈できる
- 低いレベルの名前
- 整数、コンピュータにとって都合がよい
- 名前サーバ(name server)
- 名前サービスを提供するプロセスは、
- 名前解決(name resolution)
- 名前から名前を指している番号に変換すること
- リゾルバ(resolver)
- 名前サーバのクライアントとして名前解決をする部分
インターネットで使われている名前サービス。
基本的には、ホストの名前を IP アドレスに変換する。
DNS では、膨大な数のホスト名を含む名前空間を階層的にドメイン(領域)に
分割して管理している。この空間の構造は、木構造とも呼ばれる。
DNS(Domain Name System)のドメインとは、
膨大な数のコンピュータの名前を含む名前空間を階層的にドメイン
(領域)に分割していることを意味する。

図3 名前空間のドメインへの分割
この空間の構造は、木構造としても見ることができる。

図4 名前空間の木構造としての見方
たとえば、次のような名前を考える。
host1.is.u-ust.ac.jp
このように、インターネットでのコンピュータの名前は、「.
」
で区切られた文字列(文字の並び)である。この文字列で使える文字は、アル
ファベット(大文字も小文字も同じだが普通は小文字だけが使われる)と数字、
ハイフン(マイナス)である。
「host1.is.u-ust.ac.jp
」を
図4で考えると、次のようになる。
- まず根の下に、
jp
という節がある。
- その下に、
ac
という節がある。
- その下に
u-ust
という節がある。
- その下に
is
という節がある
- 最後に、
host1
という節(葉)がある。
「host1.is.u-ust.ac.jp
」を
図3で考えると、次のようになる。
- 名前空間全体は、まず、af, al, ・・・, jp, ・・・, uk, zw というド
メインに分割されいる。
- その中の jp ドメインは、ac, ad, co, ne, gr, or などのドメインに分
割されている。
- その中の ac ドメインは、ass, ・・・,u-ust, ・・・, zokei 等のドメ
インに分割されている。
- u-ust ドメインは、さらに cc, ipe, is などのドメインに分割されて
いる。
- 最後に、is ドメインにhost1 という名前が登録されている。
コンピュータのディレクトリ(フォルダ)は、全体では
木構造(tree structure)
になっている。階層化ディレクトリ(hierarchical directory)と呼ばれるこ
ともある。
World Wide Web では、他のデータへの参照を実現するためにURL (Uniform
Resource Locator) という形式を使う。次に、URL の例を示す。
http://www.tsukuba.ac.jp/education/college.html
-
http
- HyperText Transfer Protocol。WWWのデータを保持しているプログラム
と、WWWを表示するプログラムの間でデータをやり取りするときの形式を定め
た約束。
-
www.tsukuba.ac.jp
- そのデータを持っているコンピュータの名前。
-
/education/college.html
- そのコンピュータの中での資源の名前(ファイルの名前)。最後の
.html
は、その資源がHTML で書かれている事を表わしている。
URL には、2つの木構造の表記方法が混じっている。
- 木の根が左(ファイル名)
- 木の根が右(コンピュータの名前)
2種類のエラー
- Not Found. The requested URL XXX was not found on this server.
- Unable to locate the server URL XXX. Please check the
server name and try again.
長い URL のどの部分が怪しいかを区別できるようにする。
エラーが出た時には、木構造で親を探してみる。
インターネットで通信をプログラムを利用する時、
「クライアント」と「サーバ」という分けて考えることが多い。
例:
- ファイル・サーバ
- 名前サーバ
- WWWサーバ
- メール・サーバ
- クライアント・パソコン
コンピュータが1台しかない場合、プログラムは1つでよい。通信をする場合
には、プログラム(コンピュータ)が2つになる。そのうちの1つのプログラ
ム(またはコンピュータ)を、「クライアント」、もう1つを「サーバ」とい
う。
混沌とした通信を「構造化」してわかりやすくする。

図? 構造化されていないもの

図? 構造化されたもの
構造化プログラミング:分かりにくいgoto文をつかわないで、わかりやすい
goto文だけ使う。
元々の意味
- クライアント(client)
- サービスを受ける方、顧客
- サーバ(server)
- サービス(service)を提供する方

図? サービスの授受によるクライアントとサーバの定義
サービスを提供する方は、1つのプログラム(コンピュータ)で複数の利用者
の面倒をみる。その結果、1台のサーバに複数のクライアントがつながる。
- クライアント
- 一人で使うもの
- サーバ
- 複数人で共有するもの

図? 複数のクライアントによるサーバの共有
TCP/IP では、通信するプログラムとプログラムの間は、電話で会話をするよ
うに通信が行われる。両方同時に話をすることは、(可能ではあるが)あまり
行われない。次のようなことを、繰り返すことになる。
- クライアント
- 先に要求を送る、後で結果を受け取る
- サーバ
- 先に要求を受け取る、後で結果を返す

図? 通信のパタンからみたクライアントとサーバの定義
TCP/IP の通信では、通信を始める前に、まず、通信路を作る作る必要がある。
これは、電話で話をする前に、まず、電話をかける操作を行うことと似ている。
- クライアント
- 電話を掛ける方に相当する
- サーバ
- 電話を待っている方
以上のように、クライアントとサーバは、いろいろな意味で使われる。これら
の意味は、多くの場合、一致しているが、一致していないこともある。
通信を開始するパタンで、コンピュータ、プログラム、人間は、次の2つに分
類される。
- 能動的(active)
- ほっといても自分でメッセージを発信し始める
- 受動的(passive)、受け身
- 何か言われると答えるが、自分ではメッセージを発信し始めることはない
クライアントとサーバから作られたシステムは、クライアントが能動的になり、
サーバは、受動的になることが多い。

図? 能動的なクライアントと受動的なサーバ
例:WWWサーバは、WWWクライアントから何か要求が来ない限り、ずっと
黙っている。
コンピュータを使う時には、人間が能動的になり、コンピュータが受動的にな
る。
テレビを見ている時には、人間が受動的になり、テレビが能動的になる。
講義形式の授業では、サービスの授受では、教官がサーバで、学生がクライア
ントになる。通信の開始の方法では、教官が能動的になり、学生が受動的にな
る。
大学以上では、学生は、能動的になることが求められている。
WWW ページのデータは、
WWW サーバ
(
httpd
)
が保存している。
WWW クライアント(ブラウザ)は、WWW サーバから
WWW ページのデータを取り寄せる。
この時使われる通信プロトコルをHTTP
(
Hyper Text Transfer Protocol
)
という。
WWW サーバには何種類もある。
情報学類で使っている
WWWサーバのプログラムの名前は、Apache 。
起動時に設定ファイルを読み込み、要求を待つための
TCP/IPのポートをいくつか(標準ではポー
ト番号80番)を作成する。
図? Apache の動作
WWW のクライアント(普通はWWWブラウザ)からの要求は、
HTTP
によりサーバに伝えられる。
普段は、これら
のプロトコルを直接人間が手で打ち込む必要はないが、WWWサーバの設
定を行なう過程では、確認のために
telnet
コマンドで接続して、直接手で打つ。
プロトコルは、実際には比較的簡単である。
よく使われるクライアントからサーバに送られる要求
(
メソッド(method)
)
は、2種類だけ。
例:次のような URL のページをアクセスする。
http://www.domain/dir1/file1.html
クライアントは、URL のうちのホスト部分を抜きだし、これと標準の
80ポート番号(80)を使って、TCP/IP のコネクションを張る。
クライアントは、HTTP で次のような要求を送る。
GET /dir1/file1.html HTTP/1.0
(
(Return, Enter)は、2つ必要。)
WWWサーバは、普通は、このファイルは、あるディレクトリを起点にしたファ
イル名になっている。
この起点となるディレクトリを
ドキュメント・ルート・ディレクトリ(document root directory)
という。
このディレクトリは、Apache では、標準で次のようになる。
/usr/local/apache/htdocs/
coins では、/var/www/htdocs/。
上の GET 要求に相当するファイルは、次のファイルになります。
/usr/local/apache/htdocs/dir1/file1.html
Apache は、このファイルを開き、内容を読み込む。そして、こ
の内容を、HTTP の応答(response)として、クライアントに返す。
HTTP/1.1 200 OK
Date: Sun, 12 Feb 2006 11:14:56 GMT
Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) DAV/1.0.2 mod_perl/1.24_01
Last-Modified: Thu, 02 Feb 2006 10:38:03 GMT
ETag: "1cc006-4851-43e1e10b"
Accept-Ranges: bytes
Content-Length: 18513
Connection: close
Content-Type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>筑波大学第三学群情報学類</title>
<link href="main.css" rel="stylesheet" type="text/css">
<META http-equiv="Content-Script-Type" content="text/javascript">
<META http-equiv="Content-Style-Type" content="text/css">
<script type="text/javascript" src="navi.js"></script>
</head>
<body ...>
<table width="750" border="0" cellspacing="0" cellpadding="0" align="center">
...
</table>
</body>
</html>
HTTP の応答の第一行は、ステータス(成功か失敗かを表す)。
200
は、エラーがなく成功したという意味。
アクセスされた日付、データの日付、データの型と長さが現れる。
Content-Type:
が text/html
ならば、
HTML で書かれたページの意味。
インラインイメージなら、
なら image/gif
や image/jpeg
になる。
このような情報は、情報そのものではなくて、情報に関する情報という意味で
メタ情報(メタデータ)という。
空行の後に、実際のデータが続く。
HTTP の要求の最初の行は、必須のパラメタ(引数(ひきすう))で、
要求行(request line)と呼ばれる。
それに続き、付加的なパラメタ(オプション)を渡すことができる。
例:ブラウザは、テキストしか受け付けない。
GET /dir1/file1.html HTTP/1.0
Accept: text/*
例:日本語と英語が受け入れ可能である
GET /dir1/file1.html HTTP/1.0
Accept-Language: Japanese, en
例:ブラウザの種類は、FireFox
GET /dir1/file1.html HTTP/1.0
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; ja-JP-mac; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
- 基本的にはテキスト(文字だけからなるデータ)を1対1で送る。
バイナリ・データは、文字に符合化される。
- 電子メールのアドレスには、ドメイン名が使われる。
メールを送る先を調べるのに使われる。
- メールリーダ(MUA, Mail User Agent)は、ローカルの配送プログラム
(MTA, Mail Transfer Agent) に送信を任せて終了する。
- 配送プログラム間の通信には、
SMTP (Simple Mail Transfer Protocol) が使われる。
一般に、送信側の配送プログラムがクライアント、受信側の
配送プログラムがサーバになる。
- 送られたメールは、ファイル(mail drop)に溜まる。
- mail drop をアクセスする方法には、何種類もある。
- ファイルを直接たたく
- POP (Post Office Protocol) 経由
- IMAP(Internet Message Access Protocol)経由
図? 電子メールの配送
Last updated: 2006/02/13 02:44:19
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>