リチャード・スティーヴンス二冊目

Unixネットワークプログラミング」はネ申だったが、この本はどうか。

Unixネットワークプログラミング」は、細かいところ(異常ケースや実装依存の機能)について、具体例とともに説明されていたのでかなり良かった。実際にものを作るときは「detailこそがすべて」だ。detailをどれだけ意識しているかで、最後にできるものの品質が違ってくる。一方で、ソフトウェアの世界では「隠蔽こそがすべて」ということも当てはまる。理想的な本は、細部にこだわるべきところは徹底的にこだわり、触れてはいけないことには一切触れない。「Unixネットワークプログラミング」は、まさしくこういう本だった。

んで、この本だが、期待が大きすぎたのか、もう少しかな。

例えば、ARPの説明では、通常ケースの説明だけでなく、イレギュラーなケースについて、もっと振る舞いの説明が欲しかった。

というのも、先週、Linuxファイアウォールの設定をしていてはまったばかりなので。そのマシンは、ネットワークカードが二枚刺さっており、それぞれにIPが割り当てられているというマシンだった。それぞれのネットワークインタフェースごとにファイアウォールの設定をしたところ、なぜか思ったように動作しなかった。良く調べてみると、すべて一枚のネットワークカードがパケットの処理を行っていた。LinuxのIPエイリアス機能は知っていたが、まさか、勝手にエイリアスになるとは思わなかった。このマシンは、今まで散々使われていたマシンだったのだが、熱くなっていたネットワークカードは一枚だけだったのか。二枚目のカードの立場がないな(笑)。

詳解TCP/IP〈Vol.1〉プロトコル

詳解TCP/IP〈Vol.1〉プロトコル