原文:TCP状态转换图、滑动窗口、半连接状态、2MSL

一 TCP状态转换图 下图对排除和定位网络或系统故障时大有帮助,也帮助我们更好的编写Linux程序,对嵌入式开发也有指导意义。 先回顾一下TCP建立连接的三次握手过程,以及关闭连接的四次握手过程: 建立连接协议 三次握手 客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文 。 服务器端回应客户端的,这是三次握手中的第 个报文,这个报文同时带ACK标志和SYN标志。因此它表示对 ...

2017-03-31 11:13 0 3729 推荐指数:

查看详情

TCP连接状态2MSL等待时间

1 连接状态图 2 建立连接:三次握手,不使用DNS和使用DNS 3 关闭连接-四次握手 连接双方任何一方调用close()后,连接的两个传输方向都关闭,不能再发送数据了。如果一方调用shutdown()则连接处于半关闭状态,仍可接收对方发来的数据。 如果出现半关闭 ...

Wed Jun 10 19:26:00 CST 2015 0 9478
Linux:TCP状态/半关闭/2MSL/端口复用

TCP状态 CLOSED:表示初始状态。 LISTEN:该状态表示服务器端的某个SOCKET处于监听状态,可以接受连接。 SYN_SENT:这个状态与SYN_RCVD遥相呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,随即进入到了SYN_SENT状态,并等待 ...

Tue Apr 10 18:56:00 CST 2018 0 1631
TCP释放连接时为什么time_wait状态必须等待2MSL时间

为什么上图中的A在TIME-WAIT状态必须等待2MSL时间呢? 第一,为了保证A发送的最后一个ACK报文能够到达B。这个ACK报文段有可能丢失,因而使处在LAST-ACK状态的B收不到对已发送的FIN+ACK报文段的确认。B会超时重传这个FIN+ACK报文段,而A就能在2MSL时间内收到这个重传 ...

Tue Jan 10 03:37:00 CST 2017 1 13360
为什么TCP的TIME_WAIT状态要维持2MSL

本文主要分析为什么TIME_WAIT状态的持续时间是2MSL而不是1MSL,3MSL或其它的时长,而不会详细描述为什么需要TIME_WAIT状态。 阅读本文需要的预备知识: 了解TCP协议的状态变迁; 了解TCP拆链的四次挥手过程; 了解为什么需要TIME_WAIT状态 ...

Tue Jul 14 18:11:00 CST 2020 0 756
为什么tcp的TIME_WAIT状态要维持2MSL

本文主要分析为什么TIME_WAIT状态的持续时间是2MSL而不是1MSL,3MSL或其它的时长,而不会详细描述为什么需要TIME_WAIT状态。 阅读本文需要的预备知识: 了解TCP协议的状态变迁; 了解TCP拆链的四次挥手过程; 了解为什么需要TIME_WAIT状态 ...

Wed Jun 05 01:02:00 CST 2019 2 1798
Time-wait状态(2MSL)一些理解

1. 编写TCP/SOCK 服务时,SO_REUSEADDR到底是什么意思? 这个套接字选项通知内核,如果端口忙,但TCP状态处于TIME_WAIT,可以重用端口。如果端口忙,TCP状态处于其他状态,重用端口时依旧指明“地址已经在使用中”。如果你的服务程序停止后向立刻重启,而新套接字依旧使用 ...

Sat Oct 10 02:54:00 CST 2020 0 876
TCP的三次握手以及TCP状态转换图详解

今天来讨论一下TCP的三次握手以及TCP状态转换图。首先发一个三次握手的流程图如下: 圖 2.4-3、三向交握之封包连接模式 A:封包发起 当用戶端想要对服务器端发起连接时,就必須要送出一個要求连线的封包,此时用戶端必须随机取用一個大于1024 以上的端口來 ...

Wed Jan 21 09:38:00 CST 2015 0 2173
线程的状态转换图

转:http://www.blogjava.net/liver/archive/2009/06/04/279924.html 线程在一定条件下,状态会发生变化。线程变化的状态转换图如下:   1、新建状态(New):新创建了一个线程对象。   2、就绪状态(Runnable):线程对象创建后 ...

Tue Mar 11 21:01:00 CST 2014 0 4490
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM