当前位置:网站首页>A/B机器正常连接后, B机器突然重启, 问A此时处于TCP的 什么状态?如何消除服务器程序中的这个状态?
A/B机器正常连接后, B机器突然重启, 问A此时处于TCP的 什么状态?如何消除服务器程序中的这个状态?
2022-06-11 00:16:00 【zhen12321】
这个题非常有意思。哈哈。
首先,基于tcp来的嘛,在这种一次通信的过程中,大概需要一些步骤,例如tcp的三次握手和四次挥手。
那么,三次和四次的区别就是有一个不用传数据,不用等1次往返时间,节约了带宽。
那么,SYN主要用于连接的确认,FIN主要用于一方放弃连接的初始化确认,RET代表什么?
这是这道题的关键。
linux内核一般来说会有很多时间去进行兜底,来确保一次连接的一个最大存活时间。
在ubuntu18.04上,一次tcp连接的最大存活时间是好几天,而每次双方发起的连接都会进行一个ACK的确认。这个确认信息非常关键,这个确认收到之前还是这次链接,没有断开。那么ubuntu18.04呢,这个确认时间是5分钟。
那么,当某一方突然挂机,另一方是无法知道对方挂机的,因为对方又没给自己FIN断开,自己如果没有主动联系对方,那么这个连接就一直保持,直到操作系统的那个时间兜底来临。
再说一次,操作系统的那个兜底时间其实也好说,因为那个时间在每次有新的TCP活动来临都会刷新。而后者ACK主要是在ACK来临时会主动刷新。因为TCP链接很昂贵,所以提出了keep-alive这个字段来尽可能将多次请求在一次连接复用,当也不能当神药去一直复用。
keep-alive就可以设置超时时间,这是应用层的超时时间,是由应用层控制的时间,优先级权重大于下层。
所以在B挂机重启的一端时间内,A还一位这个连接保持,所以它会一直存在,知道B重启自然进入到listen状态,这个时候,B是不知道自己和A之前还有连接的。
此时能够改变现状的只有A,A主动发任何的消息给B,B察觉这次通信是异常的,会要求重置连接,因此发送RST给A,A收到之后会重置自己该tcp连接的各种时间。然后A就处于向内核发送消息的这么一个状态临界,自然会进入到SYN_SEND状态。
边栏推荐
- Redis data has been overwritten
- 嵌入式学习资料和项目汇总
- WPF basic controls
- 团队管理|如何提高技术Leader的思考技巧?
- 深圳市南山区专精特新企业申报条件,补贴10-50万
- 北京房山区高新技术企业培育支持标准,补贴10万
- Introduction to the policy support of Beijing China Patent Award, with a subsidy of 1million yuan
- [introduction to ROS] - 03 ROS workspace and function pack
- 云呐|省级行政单位固定资产管理系统
- [paper translation] recent advances in open set recognition: a survey
猜你喜欢

最好的创意鼓工具:Groove Agent 5

如何使用自定义注解进行参数校验

Recruitment | Nanjing | triostudio Sanli Agency - Interior Designer / construction drawing deepening Designer / device / Product Designer / Intern, etc

The best creative drum tool: groove agent 5

Basic introduction of graph and depth first traversal and breadth first traversal

团队管理|如何提高技术Leader的思考技巧?

Merge sort and cardinality sort

WPF - timeline class

nodejs中使用mySql数据库

【ROS入门教程】---- 03 ROS基本概念及指令
随机推荐
Cosine similarity calculation summary
如何使用自定义注解进行参数校验
WPF basic animation
dma_ buf_ export
北京昌平区高新技术企业培育支持标准,补贴10万
IRS应用发布之十六:H5 应用设计指南
dma_buf_export
配置化自定义实现1.实现接口,2.自定义配置3.默认配置
库存管理与策略模式
MySQL trigger
BlindWaterMar报错No module named cv2
ViewPager和底部无线循环的小圆点
Le meilleur outil de tambour créatif: Groove agent 5
[论文阅读] BoostMIS: Boosting Medical Image Semi-supervised Learning with Adaptive Pseudo Labeling
[论文阅读] FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence
Beijing Tongzhou District high tech enterprise cultivation support standard, with a subsidy of 100000 yuan
HandlerMethodArgumentResolver(参数解析器)的作用+使用小案例
北京平谷区高新技术企业培育支持标准,补贴10万
async await
Bad RequestThis combination of host and port requires TLS.