tcp不管是连接还是断线都需要有握手机制,连接的时候是三次握手,正常掉线的时候是四次握手,在正常情况下,关闭握手都是有关闭的一方发起的,比如我的客户端要关闭,那么客户端会发送一个请求告诉服务器"我要关闭了"(第一个握手),然后服务器收到这个请求后回应一个响应给客户端"我受到了你的关闭请求"(第二次握手),然后然后再给客户端一个请求"既然你要关闭,那我也关闭吧"(第三次握手),客户端受到了服务器发送过来的关闭请求后,返回一个响应给服务器"我收到了你的关闭请求"(第四次握手),然后客户端关闭自己这一段的连接,服务器这一侧受到了客户端的关闭响应后也关闭自己这一侧的连接,至此服务器和客户端完全断开。而异常断线(拔网线或者突然断电)时以上的过程是没有时间和条件完成的所以此时的tcp连接只是单方面的断开,即所谓的假链接,单纯的tcp协议是无法完全解决这种事情的,所以我们通常使用心跳包来消除假链接或者说异常断线的情况。
tcp不管是连接还是断线都需要有握手机制,连接的时候是三次握手,正常掉线的时候是四次握手,在正常情况下,关闭握手都是有关闭的一方发起的,比如我的客户端要关闭,那么客户端会发送一个请求告诉服务器"我要关闭了"(第一个握手),然后服务器收到这个请求后回应一个响应给客户端"我受到了你的关闭请求"(第二次握手),然后然后再给客户端一个请求"既然你要关闭,那我也关闭吧"(第三次握手),客户端受到了服务器发送过来的关闭请求后,返回一个响应给服务器"我收到了你的关闭请求"(第四次握手),然后客户端关闭自己这一段的连接,服务器这一侧受到了客户端的关闭响应后也关闭自己这一侧的连接,至此服务器和客户端完全断开。而异常断线(拔网线或者突然断电)时以上的过程是没有时间和条件完成的所以此时的tcp连接只是单方面的断开,即所谓的假链接,单纯的tcp协议是无法完全解决这种事情的,所以我们通常使用心跳包来消除假链接或者说异常断线的情况。
举报