讲一下我理解的三次握手
先设置一个场景:
1、以web服务为例子
2、有一台client 和 一台server
3、server上跑了一个程序 nginx ,监听的端口号是80端口
4、当client向server发送请求的时候,SYN控制位置为1 ,然后将自己随机生成的序列号seq = x 以及整个数据包(seq—>序列号 和 syn 同步位)打包发送过去
5、然后这边的状态变成 syn-sent
6、server这边因为一直是监听状态 ,收到数据包之后,状态马上变成 SYN-RCVD
7、在收到数据包之后,解包,然后将自己的SYN和对方保持同步,同样置为1,并且要确认这个数据包,ACK = x + 1 ,同样的server这边也会有自己的seq = y, 发送过去
8、当client收到server发过来的同步包之后,状态立即变为-----》established(建立连接)
9、同时在client,控制位ACK = y + 1,seq=x+1, 再发送给server ,server的状态也变成established(建立连接)
4,5,6,第一次握手
7,第二次握手
8,9,第三次握手