tcp状态转换图以及tcp状态

上传人:正** 文档编号:41223442 上传时间:2018-05-28 格式:DOC 页数:6 大小:64KB
返回 下载 相关 举报
tcp状态转换图以及tcp状态_第1页
第1页 / 共6页
tcp状态转换图以及tcp状态_第2页
第2页 / 共6页
tcp状态转换图以及tcp状态_第3页
第3页 / 共6页
tcp状态转换图以及tcp状态_第4页
第4页 / 共6页
tcp状态转换图以及tcp状态_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《tcp状态转换图以及tcp状态》由会员分享,可在线阅读,更多相关《tcp状态转换图以及tcp状态(6页珍藏版)》请在金锄头文库上搜索。

1、风雨同舟工作室 http:/ 状状态转换图态转换图以及以及 tcp 状状态态风雨同舟工作室 http:/ 状状态态: :LISTEN: :侦侦听来自听来自远远方的方的 TCP 端口的端口的连连接接请请求求SYN-SENT:再:再发发送送连连接接请请求后等待匹配的求后等待匹配的连连接接请请求求SYN-RECEIVED:再收到和:再收到和发发送一个送一个连连接接请请求后等待求后等待对对方方对连对连接接请请求的确求的确认认ESTABLISHED:代表一个打开的:代表一个打开的连连接接FIN-WAIT-1:等待:等待远远程程 TCP 连连接中断接中断请请求,或先前的求,或先前的连连接中断接中断请请求的

2、确求的确认认FIN-WAIT-2:从:从远远程程 TCP 等待等待连连接中断接中断请请求求CLOSE-WAIT:等待从本地用:等待从本地用户发户发来的来的连连接中断接中断请请求求CLOSING:等待:等待远远程程 TCP 对连对连接中断的确接中断的确认认LAST-ACK:等待原来的:等待原来的发发向向远远程程 TCP 的的连连接中断接中断请请求的确求的确认认TIME-WAIT:等待足:等待足够够的的时间时间以确保以确保远远程程 TCP 接收到接收到连连接中断接中断请请求的确求的确认认CLOSED:没有任何:没有任何连连接状接状态态TCP 连连接的状接的状态转换图态转换图深度剖析深度剖析这这个个

3、图图 n 多人都知道,它多人都知道,它对对排除和定位网排除和定位网络络或系或系统统故障故障时时大有帮助,但是怎大有帮助,但是怎样样牢牢地将牢牢地将这张图这张图刻在刻在脑脑中呢?那么你就一定要中呢?那么你就一定要对这张图对这张图的每一个状的每一个状态态,及,及转转换换的的过过程有深刻地程有深刻地认识认识,不能只停留在一知半解之中。下面,不能只停留在一知半解之中。下面对这张图对这张图的的 11 种状种状态详细态详细解解释释一下,以便加一下,以便加强记忆强记忆!不!不过过在在这这之前,先回之前,先回顾顾一下一下 TCP 建立建立连连接的接的三次握手三次握手过过程,以及关程,以及关闭连闭连接的四次握手

4、接的四次握手过过程。程。1、建立、建立连连接接协议协议(三次握手)(三次握手)风雨同舟工作室 http:/ (1)客)客户户端端发发送一个送一个带带 SYN 标标志的志的 TCP 报报文到服文到服务务器。器。这这是三次握手是三次握手过过程程中的中的报报文文 1。 。( (2)服)服务务器端回器端回应应客客户户端的,端的,这这是三次握手中的第是三次握手中的第 2 个个报报文,文,这这个个报报文同文同时时带带 ACK 标标志和志和 SYN 标标志。因此它表示志。因此它表示对刚对刚才客才客户户端端 SYN 报报文的回文的回应应;同;同时时又又标标志志 SYN 给给客客户户端,端,询问询问客客户户端是

5、否准端是否准备备好好进进行数据通行数据通讯讯。 。( (3)客)客户户必必须须再次回再次回应应服服务务段一个段一个 ACK 报报文,文,这这是是报报文段文段 3。 。2、 、连连接接终终止止协议协议(四次握手)(四次握手)由于由于 TCP 连连接是全双工的,因此每个方向都必接是全双工的,因此每个方向都必须单须单独独进进行关行关闭闭。 。这这原原则则是当一方完成它的数据是当一方完成它的数据发发送任送任务务后就能后就能发发送一个送一个 FIN 来来终终止止这这个方向的个方向的连连接。接。收到一个收到一个 FIN 只意味着只意味着这这一方向上没有数据流一方向上没有数据流动动,一个,一个 TCP 连连

6、接在收到一个接在收到一个FIN 后仍能后仍能发发送数据。首先送数据。首先进进行关行关闭闭的一方将的一方将执执行主行主动动关关闭闭,而另一方,而另一方执执行被行被动动关关闭闭。 。( (1) )TCP 客客户户端端发发送一个送一个 FIN,用来关,用来关闭闭客客户户到服到服务务器的数据器的数据传传送(送(报报文文段段 4)。)。( (2)服)服务务器收到器收到这这个个 FIN,它,它发发回一个回一个 ACK,确,确认认序号序号为为收到的序号加收到的序号加1( (报报文段文段 5)。和)。和 SYN 一一样样,一个,一个 FIN 将占用一个序号。将占用一个序号。( (3)服)服务务器关器关闭闭客客

7、户户端的端的连连接,接,发发送一个送一个 FIN 给给客客户户端(端(报报文段文段 6)。)。( (4)客)客户户段段发发回回 ACK 报报文确文确认认,并将确,并将确认认序号序号设设置置为为收到序号加收到序号加 1( (报报文文段段 7)。)。CLOSED:这这个没什么好个没什么好说说的了,表示初始状的了,表示初始状态态。 。LISTEN:这这个也是非常容易理解的一个状个也是非常容易理解的一个状态态,表示服,表示服务务器端的某个器端的某个SOCKET 处处于于监监听状听状态态,可以接受,可以接受连连接了。接了。风雨同舟工作室 http:/ SYN 报报文,在正常情况下,文,在正常情况下,这这

8、个状个状态态是是服服务务器端的器端的 SOCKET 在建立在建立 TCP 连连接接时时的三次握手会的三次握手会话过话过程中的一个中程中的一个中间间状状态态,很短,很短暂暂, ,基本上用基本上用 netstat 你是很你是很难难看到看到这这种状种状态态的,除非你特意写了一个客的,除非你特意写了一个客户户端端测测试试程序,故意将三次程序,故意将三次 TCP 握手握手过过程中最后一个程中最后一个 ACK 报报文不予文不予发发送。因此送。因此这这种状种状态时态时,当收到客,当收到客户户端的端的 ACK 报报文后,它会文后,它会进进入到入到 ESTABLISHED 状状态态。 。SYN_SENT:这这个

9、状个状态态与与 SYN_RCVD 遥想呼遥想呼应应,当客,当客户户端端 SOCKET 执执行行CONNECT 连连接接时时,它首先,它首先发发送送 SYN 报报文,因此也随即它会文,因此也随即它会进进入到了入到了SYN_SENT 状状态态,并等待服,并等待服务务端的端的发发送三次握手中的第送三次握手中的第 2 个个报报文。文。SYN_SENT状状态态表示客表示客户户端已端已发发送送 SYN 报报文。文。ESTABLISHED: :这这个容易理解了,表示个容易理解了,表示连连接已接已经经建立了。建立了。FIN_WAIT_1:这这个状个状态态要好好解要好好解释释一下,其一下,其实实 FIN_WAI

10、T_1 和和FIN_WAIT_2 状状态态的真正含的真正含义义都是表示等待都是表示等待对对方的方的 FIN 报报文。而文。而这这两种状两种状态态的的区区别别是:是:FIN_WAIT_1 状状态实际态实际上是当上是当 SOCKET 在在 ESTABLISHED 状状态时态时, ,它想主它想主动动关关闭连闭连接,向接,向对对方方发发送了送了 FIN 报报文,此文,此时该时该 SOCKET 即即进进入到入到FIN_WAIT_1 状状态态。而当。而当对对方回方回应应 ACK 报报文后,文后,则进则进入到入到 FIN_WAIT_2 状状态态, ,当然在当然在实际实际的正常情况下,无的正常情况下,无论对论

11、对方何种情况下,都方何种情况下,都应该马应该马上回上回应应 ACK 报报文,文,所以所以 FIN_WAIT_1 状状态态一般是比一般是比较难见较难见到的,而到的,而 FIN_WAIT_2 状状态还态还有有时时常常常可以用常可以用 netstat 看到。看到。FIN_WAIT_2:上面已:上面已经详细经详细解解释释了了这这种状种状态态, ,实际实际上上 FIN_WAIT_2 状状态态下的下的 SOCKET,表示半,表示半连连接,也即有一方要求接,也即有一方要求 close 连连接,但另外接,但另外还还告告诉对诉对方,方,我我暂时还暂时还有点数据需要有点数据需要传传送送给给你,稍后再关你,稍后再关

12、闭连闭连接。接。风雨同舟工作室 http:/ FIN 报报文,并文,并发发送出了送出了 ACK 报报文,就等文,就等2MSL 后即可回到后即可回到 CLOSED 可用状可用状态态了。如果了。如果 FIN_WAIT_1 状状态态下,收到了下,收到了对对方同方同时带时带 FIN 标标志和志和 ACK 标标志的志的报报文文时时,可以直接,可以直接进进入到入到 TIME_WAIT 状状态态, ,而无而无须经过须经过 FIN_WAIT_2 状状态态。 。CLOSING:这这种状种状态态比比较较特殊,特殊,实际实际情况中情况中应该应该是很少是很少见见,属于一种比,属于一种比较较罕罕见见的例外状的例外状态态

13、。正常情况下,当你。正常情况下,当你发发送送 FIN 报报文后,按理来文后,按理来说说是是应该应该先收到(或先收到(或同同时时收到)收到)对对方的方的 ACK 报报文,再收到文,再收到对对方的方的 FIN 报报文。但是文。但是 CLOSING 状状态态表表示你示你发发送送 FIN 报报文后,并没有收到文后,并没有收到对对方的方的 ACK 报报文,反而却也收到了文,反而却也收到了对对方的方的FIN 报报文。什么情况下会出文。什么情况下会出现现此种情况呢?其此种情况呢?其实细实细想一下,也不想一下,也不难难得出得出结论结论:那:那就是如果双方几乎在同就是如果双方几乎在同时时 close 一个一个

14、SOCKET 的的话话,那么就出,那么就出现现了双方同了双方同时发时发送送 FIN 报报文的情况,也即会出文的情况,也即会出现现 CLOSING 状状态态,表示双方都正在关,表示双方都正在关闭闭SOCKET 连连接。接。CLOSE_WAIT:这这种状种状态态的含的含义义其其实实是表示在等待关是表示在等待关闭闭。怎么理解呢?当。怎么理解呢?当对对方方 close 一个一个 SOCKET 后后发发送送 FIN 报报文文给给自己,自己,你系你系统统毫无疑毫无疑问问地会回地会回应应一个一个 ACK 报报文文给对给对方,此方,此时则进时则进入到入到CLOSE_WAIT 状状态态。接下来呢,。接下来呢,实

15、际实际上你真正需要考上你真正需要考虑虑的事情是察看你是否的事情是察看你是否还还有数据有数据发发送送给对给对方,如果没有的方,如果没有的话话,那么你也就可以,那么你也就可以 close 这这个个 SOCKET, ,发发送送FIN 报报文文给对给对方,也即关方,也即关闭连闭连接。所以你在接。所以你在 CLOSE_WAIT 状状态态下,需要完成的下,需要完成的事情是等待你去关事情是等待你去关闭连闭连接。接。LAST_ACK:这这个状个状态还态还是比是比较较容易好理解的,它是被容易好理解的,它是被动动关关闭闭一方在一方在发发送送FIN 报报文后,最后等待文后,最后等待对对方的方的 ACK 报报文。当收到文。当收到 ACK 报报文后,也即可以文后,也即可以进进入入到到 CLOSED 可用状可用状态态了。了。风雨同舟工作室

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号