TCP状态转换图

TCP连接的建立与终止可以用状态转换图(state transition diagram)来说明,见图2.4。

图中定义了11种状态,这种转换基于

如果一个client进程调用close(),主动发送一个SYN--->SYN_SENT状态,这时握手成功收到server的syn和ACK,发回Client

ACK然后,进入ESTABLISHED状态。建立TCP的三次握手过程。

四次握手的关闭过程。

在SYN_SENT的状态下接收SYN关键字时,转入SYN_RCVD状态,继续接收server端的传输数据。

时间: 2024-10-02 20:19:26

TCP状态转换图的相关文章

传输控制协议(TCP) -- TCP状态转换图

本文参考自: <UNIX网络编程 卷1> 在<UNIX网络编程 卷1>一书中,作者给出了TCP状态转换图(如下).本文也将围绕此图进行阐释.

TCP状态转换图(state transition diagram)

 TPC总共有11个状态,状态转换图: 状态转换的要素 状态: tcp定义的11个状态 事件: 触发TCP状态迁移.事件可以是:本地应用层调用:收到TCP消息(incoming segment):超时事件(timeout) 动作: 主要指针对远程Peer产生的动作,如发送确认等. 转换中的角色 本地应用层 Local App:产生事件. 本地tcp实现层 local TCP stack:处理事件,完成状态转换:在远程tcp上产生事件. 远程tcp实现层 remote TCP stack(or

TCP状态转换图解析

本文参考Unix网络编程卷1,对TCP状态转换进行总结,方便掌握TCP链接中各个状态及故障分析. 1.Linux下TCP相关工具 基于Linux系统查看网络状态,首先了解几个基本查看指令. Linux查看网络状态的命令: netstat -nat  查看TCP各个状态的数量 lsof  -i:port , 可以检测到打开套接字的状况.lsof(list open files)列出当前系统打开的文本的工具. tcpdump -iany tcp port 9000 ,对tcp端口为9000的进行抓包

TCP的三次握手以及TCP状态转换图详解

今天来讨论一下TCP的三次握手以及TCP的状态转换图.首先发一个三次握手的流程图如下: 圖 2.4-3.三向交握之封包连接模式A:封包发起当用戶端想要对服务器端发起连接时,就必須要送出一個要求连线的封包,此时用戶端必须随机取用一個大于1024 以上的端口來做为程序通信的通道.然后在 TCP 的表头当中,必须带有 SYN 的主动连线(SYN=1),並并且记下发送给服务器端的序列号(Sequence number = 10001) .B:封包接收与确认封包发送当服务器端收到这个包,并且确定要接受这个

TCP三次握手、四次挥手及状态转换图

TCP/IP通信的三次握手如下: TCP是主机对主机层的传输控制协议,提供可靠的连接服务: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) .ACK(acknowledgement 确认) .PSH(push传送). FIN(finish结束) .RST(reset重置) .URG(urgent紧急).Sequence number(顺序号码) .Acknowledge number(确认号码). 三次握手: 第一次握手:客户端发送syn包(syn=x)的数据包到服务器

读懂TCP状态转移

读懂TCP状态变换的过程,对于理解网络编程颇有帮助,本文将对TCP状态转移过程进行介绍,但各个状态(总共11个)的含义不在本文介绍的范围. 内容来源:<UNIX网络编程>第一卷第二章2.6节,若是读者对某个知识点不太理解,请参考原文. TCP状态转换图(state transition diagram) 1. 建立连接(three-way hand shake) 主动打开(passive open):服务器必须准备好接受外来的连接,通常通过socket.bind和listen完成. 被动打开(

TCP四步挥手的各种状态转换图

对于TCP四步挥手时的各种状态转换,网上有很多资料.但是有很多描述不是很容易理解,甚至是描述错误,不如这篇文章里http://www.cnblogs.com/Jessy/p/3535612.html#3428191 说: 对此我表示不以为然.而且很容易误导初学者.在这里我贴出一个网上画的比较好的TCP四步挥手时的状态转换图:

TCP状态迁移,CLOSE_WAIT &amp; FIN_WAIT2 的问题

TCP状态迁移 大家对netstat -a命令很熟悉,但是,你有没有注意到STATE一栏呢,基本上显示着established,time_wait,close_wait等,这些到底是 什么意思呢,在这篇文章,我将会详细的阐述. 大家很明白TCP初始化连接三次握手吧:发SYN包,然后返回SYN/ACK包,再发ACK包,连接正式建立.但是这里有点出入,当请求者收到SYS /ACK包后,就开始建立连接了,而被请求者第三次握手结束后才建立连接.但是大家明白关闭连接的工作原理吗?关闭连接要四次握手:发FI

zabbix3.0 使用SS代替netstat无需脚本,1分钟搞定TCP状态监控

这段时间一直忙,没时间好好理下监控,趁着假期有时间,理了一下. 对于zabbix监控TCP状态,在网上查了很多资料,大多数都是使用netstat命令来实现. 如果服务器的压力小,链接少,不会有问题,但随着服务器压力和链接数的增加,用netstat就会造成执行速度慢,server端无法接收到执行结果,造成监控异常. 平时一直用SS,所以试着用SS代替netstat,速度快了不少. 个人较喜欢偷懒,看到网上很多少写了非常长的脚本,又是函数,又是写临时文件的.其实完全没必要,不用写啥脚本,临时文件,很