当前位置:网站首页>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自动发送一个数据为空的报文给对方,如果对方回应了这个报文,说明对方还在线,连接可以继续保持,如果对方没有报文返回,并且重试了多次之后则认为连接丢失,没有必要保持连接。
边栏推荐
- camera预览流程 --- 从HAL到OEM
- 带着昇腾去旅行:一日看尽金陵城里的AI胜景
- LeetCode-402-移掉K位数字
- labelme - block drag and drop events
- Web Reverse Lilac Garden
- The perfect alternative to domestic Gravatar avatars Cravatar
- Labelme-5.0.1 version edit polygon crash
- C # Hex file transfer skills necessary article 】 【 bin file code implementation
- Shell编程规范与变量
- 美味的石井饭
猜你喜欢
玩转doxygen 之RT-THREAD
Black cats take you learn Makefile article 13: a Makefile collection compile problem
直播课堂系统08-腾讯云对象存储和课程分类管理
【PCBA方案设计】蓝牙跳绳方案
xshell (sed command)
QT笔记——QT工具uic,rcc,moc,qmake的使用和介绍
QT笔记——用VS + qt 生成dll 和 调用生成的dll
使用 Cloudreve 搭建私有云盘
ThreadLocal comprehensive analysis (1)
【PCBA方案】电子握力测试仪方案she‘ji
随机推荐
Alibaba and Ant Group launched OceanBase 4.0, a distributed database, with single-machine deployment performance exceeding MySQL
服务——DHCP原理与配置
使用 Cloudreve 搭建私有云盘
Shell编程规范与变量
Translating scientific and technological papers, how to translate from Russian to Chinese
ArcMap创建镶嵌数据集、导入栅格图像并修改像元数值显示范围
Self-organization is a two-way journey between managers and members
C # Hex file transfer skills necessary article 】 【 bin file code implementation
阿里云架构师金云龙:基于云XR平台的视觉计算应用部署
Thread State 详解
How to secure users in LDAP directory service?
MATLAB神经网络拟合工具箱Neural Net Fitting使用方法
3D model reconstruction of UAV images based on motion structure restoration method based on Pix4Dmapper
美味的石井饭
力扣221题,最大正方形
新一代网络安全防护体系的五个关键特征
win系统下pytorch深度学习环境安装
2022.8.8好题选讲(数论场)
FPGA - 7系列 FPGA内部结构之Memory Resources -03- 内置纠错功能
【开源教程5】疯壳·开源编队无人机-飞控固件烧写