マスタリング TCP / IP 入門編 1 ~ 4 章

2020年5月18日 engineering

こんにちは, @kz_morita です.

最近, ネットワーク周りの基礎から学び直そうということで,マスタリングTCP / IP を読んでいます.

今回は,1 ~ 4 章までの読んだ感想を軽くまとめます.

第1章 ネットワーク基礎知識

第1章では,はじめにコンピュータの歴史から始まって,ネットワークの基本的な構成要素について説明がされていました.

特に OSI参照モデルの説明と,各層の構成要素について説明がありました. 物理層の通信媒体の話は,イーサネットの同軸ケーブルや,ツイストペアケーブルなどから始まり,無線などについてもあってこういった話は普段アプリケーション開発を行う上で意識することはないのですが,普段何気なく利用しているインターネットがどういったものでできているかということを再確認できたのはとても興味深かったです.

リピーターや,ブリッジ (L2スイッチ),ルーター (L3スイッチ) などの,ネットワークを構成する機器についても簡単に紹介されてて面白かったです.

第2章 TCP/IP 基礎知識

第2章は,TCP / IP の基礎的な内容が説明されていました.

TCP / IP の成り立ちの話や,プロトコルの標準化の話は普段意識したことがない点で面白かったです.他には,TCP の階層モデルの話や,各階層で具体的にどのようなプロトコルが使われているかがありました.

他にはネットワークの通信を行う際に,アプリケーション層でヘッダをつけてトランスポート層に渡して,トランスポート層でTCPヘッダをつけて下層に渡して・・・.みたいなひととおりの通信の流れの解説などがあり,こちらもおさらいになりました.

第3章 データリンク

第3章では,ケーブルなどの通信媒体でつながれたネットワーク内の通信技術について記載がありました.

バス型や,リング型,スター型などのネットワークのトポロジについてや,通信相手を特定するためのMACアドレスについての記載がありました.

中でも面白かったのが,媒体共有型のネットワークでデータの衝突の検知や,ループの検知などのデータリンクの制御のアルゴリズムが面白かったです. データの衝突の検知のための,CSMA/CD 方式や,トークンパッシング方式など媒体を共有する通信をするための工夫は興味深かったです.

その他には,イーサネットのフレームフォーマットや無線通信の種類などデータリンク周りは知らない知識も多かったので勉強になりました.

第4章 IP プロトコル

第4章では,ネットワーク層のプロトコルである IP について書かれていました.

IPアドレスについてと,ルーティング,パケットのフラグメンテーションと,IPv4, IPv6のフレームフォーマットについて学ぶことができました.

先日書いた Amazon Web Services 基礎からのネットワーク&サーバー構築を読んだ という記事にあるとおり AWS のネットワーク周り構築をしましたが,AWS の VPC で設定した内容のもう少し深い理論や定義などを知ることができました. 具体的には,ルーティングテーブルの仕組みや,サブネットマスク (CIDR) ,NAT などについてその概念や成り立ちともに知ることができました. このあたりも,むかし少し学んだような気がしましたがあらためて AWS の VPC 構築などで手を動かしたあとに学ぶとよりすっと入ってくる実感がありました.

また,インターネットの経路内でパケットの分割が行われないように,経路 MTU (Maximum Transfer Unit) 探索 をおこなう仕組みもなるほどなぁと感心しました. パケットを送って,MTUで送信ができないときに,ICMP をつかって,MTU を送信元に通知して再送する仕組みのことです.

最後に IPv4 と IPv6 のヘッダフォーマットについても記されていて勉強になりました.

まとめ

4章まで読み終わりましたがここまででも非常に勉強になることが多かったです.特にデータリンク周りはあまり知らなかったことが多かったし,IPプロトコルの詳細も初めて知ることが多かったです. 5章以降は現在読んでいる最中なので,引き続き読み進めていこうと思います.

この記事をシェア