1、三次握手流程:
a、客户端发送SYN = 1;seq = q(随机值)请求链接
b、服务端检测SYN为1知道客户端需要请求链接,发送SYN =1, ACK = 1, ack = q + 1, seq = q2(随机值),确认链接,注意此处ack与seq本可以分两次发,但是由于没有先后关系因此合在一块发送,也就是为什么不用进行四次握手的原因;
c、客户端检测ACK为1,ack为q + 1发送SYN = 1, ACK = 1,ack = q2 + 1。服务端检测到ack为q2 + 1则链接建立成功
不能只有两次握手的原因:
客户端第一次发送请求该报文阻塞超时后又发起连接请求,服务端首次第二次请求确认成功,此后数据传输完毕,第一次的请求到达服务端,服务端发送确认消息后等待客户端发送数据此时造成服务端资源浪费。
2、四次挥手流程:
a、客户端发送FIN = 1;seq ack
b、服务端发送ack
c、服务端确认无数据传输时发送FIN seq
d、客户端发送ack
网友评论