【Web初心者】プロトコルとTCP/IP

この記事では、プロトコルの説明と、TCP/IPの階層構造について説明していきます。

プロトコルとは

インターネットなどのネットワークに接続したPCやスマホなどの機器同士が、お互いに通信をする際の共通のルールや手順のことをプロトコルと言います。

世界中のそれぞれの機器が共通のルールであるプロトコルを利用することにより、データのやり取りを行うことができます。

言語に例えると、日本国内でいきなり日本人に対して英語や韓国語でベラベラ話しかけても伝わりませんよね。(他国の言語が流暢な人は考慮しないものとする)

だから日本では日本語で会話をしましょう、郷に入っては郷に従え、というごく当たり前のルールがプロトコルとなります。

代表的なものとして、インターネットで文書などの情報のやりとりを行うためのプロトコルであるHTTP(Hyper Text Transfer Protocol)があります。

TCP/IPとは

上で例に挙げたHTTPの他にも、データを送信するためのプロトコル、送信したデータを確実に相手に届けるプロトコルなど、いろいろなプロトコル(ルール)に沿ってインターネット通信が成り立っています。

インターネットに接続してWebブラウザとWebサーバの間でやり取りを行う際にはHTTP、コンピュータ間でファイルのりやり取りをする際にはFTPなどというように、プロトコルはそれぞれ異なる領域のルールを定義しています。

以下のようにインターネットにおける様々なサービスを実現するための役割ごとのプロトコルの集まりのことをTCP/IPと言います。

一昔前までは、PCに搭載されているOSや機種などの種類ごとにプロトコルが独自に設けられていたため、同じ機種同士でないと通信ができないという問題を抱えていたそうです。

それでは不便なので、インターネットの普及と共に、様々な機器同士で通信するためのルールが設けられ、現在ではインターネットへのアクセスが可能なPCやスマホなどの機器は全てがTCP/IPに対応しています。

TCP/IPの階層構造

インターネット通信を行うためのプロトコルの集まりであるTCP/IPは、役割ごとに以下の4つの階層に分類されています。

以下で、層ごとの簡単な説明と代表的なプロトコルをいくつか挙げていきます。

ネットワークインターフェース層

層の中で最下層に位置するネットワークインターフェース層は、物理的なケーブルやネットワークのアダプタなどのハードウェア部分の形状や周波数などのルールを決めている層です。

  • Wi-Fi
  • イーサネット

インターネット層

ネットワークインターフェース層の1つ上に位置するインターネット層は、ネットワークで実際にデータをやり取りする部分になります。TCP\IPのIPの部分がインターネット層になります。

インターネット層では指定したIPアドレスを送り先として、自身のネットワークインターフェースでデータを相手に送り出すことを保証します。

送り出したデータが、最終的に送り先の相手に対して届くかどうかについては保証していません。

  • IP

トランスポート層

インターネット層に位置すし、インターネット層で保証されなかったデータが送り先に届くのを保証するのがトランスポート層です。TCP\IPのTCPの部分になります。

トランスポート層では、送信したデータに漏れがないかをチェックし、送信したデータが意図した相手先に届くことを保証してくれる部分になります。

  • UDP
  • TCP

アプリケーション層

4つの層の中で一番上に位置し、インターネットアプリケーションやメール、HTTPなどのアプリケーションごとのやり取りのルールを決める層です。

アプリケーション層はインターネットやメールなどのアプリケーションのやり取りのルールを規定しており、クライアント(Webブラウザなど)とサーバー間での要求と応答のシステムで成り立っています。

また、送受信を行うデータを転送に適したデータ形式に変換したり、インターネット経由で受け取ったデータを人間が見てわかりやすく表示するように変換したりする役割も持っています。

  • HTTP
  • SMTP
  • FTP
  • SSH
  • DNS

最後に

TCP/IPの構造やプロトコルについては、多くのプログラミング言語では標準ライブラリで用意されていて、開発者でも実際に構造を意識している人は多くないと思います。

この記事を読んで、あ〜そういうものがあるんだな〜程度に頭の片隅にでも入れておいてもらえると幸いです。

他にもWeb系や言語の記事をどんどん書いていきますので他の記事も読んでいってください!