Transmission Control Protocol
| TCP/IP群 | |
|---|---|
| アプリケーション層 | |
|
BGP / DHCP / DNS / FTP / HTTP / IMAP / IRC / LDAP / MGCP / NNTP / NTP / POP / RIP / RPC / RTP / SIP / SMTP / SNMP / SSH / Telnet / TFTP / TLS/SSL / XMPP カテゴリ |
|
| トランスポート層 | |
|
TCP / UDP / DCCP / SCTP / RSVP / ECN カテゴリ |
|
| ネットワーク層 | |
|
IP (IPv4, IPv6) / ICMP / ICMPv6 / IGMP / IPsec カテゴリ |
|
| リンク層 | |
|
ARP/InARP / NDP / OSPF / トンネリング (L2TP) / PPP / MAC (イーサネット, IEEE 802.11, DSL, ISDN, FDDI) カテゴリ |
Transmission Control Protocol(トランスミッション コントロール プロトコル、TCP)は、伝送制御プロトコルといわれ、TCP/IPの通信処理で使われるプロトコルのひとつ。OSI参照モデルのトランスポート層にあたる。ネットワーク層のプロトコルであるIPの上位プロトコルとして使われる。
TCPは、セッションという形で1対1の通信を実現し、パケットシーケンスチェックによる欠損パケット再送などのエラー訂正機能などを持ち、データ転送などの信頼性の必要な場面でよく使用される。一方他のトランスポート層プロトコルに比べ、プロトコル上のオーバヘッドが大きい為、比較的低速となる。速度が重要であり、信頼性をプロトコルに求めない場合にはUDPがよく使用される。
IETFにより、RFC 793 (STD 7) に技術仕様が規定されている。
上位プロトコルとして、HTTP、FTP、Telnet、SSHなどがある。
目次 |
[編集] 仕様概要
- プロトコル番号: 6
- コネクション型通信であり、3ウェイ・ハンドシェイク方式で接続を確立する。
[編集] RFCによる技術仕様
[編集] TCPヘッダ
| ビット オフセット | 0 - 3 | 4 - 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 - 31 |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 送信元ポート | 送信先ポート | |||||||
| 32 | シーケンス番号 | ||||||||
| 64 | 確認応答番号 | ||||||||
| 96 | ヘッダ長 | 予約 | URG | ACK | PSH | RST | SYN | FIN | ウインドウサイズ |
| 128 | チェックサム | 緊急ポインタ | |||||||
| 160 | (オプション) | ||||||||
| データ | |||||||||
- URG
- 緊急転送データ
- ACK
- 受信確認
- PSH
- プッシュ
- RST
- 接続のリセット
- SYN
- 同期
- FIN
- 送信終了
[編集] 状態遷移
-
3ウェイ・ハンドシェイクにおける典型的な状態遷移。遷移に使われるソケット呼び出しを付記した。
[編集] 関連項目
[編集] 外部リンク
- RFC 793 - Transmission Control Protocol
- RFC 813 - Window and Acknowledgement Strategy in TCP
- RFC 1323 - TCP Extensions for High Performance
- RFC 3390 - Increasing TCP's Initial Window
- RFC 3782 - The NewReno Modification to TCP's Fast Recovery Algorithm
- RFC 5681 - TCP Congestion Control