`
liang3307
  • 浏览: 13263 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

tcp几种状态

 
阅读更多

     工作中也写了网络程序,再把tcp 的连接的,不同状态记录下。

传输控制协议(英语:Transmission Control Protocol, TCP)

 

7层体系结构

应用层

    文件传输,电子邮件,文件服务,虚拟终端

    TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet

表示层

    数据格式化,代码转换,数据加密

会话层

    解除或建立与别的接点的联系

传输层(运输层)

    提供端对端的接口 TCP,UDP

网络层

    为数据包选择路由 即数据往哪个路由器发送。

    IP,ICMP,RIP,OSPF,BGP,IGMP

数据链路层

    传输有地址的帧以及错误检测功能

    SLIP,CSLIP,PPP,ARP,RARP,MTU

物理层

    以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802。IEEE802.2

 

TCP连接的状态转换图:

       

 

 

名词解释:

CLOSED:  无连接是活动的或正在进行 

LISTEN:  服务器在等待进入呼叫 

SYN_RECV:一个连接请求已经到达,等待确认 

SYN_SENT:应用已经开始,打开一个连接 

ESTABLISHED:正常数据传输状态 

 

FIN_WAIT1:应用说它已经完成 

FIN_WAIT2:另一边已同意释放 

CLOSING:  两边同时尝试关闭 

LAST_ACK: 等待所有分组死掉

TIME_WAIT:另一边已初始化一个释放 

ITMED_WAIT:等待所有分组死掉 :等待2*MSL(Max Segment Lifetime,最大分段生存期,指一个TCP报文在Internet上的最长生存时间。每个具体的TCP协议实现都必须选择一个确定的MSL值,RFC 1122建议是2分钟,但BSD传统实现采用了30秒,Linux可以cat /proc/sys/net/ipv4/tcp_fin_timeout看到本机的这个值)

 time_wait存在原因:停留两倍的MSL时长呢?这是因为TCP是一个建立在不可靠网络上的可靠的协议,主动关闭的一方收到被动关闭的一方发出的FIN包后,回应ACK包,同时进入TIME_WAIT状态,但是因为网络原因,主动关闭的一方发送的这个ACK包很可能延迟,从而触发被动连接一方重传FIN包。极端情况下,这一去一回,就是两倍的MSL时长。如果主动关闭的一方跳过TIME_WAIT直接进入CLOSED,或者在TIME_WAIT停留的时长不足两倍的MSL,那么当被动关闭的一方早先发出的延迟包到达后,就可能出现类似下面的问题:

 

看了这个图,虽然和具体业务无关,但是和短信协议实现相试,这也是种业务设计的模式,工作中,业务层的网络交互也可参考这样设计

 

最详细的:http://hi.baidu.com/suxinpingtao51/item/be5f71b3a907dbef4ec7fd0e

 

  • 大小: 35.3 KB
分享到:
评论

相关推荐

    tcp几种状态和time-wait过高处理

    tcp几种状态和time_wait过高处理

    TCP状态机详细描述

    TCP状态机主要包括以下几种状态: 1. **CLOSED**:这是TCP状态机的初始状态,表示没有任何连接存在。 2. **LISTEN**:服务器处于监听状态,等待客户端连接请求。 3. **SYN_SENT**:客户端发送了SYN报文段后进入此...

    设计模式:状态模式TCPConnection案例

    2. **具体状态类**:实现了状态接口/抽象类,为每种状态提供具体的行为。例如,有`ClosedState`、`ListenState`、`EstablishedState`等类。 3. **上下文类**:持有一个状态对象的引用,并通过这个引用调用状态对象的...

    tcp状态解析和windowsio说明

    TCP的状态主要有以下几种: 1. **CLOSED**: 这是所有连接的起始和结束状态,表示套接字没有任何活动连接。 2. **LISTEN**: 当服务器端的套接字与本地接口和端口绑定并监听连接请求时,进入此状态。服务器等待来自...

    TCP有限状态机

    TCP有限状态机共有以下几种主要状态: 1. **CLOSED**:此状态表示没有任何TCP连接处于活动状态或正在建立过程中。客户端或服务器在启动TCP服务之前,都会处于此状态。 2. **LISTEN**:当服务器准备接收来自客户端...

    剖析TCP连接的状态变迁图

    TCP连接的状态变迁主要包括以下几个阶段: 1. **三次握手建立连接**: - **CLOSED**:初始状态,没有任何连接。 - **LISTEN**:服务器端的SOCKET处于监听状态,等待客户端的连接请求。 - **SYN_SENT**:客户端...

    几种tcp服务器的实现代码及详细解析

    标题与描述均提到了“几种TCP服务器的实现代码及详细解析”,这暗示了文章将深入探讨TCP服务器在Linux环境下的具体实现方式。TCP(Transmission Control Protocol)是互联网中广泛使用的一种面向连接、可靠的、基于...

    TCP和MODBUS-TCP通讯调试软件

    TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,而MODBUS-TCP是在TCP/IP协议栈上构建的一种应用层通信协议,广泛应用于工业设备间的通信。 TCP协议提供了端到端的可靠通信服务,它通过三次握手建立连接...

    TCP调试助手源码_tcp助手源码_TCP助手源代码_TCP助手源码_

    在TCP(传输控制协议)中,有几个核心概念和技术点是调试助手源码会涉及的: 1. **三次握手与四次挥手**:TCP连接的建立和断开都需要通过特定的握手过程。三次握手确保了连接的可靠性,而四次挥手则确保了数据传输...

    TCP协议的十一种状态集转换、子网划分过程1

    以下是TCP协议的十一种状态转换的详细解释: 1. **三次握手**: - **CLOSED**: 这是TCP连接的初始状态,表示双方都没有打开连接。 - **LISTEN**: 服务器端进入此状态,表示它正在监听来自客户端的连接请求。 - *...

    TCP协议基础知识及图示

    它提供了以下几种机制来保证数据的可靠传输: 1. 序列号和响应号: TCP 协议使用序列号和响应号来跟踪数据的传输。序列号是指发送方所发送的数据的字节序号,而响应号是指接收方所期望收到的下一个数据的字节序号。...

    TCPTrace-TCP追踪

    3. **报文分析**:它能解析TCP报文头,揭示TCP选项和标志,如SYN、ACK、FIN、RST等,帮助分析连接状态和异常情况。 4. **时间线显示**:TCPTrace提供了时间线视图,清晰展示每个事件发生的时间顺序,便于理解网络...

    Modbus TCP和TCP通信测试工具

    测试Modbus TCP通信通常涉及以下几个步骤: 1. **配置PLC**:对于西门子SMART S7-200 PLC,你需要在编程软件(如STEP 7 Micro/Win)中设置PLC为Modbus TCP服务器或客户端,根据你的应用需求选择合适的角色。 2. **...

    modbus tcp for delphi

    在Delphi中实现Modbus TCP,你需要了解以下几个核心概念: 1. **Modbus功能码**:每个Modbus请求或响应都包含一个功能码,表示所执行的操作类型,如读寄存器、写单个寄存器、读多个寄存器等。 2. **数据结构**:...

    论文研究-状态检测防火墙中几种协议的结构设计.pdf

    在考虑防火墙安全和速度性能的前提下,给出针对TCP,UDP,ICMP和ARP等TCP/IP协议栈中主要协议的状态检测的结构设计,采用TCP序列号检查、UDP虚连接、ICMP数据包检测引擎等办法保证网络的安全性和高效性。

    Labview与FX5TCP通讯监控.pptx

    8. **应用实例**:Labview与FX5TCP的通信可以应用于多种实际场景,如实时监控PLC的状态,控制生产线设备,或者收集现场数据进行数据分析。 通过这篇文档,初学者可以了解到Labview与FX5TCP通信的基本步骤,同时也...

    bic-tcp协议

    bic-tcp(BIC-TCP,Bandwidth-Improving TCP)是一种TCP(传输控制协议)的扩展,旨在提高网络拥塞控制的效率,尤其是在高带宽、大延迟的网络环境中。它由IETF(互联网工程任务组)的Remy Bonjoch和Jana Iyengar于...

    获取系统TCP列表的资源

    在Windows系统中,可以通过以下几种方式获取TCP列表: 1. **命令行工具**: - 使用`netstat -ano`命令可以显示所有活动的TCP连接,包括进程ID(PID)。这有助于识别哪个应用程序正在使用特定的连接。 - `tasklist...

    Linux下TCP连接迁移技术-TCPCP详解.pdf

    TCP 连接迁移是一种基于 TCP 连接的负载均衡方法,通过将一个 TCP 连接的一个端点迁移到另一个节点来实现负载均衡。 TCPCP(TCP Connection Passing)是一种基于 TCP 连接迁移的技术,它可以将一个 TCP 连接的一个...

Global site tag (gtag.js) - Google Analytics