TCP的几种失败模式

             我们在学习TCP的时候,不仅要考虑理想情况还要考虑TCP失败的几种情况,下面简单来说一下TCP的几种失败模式。

1.网络紊乱

   网络紊乱可能原因可能有很多,如路由器失败,主干网链接失败,或网线头松动都可能造成网络紊乱,最终造成网络或主机不可达。当发出去的包没有收到确认时,TCP会进行重传,直到中间的路由器发送一个ICMP消息来说明网络或主机不可达,然后发送RST。

2.服务器进程崩溃

    简单来说就是服务器主机上面的服务器进程挂掉了,服务器进程挂掉之后将会给对等方发送FIN,当发送FIN后并不表示服务器已经不能再接收数据了。当客户端接收到FIN后,再次给服务端发送数据,此时服务端会返回RST。如果客户端又一次给服务端发送数据,则此时客户端进程自动挂掉。

3.服务器主机崩溃

    在谈到这个问题时,不要把和服务端进程崩溃搞混了。服务器主机崩溃时时不会给对等方发送FIN的,这就是它们的区别。当服务器主机崩溃时,客户端啥都收不到。客户端向往常一样给服务器发数据,但是一直接收不到确认,客户端会进行超时重传,当重传达到一定次数就会返回超时,然后重置连接

3.服务器主机崩溃后重启

     当服务器主机崩溃后,原先的服务器进程不存在了,套接字也不存在了,故连接也不存在了。当服务器收到客户端发送的数据时,服务器会返回RST。



  参考资料:高级TCP/IP编程    



猜你喜欢

转载自blog.csdn.net/ma2595162349/article/details/80276804