0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TCP Header Format
Source Port: 16 bits,源端口号码html
Destination Port: 16 bits,目的端口号码web
Sequence Number: 32 bits,序列号app
Acknowledgment Number: 32 bits,确认号码svg
Data Offset: 4 bits,数据偏移函数
Reserved: 6 bits,保留spa
Control Bits: 6 bits (from left to right),控制位指针
Window: 16 bits,窗口code
Checksum: 16 bits,校验和orm
在头部和文本中的全部16 bit字的补偿总和。若是分片包含一个0值的头部和文本八位字节要检验,为校验用最后一个八位字节右边填充0值以构成一个16 bit的字。填充不做为分片的一部分传送。当计算校验和的时候,校验和字段本身被0代替。xml
校验和也包括TCP头部以前的伪头部。这些伪头部包括源地址,目的地址,协议和TCP长度。这能够避免报文被错误地路由。这些信息在Internet协议中携带,在TCP/Network接口的参数中传递,或者是TCP调用IP的返回值。
+--------+--------+--------+--------+ | Source Address | +--------+--------+--------+--------+ | Destination Address | +--------+--------+--------+--------+ | zero | PTCL | TCP Length | +--------+--------+--------+--------+
TCP长度是TCP头部加上数据长度的八位字节数(这不是一个明确传输的数量,可是被计算),且它不计入12个八位字节的伪头部。
Urgent Pointer: 16 bits,紧急指针
Options: 选项,可变
选项位于TCP头部后面,长度上是8 bits的整数倍。全部选项包含在校验和中。选项能够开始于任何八位字节巴结。选项的格式有两种状况:
选项长度(option-length)计入了选项类型(option-kind),选项长度(option-length)以及选项数据(option-data)。
注意选项列表可能比数据偏移字段暗示的短。超过End-of-Option选项的头部的内容必须进行填充。
TCP必须实现全部的选项
当前定义的选项包括:
Kind Length Meaning ---- ------ ------- 0 - End of option list. 1 - No-Operation. 2 4 Maximum Segment Size.
特定选项定义:
End of Option List,选项列表的结束
+--------+ |00000000| +--------+ Kind=0
No-Operation,无操做
+--------+ |00000001| +--------+ Kind=1
Maximum Segment Size,最大分片大小
+--------+--------+---------+--------+ |00000010|00000100| max seg size | +--------+--------+---------+--------+ Kind=2 Length=4
Maximum Segment Size Option Data: 16 bits, 最大分片大小选项数据
Padding: 可变,填充