プロトコル
ここで解説するのは、コンピュータ間でのデータのやり取りの仕方についてですよね。
そうだよ。そして、その通信の手順は全てプロトコルによって決められているんだ。ここからは、プロトコルについて解説していこう。
プロトコルとは
一般的に言われる「プロトコル」とは、「通信プロトコル」のことを指す。(他の呼び方では、「通信規格」、「ネットワークプロトコル」など)
※プロトコル自体の意味は「手順」、そこから「手順を定めたもの」として「規格」のことを指す。
ネットワークにおいて、データのフォーマット(書式)や処理などを定める一連のルールのこと。
要約すると、プロトコルは通信においてデータをどのように変換、送受信するかなどのルールや手順を規定する為のものなんだ。
ルールや手順を決めるって言っても、コンピュータが行う動作の手順なんて複雑なもの、全然イメージできないよ...
分かりやすく考えると、コンピュータにおける言語のようなイメージだよ。双方が同じプロトコルをもとに通信していれば、正しくデータを共有できるんだ。
逆に、それぞれが異なるプロトコルで通信を試みても、正常に通信できず、データの共有ができないんだ。
そして、世界的に標準化されたプロトコルは、言わばコンピュータが使用できる共通言語のようなもの。イメージとしては、異なる言語を使う2人でも、共通の第3言語を使ってコミュニケーションをとることができるような感じだ。通信に使われるプロトコルは、標準化されたプロトコルがよく使われているよ。
それって、プロトコル1つで通信の手順すべてを定めるってことですか?
いや、通信において使われるプロトコルは1つではないんだ。では、プロトコルスタックというものについて説明していこう。
プロトコルスタックとは
プロトコルは、その処理の種類、すなわちそれぞれの役割の数だけ非常に多くのものが存在する。通信において使用されるプロトコルは1つではなく、異なる役割を持つ複数のプロトコルを階層構造にして構築することで使用されている。このプロトコルの集合を、プロトコルスタック(プロトコル群)という。
イメージを他のもので例えるとすると、手紙で情報を共有する場合、
このような手順でメッセージを正しく送れるね。この手順の1つ1つがプロトコルで、すべての手順のまとまりがプロトコルスタックというイメージだよ。
なるほど。通信は複数のプロトコルを使って、手順を定めているんですね。
そうだね。そして、そのプロトコルメソッドの階層構造は、ネットワークアーキテクチャを基にして構成されているんだ。次はネットワークアーキテクチャについての説明だ。
ネットワークアーキテクチャについて
プロトコルは、その処理の種類からプロトコルスタックの階層構造の内、どの階層に属するかで一般的には分類される。 この階層構造の各階層を標準化した、プロトコルスタックの指標となるものをネットワークアーキテクチャという。 一般的なものとしてはTCP/IPモデル、OSI参照モデルがある。
この中のTCP/IPモデルは、4つの階層からなるネットワークアーキテクチャなんだ。ここからは、TCP/IPモデルについて説明しよう。
TCP/IPについて
TCP/IPモデルは通信において最も利用されているネットワークアーキテクチャである。複数のプロトコルを使う中で、TCPとIPというプロトコルが中心になるため、TCP/IPと呼ばれる。TCP/IPモデルは 第4層のアプリケーション層、 第3層のトランスポート層、 第2層のインターネット層、 第1層のネットワークインターフェース層の4階層から構成されている。
アプリケーション層
アプリケーションで人が認識する文字、画像、動画などのデータをどのようなデータ形式にするかを決める役割を持つため、通信の際に利用するサービス固有のプロトコルが集まっている
プロトコル例:HTTP、HTTPS(webサイト関連)、SMTP、POP、IMAP(メールの送受信)
トランスポート層
データを適切なアプリケーションに振り分ける際の通信手順の内容を定める層であり、エラーに対しての対処方法なども定めるので、通信の正確性や伝達速度などの品質もこれによって決められる。主にTCPとUDPの2種類が使われるが、ほとんどの通信でTCPが使われている。
次は第2層のインターネット層ですね。
インターネット層
インターネット通信において、送信する側の機器から受信する側の機器までを繋げる、「End to End通信」をする為の役割を持つ 基本的にはIPというプロトコルが使用される。
確かにインターネット接続するときにIPって単語聞くかも!
IPによる通信
IPは、全ての通信機器に「IPアドレス」という、インターネットにおける住所のようなものを割り当て、それを元に送信側の機器や送信側の機器を識別して通信する。 この際に役立つ機器が、通信において中継器となるルータである。ルータは「ルーティングテーブル」と呼ばれる通信経路に関する情報を保持していて、その情報を元に最適な経路を導き出して通信をする仕組みを「ルーティング」という。
このIPというプロトコルが、インターネット通信において特定の相手との通信を実現させているんだ。 IPアドレスに関しては、後々に解説するよ。
最後は第1層のネットワークインターフェース層だね!
ネットワークインターフェース層
同一ネットワーク内で、データを送受信する為の役割を持つ。
「0」「1」で表されるデジタル信号と通信媒体に適した信号の変換し、送受信を可能にする。
代表的なプロトコル例:イーサネット(Ethernet)、IEEE802.11(Wi-Fi)など
この層によって、コンピュータが扱うデータをどのように電気信号化、光信号化するか、またどのように電波として発信するかが定められるんだ。ここまでを踏まえて、プロトコルによる通信全体でのデータ伝達のイメージを見てみよう。
カプセル化・非カプセル化
プログラムに基づいてデータが送信されていく際、送信時には階層ごとに『ヘッダ情報』というプロトコルに関する情報が足されていく。このヘッダ情報を付け足していくことをカプセル化という。また受信時には、階層ごとにヘッダ情報を取り外して元のデータへと戻していく。このヘッダ情報を取り外していくことを非カプセル化という。
ヘッダ情報を付け足すことをなんというか。次の記号から選びなさい。
- ①一般的に呼ばれるプロトコルは、通信プロトコルのことを指す。
- ②TCP/IPモデルは4階層になっていて、アプリケーション層、トランスポート層、インターネット層、ネットワークインターフェース層に分かれている。
- ③ヘッダ情報を付け足すことをカプセル化、取り外すことを非カプセル化という。