利用 Wireshark 进行 TCP 协议分析TCP 报文首部,如下图所示:1
源端口号:数据发起者的端口号,16bit2
目的端口号:数据接收者的端口号,16bit3
序号:32bit 的序列号,由发送方使用4
确认序号:32bit 的确认号,是接收数据方期望收到发送方的下一个报文段的序号,因此确认序号应当是上次已成功收到数据字节序号加 1
首部长度:首部中 32bit 字的数目,可表示 15*32bit=60 字节的首部
一般首部长度为 20 字节
保留:6bit, 均为 07
紧急 URG:当 URG=1 时,表示报文段中有紧急数据,应尽快传送
确认比特 ACK:ACK = 1 时代表这是一个确认的 TCP 包,取值 0 则不是确认包
推送比特 PSH:当发送端 PSH=1 时,接收端尽快的交付给应用进程
复位比特(RST):当 RST=1 时,表明 TCP 连接中出现严重差错,必须释放连接,再重新建立连接
同步比特 SYN:在建立连接是用来同步序号
SYN=1, ACK=0 表示一个连接请求报文段
SYN=1,ACK=1 表示同意建立连接
终止比特 FIN:FIN=1 时,表明此报文段的发送端的数据已经发送完毕,并要求释放传输连接
窗口:用来控制对方发送的数据量,通知发放已确定的发送窗口上限
检验和:该字段检验的围包括首部和数据这两部分
由发端计算和存储,并由收端进行验证
紧急指针:紧急指针在 URG=1 时才有效,它指出本报文段中的紧急数据的字节数
选项:长度可变,最长可达 40 字节TCP 的三次握手和四次挥手:第一次握手数据包客户端发送一个 TCP,标志位为 SYN,序列号为 0, 代表客户端请求建立连接
如下图第二次握手的数据包服务器发回确认包, 标志位为 SYN,