プロトコル、TCP/IPって何?

2022/11/19に公開

この文章を読んでほしい人

  • ネットワーク学習初心者(←筆者はネットワーク設計など実際の業務で大の初心者なので、ネットワークプロフェッショナルの方も修正などいつでもお待ちしてます..!!)
  • 「プロトコル」という言葉を業務や自学習でよく聞くが、意味を腹落ちしきれていない人

この文章を読めば

  • 「プロトコル」という言葉の意味がざっくりと理解できる。
  • TCP/IPが何かをざっくりと理解できる。

そもそもプロトコルとは?

プロトコルとは、「コンピュータとコンピュータがネットワークを利用して通信するために決められた約束事」のこと。
例えば、ある人とある人が会話する時、「何語で話すか」がプロトコルになる。

Aさん→〇〇を「日本語」で伝える。
Bさん→〇〇を「英語」で伝える。

この「日本語」と「英語」がプロトコル(通信の約束事)。そしてプロトコルは、様々な種類のコンピュータ同士の接続の約束事として使われているのだが、コンピュータ同士の接続は階層構造になっている。そしてその各階層ごとに、「プロトコル」は接続の約束事として使われている。

プロトコルの全体像

コンピュータとコンピュータ同士の接続には様々な種類がある。
例えば、MacパソコンとWindowsパソコンの接続。
その他には、gmail.comと〇〇.jpの接続。これらを大きく分けると以下のような階層構造になる。
image.png

先に挙げたMacパソコンとWindowsパソコンの接続はインターネット層で行われるし、gmail.comと〇〇.jpの接続はアプリケーション層で行われる。

TCP/IPって何?

1つ前の例に戻ると、AさんとBさんが話すためには、共通言語で話す必要がある。
つまり、AコンピュータとBコンピュータが通信するためには、「共通のプロトコル」が必要だ。
(macとwindowsがそれぞれ独自のプロトコルを使っていては、お互いに通信ができない.. mac同士、windows同士でしか通信ができずに不便)

そこで、現在広く使われているのが、「TCP/IP」という標準化されたプロトコルだ。

※TCP/IPという言葉の中には、TCPとIPという2つのプロトコルだけではなく、IPで通信する際に必要となる多くのプロトコルが含まれていることが多い。(前述した通り、各階層ごとに必要なプロトコルが違うから、共通化されたTCP/IPプロトコルの中にも大量のプロトコルがある。

TCP/IPのすごいところ

  1. オープンにTCP/IPの設計について議論できるところ。
    →世界中誰でも参加できるメーリングリストを使って、設計について議論し期限を決めて適宜改善していっている。

  2. 「実際に動くか」を何よりも重視している。
    →「設計書よりもまず実装」という意識で開発している。

参考文献

上記に記載してあるものの100倍くらいの詳しさでわかりやすく書いてあるので初心者に大変おすすめです!

マスタリングTCP/IP入門編
https://www.amazon.co.jp/s?k=マスタリング+tcp+ip+入門+編&adgrpid=123599780051&gclid=CjwKCAiAmuKbBhA2EiwAxQnt7z25shycQH7EUISHmjXrR_AfnVzzSLeVjcYRoDe2vYD32RkJ9OmghhoCt7IQAvD_BwE&hvadid=618622583890&hvdev=c&hvlocphy=1009341&hvnetw=g&hvqmt=e&hvrand=4927596946241833843&hvtargid=kwd-417611595988&hydadcr=27271_14598094&jp-ad-ap=0&tag=googhydr-22&ref=pd_sl_9ptanjo390_e

画像お借りしました。
https://www.infraexpert.com/study/tcpip.html

Discussion