网站首页 > 博客文章 正文
有一些网络基础的同学都知道TCP连接需要三次握手,断开需要4次握手。但是如果要说TCP连接建立和断开过程中,连接状态是如何变化的,估计很难说出具体情况,下面我们看一张图,描述了TCP连接状态变化过程:
这里有几个问题需要注意:
1、为什么建立连接时还需要第3次确认
- 主要防止已经失效的连接请求报文突然又传送到了服务器,从而产生错误。
2、为什么关闭连接是4次握手
- 关闭连接时,服务器收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,而自己也未必全部数据都发送给对方了,所以己方可以立即关闭,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送,从而导致多了一次。
3、为什么客户端在TIME-WAIT阶段要等2MSL
- 保证客户端发送的最后一个ACK报文能够到达服务器,因为这个ACK报文可能丢失。如果服务器已经发送了FIN+ACK报文请求断开了,但还没有收到客户端的回应,服务器会认为自己发送的请求断开报文丢失,于是服务器又会重新发送一次;而客户端就能在这个2MSL时间段内收到这个重传的报文,接着给出回应报文,并且会重启2MSL计时器。
- 防止类似与“三次握手”中提到了的“已经失效的连接请求报文段”出现在本连接中。客户端发送完最后一个确认报文后,在这个2MSL时间中,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样新的连接中不会出现旧连接的请求报文。
熟悉tcp连接状态变化过程,对一些网络定位很有帮助;在linux服务器上面,通过netstat命令可以看到服务器当前所有TCP连接和状态,比如敲下如下命令看到的结果(关于netstat命令的使用可以通过帮助文档去学习):
netstat -anltp | less
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1548/php-fpm: maste
tcp 0 0 0.0.0.0:17902 0.0.0.0:* LISTEN 503/sshd
tcp 0 0 127.0.0.1:63791 0.0.0.0:* LISTEN 30946/redis-server
tcp 0 0 172.27.0.2:80 10.241.193.251:64636 SYN_RECV -
tcp 0 0 172.27.0.2:80 10.174.169.193:14651 SYN_RECV -
tcp 0 0 172.27.0.2:80 10.117.181.16:29235 SYN_RECV -
猜你喜欢
- 2024-09-23 TCP/IP协议-TCP三次握手和四次挥手
- 2024-09-23 TCP协议三次握手的理解(tcp三次握手的通俗理解)
- 2024-09-23 前端面试—TCP协议的三次握手(tcp协议三次握手的工作原理)
- 2024-09-23 TCP/IP协议基础:深入理解三次握手过程及其重要性
- 2024-09-23 网络协议、三次握手四次挥手介绍(网络协议 三次握手)
- 2024-09-23 TCP协议的三次握手(tcp协议的三次握手建立连接的工作原理)
- 2024-09-23 TCP的三次握手到底是什么流程(tcp三次握手的通俗理解)
- 2024-09-23 协议设计系列-TCP的三次握手和挥手
- 2024-09-23 TCP协议的三次握手(建立连接)和四次挥手(关闭连接)
- 2024-09-23 TCP/IP协议握手原理(tcp udp 握手)
你 发表评论:
欢迎- 07-02在线学习在爱奇艺信息流推荐业务中的探索与实践
- 07-02Diallyl Trisulfide(H2S donor)二烯丙基三硫:合成方法与工艺
- 07-02MitoSOX Red Mitochondrial Superoxide Indicator使用方法
- 07-02深度时空网络、记忆网络与特征表达学习在 CTR 预估中的应用
- 07-02iFluor 488标记鬼笔环肽可通过标记F-actin,研究细胞在迁移等
- 07-02快速了解红色线粒体超氧化物荧光探针的基本特性
- 07-02腔肠素400A(Coelenteramine 400a)综合解析,一文掌握所有要点!
- 07-02Chinese doctor Zhang Junqiao's heroic act exemplifies deep China-Africa friendship: FM spokesperson
- 最近发表
-
- 在线学习在爱奇艺信息流推荐业务中的探索与实践
- Diallyl Trisulfide(H2S donor)二烯丙基三硫:合成方法与工艺
- MitoSOX Red Mitochondrial Superoxide Indicator使用方法
- 深度时空网络、记忆网络与特征表达学习在 CTR 预估中的应用
- iFluor 488标记鬼笔环肽可通过标记F-actin,研究细胞在迁移等
- 快速了解红色线粒体超氧化物荧光探针的基本特性
- 腔肠素400A(Coelenteramine 400a)综合解析,一文掌握所有要点!
- Chinese doctor Zhang Junqiao's heroic act exemplifies deep China-Africa friendship: FM spokesperson
- 用Python写了一个上课点名系统(附源码)(自制考勤系统)
- Kubernetes中的PV、PVC、Configmap介绍
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)