当前位置:网站首页>TCP连接过程中如果拔掉网线会发生什么?
TCP连接过程中如果拔掉网线会发生什么?
2022-08-10 21:48:00 【TABE_】
TCP连接过程中如果拔掉网线会发生什么?
针对这个问题,要分场景来讨论:
- 拔掉网线后,有数据传输;
- 拔掉网线后,没有数据传输;
拔掉网线后,有数据传输
在客户端拔掉网线后,服务端向客户端发送的数据报文会得不到任何的响应,在等待一定时长后,服务端就会触发超时重传机制,重传未得到响应的数据报文。
如果在服务端重传报文的过程中,客户端刚好把网线插回去了。由于拔掉网线并不会改变客户端的 TCP 连接状态,并且还是处于 ESTABLISHED 状态,所以这时客户端是可以正常接收服务端发来的数据报文的,然后客户端就会回 ACK 响应报文。此时,客户端和服务端的 TCP 连接依然存在的,就感觉什么事情都没有发生。
但如果如果在服务端重传报文的过程中,客户端一直没有将网线插回去。服务端超时重传报文的次数达到一定阈值后,内核就会判定出该 TCP 有问题,然后通过 Socket 接口告诉应用程序该 TCP 连接出问题了,于是服务端的 TCP 连接就会断开。等客户端插回网线后,如果客户端向服务端发送了数据,由于服务端已经没有与客户端相同四元祖的 TCP 连接了,因此服务端内核就会回复 RST 报文,客户端收到后就会释放该 TCP 连接。此时,客户端和服务端的 TCP 连接都已经断开了。
拔掉网线后,没有数据传输
- 如果双方都没有开启 TCP keepalive 机制,那么在客户端拔掉网线后,如果客户端一直不插回网线,那么客户端和服务端的 TCP 连接状态将会一直保持存在。
- 如果双方都开启了 TCP keepalive 机制,那么在客户端拔掉网线后,如果客户端一直不插回网线,TCP keepalive 机制会探测到对方的 TCP 连接没有存活,于是就会断开 TCP 连接。而如果在 TCP 探测期间,客户端插回了网线,那么双方原本的TCP 连接还是能正常存在。
KeepAlive机制:当连接超过一段时间没有数据传输之后,TCP自动发送一个数据为空的报文给对方,如果对方回应了这个报文,说明对方还在线,连接可以继续保持,如果对方没有报文返回,并且重试了多次之后则认为连接丢失,没有必要保持连接。
边栏推荐
- Live Classroom System 08-Tencent Cloud Object Storage and Course Classification Management
- Thread State 详解
- Self-organization is a two-way journey between managers and members
- A shell script the for loop statements, while statement
- 智能方案设计——智能跳绳方案
- Huawei router clock near the drainage experiment (using stream strategy)
- 服务——DHCP原理与配置
- Object.assign用法 以及 与$.extend的区别
- shell (text printing tool awk)
- Shell programming specification and variables
猜你喜欢

shell脚本

Live Classroom System 09--Tencent Cloud VOD Management Module (1)

Live Classroom System 08 Supplement - Tencent Cloud Object Storage and Course Classification Management

2022年8月的10篇论文推荐

【SQL刷题】Day3----SQL必会的常用函数专项练习

一篇文章教你Pytest快速入门和基础讲解,一定要看

camera preview process --- from HAL to OEM

【PCBA scheme design】Bluetooth skipping scheme

Common interview questions for APP UI automation testing, maybe useful~

Redis Performance Impact - Asynchronous Mechanisms and Response Latency
随机推荐
Object.assign用法 以及 与$.extend的区别
每次打开chrome会跳出What's new
Web Reverse Lilac Garden
shell (text printing tool awk)
labelme-5.0.1版本编辑多边形闪退
阿里云张新涛:支持沉浸式体验应用快速落地,阿里云云XR平台发布
水果沙拉酱
The perfect alternative to domestic Gravatar avatars Cravatar
“数据引擎”开启前装规模量产新赛道,「智协慧同」崭露头角
Extended Chinese Remainder Theorem
unusual understanding
Thread State 详解
How to secure users in LDAP directory service?
Live Classroom System 09--Tencent Cloud VOD Management Module (1)
管理员必须知道的RADIUS认证服务器的部署成本
接口测试的概念、目的、流程、测试方法有哪些?
H3C S5130 IRF做堆叠
The Thread State,
HighTec shortcut keys (Keys) setting location
win系统下pytorch深度学习环境安装