プロトコルとは、コンピュータとコンピュータがネットワークを通じて通信する際に決められた約束事・決まりのこと。
参考 ネットワークとは?
イメージとしては、道路の交通ルールや、人との会話のマナーのようなものです。プロトコルがあることで、情報のやりとりが効率的かつ正確に行われます。
このページでは、プロトコルって結局何なのか?プロトコルがないとどうなる?プロトコルの具体例は?という疑問にお答えします。
コンピューター通信・ネットワークを学ぼうとする方にとっては、丁寧に理解しておきたい超・重要知識の1つ。是非最後までご覧ください。
プロトコルとは?わかりやすく
プロトコルとは、デバイス間の通信を効果的に行うための「取り決め」や「規約」のこと。
具体的には、データの送受信の方法、データの形式、エラー処理の手法など、通信に関する詳細な手順やルールを定めています。
「メールを送るときは〇〇の形式で送ってね!」「ファイルを送るときは、〇〇のタイミングで送ってね!」というような約束事を決めたものがプロトコルです。
製造メーカーも、OSもCPUも異なるコンピュータ同士がお互いに何事もなく適切な通信を行えるのはこのプロトコルが事前に決まっているおかげ。逆に言えば、プロトコルが存在しないとお互いにデータを交換したりファイルを連携したりなどの通信を行うことはできません。
プロトコルを日常生活に当てはめてみると、人々が互いに会話をする際の言語やマナーと考えることができます。
例えば、日本での日常会話では日本語を使用し、挨拶やお礼などのマナーを守ることが一般的です。これと同じように、デバイス間の通信にも「共通の言語」や「通信のマナー」が必要です。これがプロトコルとして定義され、守られているのです。
もしお互いに何語で話すのか?というプロトコルを事前に定めていなければ、英語と日本語で会話が始まってしまうかもしれません。そうするとお互いに正しい意思疎通が行えなくなってしまいます。
これと同じようにネットワークの世界でもコンピュータ同士が通信をするためには事前に約束事を定めておく必要があります。この規約を整理したものがプロトコルです。
特に通信の世界で用いられるプロトコルという意味で「通信プロトコル」と呼称されることもあります。
「ネットワーク」の勉強 → 極論するとプロトコルの勉強と言い換えることも可能です。弁護士を目指す人が法律を学ぶのと同じように、ネットワークエンジニアを目指す人はプロトコルを勉強します。
プロトコルには多くの種類が存在しますが、中身が分かってくるとネットワークの仕組みが手に取るように分かるようになります。
通信プロトコルの具体例
では、プロトコルには一体どのようなものがあるのでしょうか?
ここでは「プロトコル」をより深くイメージできるように代表的なプロトコルの内容を解説していきます。
先ほどの例ではプロトコルを言語に例えて説明しましたが、普段のコミュニケーションにおいても「言語」というプロトコルだけを決めておけば良いわけではありません。
例えば「声に出して会話する」のか「文字でやりとりする」のか。これもプロトコルとして事前に決めておく必要があります。他にも返事をするタイミングだったり、話す人数だったり、決めごとはたくさんあるでしょう。
これと同じように通信プロトコルの世界にも実に多くのプロトコルが存在します。
ここでは、代表的な通信プロトコルをピックアップしてご説明します。あくまでも、プロトコルの具体例をイメージできるようにするのが目的なので、内容まですべて理解する必要はありません。
IP (Internet Protocol)
インターネット通信を利用してコンピュータとコンピュータが適切に通信を行えるようにデータの宛先(=IPアドレス)の特定方法やデータ転送の仕組み(=ルーティング)などを規定したプロトコルです。
IP (Internet Protocol) では以下のような内容を定めています。
全世界のネットワーク機器がお互いに適切な通信を行えるように定めた規定がIP (Internet Protocol) です。もしIPというプロトコルが定められていなければ、世界中のコンピュータ同士がお互いに通信することはできません。
今あなたがこのWebサイトを参照できているのも、IPというプロトコルが定められているおかげです。
IP (Internet Protocol)を詳しく学びたい!という方は以下の記事をご覧ください。
TCP (Transmission Control Protocol)
TCP (Transmission Control Protocol) は、別名伝送制御プロトコルとも呼ばれ、その名の通り「通信」を「制御」することが目的のプロトコルです。
TCP (Transmission Control Protocol) は、通信品質向上のためにデータ交換の仕組みを取り決めしたプロトコルです。
安定したインターネット通信がどのように行われているのか?TCPを詳しく学びたい方は以下の記事をご覧ください。
UDP (User Datagram Protocol)
UDP (User Datagram Protocol) も、TCPと同じようにネットワーク上でデータを送るときのルールを定めているプロトコルです。
ただし、TCPとは異なり品質よりも速度重視で通信を行いたい場合のルールを規定しています。
UDP (User Datagram Protocol) は信頼性は低いのですが、その分通信する速度が上がります。そのため、動画配信アプリなどではUDPが用いられる場合が多いです。逆に、正確なやり取りが必要なメールやメッセージアプリなどではTCPが用いられることが多いという違いがあります。
UDP (User Datagram Protocol) の仕組み、TCPとの違いなどをさらに詳しく知りたい方は以下の記事をご覧ください。
このほかにもファイル転送に関する決まりをまとめたFTP (File Transfer Protocol)や、メールを送信するときの決まりをまとめたSMTP (Simple Mail Transfer Protocol)など、多くのプロトコルが存在しています。
以上、インターネット通信で利用される代表的な3つのプロトコルを解説しました。
勿論、IP/TCP/UDP といったプロトコルの他にも利用する目的やシーンに応じてたくさんのプロトコルがあります。それら複数のプロトコルがお互いに有機的に役割を果たすことによって、世界の裏側にあるコンピュータと通信することが可能になっています。
では、そもそもこのプロトコルとは一体どこの誰が決めているのでしょうか?
通信プロトコルは誰が決める?
プロトコルが必要となるのはコンピュータ同士がお互いに通信を行うタイミングです。したがって、初期のプロトコルは自分と通信したい相手との間で個別に決定すればOKでした。
そのため、従来はマイクロソフト社やアップル社などが自社のコンピュータ同士が通信できるように、メーカー独自のプロトコルを策定していました。
これは、自社製品同士の通信を確立する場合の取り決めであったので、例えばマイクロソフト社の製品とアップル社の製品で通信を行うことはできません。
この不都合を解消するため、製造企業の枠を超えて全世界的にプロトコルを共通化しようという動きが広がります。
今では、以下のような機関が通信プロトコルの共通化を進め、マイクロソフト社の製品もアップル社の製品も相互に通信を行うことが可能になりました。
機関名(略称) | 正式名称 | 目的 |
---|---|---|
IETF | Internet Engineering Task Force | インターネット技術全般の標準化を担う |
ISO | International Organization for Standardization | 主にネットワーク機器に関する規格の標準化を担う |
IEEE | Institute of Electrical and Electronics Engineers | 主にLANに関する標準化を担う |
NIST | National Institute of Standards and Technology | 主にセキュリティに関する標準を策定する |
これらの団体は、業界の専門家や研究者、関連企業などの参加者からなるワーキンググループを通じて、プロトコルの策定や改訂作業を行います。公開されたプロトコルは、業界内で広く採用され、技術の進展やニーズの変化に応じて更新されることもあります。
また、もともとは各製造会社独自のプロトコルとして策定されたものが、事実上の標準となりデファクトスタンダードとして定着したものも多く存在します。
いずれにせよ、プロトコルは全世界で共通に定義されることによって、今日のインターネットの発展があるということを理解しましょう。
プロトコルスタックとは
コンピュータ間の通信は、単一のプロトコルだけで行われるわけではありません。実際には、特定の目的や役割に応じて、複数のプロトコルが組み合わされて通信が実現されています。
どういうことでしょうか?
あなたがWebブラウザを通じてこのページを閲覧する際、実は背後では複数のプロトコルが連携して動作しています。(単一のプロトコルですべての通信が実現されているわけではありません。)
Webサイトのコンテンツを取得するためにHTTP
プロトコルが動作し、その下の階層では、データの信頼性を確保するTCP
が、そしてさらにその下では、データの送受信先を決定するIP
が働いています。
これらのプロトコルは、それぞれ異なる役割を持っています。1つのプロトコルが他のプロトコルの上(または下)で動作する階層的な構造を持つことで、通信がスムーズに行われます。
この階層構造で組み合わされたプロトコル群を総称して「プロトコルスタック」と呼びます。この概念によって、複雑な通信もシンプルに、かつ効率的に処理されます。
現代ではTCP/IPというプロトコルスタックが主流で、そのほかのプロトコルスタックは一般的ではありません。つまり、ネットワークエンジニアを目指す場合はTCP/IPの仕組みを学習していくだけでOKということ。
プロトコルスタック | 使用される主なプロトコル | 主な用途 | 補足 |
---|---|---|---|
TCP/IP | IP, ICMP, TCP, UDP, SMTP, HTTP | グローバルなインターネットからローカルなネットワーク環境 | 現代のネットワークの標準的なプロトコル |
IPX/SPX | IPX, SPX, NCP | Netware OS環境のLAN通信 | かつてのLAN通信で主流だったが、現在は使用頻度が少ない |
AppleTalk | AARP, DDP, RTMP, AEP | 古いバージョンのMac OS環境でのLAN通信 | 現代のMacでは使用されないが、歴史的背景としての理解が重要 |
OSI | FTAM, X.400, X.500など | OSI参照モデルに基づく通信 | 実際の実装よりも理論や教育の文脈で参照されることが多い |
DECnet | DDCMP, LAT, CTERM, NSP | Digital Equipment Corporationのネットワーク製品 | DEC製品のネットワーク環境で使用されていた |
NetBIOS/NetBEUI | NetBIOS, NetBEUI | 主にWindowsネットワーキングでの名前解決やセッションサービス | 現代ではTCP/IPに取って代わられて使用されることは少ない |
ネットワーク学習の決定版(ネットワークエンジニアを目指すなら必見!)
↑ページ数が多く誰でも手軽に読める内容ではありませんが、ネットワークエンジニアであれば、ほぼ全員が一度は読んだことがある超・有料書籍。是非一度読破しておきたい1冊のご紹介です。
読者特典> 0から学ぶネットワーク入門