TCP三次握手机制中的seq和ack

TCP连接的三次握手:

第一次(A--->B),SYN=1,seq=x
第二次(B--->A),SYN=1,ACK=1,seq=y,ack=x+1 
第三次(A--->B),ACK=1,seq=x+1,ack=y+1 

seq是序列号,这是为了连接以后传送数据用的,ack是对收到的数据包的确认,值是等待接收的数据包的序列号。

在第一次消息发送中,A随机选取一个序列号作为自己的初始序号发送给B;第二次消息B使用ack对A的数据包进行确认,因为已经收到了序列号为x的数据包,准备接收序列号为x+1的包,所以ack=x+1,同时B告诉A自己的初始序列号,就是seq=y;第三条消息A告诉B收到了B的确认消息并准备建立连接,A自己此条消息的序列号是x+1,所以seq=x+1,而ack=y+1是表示A正准备接收B序列号为y+1的数据包。

seq是数据包本身的序列号;ack是期望对方继续发送的那个数据包的序列号。

posted @ 2017-11-15 11:20  独孤小败ai  阅读(4150)  评论(0编辑  收藏  举报