目的
ネットワークを知る上で、「プロトコル」と「OSI基本参照モデル」は欠かせません。世の中には様々なメーカーによって作られているコンピュータがあり、それらが相互に通信するわけですが、それが可能になるのは上記の2つがあるからです。
ネットワークにおいては、どのように通信が行われているかを知る上で重要になるのでここでしっかり学んでいきましょう。
プロトコルについて
プロトコルとは「ルール」のことです。通信を行う上で互いに守る決まり事のようなものです。
サーバやスイッチ、ルータなど様々なメーカーによって作られた機器が相互に通信するには、その通信におけるルールを決めないと通信できないからです。
私たちが会話を行えるのも、「日本語」という共通のルールがあるからです。片方が別の言語を話すと会話は成立しなくなりますよね。
以前は、そのメーカー独自のプロトコル(通信方式)を使用していましたが、それにより同メーカー同士の機器しか通信ができず、ネットワークの拡張性において課題がありました。
そこで、プロトコルを標準化することで異なるメーカーの機器同士でも通信が行えるようになりました。国内だけでなく、国外にもこのプロトコルの標準化を行う団体があります。これらの団体が標準プロトコルの仕様を公開しているのです。
階層化モデル
階層化モデルは、プロトコルの例の1つです。通信の機能をいくつかの階層に分けて定義したものです。
例えば、人の会話では「言語層(どの言語を話すか)」「媒体層(電話、メール、対面など手段)」で分けることができます。この各層で会話においてのルールを定義することができます。
この階層化モデルのメリットは、各層は他の層の影響を考える必要がなく、それぞれの層が独立していることです。
OSI基本参照モデル
プロトコル開発のガイドラインとなるのが、国際標準機構(ISO)によって制定されたOSI基本参照モデルです。OSI基本参照モデルでは、通信機能を7階層に分割して定義しています。
物理層(レイヤ1)〜アプリケーション層(レイヤ7)です。
レイヤ1〜4では「コンピュータ間の通信」に関する決まり、レイヤ5〜7では「コンピュター内部の処理」に関する決まりです。

第7レイヤー:アプリケーション層
アプリケーションの機能とユーザとのインターフェースについて定める。どのようにそのアプリケーションと通信するか、定めます。
プロトコル:SNMP、HTTP、FTPなど
第6レイヤー:プレゼンテーション層
圧縮方式や文字コードなど、データの表現形式を定める。もともとは異なる表現形式だったものでも通信時に表現形式を相手用のアプリケーション向けに変更することができます。
プロトコル:JPEG、JIS、UTF-8など
第5レイヤー:セッション層
アプリケーション間での通信方式を定めます。アプリケーション間でのセッションの確率・制御・終了を管理する。どのようにアプリケーションと通信を確立するか定義します。
プロトコル:SSL、NetBIOSなど
第4レイヤー:トランスポート層
セッション層とは違い、コンピュータ間での通信方法を定めます、コンピュータ間でのコネクションの確立・制御・終了やエラー時の通信の回復などを管理する。どのようにコンピュータと通信を確立するか定義します。
プロトコル:TCP、UDP
第3レイヤー:ネットワーク層
離れたところにあるコンピュータとの通信方法を定義します。隣接していないコンピュータと通信するために宛先情報を使用して、その宛先に向けての最適経路を選択します。
プロトコル:IP、IPv6など
第2レイヤー:データリンク層
隣接してるコンピュータ間での通信を定義します。独自のアドレスを使用して宛先のコンピュータと通信します。
プロトコル:イーサネット1、PPP、Wi-fiなど
第1レイヤー:物理層
物理層では、ケーブルの材質やコネクタ形状、通信時の電気信号の変換方式など通信における物理的な仕様を定めます。
プロトコル:イーサネット、無線LANなど
TCP/IP階層モデル
OSI基本参照モデルは旧式のプロトコルで、現在ではTCP/IP階層モデルが主流です。基本的な考え方はOSI基本参照モデルと同じですが、階層が7→4になります。
階層が減った分、各層で定義する内容が増えています。

カプセル化
送信元からデータを送信する際、データに加えて様々な情報が必要になります。(宛先のIPアドレス、宛先のネットワーク、どのアプリケーションと通信するか...など)
そのためデータを送信する際は、各層でそれぞれ制御情報を付与します。この各層でそれぞれの制御情報を付与することをカプセル化と言い、OSI基本参照モデル、TCP/IP通信どちらでも使用されます。

各層でデータに加えて「ヘッダ」と呼ばれる制御情報を付与します。
トランスポート層・・送信元、宛先ポートを指定する。
*「ポート」とは、プログラムごとに使用されるコンピュータ上の番号。「部屋番号」のようなイメージ。そのプログラムごとで使用されるポート番号が決まっている。
例えば、HTTP通信では80番ポートを使用。
インターネット層・・送信元、宛先IPアドレス、プロトコルを指定する。
ネットワークインタフェース層・・送信元、宛先MACアドレス、タイプを指定する。
特徴
・送信側では、それぞれの階層でデータをカプセル化して下の層に渡す。
・受信側では、下の層から逆カプセル化を行い、対象のヘッダを取り外して上の層に渡す。最終的にアプリケーション層に渡る。
・受信側で、データが自分宛でなかった場合はそのデータを破棄する。
・各層で送信元と宛先の情報は必ずセットで付与される
PDU・・・各層で扱うデータの単位をPDUという。各層でのPDUは以下のようになる。
PDU = データ(上位層からの制御情報を含む) + ヘッダとなる。
<TCP/IP>
アプリケーション層・・・メッセージ
トランスポート層・・・セグメント(TCPの場合)、データグラム(UDPの場合)
インターネット層・・・パケット
ネットワークインタフェース層・・・フレーム
<OSI基本参照モデル>
アプリケーション層、プレゼンテーション層、セッション層・・・メッセージ
トランスポート層・・・セグメント(TCPの場合)、データグラム(UDPの場合)
ネットワーク層・・・パケット
データリンク層・・・フレーム
物理層・・・ビット
まとめ
以上になります。ネットワーク上の通信プロトコルについてイメージできたでしょうか。
このように様々なメーカーの異なるコンピュータでも決まった通信規格に従うことで、相互に通信が可能となります。
通信時には、コンピュータ上の各層で通信方法を指定することを覚えておいてください。

No responses yet