三次挥手
我要和你建立链接,你真的要和我建立链接么,我真的要和你建立链接,成功
- 第一次握手:客户端发送syn(syn=x)包到服务器,进入SYN_SEND状态,等待服务器确认
- 第二次握手:服务器收到syn包,必须确认客户的SYN(ack = x+1),同时自己也发送一个SYN包(syn = y),即SYN+ACK包,此时服务器进入SYN_RECV状态
- 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack = y+1),此包发送
四次挥手
我要和你断开连接;好的,断吧;我也要和你断开连接;好的断吧
- 第一次挥手:客户端主动关闭方发送一个FIN,用来关闭客户端到服务器的数据传送,也就是客户端告诉服务端:我已经不会再发给你数据了(当然,在fin包发送之前发送出去的数据,如果没有收到对应的ack包确认报文,客户端还可以接受数据
- 第二次挥手:服务端收到FIN包后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)
- 第三次挥手:服务端发送一个FIN,用来关闭服务器到客户端的数据传送,也就是告诉客户端,我的数据页发送完了,再给你发数据了
- 第四次挥手:客户端收到FIN后,发送一个ACK给服务端,确认序号为收到序号+1,至此,完成四次挥手