共通科目情報処理(上級)、インターネットの仕組み、2002年12月13日 電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/taiiku-kougi-2002/2002-12-13
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/ipe/
http://www.hlla.is.tsukuba.ac.jp/~yas/index-j.html
http://www.ipe.tsukuba.ac.jp/~yshinjo/
Q1-1: 仮想的通信路、接続、結合について
A1-1: 通信路の開設参照。
Q1-2: SINETというのはどういうものですか?
A1-2: 学術ネットワーク(学術研究目的に用途が限定されているネットワーク) の1つ。大学(文部科学省系)の組織が多い。筑波大学も加入している。 筑波大学内に、SINET のノード(接続ポイントとなるルータ)がある。 筑波大学は、専用線の代金を払わないで SINET に加入している。 SINETのホームページ へ。
Q1-3: IPv6 は IPv4 に対して上位互換性を持っていないのか
A1-3: IPv4 のアドレスは、32ビット、IPv6 のアドレスは、128 ビットである。 IPv6 と IPv4 の相互接続には、互換アドレス( IPv6 のアドレスで、 128 ビッ トのうち、上位ビット96ビットが 0 のもの) や、IPv4写像アドレス(上位80ビッ ト0, 続く 16 ビット1)で可能になることになっている。 IPv4 のアドレスを大量に持っている所は、既得権益を守るためにいろいろ理 由を付けて移行を遅らせようとしていることがある。
Q1-3: コマンドプロンプトやTelnetはUNIXとは違うものですか?
A1-3: 人間とコンピュータの対話方法参照。
Q1-4: ルータの構造は
A1-4: ネットワークに対する出入口が2つ以上あり、ある入口から入ってきた パケットを他の出口に中継する場合は、ルータになる。どの出口に送り出すか は、パケットの IP アドレスと表(ルーティング・テーブル)を見て判断する。
Q1-5: IP層の意義。IP層は、TCP層に統合できるのか。
A1-5: 中継するルータでは、IP層だけが働く。末端のホスト(たとえば、WWW サーバと WWW が動いているコンピュータ)では、TCP層も働く。働く場所が違 うので、分離してある。
Q1-5: ファミリー用のパソコン(ボタンで切り替わるもの)の仕組みはどうなっ ているか。
A1-5: よくわからないが、ボタンを押すとログオンの操作が自動的に行われる ようになっていると思われる。
その他:後半のお楽しみ
TCP/IP では、プロセスとプロセスが、電話で会話をするように通信が行われ る。普通の電話で人間同士が話をするには、まず電話番号を指定して、話相手 に電話をとってもらわなければならない。TCP/IP においても同様である。 TCP/IPでは、電話を掛ける方をクライアント・プロセス、電話を待つ方をサー バ・プロセスと言いう。
TCP/IPにおいて、プロセス間に形成されたストリーム通信路のことを、計算機 間に張られた物理的な回線に似ていることから、仮想的回線(virtual circuit)とも言う。TCP/IP では、回線を接続する段階では、クライアント・ プロセスとサーバ・プロセスは非対称である。一度仮想回線が接続された後は、 両方のプロセスは、TCP/IPのレベルでは、まったく対称的になる。
TCP/IPにおいてプロセス間に仮想回線を開設するには、IPアドレスとポート番 号が必要である。ポート番号は、同じIPアドレスを持つホスト上で動いている プロセスを区別するために使われる。
以下に、通信路が開設される手順を示す。
こうして一度通信路が開設されると、クライアントとサーバは、どちらからで もデータを送り始めることができる。
図3(a) TCP/IP通信路の開設(1)
図3(b) TCP/IP通信路の開設(2)
図3(c) TCP/IP通信路の開設(3)
TCP/IPで通信する時には、通信相手のIPアドレス(32ビットの整数、番号)が 必要になる。IPアドレスは、コンピュータにとって扱いやすいが、人間にとっ て分かりにくい。
人間にとってわかりやすい記号(文字列)を使ったコンピュータの名前から IPアドレスに変換するサービスがあれば便利である。このサービスを、 名前サービス(name service)、 という。 名前サービスを提供するプログラム(プロセス)を、名前サーバという。
名前から名前を指している番号に変換することを 名前解決(name resolution) という。
インターネットで使われている名前サービスは、 DNS(Domain Name System) と呼ばれる。 DNS では、膨大な数のホスト名を含む名前空間を階層的にドメイン(領域)に 分割して管理ている。 この空間の構造は、木構造と呼ばれる。
木構造(tree structure)というのは、コンピュータ・サイエン ス(計算機科学)でよく使われる用語である。分野によっては、同じものを 階層構造(hierarchical structure)という言葉で表現すること が好まれる。ドイツ語語源の、ヒエラルヒー(Hierarchie)という言葉が使われ ることもある。
木構造の例を、大学の組織を使って説明する(図1)。
図1では、筑波大学と書いてある所が木の根にあたる。根からは、何本かの 学群の枝が出ている。このように、コンピュータ・サイエンスでは、木の根を 上に書く習慣がある。第二学群の節には、日本語日本文化学類、生物学類など の子の節がある。第二学群の親は、筑波大学である。
たとえば「情報学類」、「健康・スポーツ教育主専攻」の場合、次のように記述する。
筑波大学第三学群情報学類
筑波大学体育専門学群健康・スポーツ教育主専攻
コンピュータの中で、文字列(文字の並び)で木構造上の位置を表現する時に は、節が分かりやすくために、はっきりと区切りを入れて表現することがよく 行われる。
筑波大学.第三学群.情報学類
筑波大学/第三学群/情報学類
情報学類.第三学群.筑波大学
区切り文字としては、「.」(点)や「/」(スラッシュ)がよく使われる。 並べる時に、木の根に近いほうから書く流儀と遠い方から書く流儀がある。
住所の表記も、木構造である。
日本国.茨城県.つくば市.天王台
図1に示されている木構造は、また図2のように、「領域(domain)」を分割 するような見方もできる。木構造の場合には、領域の境界線が交わることがな い。
Windows の画面や、Macintosh の Finder の表示は、この領域の分割に似て いる。
筑波大学
コンピュータでは、次のような場所で木構造が使われている。
コンピュータ以外では、次のような場所で木構造が使われている。
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で考えると、次のようになる。
根の直下は、ISO (国際標準化機構, International Standardization Organization ) が定めた2文字による国別コード(country code)が使われて いる。ただし、歴史的な理由により、 アメリカを中心として .com, .edu, . gov, .net, .org, .mil などが使われている。日本の国別コードは、 jp である。jp の下には、次のようなドメインがある。
注意:acやadなどの属性を持たないドメイン名も許されるようになった。 .jp と .com の競争のため。
汎用 JP ドメイン名
http://www.nic.ad.jp/dotjp/
普通の引き方を強調する時には正引きということもある。
逆引きには、in-addr.arpa という特殊なドメイン名を引くこと。
例:
12.34.56.78 (数字は、全て 10 進数)
in-addr.arpa ドメインの下に、IP アドレスを8ビットずつ区切り 4 桁の 10 進数で表した時の数を上位から下位の順に並べる。78.56.34.12.in-addr.arpa
問題
1986年、3100の公式名と6500の別名。
1990年、6400の公式名。DNS に以降。この時点で、137,000。
しかし、.com は、2002年12月ごろ 2200万。全体 3700万の60%をしめる。
(http://www.domainstats.com/
)
.jp は、49万個登録されされている。
JINIC/JP ドメイン名に関する統計
http://www.nic.ad.jp/ja/stat/dom/index.html)
http://www.icann.org/tlds/
インターネットのドメイン名の根は、1つしかない。 13個のサーバにコピーが世界各地にある。
もし、別の根の情報を持つサーバがあれば、どうなるのか。
オルタネート・ルート(alternate roots)。
同じコンピュータでも、どのプログラムが動いているかによって、上のどの方 法が使えるかが変化する。また同じプログラムでも、局面に応じて上のどの方 法が有効が違うことがある。初期のコンピュータと比較して、最近のコンピュー タは、マウスだけで操作できる部分が大きくなってきている。しかし、電子メー ルを打ったり、文書を書いたりする局面では、キーボードを中心に使う方が、 マウスとキーボードの間での手の移動が少なくなるので、効率がよい。
次のような状態の時に、2の状態になる。
シェルとは、オペレーティング・システムの構成要素の1つである。シェルは、 オペレーティング・システムの中心部分を貝殻のように包みむプログラムであ る。シェルは、人間とコンピュータが対話(interaction)をする時に重要な 機能を果たす。
Windows では、Explorer という名前のプログラムがシェルに相当する。 Macintosh OS では、Finder という名前のプログラムがシェルに相当する。 Unix (Linuxを含む) では、sh, csh, bash, tcsh, zsh などさまざまな種類の シェルを使うことができるようになっている。X ウインドウを使っている状態 (マウスが使える状態)では、ウインドウ・マネジャと呼ばれるプログラムも、 シェルとしての働きがある。
tcsh が動いている時には、コンピュータの画面には、「ran10」のような記号 が表示される。この記号は、tcsh が人間に対して、コマンド(command、命令) の打込みをうながしている(prompt)印である。この状態で、キーボードからコ マンド名(命令の名前)を打ち込み、最後にリターン・キー(Enter, )を打つと、tcsh がそれを受け取り、実行する。ここでコマンド名は、 多くの場合、プログラムの名前(プログラムが保存されているファイルの名前) である。
以下の説明では、プロンプトが「% 」であるものとする。(設定で変更するこ ともできる。)
tcsh を終了するには、プロンプトに対して、「exit HM_CR()」と打つ。
---------------------------------------------------------------------- % exit ----------------------------------------------------------------------
---------------------------------------------------------------------- % コマンド名 オプション1 オプション2 ... 引数1 引数2 .. ----------------------------------------------------------------------
コマンド名に続く オプション(option)とは、コマンドの動きを少し変えるた めの文字列(文字の並び)である。オプションは、一般には付けても付けなく てもコマンドの働きとしては成り立つ。引数(ひきすう、argument,parameter) は、コマンドの種類によっては、必ず必要となるものである。ただし、オプショ ンと引数の区別は、必ずしも厳密ではなく、混同して使われることもある。 (例:必須のオプション)
コマンド名やオプションや引数は、空白で区切る。空白の有無で、まったく動 作が変る。
たとえば、次の行は、「whoという名前のコマンドを、オプションも引数も無 しで実行する」という意味する。
---------------------------------------------------------------------- % who ----------------------------------------------------------------------
このように、行末に「&」を打ち、リターン・キーを打つ。 こうすると、実行したプログラムが動いている間も、「% 」に対して別のコマ ンドを与えることができる。---------------------------------------------------------------------- % コマンド名 オプション1 オプション2 ... 引数1 引数2 .. & % ----------------------------------------------------------------------
このページでは、安全で、使い方が簡単なコマンドをいくつか紹介する。安全 とは、間違った操作をしたとしても、ファイルが無くなるといったことが起き る心配がないという意味する。
nslookup
記号 > が出ている時には、nslookup プログラム特有の命令が使 える。
次のドメイン名を打ち、IPアドレスに変換しなさい。
仮想計算機(Virtual Machine):ハードウェアには存在しないが、実際の計算機 (コンピュータ)と同じように機械語命令セット、メモリ、入出力など機能をソ フトウェア的に実現したもの。
VMware 用語
VMware を実行するには、まず、パソコンを Linux で実行する。 端末を開き、シェルに対して次の命令を打ち込む。
s015374 は、TA の鈴木さんのログイン名である。~s015374 で、鈴木さんのホー ム・ディレクトリを意味する。~s015374/vm で、鈴木さんのホーム・ディレク トリにある vm という名前のファイルに入っているプログラムが実行される。---------------------------------------------------------------------- % ~s015374/vm ----------------------------------------------------------------------
一度 VMware の画面に入り込むとマウスが取られて抜けられなくなる。抜ける には、画面の左下の表示に従う。~s015374/vm の場合、Alt+Control+Shift の 3つのキーを左手で押してから、右手で Esc キーを押すとよい。
VMware を終了するには、今日の所は、いきなりPower Off してよい。
vm10 login: root Password: (WWWには示していない)
ゲスト側(vm10)にログインして、次のように打つ。% ping 192.168.153.10 % ping 192.168.153.1 % ping 192.168.153.20
ping コマンドは、止まらないので、^C で強制終了する。 強制終了は ^C (コントロールキーを押しながら C キーを押す)。% ping 192.168.153.10 % ping 192.168.153.1 % ping 192.168.153.20
注意:IPアドレスを変更するまで、192.168.153.20 は使えないはず。
確認する。% ifconfig eth0 192.168.153.20 up
ping コマンドで確認する。% ifconfig eth0 (または ifconfig -a)
% ping 192.168.153.20 % ping 192.168.153.10 % ping 192.168.153.1
この状態で、ホスト側から vm10 に対して telnet で接続する。% tcpdump または % tcpdump -x (詳しい内容を 16進数で表示)
telnet でキーを打つたびに、tcpdump のパケットが表示されることを確認する。% telnet 192.168.153.10 vm10 login: user1 Password: (WWWには示していない) または % telnet 192.168.153.20 vm10 login: user1 Password: (WWWには示していない)
例:
To: ipe-inet-2002-announce@top.is.tsukuba.ac.jp Subject: Report2: Challenge締め切りは、2002年12月20日金曜日15:15とする。授業が始まる「前」に出すこ と。授業中に設定した課題について、レビューを行う。