InfraAcademy

InfraAcademy Blog

プロトコルとは?通信のルールや種類を初心者向けにわかりやすく解説

| #ITパスポート講座 #ITパスポート講座(ネットワーク)
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

こんにちは、インフラエンジニアのryuです。

今回の記事では、プロトコルとは何かを、IT初心者向けにわかりやすく解説します。

ネットワークを学び始めると、HTTP、TCP、IP、DNS、DHCPなど、さまざまな英字の用語が登場します。

「全部プロトコルらしいけれど、何が違うの?」 「なぜ通信するだけで、これほど多くのルールが必要なの?」 「どこまで覚えればいいの?」

このように感じる方も多いのではないでしょうか。

最初に結論をまとめると、プロトコルとは、コンピューター同士が正しく通信するために決められた共通のルールです。送信するデータの形式、通信を始める手順、相手を識別する方法などを統一することで、異なるメーカーやOSの機器でも通信できます。

プロトコルとは?

プロトコルは、英語のprotocolをカタカナで表した言葉です。IT分野では、主にコンピューターやネットワーク機器が通信するときに守る規約や手順を意味します。

人同士の会話でも、使用する言語や話す順番が違えば、意思を正しく伝えられません。

たとえば、一方が日本語で質問しているのに、もう一方が日本語を理解できなければ会話は成立しません。また、電話では最初に相手を呼び出し、接続されたことを確認してから会話を始めます。

コンピューターの通信も同じです。

  • どの形式でデータを送るか
  • 通信相手をどの番号で識別するか
  • いつ通信を開始するか
  • データをどの順番で並べるか
  • エラーが起きたときに再送するか
  • 通信をどのように終了するか

このようなルールを決めたものがプロトコルです。

世界中の機器が共通のプロトコルに対応することで、WindowsのパソコンからLinuxのWebサーバーへアクセスしたり、スマートフォンからクラウド上のサービスを利用したりできます。

プロトコルの説明図

なぜプロトコルが必要なのか?

インターネットには、さまざまなメーカーのパソコン、スマートフォン、サーバー、ルーターなどが接続されています。

それぞれの機器が独自の方法でデータを送ると、受信側はデータの意味を理解できません。どこからどこまでが宛先なのか、本文がどの部分なのか、通信が正常に終わったのかも判断できなくなります。

これは、住所の書き方がまったく決められていない手紙を送るようなものです。

郵便では、郵便番号、住所、宛名、差出人などの書き方が決められています。共通のルールがあるため、郵便局は手紙を目的地まで運べます。

ネットワークでも、プロトコルによってデータの形式や通信手順を統一します。そのため、開発者や利用者が異なっていても、同じルールに対応した機器同士で通信できます。

プロトコルには役割ごとに種類がある

インターネット通信を1つのプロトコルだけで実現しているわけではありません。

Webページを表示する、メールを送信する、IPアドレスを自動取得するなど、目的ごとに異なるプロトコルが使われます。

代表的なプロトコルは次のとおりです。

プロトコル 主な役割
HTTP WebサーバーとWebブラウザがデータをやり取りする
HTTPS HTTPの通信をTLSで暗号化する
DNS ドメイン名に対応するIPアドレスなどを調べる
DHCP パソコンへIPアドレスなどの設定を自動配布する
SMTP 電子メールを送信・転送する
POP3 メールサーバーからメールを受信する
IMAP メールをサーバー上で管理しながら閲覧する
SSH サーバーへ安全にリモート接続する
FTP ファイルを転送する
NTP パソコンやサーバーの時刻を合わせる
TCP データが正しく届くように順序や再送を管理する
UDP 確認処理を抑えてデータをすばやく送る
IP 宛先IPアドレスを基にデータを届ける

すべてを一度に暗記する必要はありません。

最初は、プロトコル名と主な用途をセットで覚えることが大切です。たとえば、WebならHTTP・HTTPS、名前解決ならDNS、IPアドレスの自動設定ならDHCPと関連づけます。

Webサイトを開くときも複数のプロトコルを使う

ブラウザでWebサイトを開く操作を考えてみましょう。

利用者から見るとURLを入力するだけですが、内部では複数のプロトコルが連携しています。

一般的には、次のような流れで通信します。

  1. DHCPで取得したIPアドレスやデフォルトゲートウェイを使う
  2. DNSでドメイン名に対応するIPアドレスを調べる
  3. IPによって通信先のネットワークへデータを届ける
  4. TCPなどで通信相手とのデータ転送を管理する
  5. HTTPSではTLSによって通信を暗号化する
  6. HTTPの形式でWebページのデータを要求する
  7. Webサーバーから返されたHTMLや画像をブラウザが表示する

つまり、「Webページを見る」という1つの操作にも、DNS、IP、TCP、TLS、HTTPなどが関係しています。

実際の通信方式はWebサイトやHTTPのバージョンによって異なり、HTTP/3ではQUICとUDPが使われます。初心者のうちは、複数のプロトコルが役割を分担して1つの通信を実現していると理解できれば問題ありません。

OSI参照モデルとは?

ネットワーク通信には多くのプロトコルがあるため、役割を整理するための考え方が必要です。

そこで使われるのが、OSI参照モデルです。

OSI参照モデルは、ネットワーク通信に必要な機能を7つの階層に分けて考えるモデルです。

OSI参照モデル

7つの階層は、次のように分けられます。

レイヤー 名称 主な役割・関連技術
7 アプリケーション層 HTTP、DNS、DHCP、SMTP、SSHなど
6 プレゼンテーション層 データ形式の変換、暗号化、圧縮など
5 セッション層 通信の開始・維持・終了を管理する
4 トランスポート層 TCP、UDPなどでデータ転送を管理する
3 ネットワーク層 IPアドレスを基に異なるネットワークへ届ける
2 データリンク層 MACアドレスを使って同じLAN内へ届ける
1 物理層 LANケーブル、光ファイバー、電気・無線信号など

OSI参照モデルは、通信を理解しやすくするためのモデルです。現在のインターネットでOSIの7階層をそのまま実装しているという意味ではありません。

実際のインターネットでは、TCP/IPというプロトコル群を中心に通信します。ただし、ネットワークの説明や障害対応ではOSI参照モデルがよく使われます。

たとえば、通信できない原因を調べるときは、次のように切り分けられます。

  • LANケーブルやWi-Fi接続の問題:物理層
  • MACアドレスやVLANの問題:データリンク層
  • IPアドレスやルーティングの問題:ネットワーク層
  • TCP・UDPやポート番号の問題:トランスポート層
  • HTTPやDNSなどの問題:アプリケーション層

どのレイヤーで問題が起きているかを考えると、確認すべき場所を絞りやすくなります。

TCPとUDPの違い

プロトコルを学ぶうえで、よく比較されるのがTCPとUDPです。

TCPは、相手と通信できる状態を確認してからデータを送ります。データが届かなければ再送し、順番が入れ替わった場合は正しい順序へ並べ直します。

そのため、Web通信、メール、SSHなど、データを正確に届ける必要がある場面で広く使われます。

UDPは、TCPのような接続確認や再送制御を基本的に行いません。その分、処理がシンプルで、遅延を抑えやすい特徴があります。

音声通話、動画配信、オンラインゲーム、DNSの問い合わせなど、速度やリアルタイム性が重視される通信で使われます。

ただし、「TCPなら必ず遅い」「UDPなら必ず速い」と単純に決まるわけではありません。アプリケーション側の設計やネットワーク環境によっても変わります。

TCPについては、次の記事でも詳しく解説しています。

TCPの3ウェイハンドシェイクとは?再送やタイムアウトの仕組みも解説

プロトコルとポート番号の関係

サーバーでは、1台の機器でWeb、メール、SSHなど複数のサービスを動かせます。

IPアドレスだけでは、データをどのサービスへ渡せばよいのか判断できません。そこで使われるのがポート番号です。

よく使われる組み合わせには、次のようなものがあります。

プロトコル 代表的なポート番号
HTTP 80
HTTPS 443
SSH 22
SMTP 25
DNS 53
DHCP 67・68

IPアドレスが建物の住所なら、ポート番号は部屋番号のようなものです。

ただし、これらは代表的な番号であり、設定によって別のポート番号を使用することもできます。

ポート番号については、次の記事も参考にしてください。

ポート番号とは?コマンドを使いながら実践的に解説

DHCPを例にプロトコルの役割を考える

家庭や会社のネットワークへパソコンを接続すると、多くの場合はIPアドレスが自動的に設定されます。

このとき使われるのがDHCPです。

DHCPによって、次のような情報を自動取得できます。

  • IPアドレス
  • サブネットマスク
  • デフォルトゲートウェイ
  • DNSサーバーのアドレス

パソコンとDHCPサーバーが決められた手順でメッセージを交換するため、利用者が1台ずつ手動で設定しなくてもネットワークへ接続できます。

これも、プロトコルによって通信内容と手順が統一されている例です。

DHCPとは?IPアドレスを自動設定する仕組みを解説

プロトコルを効率よく覚える方法

プロトコルは、名前だけを繰り返し暗記しても忘れやすい分野です。

効率よく覚えるには、次の3つをセットで確認しましょう。

  1. 何のために使うのか
  2. どの機器やソフトウェアが通信するのか
  3. 実際にどのような設定やコマンドで確認できるのか

たとえば、DNSを学ぶ場合は、「ドメイン名からIPアドレスを調べる」と覚えるだけでなく、nslookupdigコマンドを実行します。

SSHなら、Linuxサーバーへ実際に接続します。DHCPなら、パソコンが取得したIPアドレスやデフォルトゲートウェイを確認します。

自分で通信を発生させ、結果を確認すると、プロトコルの名前と役割がつながります。

InfraAcademyのネットワーク入門講座では、IPアドレス、プロトコル、ルーティング、スイッチ、VLAN、NAT、ACLなどを基礎から学習できます。

ブラウザ上のネットワークシミュレーターを利用するため、専用ソフトをインストールする必要はありません。端末やルーターを配置し、設定と通信結果を確認しながら学べます。

サーバー上でSSH、DNS、HTTPなどを扱いたい方は、Linux入門講座もおすすめです。また、AWS上のVPC、EC2、DNS、ロードバランサーなどを学びたい方は、AWS講座へ進むと、プロトコルの知識をクラウド環境へつなげられます。

プロトコルとは?まとめ

今回は、プロトコルについて解説しました。

  • プロトコルは、コンピューター同士が通信するための共通ルール
  • データ形式、通信手順、宛先の指定方法などを統一している
  • HTTP、DNS、DHCP、TCP、UDP、IPなど、目的ごとに異なるプロトコルがある
  • 1つの通信でも、複数のプロトコルが役割を分担している
  • OSI参照モデルを使うと、プロトコルや障害箇所を階層ごとに整理できる
  • プロトコルは、用途、通信相手、実際の操作をセットで学ぶと覚えやすい

最初からすべてのプロトコルを暗記する必要はありません。

まずは、Web、名前解決、IPアドレスの設定、メールなど、身近な通信とプロトコル名を結びつけましょう。実際にコマンドやネットワーク設定を確認すると、通信の仕組みが少しずつ見えるようになります。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る