宮水の日記

宮水の日記

主に書評や資格取得について記事を書いています。

【おすすめ技術書】マスタリングTCP/IP 入門編

みなさんこんにちは。宮水です。

 

 

先日から読み進めていた「マスタリングTCP/IP 入門編」を読み終えました!

マスタリングTCP/IP 入門編 第5版

マスタリングTCP/IP 入門編 第5版

 

 

 

とても良い本だったので今回は、

を書いていこうと思います!

 

 

f:id:kattyan53:20181208165130p:plain


 

 

 

インフラエンジニアじゃないけど
TCP/IPの本を読んでみようと思った理由

結論から申し上げますとWebエンジニアとして、

・自分たちを取り巻いているネットワークの世界とは具体的になんなのか?

・プロダクトをただ完成させるだけではなく、運用やセキュリティについても学ぶための基礎を身につけたい!

と思い、この本を読むに至りました。

 

 

私たちは普段、スマホやパソコンを用いて通信をしています。

その通信をする環境を「ネットワーク」という風に呼びます。 

その「ネットワーク」で現在もっとも多く利用されている通信手段(プロトコル)がTCP/IPです。

 

 

Webサイトを構築するにあたってプログラミングが書けるようになるだけではなく、

・大量のデータをどうやって効率的に処理しよう?
・どこかのサーバー(もしくはルータ)が壊れたらどうしよう?
・セキュリティはどうしよう?

なども考えられるようにならなければなりません。

 

 

 

これらを考えられるようになる基礎が、TCP/IPだと思いました。 

 

 

この本の概要

この本は、TCP/IPの入門編です。 
この本は初心者向けの本になりますので、コンピュータネットワークの全体像をわかりやすい挿絵例え話を用いて解説しています。

 

 

TCP/IPとは何かと言うと、通信プロトコルの総称です。

 

 

プロトコル、というのは、コンピュータとコンピュータがネットワークを利用して通信するために決められた「約束ごと」です。

 

 

先人のすごい人たちが、通信の約束事を決めてくれたおかげで、

私たちは機種が違っても情報通信できたり

安心安全に通信できたりします。

 

 

 他にも、

・コンピュータとインターネットの歴史

プロトコルとは何か

・誰がどのように決めたのか

OSI参照モデルとは何か

TCP/IPの標準化の背景

OSI参照モデルのいろんな層のいろんなプロトコルについて...(←これが大半)

 が書いてあります。

 

 

自分たちが普段何気なく使用している通信技術の概要について、広く浅く勉強することができます。

 

 

 

この本の良かったところ 

やっぱり、挿絵とたとえ話が非常にわかりやすかった点がとても良かったです。

好きな部分を2つご紹介します。

 

 

プロトコルってなに?を説明

ここに、日本語しか話すことのできないAさんと、英語しか話すことのできないBさん、英語と日本語の両方を話すことができるCさんがいたとします。

このAさんとBさんが会話したらどうなるでしょう?

また、AさんとCさんが会話をした場合はどうでしょう?

このとき、日本語や英語を「プロトコル」言語によってコミュニケーションをすることを「通信」話の内容を「データ」と考えてみましょう。

AさんとBさんが会話しようとしても、Aさんは日本語、Bさんは英語なので、双方とも相手の話している言葉が理解できません。

その結果、AさんとBさんは、自分が伝えたい話の内容を相手に理解してもらうことができず、コミュニケーションが成立しません。この例では、AさんとBさんが話す言語のプロトコルが異なるため、相互にデータ(話の内容)を伝えることができないのです。

次に、AさんとCさんの場合はどうでしょう。この場合は、両方とも「日本語」のプロトコルを使えば、互いに相手の言葉を理解できます。

AさんとCさんが同じプロトコルを使うため、伝えたいデータ(話の内容)を相手に伝え、理解してもらうことができ、その結果、通信(コミュニケーション)が成立します。 

f:id:kattyan53:20181208160206p:plain

プロトコルを会話で例える

なるほど〜プロトコルっていうのは、お互いの内容を理解するためにあるものなんだなーとすぐに理解することができました。

 

 

ネットワーク層データリンク層の関係

 データリンク層は、直接接続された機器同士の通信を提供します。

ネットワーク層は、IPは直接接続されていないネットワーク間での転送を実現します。

 

 

どうして二つ必要なのか、両者の違いがこれだけだと理解しにくいです。

でも、本書では以下のように例えています。

 

 

どこか遠くへ旅行する場合について考えてください。

飛行機や電車、バスを乗り継いで目的地へ行くことにしました。

旅行代理店へ行って航空券や切符を買うことにします。旅行代理店へ行って出発地点と目的地を伝えたところ、旅行に必要な航空券や切符をすべて用意してくれた上に、旅行の行程表まで作ってくれました。 

f:id:kattyan53:20181208161225p:plain

切符や航空券の役割を分析して考えると、区間内での移動を制御しているものだといえます。この「区間内」というのがデータリンクにあたります。

区間内の出発駅と到着駅が書かれた切符はデータリンクの宛先、送信元が書かれたヘッダ(▼出発駅が送信元MACアドレス、到着駅が宛先MACアドレスと考える。)に相当します。そして、旅の全行程が書かれている行程表がネットワーク層の役割になります。

 

行程表だけで切符がなければ、乗り物に乗ることはできず、目的地へ行くことはできません。逆に、切符だけでも最終目的地までたどり着くことは難しいでしょう。

どの乗り物にどの順番で乗ればよいかが分からないからです。確実に目的地に着くには、切符と行程表の両方が必要になります。

 

 

このように、コンピュータの通信を現実世界の会話や旅行に例えてくれているので、とても理解しやすかったです!!

 

 

 

まとめ

この本を読むことで、コンピュータネットワークの概要を掴むことができました!

技術書を読んでいると眠くなる私ですが、挿絵がとても多くてわかりやすかったので終始楽しく読むことができました。

ぜひぜひ、プログラミング言語の勉強だけでなく、自分たちを取り巻いているコンピュータネットワーク世界の概要を掴んでみてください!! 

マスタリングTCP/IP 入門編 第5版

マスタリングTCP/IP 入門編 第5版