1、TCP是什么
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
2、TCP协议头
3、各字段含义
- TCP源端口(Source Port):16位的源端口,表示发送方应用程序的端口。源端口和源IP地址标示报文发送端的地址。
- TCP目的端口(Destination port):16位的目的端口,指明报文接收应用程序的端口。
- TCP序列号(序列码SN,Sequence Number):32位的序列号标识了TCP报文中第一个byte在对应方向的传输中对应的字节序号。
- TCP应答号(Acknowledgment Number简称ACK Number或简称为ACK Field):32位的ACK Number标识了报文发送端期望接收的字节序列。如果设置了ACK控制位,这个值表示一个准备接收的包的序列码。
- TCP报文头长度(Header Length):4位,指示TCP头的长度,即数据从何处开始。最大为15,单位是32比特(32-bit word),也就是4个字节,也就是说TCP报文头最大长度为60个字节。注意,这个不是TCP报文的长度,TCP是流协议,不需要说明报文长度,IP协议里有IP数据报的长度。
- 保留(Reserved):6位值域。为了将来定义新的用途所保留。
- 标志(Code Bits):6位标志位,下面介绍。
- 窗口大小(Window Size):16位,该值指示了从Ack Number开始还愿意接收多少byte的数据量,也即用来表示当前接收端的接收窗还有多少剩余空间。用于TCP的流量控制。在TCP协议的可选项里,还可以定义窗