TCPは今日のインターネットを支える中核技術で、人類史上もっとも成功し多用されている通信手順といえます。今回はこのTCPについて、ちょっとその内側を紹介してみようと思います。

TCP/IPとは

 TCP(Transmission Control Protocol)は俗にTCP/IPと称される通信手順の一要素です。TCP/IPはネットワーク層であるIP(Internet Protocol)、トランスポート層であるUDP(User Datagram Protocol)とTCPを中核とし、大抵の場合はその下位層にMACアドレス解決用のARP(Address Resolution Protocol)や、上位層にIPアドレス自動付加用のDHCP(Dynamic Host Configuration Protocol)など補助的なプロトコル群が実装されます。

 「ネットワーク層」であるIPは、指定されたデータをA地点(発信元アドレス)からB地点(宛先アドレス)へ配達する働きを持ちます。IPには32bitアドレスを使うIPv4と128bitアドレスを使うIPv6がありますが、TCPおよびUDPはIPv4/IPv6で共用可能な実装になっています。

 IPの仕事は「アドレスにデータを届ける」だけで、その中身が何であるかの意味付けや、データが本当に届いたかの確認は行いません。IPヘッダーには8bitの「プロトコル」フィールド(※IPv6ではペイロードと呼ぶ)があり、運んでいるデータの意味付けはこのプロトコル値によって異なります。プロトコル値の代表的なものは次の3つです注1)

0x01:ICMP
0x06:TCP
0x11:UDP

注1)プロトコル・ペイロード番号の一覧は以下のURLを参照:http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml