TCP首部解析
TCP首部:
TCP数据被封装在一个IP数据报中,如下:
![tcp首部](https://images2015.cnblogs.com/blog/603942/201610/603942-20161024143635421-1962696811.png)
TCP首部数据格式:
![tcp首部数据结构](https://images2015.cnblogs.com/blog/603942/201610/603942-20161024143651843-981849269.png)
16位源都口号:16位目的端口号用于寻找发送端和接收端的应用进程,加上IP首部的源端IP及终端IP,唯一的确认一个TCP连接。
32位序号:标识发送的数据字节流,标识在这个报文段中的第一个数据字节,2^3 - 1后重新从0开始。包含该主机选择的连接的ISN(Initial Sequence Number),要发送的第一个数据字节序号为ISN+1.
32位确认序号:ACK为1时有效,上次成功收到的数据字节序号+1(如接收到的为1024--2048,则返回2049)。
4位首部长度:首部中32bits字的数目,TCP最多有60字节的长度,除去任选字段,正常为20字节。
6bits标志位:URG紧急指针;ACK确认序号有效;PSH接收方应尽快将此报文段交给应用层;RST重建连接;SYN同步序号,用来发起一个新连接;FIN发端完成发送任务。
16位窗口大小:TCP流量控制,字节数,起始于确认序列号指明的值,接收端期望收到的字节,最大为65535.
16位检验和:包括计算TCP首部和数据综合的二进制反码和检验和。
16位紧急指针:URG为1时有效,正向的偏移量,加上序号字段值表示最后一个字节的序号。
可选字段:例:MSS.