首页 > 其他 > 详细

《TCP协议到TCP通讯各种异常现象和分析》的学习

时间:2021-04-09 16:22:30      阅读:26      评论:0      收藏:0      [点我收藏+]

正如文章所说,正常情况大家都不会去关注其协议细节,但在网络不稳定或嵌入式设备上没有完毕的TCP/IP协议像LINUX那样提供安全可靠保证,相关的网络问题就会变得很复杂。

客户端在TCP Server的进程/线程crash时访问:

  此时客户端会收到RST报文。

TCP Server的进程/线程被KILL时:

  此时服务器端会发出FIN报文,其实kill进程是通过shell想内核发送了SIGKILL或者SIGTERM,内核接收到该信号之后会进行相应的扫尾工作.

TCP Server的进程/线程所在主机关机:

  init进程会给所有进程发送SIGTERM信号,等待一段时间(5~20秒),然后再给所有仍在运行的进程发送SIGKILL信号。当服务器进程死掉时,会关闭所有文件描述符。带来的影响和上面杀死server相同

TCP Server的进程/线程所在主机宕机:

  包括2种情况,一种是内核panic,另外一种情况是出现了掉电。

  panic:突然性,没有时间杀死进程和关闭所有打开的文件描述符,此时客户端发送请求因为得不到ACK会重复发送企图得到ACK(大约持续几分钟),直到得到一个ETIMDOUT错误。对同步通讯这会导致阻塞而不能接受。虽然通过设置SO_SNDTIMEO,服务器端要做去重处理。

客户端在TCP Server的关闭->重启间发送分节内容:

  因为TCP Server丢失了之前的连接信息,即此时收到了一个不存在的链接上,所以会响应RST分节。

《TCP协议到TCP通讯各种异常现象和分析》的学习

原文:https://www.cnblogs.com/jieruishu/p/14637172.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!