当前位置:网站首页>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自动发送一个数据为空的报文给对方,如果对方回应了这个报文,说明对方还在线,连接可以继续保持,如果对方没有报文返回,并且重试了多次之后则认为连接丢失,没有必要保持连接。
边栏推荐
- Black cats take you learn Makefile article 13: a Makefile collection compile problem
- 华为路由器旁挂引流实验(使用流策略)
- 玩转doxygen 之RT-THREAD
- 阿里巴巴、蚂蚁集团推出分布式数据库 OceanBase 4.0,单机部署性能超 MySQL
- Labelme-5.0.1 version edit polygon crash
- Live Classroom System 08 Supplement - Tencent Cloud Object Storage and Course Classification Management
- RADIUS Authentication Server Deployment Costs That Administrators Must Know
- 解码2022中国网安强星丨正向建、反向查,华为构建数字化时代的网络安全防线
- labelme - block drag and drop events
- Shell编程之条件语句(二)
猜你喜欢

【PCBA solution】Electronic grip strength tester solution she'ji

Thread State 详解

深度学习之 12 循环神经网络RNN2

直播课堂系统08-腾讯云对象存储和课程分类管理

H3C S5130 IRF做堆叠

LeetCode-402 - Remove K digits

A shell script the for loop statements, while statement

LeetCode-402-移掉K位数字

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

These must-know JVM knowledge, I have sorted it out with a mind map
随机推荐
RTL8721DM 双频WIFI + 蓝牙5.0 物联网(IoT)应用
LeetCode Daily Question (1573. Number of Ways to Split a String)
边缘与云计算:哪种解决方案更适合您的连接设备?
深度学习之 12 循环神经网络RNN2
ENVI自动生成地面控制点实现栅格影像的自动地理配准
艺术与科技的狂欢,阿那亚2022砂之盒沉浸艺术季
GMT,UTC,CST,DST,RTC,NTP,SNTP,NITZ: 嵌入式的时间
2022.8.9 模拟赛
win系统下pytorch深度学习环境安装
unusual understanding
Extended Chinese Remainder Theorem
2022.8.8好题选讲(数论场)
服务——DNS正向反向域名解析服务
商家招募电商主播要考虑哪些内容
An article to teach you a quick start and basic explanation of Pytest, be sure to read
HighTec快捷键(Keys)设置位置
FPGA - 7系列 FPGA内部结构之Memory Resources -03- 内置纠错功能
接口测试的概念、目的、流程、测试方法有哪些?
这些不可不知的JVM知识,我都用思维导图整理好了
H3C S5130 IRF做堆叠