ネットワークの勉強をしているIT初心者の方、よくこんな風に思うことが多いのではないでしょうか。
「OSI参照モデルって通信を階層別にしたモデルだけど、結局なに??」
「TCP/IPってよく耳にするけどよくわからない、、、」
「OSI参照モデルとTCP/IPモデルって何が違うの??そもそも比較するものなんだ、、、」
などなど、IT初心者が最初に躓くのはこの通信プロトコルに関するところ。
そこで、今回の記事を読んでもらえれば以下のことが分かるようになりますので、ぜひ最後までご覧ください!
- プロトコルとは、IT機器同士の通信が煩雑にならないように定められた決まりごとのこと
- OSI参照モデルとは、ISOによって定められた、プロトコルの役割を階層ごとにモデル化したもの
- TCP/IP階層モデルとは、国国防高等研究計画局(DARPA) によって定められた、プロトコルの役割を階層ごとにモデル化したもの
- OSI参照モデルとTCP/IP階層モデルの違いは、「策定団体」「階層の呼び方」「各階層でのデータの呼び方」などがある
※基本情報技術者試験の概要と、私のおすすめの勉強法はこちらから。
そもそもプロトコルとは
プロトコルの意味
OSI参照モデルやTCP/IPモデルの話に入る前に、そもそもプロトコルとは何でしょうか。
後に説明がありますが、OSI参照モデルやTCP/IP階層は、ネットワークプロトコルを階層別に分けたものです。(TCP/IP自体もプロトコルですが)
つまり、OSI参照モデルやTCP/IPモデルを理解するためには、プロトコルが何なのかを理解する必要があります。
プロトコルまたはプロトコールとは、複数の者が対象となる事項を確実に実行するための手順について定めたもの。もともとは「人間同士のやりとり」だけに関する用語であった。戦間期の学術的批判を経て、情報工学分野でマシンやソフトウェア同士のやりとりに関する取り決め(通信規約)を指すためにも用いられるようになった。
Wikipedia
プロトコルの一般的な意味は、「手順」です。ですが、上記にもあるように、ITにおけるプロトコルと言えば、「通信規約」を指します。つまり、機器同士がどのように通信を行うかの決まり事です。
では、なぜそんな決まり事が必要なのでしょうか。
ITにおけるプロトコルの必要性
プロトコル、つまり機器同士で通信のやり方に決まりがなかったらどうなるでしょう。
例えば、A社のWebサーバと、B社のWebサーバで通信規約が異なるとします。A社のWebサーバは、HTTP通信用に80番ポートが開いているので、80番ポートを指定してあげればWebサーバにアクセスできます。しかし、B社のWebサーバは、12345番ポートしか開けておらず、Webサーバにアクセスするにはこの煩雑なポート番号をわざわざ指定しなければなりません。しかもB社のWebサーバとの通信だけのために。A社とB社のWebサーバで、通信規約が異なると非常に面倒でややこしいことになります。
上記はほんの一例ですが、メーカーごとの通信規約の違いがもっと膨大にあれば、もっともっとややこしい通信方法になるのは明解ですよね。
もう一つ身近な例を出します。プロトコルは、私たちが話す「言語」によく例えられます。言語が世界中で統一されていたらどうでしょうか。世界中の人とコミュニケーションをとるのが、非常に簡単になるでしょう。
それが実際は、国ごとに違う言語を話すので、違う国の人同士のコミュニケーションは難しいんです。
以上まとめると、プロトコルという形で通信規約を統一することで、世界中の通信機器同士がやりとりしやすくなっているのです。
それではここから、そのプロトコルをさらに役割ごとに階層でまとめられた、
- OSI参照モデル
- TCP/IP階層
について説明していきます。
OSI参照モデルとは
OSI参照モデルとは、国際標準化機構(ISO)によって定められた、プロトコルの役割を階層ごとにモデル化したものです。
プロトコルを階層に分けることで、プロトコルの役割をわかりやすくしようとしたのが目的です。
OSI参照モデルでは、プロトコルを7階層に分けています。このようにモデルを策定することで、メーカーごとに異なる通信仕様を統一することにしたのです。
各階層ごとの詳しい説明は、この記事を参照してください。各階層で、具体的にどのようなプロトコルがあるのかも説明しています。
しかし、このモデルには以下のような問題があります。
そこで登場したのが、次に説明するTCP/IP階層モデルです。
TCP/IP階層モデルとは
TCP/IP階層モデルとは、米国国防高等研究計画局(DARPA) によって定められた、プロトコルの役割を階層ごとにモデル化したものです。
ここで注意してもらいたいのが、TCP/IPというのはそれ自体がプロトコルでもあります。TCPはOSI参照モデルでのトランスポート層のプロトコルで、IPはネットワーク層のプロトコルです。
そのため、単にTCP/IPというと、
- プロトコル自体のことなのか
- 階層モデルのことなのか
ということが分かりにくいこともあるため気をつけてください。
この記事では、わかりやすいよう明示的にTCP/IP”階層モデル”とつけています。
TCP/IP階層モデルでは、プロトコルを4階層に分けています。
実はここからが重要で、現在事実上の標準はTCP/IPモデルです。
事実上というのはどういうことかというと、歴史的にはOSI参照モデルのほうが早くに策定され、しかも国際標準化機構によって定められています。 しかし、米国国防高等研究計画局によってTCP/IPモデルが策定されると、
TCP/IPモデルのほうが分かりやすいじゃん!!
といった具合でTCP/IPモデルが広まっていきました。そして、今ではOSI参照モデルは使われておらず、TCP/IPモデルが事実上の標準となっているというわけなんです。
つまり、国際機構でもなんでもない団体が策定したモデルが標準となっているため、「事実上の標準」ということなんですね。
では、そんなOSI参照モデルとTCP/IP階層モデル、何が違うのか詳しく見比べてみましょう。
OSI参照モデルとTCP/IP階層モデルの違い
OSI参照モデルとTCP/IP階層モデルとは、以下のような違いがあります。
"OSI参照モデル"
国際標準化機構(ISO)
"TCP/IP階層モデル"
米国国防高等研究計画局(DARPA)
"OSI参照モデル"
第1層から「物理層」「データリンク層」「ネットワーク層」「トランスポート層」「セッション層」「プレゼンテーション層」「アプリケーション層」の7階層
"TCP/IP階層モデル"
第1層から「ネットワークインタフェース層」「インターネット層」「トランスポート層」「アプリケーション層」の4階層
"OSI参照モデル"
「セッション層(データ)」「トランスポート層(セグメント)」「ネットワーク層(パケット)」「データリンク層(フレーム)」
"TCP/IP階層モデル"
「アプリケーション層(ストリーム)」「トランスポート層(セグメント)」「インターネット層(データグラム)」「ネットワークインタフェース層(フレーム)」
まとめ
OSI参照モデルとTCP/IP階層モデルの違い、お分かりいただけたでしょうか。OSI参照モデルは今は使われていませんが、ネットワークの基礎を学ぶという意味では、理解して無駄にならないことだと思います。
最後までご覧いただき、ありがとうございました!
※私が基本情報技術者試験の勉強の際に使用したテキストです。ご参考にしていただければ幸いです。