利用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,ACK
将确认序号(AcknowledgementNumber)设置为客户的ISN加1以
即0+1=1,如下图第三次握手的数据包客户端