第三次握手的原因
第三次握手是为了防止失效的连接请求到达服务器,让服务器错误的打开连接。
客户端发送的连接请求如果在网络中滞留,那么就会隔很长一段时间才能收到服务器端返回的连接确认。客户端等待一个超时重传时间之后,就会重新请求连接,但是这个滞留的连接请求最后还是会到达服务器,如果不进行三次握手,那么服务器就会打开两个连接,如果有第三次握手,客户端就会忽略服务器之后发送的对滞留连接请求的连接确认。
四次挥手的原因
客户端发送了FIN连接释放报文后,服务器收到这个报文后,就会进入CLOSE-WAIT状态。这个状态是为了让服务器端发送还未传送完的数据,传送完之后服务器端会发送FIN连接释放报文。
客户端等待2MSL(最大报文存活时间)后释放连接的原因
1,确认最后一个确认报文可以到达,如果B没有收到A发送来的确认报文那么就会重新发送连接释放请求报文,A等待一段时间就是为了处理这种情况的发生。
2,等待一段时间是为了让本连接持续时间内所产生的所有报文都从网络中消失,使得下一个新的连接不会出现旧的连接请求报文。