自分のペースでゆったり学ぶ TCP/IP

[改訂新版] 自分のペースでゆったり学ぶ TCP/IP

[改訂新版] 自分のペースでゆったり学ぶ TCP/IP

 凄い良書だった。これはオススメ本。何となく知っていることを、丁寧に理由を含めて解説してくれた。

インターフェース層

OSI 参照モデル

 今更説明は不要だけど、OSI 参照モデルってありますよね?あれは論理的なレイヤ分割である以上の意味は無いのだと思っていたんですが、本書に書かれている通り「送信側は OSI 参照モデルの上から下にデータを通過させて送信する」「受信側は下から上にデータを通過させて受信する」ことになるんですね。言われて納得。

WAN

 遠く離れた LAN 同士を結ぶネットワークが WAN。これは勿論知っているけど、WAN は LAN と違って自分の敷地の外に対してネットワークを広げることになるので、勝手にケーブルを引くことが出来ない。だから電気通信事業者という特殊な許可を得た会社のケーブルを借りて使うことになる。これは長距離を結ぶので信号の劣化が起きやすく、LAN に比べて速度は遅いしエラーも発生し易い。

アナログ信号とデジタル信号

 電話回線を使ってデータを送りたい場合はアナログ信号、ADSLFTTH を使う場合にはデジタル信号を使う。どちらの信号を使ってデータを送るのかを決めているのがインターフェース層。

ハブとスイッチングハブ

 ネットワーク上に配置されたハブは、信号の増幅装置であると共に電気信号の交差点の役割を果たし、複数のコンピュータをネットワークに接続可能にするが、ハブにつながっている全てのケーブルに電気信号を流してしまう。そこでスイッチングハブを使う。スイッチングハブは流れてきたデータの宛先を見て、宛先のコンピュータが存在するケーブルにだけデータを送る。宛先の判断には MAC アドレスを利用する。

イーサネット

 ネットワークでデータをきちんと送るにはルールがある。LAN 上でのネットワーク送受信のルールとして最も普及しているものがイーサネット
 ハブを利用したイーサネットでは、誰かが送ったデータはイーサネットに接続している全てのコンピュータに届いてしまう。しかしこれではプライベートな通信が出来なくなってしまうので、イーサネットには「宛先をデータに付与し、宛先のコンピュータ以外はデータが届いても無視する」というルールが設けられている。このように宛先が付与された通信データを「イーサネットフレーム」と呼ぶ。また、イーサネットではデータの衝突を防ぐために CSMA/CD が利用されている。

NIC

 上記のようなルールを守っているのが NIC (Network Interface Card)。NIC はビットを電気信号に変えるという役割も持っているから、DCE も兼ねている。NIC には MAC アドレスが付与されている。

PPP

 LAN の接続プロトコルとしてはイーサネットが普及しているが、WAN では PPP (Point to Point Protocol) が普及している。PPP はイーサネットと異なり WAN で接続するネットワークの代表同士を接続する 1 対 1 接続になる。一般的に代表となるのはサーバもしくはルータになる。WAN は LAN より低速であり信頼性も低いため、認証や監視が欠かせない。そこで 1 対 1 で確実にデータを送受信出来るプロトコルが用いられることになった。PPP は電話回線や ISDN 用に作られたものであるが、これを応用して PPPoE (PPP over Ethernet) が作られた。これはイーサネットを経由して WAN に接続出来るプロトコル。PPP ではコンピュータからモデムを通じて WAN(電話回線や ISDN)に接続するが、PPPoE では LAN でブロードバンドモデムに接続し、ここから PPPoE で WAN(ADSLFTTH)に接続する。

インターネット層

 インターフェース層はバケツを隣の人に手渡しするのが仕事。インターフェース層に出来るのは、直接接続された機器同士の通信。遠く離れた人にバケツを運ぶには、そのための情報が必要になる。その情報のルールを決めてルーティングを行い、遠くにある機器同士をつなぐのがインターネット層。インターフェース層が利用するのは MAC アドレスで、これは次に接続するコンピュータを指定する役割を持つ。インターネット層は IP アドレスを利用し、これは最終的にデータが届くコンピュータを示す役割を持つ。

IP アドレスのクラス

 IP アドレスはネットワーク部とホスト部に分けられ、それぞれの大きさによってクラスが決定される。コンピュータを多く持つネットワークでは、ネットワーク部を小さくしてホスト部を大きくする。例えばクラス A ならば 32 ビットのうち 8 ビットがネットワーク部になる。
 

サブネット

 IP アドレスをクラス分けして構築したネットワークでも、その中に含まれる IP アドレスは膨大な数にのぼり管理が難しい。そこでネットワークを小さなネットワークに分割し、それぞれに番号を付けて管理することになった。この小さなネットワークのことをサブネットと呼ぶ。サブネットを利用すると、IP アドレスは「ネットワーク部 + サブネット部 + ホスト部」に分けられることになる(ホスト部を分割する)。
 サブネットもネットワークなので、異なるサブネット間の通信にはルータが必要になる。なので IP アドレスには「どこまでがサブネットなのか」を示す情報 = サブネットマスクが必要になる。サブネットマスクが無いと、ルータにはどこまでが同じネットワークなのか判別出来ない。IP アドレスには必ずサブネットマスクが必要になる。

ルーティング

 ルータはルーティングテーブルを用いてルーティングを行う。ルーティングテーブルには「宛先のネットワーク」のアドレスが記録されている。宛先のネットワークまでデータを送れば、あとは向こうのルータが目的のコンピュータまで情報を伝達してくれる。
 ルーティングテーブルは間違っていると大きな問題となるので、自動/手動で更新が行われる。小さなネットワークなら管理者が手動で維持しても良いかもしれないが、多くの場合はルータ同士が自動で情報を交換し合ってルーティングテーブルの情報を最新に維持する。

ルータ

 ルータは「異なるネットワークへの出入口」であり、ネットワークの境界線。例えばハブでつながっている場合は、それらは基本的に同じネットワークに属していると考えられるが、ハブをルータに置き換えると違うネットワークになる。
 ネットワークの中のコンピュータは、どの出入口を利用してネットワーク外へパケットを送受信するかを予め決めておく必要があり、これをデフォルトゲートウェイと呼ぶ。ルータは基本的には外部ネットワークへの出入口であるので、通常はいつも使うルータがデフォルトゲートウェイになる。 

トランスポート層

 TCPUDP の説明などは割愛。TCP はコネクション確立型で, 3 ウェイハンドシェイクを経てコネクションを確立する、とか、不特定多数への送信を行う場合は UDP を使う、とかね。

トランスポート層の役割

 TCP/IP モデルのうち、インターフェース層とインターネット層までで宛先コンピュータへの送信は可能。
 トランスポート層の役割は大きく分けて 2 つ。再送制御などを行って「宛先に確実にデータを届ける」ことと、ポート番号を用いて「送られてきたデータがどのソフトウェア宛なのかを識別する」こと。

アプリケーション層

 あまり書くことが無いので、役割だけ。

アプリケーション層の役割

 送受信の経路や方法を確立するのがこれまでの各層の役割だったが、これまでに確立された通信経路を用いて何を送受信するのかを決めるのがアプリケーション層。Web の閲覧なら HTTP, メール送受信なら POP や SMTP など。これらのプロトコルに従って「どんな内容のデータを送受信するのか」「どんな表現でデータを送受信するのか」が決まる。