通信プロトコル

通信プロトコルは、通信に関する規格のことである。「通信規約」や「通信手順」ともいう。

1. 概要
-----

通信を行うためには、通信に参加するもの同士の間で、あらかじめ通信に関する規格を定めなければならない。 たとえば、江戸時代においては、旗振り通信により、米相場を各地に伝達していたが、旗を振る向きや回数の意味について、事前に打ち合わせて決めておかなければ意味を成さない。

プロトコルを定め、それに従うことは、通信を成立させるための基本原理と言える。プロトコルが異なる機器同士で通信を行いたい場合は、プロトコルコンバータのような機器を使用する。

2. 情報工学におけるプロトコル
----------------

一つの通信でも、役割の異なる複数のプロトコルから成り立っていることも多く、それらをまとめたものは「プロトコルスタック」、「プロトコル・ファミリー」、「プロトコル・スイート」などと呼ぶ。これは、ネットワーク・プロトコルが階層的に定義されているのに対応して、それを実装するソフトウェアも階層的に構築されるためである。また、このことからプロトコルや、プロトコル・スタックは、しばしばそれらのソフトウェアでの実装を指すこともある。

現在広く普及しているプロトコル・スイートとしては、インターネット・プロトコル・スイートが挙げられる。インターネットの通信に関するプロトコルは、コンピュータ上で動くソフトウェアに関する取り決めを中心に、伝送路などのハードウェアについての取り決めも含まれ、そのほとんどは、IETFによって定められ、その他のものについてはIEEEやISOなどの組織によって定められている。ITU-Tは電気通信に関するプロトコルの策定を行う。

3. 構成要素
-------

通信プロトコルは、伝送路の物理条件、伝達、相手の特定、情報表現の4つの基本要素より成り立っている。

伝送路の物理条件有線通信の場合は、ケーブルとコネクタの形状と電気特性や光学波長、変調方式を規定する。無線通信の場合は、周波数帯や変調方式を規定する。例えば、IEEE 802.11, Bluetooth, ZigBeeなどがある。伝達伝達に関する要素として、通信プロトコルの中核をなす多くの決まりごとが規定されている。この中には信号にどのように「1」と「0」を割り当てるのかといった「符号化コード」から始まって、「同期」、「アクセス制御」、「誤り制御」、「フロー制御」などの各方式の規定が含まれている。相手の特定1対1の通信路に関するプロトコルでは例外的に規定の必要がないが、複数の端末が接続されるネットワーク上では送信先を特定する必要がある場合が多い。個別の「アドレス」によって特定できるが、1つの端末には、MACアドレスやIPアドレスのように用途によって複数種類のアドレスが割り振られることが多く、それらの間での変換ルールに関しての複雑な取り決めが規定されている。情報表現ビットの羅列を有効な情報として通信するために、情報の表現ルールを相互に取り決める必要がある。ビットの区切り単位として古くは6ビットや7ビットで1つの文字を表現していたが、今では多くが8ビットで区切られたASCIIコードを文字コードとして使っていることが多く、日本ではシフトJIS等も使用される。また、いくつかの文字の組み合わせでコマンドとする取り決めや、送信する内容、つまりデータそのものの表現方法も取り決めておかなくてはならない。こういった情報の配置と構成に関する表現ルールがパケット・フォーマットやフレーム・フォーマットといった形で、詳細な取り決めが規定される。

4. 各種プロトコル
----------

以下は各種の通信プロトコルについて、OSI参照モデルの7層のうち最も近い層に分類したものになっている。

4.1. 第1層のプロトコル
--------------

ISDN Integrated Services Digital Network
RCR STD-28 
10Base-T、100BASE-TX、1000BASE-T
PDH Plesiochronous Digital Hierarchy、SDH統一前の地域別同期網
T-carrier 、ISDNの多重化
RS-232C、EIA-574、シリアル・インタフェースで、当初はモデムやコンピュータ端末の接続のために開発された
SDH Synchronous Digital Hierarchy、PDH後続の国際統一同期網
SONET Synchronous Optical NETworking、SDHへと標準化前の規格

4.2. 第2層のプロトコル
--------------

ARP Address Resolution Protocol
イーサネット
FDDI Fiber Distributed Data Interface
LAP  、X.25用
HDLC High Level Data Link Control
LAPB  、LAPのHDLC互換版
LAPD  、LAPBのISDN Dチャネル版
LAPDC  、RCR STD-28  用
LAPM  、アナログモデム用
LAPF  、フレームリレー用
PPP Point-to-point protocol
トークンリング

4.3. 第2+3層のプロトコル
----------------

X.25
フレームリレー X.25を単純化したもの
ATM Asynchronous Transfer Mode
MPLS Multi-protocol label switching

4.4. 第3層のプロトコル
--------------

ICMP Internet Control Message Protocol
IP Internet Protocol そのもの
IPv4 Internet Protocol version 4、現在の標準
IPv6 Internet Protocol version 6、現在広がりつつある
IPX Internetwork Packet Exchange
ルーティング・プロトコル:
自律システム間のルーティング
EGP Exterior gateway protocol
BGP Border gateway protocol
独立の自律システム内におけるルーティング
EIGRP Enhanced interior gateway routing protocol
IGRP Interior gateway routing protocol
RIP Routing information protocol
OSPF Open shortest path first
X.25PLP  、X.25用

4.5. 第3+4層のプロトコル
----------------

XNS Xerox network services

4.6. 第4層のプロトコル
--------------

SPX Sequenced Packet Exchange
TCP Transmission Control Protocol
UDP User Datagram Protocol
SSL Secure Sockets Layer
TLS Transport Layer Security
IPSec IP Security Protocol
SCTP Stream Control Transmission Protocol
DCCP Datagram Congestion Control Protocol
QUIC

4.7. 第5層のプロトコル
--------------

SIP Session Initiation Protocol
H.323 Packet-based multimedia communications systems
HTTP HyperText Transfer Protocol、 World Wide Webで利用されている
SMTP Simple Mail Transfer Protocol
FTP File Transfer Protocol
POP3 Post Office Protocol Version 3
Telnet 遠隔端末アクセスプロトコル
IMAP Internet Message Access ProtocolHTTP over TLSやSMTP over SSL、STARTTLSなど、上記のプロトコルにおけるセキュリティ上の欠点を補ったものもある。

4.8. 第6層のプロトコル
--------------

SDP Session Description Protocol
HTML
XML
AFP Apple Filing Protocol
PIDF

4.9. 第7層のプロトコル
--------------

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

5. 歴史
-----

通信に関して最初にProtocolという用語が使われたのは、1968年に稼動を開始したARPANETである。ARPANETは世界最初のコンピュータ・ネットワークとして、また、現在のインターネットの母体となったネットワークとして知られている。

その後、ARPANETを手本にさらに良いネットワークを構築するために生み出されたX.25という通信手順の登場で、プロトコルという用語が広まり定着した。

6. 応用
-----

6.1. 自動車
--------

CAN,LIN, FlexRayのような車載機器の通信規格がある。

6.2. 家電
-------

Echonet, ECHONET Liteのような家電用通信規格がある。

6.3. 機器
-------

ARCNETのような機器間の通信規約がある。

6.4. 航空宇宙
---------

SpaceWireのような航空宇宙用の通信規約がある。

6.5. 仮想通貨
---------

暗号通貨は多種多様に現存していて、トークンの特異性かつ暗号通貨間のチャネリングを指すことがある。

6.6. 工場
-------

メーカー独自の通信プロトコルが多いが、スマートファクトリー・インダストリー4.0といった取り組みより、異なる製造元の装置が通信できる規格もある。OLE for Process Controlのような通信規格がある。

6.7. ビル・住居
----------

BACnet, LonTalk, X10, ZigBeeのような通信規格がある。

7. 関連
-----

7.1. プロトコル記述言語
--------------

ASN.1 Abstract Syntax Notation One
ABNF Augmented BNF 

8. 出典
-----

9. 学習参考書
--------

井上直也、村山公保、竹下隆史、荒井透、苅田幸雄：「マスタリングTCP/IP―入門編―」、オーム社、ISBN 978-4-274-22447-8。

10. 関連項目
--------

プロトコル
ルーティングプロトコル