![]() |
![]()
マスタリングTCP/IP 応用編
入門編を卒業したらこちら。
応用編も入門編と同様に豊富な図を使用し、TCP/IPに関するさらに詳細な解説を記している。
特にパッケットの構造はかなり詳細に解説しており、初心者にはすこしつらいかもしれないが非常に読みやすいのでぜひ読んでみてほしい。 arpについても解説しています。
詳解TCP/IP〈Vol.1〉プロトコル
これも 必読中の必読書。
TCP/IPアーキテクチャを、実際にネットワークを組んで通信の動きを観察するという方法で書かれている。
本書に構成されているネットワークは単純なので、実際に同じ構成を組んで実機をいじりながら読み進めると非常に効果的に学ぶことが出来ると思います。
ARPについても解説していますよ。
ARPには、「ARPリクエスト」と「ARPリプライ」という2種類あります。
ARPリクエストは、MACアドレスを知りたいノードが対象のIPアドレスと
MACアドレスの対応を調べるために使用します。
この時の送信方法は、ネットワーク内の全ノードにデータを送信する
「ブロードキャスト」が使われます。

このときターゲットとなるIPアドレスを持っているノードが
存在していた場合、そのノードが「ARPリプライ」を返します。

ちなみに「ARPリクエスト」はブロードキャストで行われたが、
「ARPリプライ」はユニキャスト(1対1通信)で行われます。
以上のようなやり取りによって、MACアドレスを知ることが出来るわけです。
ARPによって一度学習したMACアドレスとIPアドレスの関連付け情報は、
「ARPキャッシュ」としてそのノード上で一定時間保存されます。
そして次に通信をする場合は、このARPキャッシュを参照して
該当する関連付け情報があれば、その情報を使用します。
このように出来るだけ無駄なトラフィックをネットワーク上に
流さないようにしているわけです。
ARPキャッシュの保持時間は、OSなどにより異なり、
Windowsの場合は2分、Linuxでは15分、ルータは1時間となっています。
そして一定時間更新されない関連付け情報は保持時間を過ぎると削除されます。