ryokatsu.dev

ネットワークはなぜつながるのかを読んだ


ネットワークスペシャリストの試験を受けるためのおすすめ書籍として紹介されていたので読んだ。エンジニアを10年以上やっていて今まで読まなかったことを恥じるぐらいには良書だった。

ブラウザの検索窓に検索ワードを入力して検索結果が出るまで(ページが表示されるまで)の間に一体何が行われているのかをツアー形式で紐解いていく構成になっている。

自分の知識レベルとしては以下である。

  • OSI参照モデルにそれぞれ何をしているのかを把握している
  • HTTPについてはある程度理解しているつもり
  • TCP/IPとUDPがざっくり何か知っている
  • ざっくりとLANからハブを経由してサーバーまでパケットを送る

ARPの存在とMACアドレス

パケットを送る際にレイヤーごとに様々なヘッダーがあり、パケットの中身をチェックしている所までは大学の講義などで理解していたが、実際にMACアドレスがどう使われ、ARPによってIPアドレスとMACアドレスを紐づけしたりしているなどはほとんど理解がなくそのあたりの知見がかなり広がった。

またDNSサーバーとやり取りするのはいつなのか、実際にLANケーブルで電気信号になるまでなどの経緯も知ることができた。普段フロントエンド開発していると、ページ描画するのにとにかくファストに!みたいな感じのことを考えるが、そもそもその前段でページを表示するまでの一瞬の間に、こんなにも複雑なことをしているんだなと改めて感じた。経路表など全然知らなかったので目からウロコだった。

ルーティング、ハブ

なんとなくこのあたりは苦手意識があったというか引っ越しとかした後のプロバイダ契約だったり、ルーターを設置して、ケーブルを指してWi-Fiセットしてみたいな作業がとにかく好きではなかったが、スイッチングハブやルーティングの技術によってどのようにデータを制御しているのかも理解することができネットワーク環境を見直してみようという気持ちに5ミリぐらいなったのでそういう面でも良かった。

LANケーブル

ツイストペアケーブルなどの言葉は知っていたが、実際にレイヤー1の物理層でデータがどのようにネットワークの外に出ていくのかを知ることができたのはとても良かった。光ファイバのアクセス回線の仕組みなども全然知見がなく勉強になった。ネットワークの外に出たあとのサーバーに到達するまでの流れ(ファイヤーウォールやキャッシュサーバなど)は業務でも良く意識することなので復習にもなった。

総評

少し古い本ではあるのとIPv4を前提とした話なのでIPv6だとそもそもARPではないなどのキャッチアップは別の書籍などで勉強が必要だと感じた。しかし使用する技術が違うだけで考え方などは近い部分もあると思うので、決して無駄ではないと思う。あとネットワークについては図が重要だと感じたので、2周目は、図を手書きしてみて更に理解を深めようと思う。

ネットワークはなぜつながるのかの書籍のスクリーンショット