ネットワークの世界ではよく聞くワードの一つがプロトコル。
聞いたことはあるけどいまいち分かりにくいですよね。ただ、コンピュータ同士でインターネットの通信をする上では、とても大事になってきます。
今日は、イメージが掴みやすいようにプロトコルとよく聞く代表的なプロトコルについて、話していきたいと思います。
関連記事:インターネットの繋がる仕組みを初心者に5分で説明します
プロトコルとは?
データのやり取りをする際にある程度の決まった手順が決まっていて、その順序のことをプロトコルと言います。
日本人は「こんばんは」と日本語で挨拶をします。アメリカ人なら「Hello‼︎」そして中国人なら「ニーハオ」というように国によって話す言葉が違います。
例えば、英語しか話せない外人に日本語で何かお願いをするとします。
しかし、英語しか話せないので、そのお願いは聞いてもらうことができません。
当然ですが、話す言葉が違うとコミュニケーションが円滑に進みませんよね。
コンピュータの世界でも同じで、相手のパソコンに何かデータを送るとき、お互い共通の取り決めがないと困ります。
要するにコンピュータ同士の取り決められた共通言語のようなものを指すのがプロトコルというもの。
プロトコルは光信号、電波などを扱うハードウェアに直結するものから、データ加工のアプリケーションまであり複雑なので、OSI参照モデルに基づき、7つの階層構造になっています。
OSI参照モデル(OSIさんしょうモデル、英: OSI reference model)は、国際標準化機構(ISO)によって策定された、コンピュータの持つべき通信機能を階層構造に分割したモデルである。OSI基本参照モデル、OSIモデルなどとも呼ばれ、通信機能(通信プロトコル)を7つの階層に分けて定義している。ja.wikipedia.org/wiki 引用
通信プロトコルは様々な種類がありますが、
各層によって役割が異なり、階層の機能を使って通信処理を行い、それを上位層に提供しています。
例えば、僕の大好きな「カレーの作り方」を定めるとしします。
カレーを作るのに必要な手順として、「肉の切り方」「野菜の炒め方」は他の料理を作る時にも使えるテクニックです。
そこで、これらの素材加工法は下の層に置き、「カレーの作り方」は上の層に置くという形で階層化します。
こうすることで、カレーを作るにあたって必要な素材加工の手順は下の層から参照することができますし、他の料理を作る時もそのテクニックを使うことができます。
ここでいう「カレー」はアプリケーション層で「野菜の炒め方」はトランスポート層という感じです。
今回はプロトコルの中でもよく使われるアプリケーション層について詳しく話していきます。
代表的なアプリケーション層
アプリケーション層と聞いては、僕らが日頃使うスマホのアプリをイメージしますよね?
ただ、この層を簡単に話すとアプリケーションで使用するデータを取り扱う層です。
メールだったら、送受信したり、Webだったらブラウザを開いて通信をしたりと
個別のアプリケーションを実現する為のプロトコルです。
HTTPとHTTPS
ブログやサイトを見るときのURLの頭についてるやつです。
httpはWebデータのやり取りをする為に用いられた世界共通ルールで、Webサーバーとクライアントの間のデータの送受信を行うプロトコル。
このプロトコルの役割は、クライアントがどこかのページを見たい時、httpリクエストをサーバーに送りサーバーがhttpレスポンスをして応答して、初めて見れるという流れです。
そして、ステートレス性があるのでクライアントとサーバー間の通信内容を記憶しないプロトコルです。
httpsはhttpに比べ、よりセキュアなプロトコルでWebページを暗号化して他のクライアントからデータの解読ができないようになっています。
POP3とSMTP
簡潔に言うと、メールの送受信に使われるプロトコル。
メールサーバーは、メール配送・送信をする役割のSMTPサーバーとメール受信の役割をするPOP3サーバーが分業して成り立っています。
POP3はメールサーバーに保管された受信メールを取り出し、
SMTPはメールを受け取った後、DNSサーバーに依頼します。DNSサーバーは、受信したメールアドレスのドメイン部分から配信先のメールサーバーを割り出して、そのサーバーにメールを配送・送信します。
メールは常にメールサーバーを通じて行われていて、パソコンのメール設定に必ずでるプロトコルがPOP3とSMTPなのでセットで考えると良いです。
FTP
クライアントとサーバーの2台のコンピュータ間でファイルの転送する為のプロトコル。
Webサイトからデータをダウンロードする際やホームページを作成した時、データをサーバーにアップロードする際に使われます。
レンタルサーバーにブログの画像や記事を転送するのもこのプロトコル。
DHCP
よくDHCPサーバーって聞きますが、
インターネットに接続しようとするパソコンや周辺機器などに対しインターネットの住所ともいえるIPアドレスそして付随するサブネットマスクなど、必要な情報を自動的に割り当ててくれるプロトコルです。
TCP/IP通信ではIPアドレスと言うのが住所がわりなので自分のIPアドレスを設定しなければうまく通信ができない。しかし、このDHCPが自動的に割り振って動的IPを配ってくれるので迷わずにデータを送ることができるんですね。
DNS
インターネットに接続している機器にはIPアドレスいう固有の番号が必ず割り当てられます。そして、インターネット上に置ける全ての通信は相手先のIPアドレスが指定されることにより行われます。
「ホスト名を元に、ホストの IP アドレスを教えてくれる」というのがDNSの役割としては大きです。
例えば、Webブラウザでthhps://takeshi.ijichi.comと打ち込むとしましょう。
パソコンはDNSサーバーにドメイン名のIPアドレスは何番かを問い合わせます。
そして、thhps://takeshi.ijichi.comのIPアドレスは202.1 ○.11.14○だよ!
その宛先IPアドレスに対して通信するね!ってなりその結果、サイトが表示されて見ることができるようになっています。
SSL
インターネット上でのデータの通信を暗号化し、盗聴や改ざんを防ぐプロトコルです。
インターネット上の通信はhttpで行われますが、送受信されるデータは暗号化することができず、盗聴や改ざんを防ぐことができません。
しかしSSLプロトコルを使用することで通信データは暗号化され、第三者が盗み見ようとしても解読することができないんです。
SSLを導入しているサイトはURL欄が先頭が「http」ではなく「https」で始まっています。
この「s」はSSLサーバ証明書を使用している(セキュアである)という意味です。
もう1つはブラウザ鍵マークです。この鍵マークをクリックすることで、証明書の内容を表示でき、有効切れでないか確認できます。
まとめ
人間がコトバを話すようにコンピュータにもコトバがあります。そのコンピュータどうしのやりとりの取り決めごとがプロトコル。
今回はアプリケーション層。
ブログやサイト運営の際によく見かけるプロトコルを紹介しました。
まだまだたくさんのプロトコルがありますので気になった方は調べてみてくださいね。