关于网络编程中服务器出现故障的三种情况(TCP协议)

1  服务器主机崩溃

    模拟操作:当客户端和服务器成功连接之后,拔掉服务器的网线,此时从客户端发送数据分节。这样同时也模拟了客户端发送的数据不可达服务端的情景(即建立连接后某些中间路由器不工作)。

    产生后果:客户端会持续重传未收到确认的数据分节(TCP软件负责),持续一段时间后仍未收到确认则放弃(通常是9分钟)。如果是服务器崩溃则本机TCP软件会向用户进程显示套接字错误并置错误码,如果是中间路由器判定服务器主机不可达则会返回一个ICMP消息,那么TCP软件收到该ICMP消息会向用户进程显示套接子错误并置错误码。我们可以通过错误码来判断到底是哪种错误。


2  服务器崩溃后重启

    模拟操作:当客户端和服务器成功连接之后,拔掉服务器的网线,然后将该服务器关机重启。再重新插上网线。

    产生后果:当服务器崩溃后重启时,它已经丢失了崩溃前所有的连接信息,因此服务器对于所收到的客户数据分节响应一个RST分节。客户端的TCP软件收到RST分节之后会向       用户进程显示套接字错误并置错误码。


3  服务器主机关机

     Unix系统关机时,init进程通常会给所有的进程发送SIGTERM信号,等待一段时间后如果还有一些进程仍在运行,init进程会发送SIGKILL信号强行终止。当服务器进程被终止时,其所有打开的文件描述符被关闭,会发送FIN分节给对端。设计良好的客户程序可以立即监视该种情况的发生。

    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值