TCP协议(1)--TCP首部

TCP首部格式:
这里写图片描述
TCP首部中没有表示包长度和数据长度的字段。可由IP层计算出TCP包长。
即IP首部的数据包长度-IP首部长度
由TCP包长可知数据的长度。
1.源端口号:表示发送端端口号,字段长度16位
2.目标端口号:表示接收端端口号,字段长度16位
3.序列号:序列号是指发送数据的位置。每发送一次数据,就累加一次该数据字节数的大小。字段长度32位
4.确认应答号:是指下一次应该收到的数据的序列号。发送端接收到这个确认应答号以后就可以认为在这个序号以前的数据都已经被正常接收了。字长32位
5.数据偏移:该字段表示TCP所传输的数据部分应该从TCP包的哪个位置开始计算。也可以当成TCP的首部长度。字段长度4位,单位为字节。
保留:该字段主要为以后扩展使用。一般设置为0.
控制位:
CWR:CWR表示与后面的ECE都用于IP首部的ECN字段。ECE标志位1时,则通知对方已将拥塞窗口缩小。
ECE:表示ECN-Echo。置为1会通知通信对方,从对方到这边的网络有拥塞。在收到数据包的IP首部中ECN为1时,将TCP首部中ECE设置为1.
URG:为1时,表示包中有需要紧急处理的数据。
ACK:该位为1时,确认应答的字段变为有效。TCP规定除了在最初建立连接时候的SYN包之外该位必须设置为1。
PSH:该位为1时,表示需要将收到的数据立刻上传给上层应用协议。PSH为0时,则不需要立即传,而是先进行缓存。
RST:该位为1时,表示TCP连接出现异常,必须强制断开连接。
SYN:用于建立连接。SYN为1时表示希望建立连接,并在其序列号的字段进行序列号初始值的设定。
FIN:该位为1时,表示今后都不会再有数据发送,希望断开连接。当通信结束希望断开连接时,通信双方的主机之间就可以相互交换FIN位置为1的TCP段。
每个主机又对对方的FIN包进行确认应答以后就可以断开连接了。不过主机收到FIN设置为1的TCP段以后不必马上回复一个FIN包,而是可以等到缓冲区中的所有数据都因已成功发送而被自动删除之后再发。
窗口大小:用于通知从相同TCP首部的确认应答号所指位置开始能够接受的数据大小。TCP不允许发送超过此处所示大小的数据。

猜你喜欢

转载自blog.csdn.net/lalalahaitang/article/details/81119336