HOME > 記事一覧 > Web開発 > ネットワーク > 【ネットワーク】プロトコルとは?

【ネットワーク】プロトコルとは?

※ このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。

この記事では、プロトコルについて解説します。

プロトコルとは、コンピュータがネットワークを利用して通信するための約束事です。
代表的なプロトコルとしては、IP、TCP、HTTPなどがあります。
いきなりTCP/IPを理解する前にまずプロトコルについて学びましょう。

プロトコルの概要

プロトコルとは、コンピュータ同士がネットワークを利用して通信するための約束事です。
つまり、通信する際にコンピュータがどのような処理をするかを定めたルールです。

例えば、送信するデータがどのコンピュータ宛てなのか、送信元のコンピュータがどれなのかなどの情報をどのように示すのかをプロトコルで決めています。

コンピュータはプロトコルに従ってデータの送受信に必要な情報を定義・解釈します。

プロトコルの種類

プロトコルには様々な種類があります。
代表的なものとしては次のようなものがあります。


  • TCP/IP
  • HTTP
  • FTP
  • DNS

プロトコルが必要な理由

ここまでプロトコルがどのようなものかについて解説しました。
では、なぜこのようなプロトコルが必要なのでしょうか?

もし、プロトコルがなければ、種類が異なるコンピュータ同士で互いに通信することができません。

ここで、種類が異なるコンピュータとはCPUやOSが異なるコンピュータのことです。
コンピュータが実行できる命令はCPUやOSごとに異なるため、特定のCPUやOS向けのプログラムが別のCPUやOSで実行できるとは限りません。
さらに、コンピュータが扱うデータの形式はCPUやOSによって異なります。

異なるCPUやOSのコンピュータ間で通信ができるのは、両者が共通のプロトコルを理解し、そのプロトコルに従ってやり取りをしているからです。

種類が異なるコンピュータ同士でも通信ができるようにするためにプロトコルは必要なのです。

プロトコルの階層化

プロトコルの標準化

プロトコルの階層化の説明の前にプロトコルの標準化の説明をします。

先ほどのプロトコルが必要な理由の説明の中で、種類が異なるコンピュータ同士でも共通のプロトコルを使用すれば通信可能であるとありました。
逆に言えば、プロトコルを使ったとしてもコンピュータ間で同じプロトコルを使用していなければ通信はできません。これは、同じプロトコルに従わなれけば必要な情報(データの送信先や送信元など)の書き方がコンピュータごとに異なってしまいます。そうなると、コンピュータが正しく宛先などの情報を読み取れず、データを送ることができなくなってしまいます。

コンピュータ通信が始まったばかりの頃は、プロトコルは統一されておらずメーカーによって独自のプロトコルが使用されていました。
しかし、コンピュータ通信が盛んになり、様々なメーカーのコンピュータが使われるようになると、それぞれのコンピュータでプロトコルが異なるため、同じメーカーのコンピュータ同士でしか通信ができないという状況なってしまいました。

そこで、メーカーが違っても通信ができるようにするために、プロトコルの標準化が求められるようになりました。
ISO(国際標準化機構)がOSIと呼ばれる通信体系を標準化しました。
※現在は、OSIの定めるプロトコルは普及しておらず、TCP/IPというプロトコルが世界で最も使用されています。

プロトコルの階層化とは?

標準化のためにプロトコルを設計する際の指針として提唱されたOSI参照モデルは、通信に必要な機能ごとに7階層に分かれています。
この通信に必要な機能を階層に分け、機能を分割することをプロトコルの階層化といいます。

プロトコルを階層化することによって、次のようなメリットがあります。


  • ・複雑なネットワークプロトコルを単純化できる→機能が分割され、各階層のプロトコルの実装が容易になる
  • ・各階層を独立なものとして扱え、ある階層を変更してもそれが全体に影響しない


次の図はプロトコルの階層構造を表しています。
上の層と下の層のやり取りをするときの約束事をインターフェース、通信相手(ここでは、コンピュータとコンピュータB)の同じ階層とやり取りするときの約束事をプロトコルといいます。

まとめ

この記事では、ネットワークを学ぶ上で基本となるプロトコルを解説しました。

プロトコルがわかっていなければ、ネットワークについて十分に学ぶことができません。忘れたらこの記事に戻って何度も読み返してみてください。

ここから他の記事も読んでネットワークの全体像を掴んでいきましょう。

このブログだけでもネットワークに関して網羅的に学べますが、本で学びたい方にはこちらがおすすめです!


おすすめ記事

計算量とは?【アルゴリズムに必須】

計算量とは?【アルゴリズムに必須】

HTTPメッセージとは?【情報のやり取りの基本】

HTTPメッセージとは?【情報のやり取りの基本】

URIとは?【Web上のリソースの指定方法】

URIとは?【Web上のリソースの指定方法】

Webの全体像【エンジニアに必須】

Webの全体像【エンジニアに必須】

HTTPとは?【サーバー/ブラウザ間の通信手段】

HTTPとは?【サーバー/ブラウザ間の通信手段】