コンピュータどうしの交信にも、人の人との交信にも、同じようなプロセスがある。 ここでは、まず、コンピュータどうしの交信が、どのように成り立っているかを探る。 そして、コンピュータどうしの交信が成り立たないという逆の事態に、私たちが如何 に対応したらよいかを考えてみたい。
階層 | 定められること |
---|---|
物理層 | ケーブルの種類やつなぎ方、信号の電気的特性 |
データリンク層 | やりとりするデータの単位、エラー検出、訂正を行う機能 |
ネットワーク層 | 通信を中継する機能 |
トランスポート層 | データの紛失や重複を取り除く機能 |
セッション層 | ある通信があるコンピュータの中のどのプロセスなのか管理する機能 |
プレゼンテーション層 | 文字コード、暗号、データの表現を変換する機能 |
応用層 | 最終的に通信を利用するアプリケーションプログラムの機能 |
イーサネットは、CSMA/CD(Carrier Sence Multiple Access/ Collision Detection)という方式で通信するインターフェイス\footnote{装置と装置を接続するのに必要な、それらの間で適合しなければならない、決めごと}である。イーサ(Ether)というのは、かつての物理学で信じられていた電磁波・光の伝播媒体である「エーテル」の英語式 発音に由来する。
CSMA/CDのネットワークは、バス型\footnote{他に、リング型、スター型がある。}である。また、通信方式はパケット通信\footnote{データを小さな単位に分割し、その単位で配送を行う。この方式は、大きなデータに回線が長時間専有されることがない。}である。
1) 送信したいコンピュータは、伝播媒体の状態をみる(Carrier Sense)。通信中の信号が検出されれば、その信号が検出されなくなるのを待つ。
2) 信号が検出されないので、データを送る。しかし、他のコンピュータの送ったデータと衝突した(Multiple Access)。
3)衝突したことを示す信号を、データを送った側は感知(Collision Detection)し、データの送信を中断。乱数に従う時間、待って、再度送信を行う。
自分と相手を認識するために、インターフェイスは特定の番号を持っている。この番号は、重複があってはならない。各々のインターフェイスのこの一意的な番号をMAC\footnote{Media Access Control}アドレスという。データは次のような、送信先/発信元のMACアドレスを含むフレームに分けらて、送受信されている。
プリアンブル |
---|
SFD |
宛先MACアドレス |
発信元MACアドレス | フレーム長 |
DSAP |
SSAP |
Control |
データ |
PAD |
FCS |
1 kurage.sci.hokudai.ac.jp (133.87.45.1) 0.62 ms 0.468 ms 0.558 ms 2 * 133.50.134.1 (133.50.134.1) 15.188 ms 14.746 ms 3 daikeir1.sys.hokudai.ac.jp (133.87.4.1) 1.082 ms 1.014 ms 0.979 ms 4 133.87.10.21 (133.87.10.21) 1.22 ms 1.102 ms 1.104 ms 5 eczgw01.ec.hokudai.ac.jp (133.87.36.2) 1.59 ms 1.555 ms 1.591 ms 6 eczgw06.ec.hokudai.ac.jp (133.87.38.3) 2.245 ms 2.284 ms 2.293 ms 7 rcen00.ec.hokudai.ac.jp (133.87.38.137) 3.189 ms 3.119 ms 3.233 ms
PING neptune.sci.hokudai.ac.jp (133.50.134.187): 56 data bytes 64 bytes from 133.50.134.187: icmp_seq=0 ttl=253 time=81.8 ms 64 bytes from 133.50.134.187: icmp_seq=1 ttl=253 time=0.7 ms 64 bytes from 133.50.134.187: icmp_seq=2 ttl=253 time=0.7 ms 64 bytes from 133.50.134.187: icmp_seq=3 ttl=253 time=0.8 ms 64 bytes from 133.50.134.187: icmp_seq=4 ttl=253 time=0.7 ms 64 bytes from 133.50.134.187: icmp_seq=5 ttl=253 time=0.7 ms 64 bytes from 133.50.134.187: icmp_seq=6 ttl=253 time=0.6 ms --- neptune.sci.hokudai.ac.jp ping statistics --- 7 packets transmitted, 7 packets received, 0% packet loss round-trip min/avg/max = 0.6/12.2/81.8 ms
127.0.0.1 localhost 133.87.45.21 www-ep.sci.hokudai.ac.jp www-ep 133.87.45.20 ep.sci.hokudai.ac.jp ep 133.87.45.22 news-ep.sci.hokudai.ac.jp news-ep 133.87.45.23 p-curry.sci.hokudai.ac.jp p-curry 133.87.45.24 gyutoro.sci.hokudai.ac.jp gyutoro 133.87.45.6 msta09.sci.hokudai.ac.jp msta09以下はepのhostsというファイルです。
127.0.0.1 localhost 133.87.45.20 ep.sci.hokudai.ac.jp ep以下はsgeoのhostsというファイルです。
#################################################################### # 北海道大学 Hosts File Ver.1.01-0 96/08/05修正 # #################################################################### 127.0.0.1 localhost ################ #水産学部 ################ #IPアドレス ホスト名 別名 コメント 133.87.200.21 ecfgw01 # 133.87.204.1 ecfgw02 # 133.87.204.2 cf01 # 133.87.204.10 ff00 # \end{verbatim} \begin{center} $\cdots$ 中略 $\cdots$ \end{center} \begin{verbatim} ################ #理学部(地物) ################ #IPアドレス ホスト名 別名 コメント #133.50.16.166 ecsgw03 # #133.50.166.1 ecsgw04 # #133.50.166.2 hs03 # 133.50.166.4 fs01 # 133.50.166.5 ws0200 # 133.50.166.6 ws0201 # 133.50.166.7 ws0202 # 133.50.166.8 ws0203 # 133.50.166.9 ws0204 # 133.50.166.10 ws0205 # #133.50.166.3 hs04 # 133.50.166.11 ws0206 # 133.50.166.12 ws0207 # 133.50.166.13 ws0208 # 133.50.166.14 ws0209 # 133.50.166.15 ws0210 # 133.50.166.16 ws0211 # 133.50.166.17 pss601 # \end{verbatim} \begin{center} $\cdots$ $\cdots$ $\cdots$ $\cdots$ \end{center}
\begin{verbatim} Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 133.87.45.0 0.0.0.0 255.255.255.224 U 1500 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 3584 0 0 lo 0.0.0.0 133.87.45.1 0.0.0.0 UG 1500 0 0 eth0 \end{verbatim}Destinationは、ホスト用の場合、パケットの最終目的地のIPアドレスそのものを表す。ネットワーク用の場合、最終目的地のIPアドレスのネットワーク部を表す。Gatewayは、実際にパケットを送るルータのIPアドレス、MSS(システムによってはUse)は総使用回数、Ifaceは、ルータのつながったインターフェイスを表す。FlagsのUは、使用可能を、Gはルータ経由、ここには表示されていないが、Hは対ホストの経路であることを示す。
Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:discard *:* LISTEN tcp 0 0 *:daytime *:* LISTEN tcp 0 0 *:time *:* LISTEN tcp 0 0 *:ftp *:* LISTEN tcp 0 0 *:telnet *:* LISTEN tcp 0 0 *:shell *:* LISTEN tcp 0 0 *:login *:* LISTEN tcp 0 0 *:exec *:* LISTEN tcp 0 0 *:smtp *:* LISTEN tcp 0 0 *:finger *:* LISTEN tcp 0 0 *:auth *:* LISTEN tcp 0 0 *:cvspserver *:* LISTEN tcp 0 0 *:pop-3 *:* LISTEN tcp 0 0 *:printer *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 *:2049 *:* LISTEN tcp 0 0 *:728 *:* LISTEN tcp 0 0 *:canna *:* LISTEN tcp 0 0 *:22273 *:* LISTEN tcp 0 0 *:domain *:* LISTEN tcp 0 0 *:www *:* LISTEN tcp 0 0 www-ep.sci.hokudai.:ssh hikari.sci.hokudai:1022 ESTABLISHED tcp 0 0 *:6010 *:* LISTEN tcp 0 0 www-ep.sci.hokud:telnet neptune.sci.hokuda:1289 ESTABLISHED tcp 0 0 www-ep.sci.hokud:telnet ws0204.ec.hokudai.:1142 ESTABLISHED udp 0 0 *:syslog *:* udp 0 0 *:sunrpc *:* udp 0 0 *:discard *:* udp 0 0 *:daytime *:* udp 0 0 *:time *:* udp 0 0 *:ntalk *:* udp 0 0 *:talk *:* udp 0 0 *:2049 *:* udp 0 0 *:725 *:* udp 0 0 localhost:domain *:* udp 0 0 www-ep.sci.hokud:domain *:* udp 0 0 *:domain *:* raw 0 0 *:1 *:* Active UNIX domain sockets (including servers) Proto RefCnt Flags Type State I-Node Path unix 1 [ ACC ] STREAM LISTENING 379 /dev/log unix 2 [ ] STREAM CONNECTED 385 unix 2 [ ] STREAM 409 /dev/log unix 2 [ ] STREAM CONNECTED 447 unix 2 [ ] STREAM 448 /dev/log unix 1 [ ACC ] STREAM LISTENING 519 /dev/printer unix 2 [ ] STREAM CONNECTED 569 unix 2 [ ] STREAM 570 /dev/log unix 2 [ ] STREAM CONNECTED 586 unix 2 [ ] STREAM 587 /dev/log unix 2 [ ] STREAM CONNECTED 632 unix 2 [ ] STREAM 634 /dev/log unix 2 [ ] STREAM CONNECTED 662 unix 2 [ ] STREAM 663 /dev/log unix 1 [ ACC ] STREAM LISTENING 732 /tmp/.iroha_unix/IROHA unix 1 [ ACC ] STREAM LISTENING 791 /tmp/jd_sockV4 unix 1 [ N ] STREAM CONNECTED 363557 unix 2 [ ] STREAM CONNECTED 367291 unix 2 [ ] STREAM 367292 /dev/log unix 2 [ ] STREAM CONNECTED 375873 unix 2 [ ] STREAM 375874 /dev/logこれは、サーバプロセスのソケットを含めた全ソケットの状態を表示している。TCP、UDPというのは、通信回線を通して他のマシン上のプロセスと通信するプロトコルである。
le0というインターフェイスの、\\ IPアドレスが 133.50.134.187\\ ネットマスクが fffffe00 $\longrightarrow$ 255.255.239.0\\ 放送アドレスが 133.50.135.255\\ であることを表している。IPアドレスが自分のホストのIPアドレスと異なるとき、 /etc/ifconfig le0 IPアドレス と入力して正す。
\begin{verbatim} Default Server: localhost Address: 127.0.0.1 \end{verbatim} sgeoでnslookupと打ったら \begin{verbatim} Default Server: fs01.ec.hokudai.ac.jp Address: 133.50.166.4 \end{verbatim}となった。これは、ネームサーバの設定情報を確認するコマンドである。
センター(cen5)でwww-epのIPアドレスをたずねてみた。
> www-ep.sci.hokudai.ac.jp Non-authoritative answer: Name: www-ep.sci.hokudai.ac.jp Address: 133.87.45.21正しいIPアドレスが紹介されなければ、訂正する必要がある。exitでnslookupコマンドを終了する。あるいは、Ctrl+Dでもよい。
Address HWtype HWaddress Flags Mask Iface kurage.sci.hokudai.ac.j ether 00:E0:YE:CD:EX:8X C * eth0 ep.sci.hokudai.ac.jp ether 00:10:4Y:79:X6:Y6 C * eth0 gachapin.sci.hokudai.ac ether 00:00:E8:YA:4Y:XE * eth0カーネルのメモリから読み出せる全エントリーを表示する。addressは、メモリに格納されているMACアドレスのホスト名を表す。HWaddressはホストに対応するMACアドレス。-SオプションでMACアドレスを登録できる。
%%%%%%%%%%%%%%% 参考文献 %%%%%%%%%%%%%% The UNIX Super Text [下] 技術評論社 つなげてみよう 特修科情報管理課程研修「LANシステム実習」資料 日立CSMA/CDネットワークCD(TCP/IP) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 履歴 奥山(1998/11/13)