Transmission Control Protocol

[サーバの実験室 基礎]

作成 : 2002/10/27

"サーバの実験室"の検索


Transmission Control Protocol

Transmission Control Protocolは、RFC793で定義されている。

Transmission Control Protocolヘッダフォーマット

Transmission Control Protocolヘッダフォーマットは下図を参照。

TCP

Source Port:16bits

送信元のポート番号。

Destination Port:16bits

送信先のポート番号。

Sequence Number:32bits

最初のデータオクテットのシーケンス番号。 SYNパケットではISN(Initial Sequence Number)を示し、最初のデータオクテットはISN+1になる。

Acknowledgement Number:32bits

ACKコントロールビットがセットされている場合、次に受信を期待するシーケンス番号を示す。 最後に受信したデータオクテットのシーケンス番号に、1を加えたもの。 接続が確立されると、常に設定される。

Data Offset:4bits

TCPヘッダ長(Optionを含む)で、単位は4octets。 TCPデータがはじまるか示す。

Reserved:6bits

将来のために予約されている。

Control Bits:6bits

コントロールビット。

Control Bits

Window:16bits

受信可能なデータオクテット数。 受信バッファの余裕がなくなると、Windowを小さくして相手に通知する。

Checksum:16bits

チェックサム。

Urgent Pointer:16bits

緊急ポインタの現在値??

Options:variable

オプションは8bits単位で指定する。

End of Option List:8bits

End of Option List

すべてのオプションリストの終わりを示す。

No-Operation:8bits

No-Operation

Maximum Segment Size:32bits

Maximum Segment Size

最大受信セグメントサイズ。 これが指定されると、送信側はこのサイズを使用して通信する。 このフィールドは、SYNパケットでのみ指定されなければならない。

Transmission Control Protocolを見る

「tcpdump -X」を実行すると、16進ダンプとASCII変換されたパケットをキャプチャすることができる。 赤い字で表示した部分が、TCPヘッダ。

# tcpdump -X host www.goo.ne.jp

192.168.X.X.1159 > www.goo.ne.jp.http: S 136122613:136122613(0) win 5840 <mss 1460,sackOK,timestamp 36720523 0,nop,wscale 0> (DF) [tos 0x10] 
0x0000   4510 003c 5f7e 4000 4006 2dc7 c0a8 XXXX   E..<_~@.@.-.....
0x0010   d296 1925 0487 0050 081d 10f5 0000 0000   ...%...P........
0x0020   a002 16d0 142c 0000 0204 05b4 0402 080a   .....,..........
0x0030   0230 4f8b 0000 0000 0103 0300             .0O.........

[サーバの実験室 基礎]