まえがき
私はWebエンジニアである。名前はあるが、腕に自信はない。
とはいえWebエンジニアとして生きていると、日々ネットワークに触れて生活をすることになる。
ネットワークについて断片的な知識しかなかったので、体系的な知識を得よう!と思って手に取ったのがこの「Linuxで動かしながら学ぶTCP/IPネットワーク入門」である。
ざっくりした内容
本書ではLinuxのNetwork Namespaceという機能を使って、仮想的にホストマシンのネットワークから独立したコンピュータを作ったりしながら、各レイヤーのプロトコルを体感することができる。
TCP/IPの説明から始まり、イーサネット、トランスポート層、アプリケーション層*1、最終的にソケットプログラミングまで手を動かして学ぶことで、具体的なイメージをつかみやすくなっている。
読んだ感想
この本は、全体を通して概念的な説明と、具体的なハンズオンをバランスよく提供してくれている、と思った。
冒頭で触れたように、私はネットワークについて断片的な知識しか持てていなかったが、「今までなんとなく知ってたこいつは、こういうことだったのか!!」と点が線になる感覚があって楽しかった。
何より、実際に動くものを作れるのはすごく楽しい!Namespaceを作って、簡単なネットワークインターフェースを構築して、と一つ一つ段階を踏んでいって、最終的にNamespace間でpingが疎通するようになった時は嬉しかった。
内容としては基本情報/応用情報技術者試験の勉強のときに触れたはずだが、あの時は何となく頭の上を通り過ぎる感覚があったものが、もう少ししっかりと輪郭を捉えられたような気がする。
ボリュームも200ページ強とちょうどよく、サクサク読み進めることができた。
おまけ
私は「技術書を買うときは物理本で!」と決めているので、ハードカバー版を購入した。
ただどうやらKindle Unlimitedでは無料で読むことができるらしい。あとUnlimitedじゃなくても1200円とハードカバー版と比べると割安で入手できるようだ。
*1:OSI参照モデルではなく、TCP/IPにおける通信の階層構造の最上位レイヤー。ただし本書では、現場での共通理解を作る観点から主にOSI参照モデルの言葉を用いている。 参照:https://www.rfc-editor.org/rfc/rfc1122