第一行
syn=1表示想与目标主机建立tcp联系,seq为随机分配,ack位因为没有确认性质所以为0。
第二行
seq为随机分配,ack为请求主机的seq+1,syn=1表示也想与请求主机建立联系,ack=1表示有确认性质,表示收到了请求主机的联系请求。
第三行
seq为另一个主机的ack(确认号),ack依旧为上一个主机的seq(序列号),syn为0表示不需要请求建立连接(因为已经建立了双向连接),ack为1表示收到了请求主机的联系请求。
传输过程:
第一行
与握手过程无异,但多加了应用层数据(data),大小为127字节,表示收到了127字节的应用层数据。
第二行
seq为ack的字节, ack为对方主机的seq+应用层数据大小。ACK以后大概率一直为1,因为要一直确认对方发过来的最后一条报文。
第三行
确认号=上一个报文的序列号+字节数大小。所以ack=b+1+0.
第四五行同理。
四次挥手过程:
1、请求断开的主机向目标主机发送FIN
2、目标主机若收到包含FIN的TCP头部报文,就会向请求主机发送ACK报文以确定
3、目标主机若已把应用层数据传输或接受完毕,则会发送包含FIN的TCP头部报文以请求断开连 接
4、请求主机发送包含ACK的TCP头部报文以回复收到目标主机的断开连接的请求,此时双方已断 开连接
总结:
1、tcp的每一条报文都在确认或回复对方发过来的最后一条报文。
2、TCP协议 的三次握手和四次挥手中,ACK=对方最后一条报文的seq+应用层字节(data)+1。
3、syn=1表示想与目标主机建立TCP连接。