通信プロトコル(つうしんプロトコル、Communication protocol)は、通信に関する規格のことである。「通信規約」や「通信手順」ともいう[1][2]。
通信を行うためには、通信に参加するもの同士の間で、あらかじめ通信に関する規格を定めなければならない。
たとえば、江戸時代においては、旗振り通信により、米相場を各地に伝達していたが、旗を振る向きや回数の意味について、事前に打ち合わせて決めておかなければ意味を成さない(上げ相場は左横上で二振、下げ相場は右横下で二振、など)。
プロトコルを定め、それに従うことは、通信を成立させるための基本原理と言える。プロトコルが異なる機器同士で通信を行いたい場合は、プロトコルコンバータ(英語: Protocol converter)のような機器を使用する。
一つの通信でも、役割の異なる複数のプロトコルから成り立っていることも多く、それらをまとめたものは「プロトコルスタック」、「プロトコル・ファミリー」、「プロトコル・スイート」などと呼ぶ。これは、ネットワーク・プロトコルが階層的に定義されているのに対応して、それを実装するソフトウェアも階層的に構築されるためである。また、このことからプロトコルや、プロトコル・スタックは、しばしばそれらのソフトウェアでの実装を指すこともある。
現在広く普及しているプロトコル・スイートとしては、インターネット・プロトコル・スイート(TCP/IP)が挙げられる。インターネットの通信に関するプロトコルは、コンピュータ上で動くソフトウェアに関する取り決めを中心に、伝送路などのハードウェアについての取り決めも含まれ、そのほとんどは、IETFによって定められ、その他のものについてはIEEEやISOなどの組織によって定められている。ITU-Tは電気通信に関するプロトコルの策定を行う。
通信プロトコルは、伝送路の物理条件、伝達、相手の特定、情報表現の4つの基本要素より成り立っている。
- 伝送路の物理条件
- 有線通信の場合は、ケーブルとコネクタの形状と電気特性や光学波長、変調方式を規定する。無線通信の場合は、周波数帯や変調方式を規定する。例えば、IEEE 802.11, Bluetooth, ZigBeeなどがある。
- 伝達
- 伝達に関する要素として、通信プロトコルの中核をなす多くの決まりごとが規定されている。この中には信号にどのように「1」と「0」を割り当てるのかといった「符号化コード」から始まって、「同期」、「アクセス制御」、「誤り制御」、「フロー制御」などの各方式の規定が含まれている。
- 相手の特定
- 1対1の通信路に関するプロトコルでは例外的に規定の必要がないが、複数の端末が接続されるネットワーク上では送信先を特定する必要がある場合が多い。個別の「アドレス」によって特定できるが、1つの端末には、MACアドレスやIPアドレスのように用途によって複数種類のアドレスが割り振られることが多く、それらの間での変換ルールに関しての複雑な取り決めが規定されている。
- 情報表現
- ビットの羅列を有効な情報として通信するために、情報の表現ルールを相互に取り決める必要がある。ビットの区切り単位として古くは6ビットや7ビットで1つの文字を表現していたが、今では多くが8ビットで区切られたASCIIコードを文字コードとして使っていることが多く、日本ではシフトJIS等も使用される。また、いくつかの文字の組み合わせでコマンドとする取り決めや、送信する内容、つまりデータそのものの表現方法も取り決めておかなくてはならない。こういった情報の配置と構成に関する表現ルールがパケット・フォーマットやフレーム・フォーマットといった形で、詳細な取り決めが規定される[3]。
以下は各種の通信プロトコルについて、OSI参照モデルの7層のうち最も近い層に分類したものになっている。
第2層(データリンク層)のプロトコル
- ARP Address Resolution Protocol
- イーサネット
- FDDI Fiber Distributed Data Interface
- LAP (Link Access Procedure) 、X.25用
- HDLC High Level Data Link Control
- LAPB (Link Access Procedure, Balanced) 、LAPのHDLC互換版
- LAPD (Link Access Procedure on the D-channel) 、LAPBのISDN Dチャネル版
- LAPDC (Link Access Procedure for Digital Cordress) 、RCR STD-28 (PHS) 用
- LAPM (Link Access Procedure for Modem) 、アナログモデム用
- LAPF (Link Access procedure for Frame-Relay) 、フレームリレー用
- PPP Point-to-point protocol
- トークンリング
第2+3層のプロトコル
- X.25
- フレームリレー X.25を単純化したもの
- ATM Asynchronous Transfer Mode
- MPLS Multi-protocol label switching
第3層(ネットワーク層)のプロトコル
- ICMP Internet Control Message Protocol
- IP Internet Protocol そのもの
- IPv4 Internet Protocol version 4、現在の標準
- IPv6 Internet Protocol version 6、現在広がりつつある
- IPX Internetwork Packet Exchange
- ルーティング・プロトコル:
- 自律システム(AS)間のルーティング
- EGP Exterior gateway protocol (現在使われていない)
- BGP Border gateway protocol
- 独立の自律システム(AS)内におけるルーティング
- EIGRP Enhanced interior gateway routing protocol
- IGRP Interior gateway routing protocol
- RIP Routing information protocol
- OSPF Open shortest path first
- X.25PLP (Packet Level Protocol) 、X.25用
第3+4層のプロトコル
- XNS Xerox network services
第4層(トランスポート層)のプロトコル
- SPX Sequenced Packet Exchange
- TCP Transmission Control Protocol
- UDP User Datagram Protocol
- IPSec IP Security Protocol
- SCTP Stream Control Transmission Protocol
- DCCP Datagram Congestion Control Protocol
- QUIC
第5層(セッション層)のプロトコル
- SIP Session Initiation Protocol
- H.323 Packet-based multimedia communications systems
- POP3 Post Office Protocol Version 3
- IMAP Internet Message Access Protocol
HTTP over TLS(HTTPSなどで使われる)やSMTP over SSL、STARTTLSなど、上記のプロトコルにおけるセキュリティ上の欠点を補ったものもある。
第6層(プレゼンテーション層)のプロトコル
- TLS Transport Layer Security
- SSL Secure Sockets Layer
- SDP Session Description Protocol
- AFP Apple Filing Protocol
- PIDF
第7層(アプリケーション層)のプロトコル
- HTTP HyperText Transfer Protocol、 World Wide Webで利用されている
- SMTP Simple Mail Transfer Protocol
- FTP File Transfer Protocol
- Telnet 遠隔端末アクセスプロトコル
- NFS Network File System
- SNMP Simple Network Management Protocol
- Gnutella ピア・ツー・ピアのファイル交換プロトコル
- DNS Domain Name System
- SSH Secure SHell
- NTP Network Time Protocol
- Gopher World wideな文書共有システム
- Finger 登録ユーザのプロファイル情報の取得
- NNTP News Network Transfer Protocol
- LDAP Lightweight Directory Access Protocol
- DHCP Dynamic Host Configuration Protocol
- IRC Internet Relay Chat
- WebDAV Web Distributed Authoring and Versioning
- DICT Dictionary protocol
通信に関して最初にProtocol(プロトコル)という用語が使われたのは、1968年に稼動を開始したARPANET(アーパネット)である。ARPANETは世界最初のコンピュータ・ネットワークとして、また、現在のインターネットの母体となったネットワークとして知られている。
その後、ARPANETを手本にさらに良いネットワークを構築するために生み出されたX.25という通信手順の登場で、プロトコルという用語が広まり定着した[3]。