三次握手:
SYN,请求链接标志
ACK,确认标志
seq,标记数据段顺序
ack,对方seq是否收到的标记
第一次握手,SYN=1,ACK=0,seq=客户端随机一个数x
第二次握手,SYN=1,ACK=1,seq=服务器随机一个数y,ack=x+1
第三次握手,SYN=0,ACK=1,seq=x+1,ack=y+1
四次挥手:
FIN,中断链接标志
ACK,确认标志
seq,标记数据段顺序
ack,对方seq是否收到标记
第一次挥手,FIN=1,seq=客户端随机一个数u
第二次挥手,ACK=1,seq=服务器随机一个数v,ack=u+1
第三次挥手,FIN=1,ACK=1,seq=服务器随机一个数w,ack=u+1
第四次挥手,ACK=1,seq=u+1,ack=w+1
为什么连接是三次,关闭是四次:
因为服务器一直处于listen的状态,随时可以建立连接。
而终止状态需要双方都确认。
三次握手完成两个重要功能,约定双方做好发送数据的准备,并协商起始序列号。