TCP/IP之TCP连接的建立与中止状态分析

  TCP连接的建立可以简单的称为三次握手,而连接的中止则可以叫做四次握手

1、连接的建立:

    c端发起请求同步(用SYN段等于1的TCP报文),确认某个端口是否监听;

    s端应答(用ACK段等于1的TCP报文),

    c端收到s端的ACK,并回应s端一个ACK给s端;

经过上面三步连接的建立完成。这就叫做三次握手;

2、连接的中止:(TCP中有half-close,这是因为TCP的连接是全双工(可以同时发送和接收)连接,关闭的时候就需要在两个方向上都进行关闭,否则就是half-close)

    c端发起关闭(FIN为1的TCP报文);

    s端应答c端(用ACK段等于1的TCP报文);

  上面两步完成就是半关闭(half-close)

    s端发起关闭(FIN为1的TCP报文)

    c端应答s端(用ACK段等于1的TCP报文)

经过上面四步,连接中止。这叫做四次挥手;  

最大报文长度MSS

  在建立连接的时候,通信的双方要互相确认对方的最大报文长度(MSS),以便通信。

一般这个MSS长度是MTU减去固定IP首部和TCP首部长度。对于一个以太网,一般可以达到1460字节。当然如果对于非本地的IP,这个MSS可能就只有536字节,而且,如果中间的传输网络的MSS更佳的小的话,这个值还会变得更小。

TCP的状态迁移图

  TCP的状态图参见书P182页,这个图实在太精彩了(笔要偷懒,好好研究);

                                

2MSL等待状态

  TCP状态图中有一个TIME_WAIT等待状态,这个状态又叫做2MSL状态,说的是在TIME_WAIT2发送了最后一个ACK数据报以后,要进入TIME_WAIT状态,这个状态是防止最后一次握手的数据报没有传送到对方那里而准备的(注意这不是四次握手,这是第四次握手的保险状态)。这个状态在很大程度上保证了双方都可以正常结束,但是,问题也来了。

由于插口的2MSL状态(插口是IP和端口对的意思,socket),使得应用程序在2MSL时间内是无法再次使用同一个插口的,对于客户程序还好一些,但是对于服务程序,例如httpd,它总是要使用同一个端口来进行服务,而在2MSL时间内,启动httpd就会出现错误(插口被使用)。为了避免这个错误,服务器给出了一个平静时间的概念,这是说在2MSL时间内,虽然可以重新启动服务器,但是这个服务器还是要平静的等待2MSL时间的过去才能进行下一次连接。

4.5.FIN_WAIT_2状态

这就是著名的半关闭的状态了,这是在关闭连接时,客户端和服务器两次握手之后的状态。在这个状态下,应用程序还有接受数据的能力,但是已经无法发送数据,但是也有一种可能是,客户端一直处于FIN_WAIT_2状态,而服务器则一直处于WAIT_CLOSE状态,而直到应用层来决定关闭这个状态。

 

时间: 2024-09-25 12:52:23

TCP/IP之TCP连接的建立与中止状态分析的相关文章

什么是TCP IP 网络TCP IP协议

什么是TCP.IP协议?概括的说TCP/IP协议是(传输控制协议/网间协议)TCP/IP 协议集确立了 Internet 的技术基础.全称Transmission Control Protocol/Internet Protocol.中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议.Internet国际互联网络的基础,由 网络层的IP协议和传输层的TCP协议组成.TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准.协议采用了4层的层

TCP/IP之TCP交互数据流、成块数据流

建立在TCP协议上的网络协议有telnet,ssh,ftp,http等等.这些协议根据数据吞吐量来分成两大类: (1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文字等等. 交互数据类型在通讯中比例为10%: (2)数据成块类型,例如ftp,这种类型的协议要求TCP能尽量的运载数据,把数据的吞吐量做到最大,并尽可能的提高效率.数据成块类型在通讯中比例为90%: 针对这两种情况,TCP给出了两种不同的策略来进行数据传输: 1

基础教程:TCP连接的建立和释放

TCP首部格式 先看TCP报文段的格式,如下; TCP报文段首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项.因此TCP报文段的最小长度为20个字节. 首部固定部分的各字段的意义如下: 1.源端口和目的端口:加上IP首部的源IP地址和目的IP地址,确定唯一的一个TCP连接.另外通过目的端口来决定TCP将数据报交付于那个应用程序,从而实现TCP的分用功能. 2.序号:占4个字节,序号的范围为[0,4284967296].由于TCP是面向字节流的,在一个TCP连接中传送的字节流中的每

TCP/IP, WebSocket 和 MQTT

按照OSI网络分层模型,IP是网络层协议,TCP是传输层协议,而HTTP和MQTT是应用层的协议.在这三者之间, TCP是HTTP和MQTT底层的协议.大家对HTTP很熟悉,这里简要介绍下MQTT.MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分.该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器的通信协议. HTTP的不足 HTTP协议经过多年的使用,发现了

TCP/IP模型的简单解释

TCP/IP模型是互联网的基础.想要理解互联网,就必须理解这个模型.但是,它不好懂,我就从来没有搞懂过. 前几天,BetterExplained上有一篇文章,很通俗地解释了这个模型.我读后有一种恍然大悟的感觉,第一次感到自己理解了互联网的总体架构. 下面,我按照自己的理解,写一下互联网到底是怎么搭建起来的.说得不对的地方,欢迎指正.   什么是TCP/IP模型? TCP/IP模型是一系列网络协议的总称,这些协议的目的,就是使计算机之间可以进行信息交换. 所谓"协议"可以理解成机器之间交

Windows Socket网络编程(一) TCP/IP体系结构、特点及相关

一.TCP/IP 体系结构与特点 1.TCP/IP体系结构 TCP/IP协议实际上就是在物理网上的一组完整的网络协议.其中TCP是提供传输层服务,而IP则是提供网络层服务.TCP/IP包括以下协议:(结构如图1.1) (图1.1) IP:网间协议(Internet Protocol) 负责主机间数据的路由和网络上数据的存储.同时为ICMP,TCP,UDP提供分组发送服务.用户进程通常不需要涉及这一层. ARP:地址解析协议(Address Resolution Protocol) 此协议将网络地

《TCP/IP路由技术(第一卷)(第二版)》一第1章 TCP/IP回顾1.1 TCP/IP协议层

第1章 TCP/IP回顾 TCP/IP路由技术(第一卷)(第二版)本章包括以下主题: TCP/IP协议层: IP包头(IP Packet Header): IPv4地址: 地址解析协议(ARP): Internet控制消息协议(ICMP): 主机到主机层. 考虑到这本书的书名是<TCP/IP路由技术>,有必要从回顾TCP/IP的基本知识开始讲起,然后再讲述如何进行TCP/IP路由选择.如果读者正在准备Cisco认证互连网专家(Cisco Certified Internetwork Exper

飞鱼星路由器TCP/IP优化加速

任何的网络都有一定的带宽,如果带宽占满了,那么我们就无法再获得更快的体验,这时很多人都会选择添加一条新的线路,或是增加原本的带宽,其实不然,可以通过TCP/IP优化加速来解决这个问题,本篇以飞鱼星路由器为例分析. 一.解决这个问题的一个方法是优化现有技术方案.许多网络流量仍然基于TCP/IP.TCP提供了可靠有序的数据包传输,大多数Web应用.电子邮件和文件传输都使用这种协议.可是,TCP的流管理算法并不先进:如果网络或接收端无法处理发送的传输速度,其表现是出现丢包.超时或乱序数据包过多等问题,

TCP/IP RFC

                              TCP/IP RFC TCP/IP 标准是在一系列称为 RFC 的文档中发布的.RFC 是目前仍在发展的描述 TCP/IP 和 Internet 内部工作的一系列报告.协议的提议以及协议标准. 虽 然 TCP/IP 标准通常由 RFC 发布,但不是所有的 RFC 都被最终指定为标准.RFC 是由个人编写的,这些人自愿编写某一新协议或规范的提议草案,并提交给"Internet 工程任务组 (IETE)"和其他工作组.提交的草案先