TCP 衔接断链分析ITeye - 众发娱乐

TCP 衔接断链分析ITeye

2019年03月10日11时24分37秒 | 作者: 晓山 | 标签: 衔接,勘探,运用 | 浏览: 1431

 

留意:咱们删除了 tcpdump 输出成果中的部分无关信息。为了便于了解,咱们将上述输出转换为实践序列图 2。


图 2. TCP 树立创立三次握手的实践序列

从图 2 中咱们能够清楚地看到,在 testClient 与 testServer 之间树立衔接时,要通过以下三次握手进程:

testClient 向 testServer 自动发送握手协议,报文序列号为 3392458353,巨细为 1 个字节。 testServer 向 testClient 自动发送握手协议,报文序列号为 881279296,巨细为 1 个字节;一起回来 ACK 3392458354,作为对 testClient 发来的 3392458354 包的应对。 testClient 向 testServer 回来 ACK 881279297,作为对 testServer 发来的 881279296 包的应对。

一个 TCP 衔接在完结上述的三次握手之后便树立结束;尔后,衔接的两头即可进行信息的彼此传递。因而,TCP 衔接能够以为是以两头 IP 地址和端口进行标识的一个通讯信道,而 TCP 衔接的树立就是向通讯两边进行上述通讯信道注册的进程。TCP 衔接一旦树立,只需通讯两边之间的中心结点(包含网关和交流机、路由器等网络设备)作业正常,那么在通讯两边中的任何一方自动封闭衔接之前,TCP 衔接都将被一向坚持下去。

TCP 衔接的这种特性,使得一个长期不交流任何信息的闲暇衔接能够长期坚持数小时、数天乃至数月。中心路由器能够溃散、重启,网线能够被挂断再连通,只需两头的主机没有被重启,TCP 衔接就能够被一向坚持下来。

导致 TCP 衔接断连的要素

抱负状况下,一个 TCP 衔接能够被长期坚持。可是,在实践运用中,客户端或效劳器端上坚持的一个看似正常的 TCP 衔接或许现已断连。TCP 衔接首要遭到两个方面的影响而导致断连:网络中心节点和客户端 / 效劳器节点参加通讯的两方节点?

在实践网络运用中,两个主机之间的通讯往往需求穿越多个中心节点,例如路由器、网关、防火墙等。因而,两个主机之间 TCP 衔接的坚持同样会遭到中心节点的影响,尤其是会遭到防火墙(软件或硬件防火墙)的约束。防火墙是一种设备,有多种不同的完成办法(软件完成、硬件设备完成 或是软硬件相结合完成),它需求根据一系列规矩对进出的信息流进行扫描,并答应安全(契合规矩)的信息交互、阻挠不安全(违背规矩)的信息交互。防火墙的 作业特性决议了要保护一个网络衔接就需求消耗较多的资源,而且企业防火墙常常坐落企业网络的出入口,长期保护非活泼的 TCP 衔接必将导致网络功用的下降。因而,大部分防火墙默许会封闭长期处于非活泼状况的衔接而导致 TCP 衔接断连。相似的,假如中心节点反常导致来自客户端封闭衔接的恳求无法传递到效劳器端,也将导致效劳器端的相应衔接发作断连。

另一方面,关于一个 TCP 衔接两头的主机而言,创立 TCP 衔接需求消耗必定的体系资源。假如不再运用某个衔接,那么咱们总是期望进行通讯的两个主机能够自动封闭相应的衔接,以便开释所占用的体系资源。可是,假如 因为客户端出现反常 ( 例如溃散或反常重启 ) 而导致衔接未能正常封闭,这将导致效劳器端的衔接断连。

无论是客户端节点或是效劳器端节点,断连的 TCP 衔接现已不能传递任何信息,因而,保护很多断连的 TCP 衔接将导致体系资源的糟蹋。这种体系资源的糟蹋或许并不会对客户端节点带来太大问题;可是,关于效劳器主机而言,这或许会导致体系资源(尤指内存资源和 socket 资源)被耗尽而回绝为新的用户恳求供给效劳。因而在实践运用中,效劳器端需求采纳相应的办法来勘探 TCP 衔接是否现已断连。

勘探 TCP 衔接断连的三种常用办法

勘探 TCP 衔接是否断连或是作业正常的原理比较简单:定时向衔接的长途通讯节点发送必定格局的信息并等候长途通讯节点的反应,假如在规则时间内收到来自长途节点的正 确的反应信息,那么该衔接就是正常的,不然该衔接现已断连。根据该原理,现在常用的勘探办法有以下三种。

运用程序的自我勘探

运用程序自身顺便勘探其自身树立的 TCP 衔接的功用。这种办法具有极大的灵活性,能够根据运用自身的特色挑选相应的勘探机制和功用完成。可是,实践运用中,大部分运用程序均没有顺便自我勘探的功用。

第三方运用程序的勘探

此种办法就是在效劳节点上装置相应的第三方运用程序来勘探该节点上一切的 TCP 衔接是否正常或是现已断连。该办法最大的缺乏就是需求一切支撑勘探的客户端能够辨认来自该勘探运用的数据报文,因而,实践运用中比较少见。

TCP 协议层的保活勘探

最常用的勘探办法就是选用 TCP 协议层供给的保活勘探功用即 TCP 衔接保活定时器。虽然该功用并不是 RFC 标准的一部分,可是简直一切的类 Unix 体系均完成了该功用,所以使得该勘探办法被广泛运用。

接下来的部分,咱们将要点评论来自 TCP 协议层的保活勘探办法。

类 Unix 体系上的 TCP 衔接保活定时器

TCP 衔接的保活定时器能够在运用层完成,也能够在 TCP 中供给。这个问题存在争议,因而 TCP 衔接的保活勘探并不是 TCP 标准中的一部分。但为了便利,简直一切类 Unix 体系均在 TCP 中供给了相应的功用。


清单 2. 常见 Unix 体系上的保活定时器

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表众发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章