i-whammy

プログラマーとして学んだこと、思考を整理したことを書く。はず

「Linuxで動かしながら学ぶTCP/IPネットワーク入門」を読了した

まえがき

私は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