プロトコルってなに?いまさら聞けないプロトコルの3つの基礎

最終更新日


2021年5月に登場したトランスポート層に位置する新しいプロトコル「QUIC」を標準化した技術仕様RFC9000がIETFに承認されました。
プロトコルでも時代の変化に対応する新しい技術が誕生したのはとても喜ばしいことですよね。
さて本日はそんな最近注目されている「プロトコル」を、あまり知らない方向けに分かりやすく説明する記事をお送りします。
あまりプロトコルについて知らない方におすすめの記事です。

目次

プロトコルとは

プロトコルとは、簡単に言うと「ルール」のことです。
パソコン同士でデータをやりとりするには、データをどのような手順で、どのような形で、そしてどのように受け取るか、ということが決まっていないと通信が成り立ちませんよね。
その規則、すなわち「ルール」を決めたものが「プロトコル」と呼ばれるものになります。

もちろんルールというからにはプロトコルは一つだけではありません。
複数のプロトコル(プロトコル群)が集まって、パソコンの通信というものを規定してくれています。

プロトコル群にはOSI参照モデルと呼ばれるものとTCP/IPモデルと呼ばれるものがあり、一般的に現在使われているTCP/IPについて本日は説明します。

最も有名なプロトコル群「TCP/IPモデル」

インターネットで現在使われているプロトコル群のことです。
通信のそれぞれの場面でのルールを定めたプロトコル群モデルです。

合計で4つのプロトコルで作られています。
簡単に図にすると、下の通りです。

こんな感じで通信を規定しているんですが、この順番で階層的に作られており、どの階層でどの役割をしているかが簡単に分かるようになっています。
この階層的に並べていることをプロトコルスタックなんて言ったりしますが、まあとりあえず階層的に並んでいるってことだけ理解してもらえれば嬉しいです。

このプロトコルの階層化はイメージで言うと、手紙が近いかもしれないです。
手紙も相手決めてメッセージ用意して紙に書いて便箋に入れて、ポストに投函なんて流れをしますよね。
そんな感じで手紙を作っていく作業みたいに思ってもらえると分かりやすいかもしれません。

階層化のメリットはネットワーク設計する人が分かりやすかったり、問題が起きている箇所を特定しやすかったり色々あります。
分かれてなかったら地獄のようにエラー対応がきつくなるので、分かれているのはとても理に適っていますよね。

以下でそれぞれのプロトコルについて詳しく見ていこうと思います。

TCP/IPモデル それぞれのプロトコル

ここでは上で紹介した4つのプロトコルを階層順に説明します。

アプリケーション層

画像で書きましたが、ユーザーが使うアプリケーション間の通信を規定するところです。

まんまその通りなんですが、分かりやすく実例を見せると、「http」なんかがこのプロトコルにあたります。
※ちなみに最近はhttpsの方が多く見ると思いますが、httpとの違いは暗号化されているかいないかです。httpsは暗号化されていてセキュリティ性が高いのでよく利用されるようになりました。

トランスポート層

アプリケーション層で利用されているプロトコル間での通信を規定するところです。
簡単に言うと、橋渡し役みたいなイメージで良いかと思います。
実はこのトランスポート層には二種類のやり方があって、安全に橋を渡ってもらうTCPというプロトコルと、とりあえずなんでもいいから早く橋を渡ってもらうUDPというプロトコルがあります。
使いどころはアプリケーションによって変わりますが、通信の安全を優先するか、速度を重視するかで使うプロトコルが変わります。

ちなみに新しい技術の「QUIC」というのはこの層のプロトコルのことです。

インターネット層

宛先と送信元、いわゆるエンドツーエンドの通信制御を行っているところです。
みんな大好きIPアドレスもこの層の概念だったりします。
IPアドレスが分からない人は簡単に住所というようなイメージを持っておくと、理解しやすいかと思います。
プロトコルの例で言えば、そんなIPアドレスを利用してデータを届けたり、MACアドレスからIPアドレスを抽出したり逆にIPアドレスからMACアドレスを抽出したりするようなものがあります。

リンク層

2つの物理的な機器を結ぶ線を総じてリンクと呼ばれるところから、リンク層と呼ばれる層です。人によっては物理層なんて言います。
その名の通り、物理的なものを使うような層で、LANケーブルなんてのもこの層で使ったりします。

まとめ

いかがでしたでしょうか。
本日はプロトコルに関して簡単に説明してみました。
意外と名前だけ聞いて知らない方も多いのではないでしょうか。
ちなみに今回は簡単に書くために省きましたが、それぞれのプロトコルの際にはまたパケットだったりフレームだったり、プロトコルをややこしくするものが多々あります(笑)
そういったものも今後説明していければと思いますので、よろしくお願いします。

シェアする