CN112242934A - 一种tcp连接的rtt计算方法 - Google Patents
一种tcp连接的rtt计算方法 Download PDFInfo
- Publication number
- CN112242934A CN112242934A CN201910641832.4A CN201910641832A CN112242934A CN 112242934 A CN112242934 A CN 112242934A CN 201910641832 A CN201910641832 A CN 201910641832A CN 112242934 A CN112242934 A CN 112242934A
- Authority
- CN
- China
- Prior art keywords
- tcp
- client
- syn
- rtt
- current time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明是一种TCP连接的RTT计算方法,基于TCP连接中的SYN Cookie计算包含中间设备网络的RTT:当中间设备收到客户端发送的SYN报文时,加入当前时间T1作为计算cookie的一个选项;当中间设备收到客户端发送的ACK报文时,通过反向计算得出上述当前时间T1;所述的该包含中间设备网络的RTT就等于当前时间T2与上述当前时间T1之差。本发明可方便地计算和统计出TCP的RTT,提高了RTO的启动效率,并且对设备性能无任何损耗。
Description
技术领域
本发明涉及网络应用交付控制领域,特别涉及一种TCP连接的RTT计算方法。
背景技术
在计算机网络中RTT是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认,总共经历的时延。
计算RTT通常的做法是开启TCP时间戳选项,发送方在发送报文段时把当前时钟的时间值放入时间戳字段,接收方在确认该报文段时把时间戳字段值复制到时间戳回送回答字段。因此,发送方在收到确认报文后,可以准确计算出RTT。
SYN(Synchronize Sequence Numbers同步序列编号)Flood是一种广为人知的DDoS(DDoS:Distributed Denial of Service分布式拒绝服务)的方式之一,它利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
SYN Cookie对TCP服务器端的三次握手做了一些修改,专门用来防范SYN Flood的一种手段。它的原理是,在TCP服务器接收到TCP SYN包并返回TCP SYN+ACK包时,不分配一个专门的数据区,而是根据这个SYN包计算出一个cookie值。这个cookie作为将要返回的SYN ACK包的初始序列号。当客户端返回一个ACK包时,根据包头信息计算cookie,与返回的确认序列号(初始序列号+1)进行对比,如果相同,则是一个正常连接,然后,分配资源,建立连接。实现的关键在于cookie的计算,cookie的计算应该包含本次连接的状态信息,使恶意攻击者不能伪造。
在中间设备,例如负载均衡设备上经常会开启SYN(Synchronize SequenceNumbers同步序列编号)cookie,用于防范DDoS攻击。对负载均衡设备来说,因为无法控制客户端开启TCP时间戳,所以计算客户端到负载均衡设备的RTT非常困难,在应用可视化等项目实施中,为了能够更直观的显示实时网络状况,能够计算出TCP的RTT非常重要。但是目前尚未检索到克服这一困难的技术方案。
发明内容
为克服已有技术中存在的问题,本发明提出并设计了一种基于SYN Cookie的TCPRTT计算方法,可以方便准确地计算客户端到中间设备的RTT。
一种TCP连接的RTT计算方法,基于TCP连接中的SYN Cookie计算包含中间设备网络的RTT,该计算法为:当中间设备收到客户端发送的SYN报文时,加入当前时间T1作为计算cookie的一个选项;当中间设备收到客户端发送的ACK报文时,通过反向计算得出上述当前时间T1;所述的该包括中间设备网络的RTT就等于当前时间T2与上述当前时间T1之差。
所述的一种TCP连接的RTT计算方法,包括如下步骤:
步骤1,客户端发送TCP SYN报文给中间设备,所述的TCP SYN报文中包括确认序号、源IP、源端口、目的IP、目的端口、序列号sequence等信息;
步骤2,中间设备收到客户端发送的TCP SYN报文;
分步骤2.1,中间设备根据上述TCP SYN报文中的信息以及当前时间T1,计算出T1cookie值;
分步骤2.2,中间设备将上述计算出的T1cookie值作为发送给客户端SYN+ACK报文的序列号T1sequence,并发送SYN+ACK报文给客户端;
步骤3,客户端收到SYN+ACK报文后,发送ACK报文给中间设备;
步骤4,中间设备接收客户端发送的ACK报文:
分步骤4.1,中间设备取出ACK报文头中的源IP、源端口、目的IP、目的端口、序列号T1sequence,反向计算出时间T1,以及计算出当前时间T2的cookie值;
分步骤4.2,比较TCP报文头中的确认序号,是否等于T1cookie+1;如果等于T1cookie+1,则连接建立成功,中间设备向服务器发起TCP建立连接;如果不等于T1cookie+1,则断开客户端连接;
分步骤4.3,所述的当前TCP连接的RTT计算方法为上述的当前时间T2与当前时间T1之差。
本发明通过在TCP SYN cookie处理过程中的TCP sequence中加入时间值的方法,很容易计算和统计出TCP的RTT,提高了RTO(TCP超时重传机制/Retransmission Timeout)的启动效率,并且对设备性能无任何损耗。本发明具有不需要在TCP中使能时间戳选项、不需要在TCP连接中携带用于计算RTT的额外数据、客户端无需做任何调整的优点。
附图说明
图1是本发明网络系统拓扑图;
图2是本发明方法步骤示意图;
图3是中间设备为负载均衡设备网络的cookie值传输示意图;
图4是本发明一种实施例示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也是本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明技术方案是建立在如图1所示的网络架构运营过程中,该网络架构包括客户端10、互联网20、路由30、中间设备40以及一组服务器50。所述的一种TCP连接的RTT计算方法,是基于SYN Cookie算法计算包含中间设备网络的RTT;所述的中间网络设备,可以是负载均衡设备、WAF应用防火墙、网关设备等包含防DDOS(分布式拒绝服务攻击/Distributed Denial of Service)模块411的设备,例如中间设备采用如图1中的负载均衡主设备41和负载均衡备用设备42。
一种TCP连接的RTT计算方法,基于TCP连接中的SYN Cookie计算包含中间设备网络的RTT,该计算法为:当中间设备收到客户端发送的SYN报文时,加入当前时间T1作为计算cookie的一个选项;当中间设备收到客户端发送的ACK报文时,通过反向计算得出上述当前时间T1;所述的该包括中间设备网络的RTT就等于当前时间T2与上述当前时间T1之差。
如图2所示,所述的一种TCP连接的RTT计算方法,包括如下步骤:
步骤1,客户端发送TCP SYN报文给中间设备,或者说负载均衡设备;
步骤2,中间设备收到客户端发送的TCP SYN报文,所述的TCP SYN报文中包括确认序号、源IP、源端口、目的IP、目的端口、序列号sequence等信息;
分步骤2.1,中间设备根据上述TCP SYN报文中的确认序号、源IP、源端口、目的IP、目的端口、序列号以及当前时间T1,计算出T1cookie值;
分步骤2.2,中间设备将上述计算出的T1cookie值作为发送给客户端SYN+ACK报文的序列号T1sequence,并发送SYN+ACK报文给客户端;
步骤3,客户端收到SYN+ACK报文后,发送ACK报文给中间设备;
步骤4,中间设备接收客户端发送的ACK报文:
分步骤4.1,中间设备取出ACK报文头中的源IP、源端口、目的IP、目的端口、序列号T1sequence,反向计算出时间T1,以及计算出当前时间T2的cookie值;
分步骤4.2,比较TCP报文头中的确认序号,是否等于T1cookie+1;如果等于T1cookie+1,则连接建立成功,中间设备向服务器发起TCP建立连接;如果不等于T1cookie+1,则断开客户端连接;
分步骤4.3,所述的当前TCP连接的RTT计算方法为上述的当前时间T2与当前时间T1之差。
图3显示了中间设备为负载均衡设备网络的cookie值传输示意图:
步骤1,客户端发送TCP SYN报文给负载均衡设备,假设其中TCP SYN报文的序列号(sequence):seq=x;
步骤2,负载均衡设备接收客户端发送的TCP SYN报文,负载均衡设备首先根据上述TCP SYN报文中的确认序号、源IP、源端口、目的IP、目的端口、序列号以及当前时间T1,计算出T1cookie值;然后负载均衡设备将上述计算出的T1cookie值作为发送给客户端SYN+ACK报文的序列号T1sequence,并发送SYN+ACK报文给客户端,如图3所示,SYN+ACK:seq=c1ack=x+1;
上式中c1为T1时刻的cookie值,则c1=T1cookie;
步骤3,客户端收到SYN+ACK报文后,发送ACK报文给负载均衡设备,如图3所示,客户端回复的ACK报文,其中ACK:seq=x+1ack=c1+1;
步骤4,负载均衡设备中的防DDOS模块接收客户端发送的ACK报文并进行如下的处理:
分步骤4.1,负载均衡设备取出ACK报文头中的源IP、源端口、目的IP、目的端口、序列号T1sequence,反向推出时间T1,同时计算出当前时间T2的值;
分步骤4.2,在负载均衡设备内比较TCP报文头中的确认序号,是否等于T1cookie+1;如果等于T1cookie+1,则连接建立成功,负载均衡设备向服务器发起TCP建立连接;如果不等于T1cookie+1,则负载均衡设备断开与客户端的连接;
分步骤4.3,所述的当前TCP连接的RTT计算方法为上述的当前时间T2与当前时间T1之差。
图4所示为本发明另一方法实施例示意图,所述的中间设备仍为负载均衡设备(以下简称为APV),首先在客户端开启TCP时间戳选项,那么根据TCP报文里的时间,计算出TCP的RTT,其中的cookie值经过APV时传输过程如图4所示,详细步骤如下:
步骤1,客户端发送TCP SYN报文给负载均衡设备,并开启了TCP时间戳的选项,SYN;
步骤2,APV发送SYN ACK报文回复给客户端,并在时间戳选项设置当前时间SYNACK:timestamp=T1;
步骤3,客户端发送ACK报文给APV,并在当前时间戳选项设置ACK:timestamp=T2,echo_timestamp=T1;
步骤4,APV收到ACK报文后,取出时间戳选项中的echo_timestamp,那么该TCP连接的RTT=T3(当前时间)-T1。
需要说明的是,本发明各设备实施方式中提到的各单元都是逻辑单元,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明没有引入上述各设备实施方式以及与解决本发明所提出的技术问题关系不太密切的单元,但这并不表明不存在上述设备实施方式以及其它有关实施单元。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (3)
1.一种TCP连接的RTT计算方法,基于TCP连接中的SYN Cookie计算包含中间设备网络的RTT,其特征是:当中间设备收到客户端发送的SYN报文时,加入当前时间T1作为计算cookie的一个选项;当中间设备收到客户端发送的ACK报文时,通过反向计算得出上述当前时间T1;所述的该包含中间设备网络的RTT就等于当前时间T2与上述当前时间T1之差。
2.根据权利要求1所述的一种TCP连接的RTT计算方法,包括如下步骤:
步骤1,客户端发送TCP SYN报文给中间设备;
步骤2,中间设备收到客户端发送的TCP SYN报文,所述的TCP SYN报文中包括确认序号、源IP、源端口、目的IP、目的端口和序列号信息;
分步骤2.1,中间设备根据上述TCP SYN报文中的确认序号、源IP、源端口、目的IP、目的端口、序列号以及当前时间T1,计算出T1cookie值;
分步骤2.2,中间设备将上述计算出的T1cookie值作为发送给客户端SYN+ACK报文的序列号T1sequence,并发送SYN+ACK报文给客户端;
步骤3,客户端收到SYN+ACK报文后,发送ACK报文给中间设备;
步骤4,中间设备接收客户端发送的ACK报文:
分步骤4.1,中间设备取出ACK报文头中的源IP、源端口、目的IP、目的端口、序列号T1sequence,反向计算出时间T1,以及计算出当前时间T2的cookie值;
分步骤4.2,比较TCP报文头中的确认序号,是否等于T1cookie+1;如果等于T1cookie+1,则连接建立成功,中间设备向服务器发起TCP建立连接;如果不等于T1cookie+1,则断开客户端连接;
分步骤4.3,所述的当前TCP连接的RTT计算方法为上述的当前时间T2与当前时间T1之差。
3.根据权利要求1所述的一种TCP连接的RTT计算方法,其特征是:在客户端开启TCP时间戳选项,根据TCP报文里的时间,计算出TCP的RTT,其步骤如下:
步骤1,客户端发送TCP SYN报文给负载均衡设备,并开启TCP时间戳的选项;
步骤2,中间设备发送SYN ACK报文回复给客户端,并在时间戳选项设置当前时间SYNACK:timestamp=T1;
步骤3,客户端发送ACK报文给中间设备,并在当前时间戳选项设置ACK:timestamp=T2,echo_timestamp=T1;
步骤4,中间设备收到ACK报文后,取出时间戳选项中的echo_timestamp,那么该TCP连接的RTT等于当前时间T3减去上述时间戳设置的当前时间T1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910641832.4A CN112242934B (zh) | 2019-07-16 | 2019-07-16 | 一种tcp连接的rtt计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910641832.4A CN112242934B (zh) | 2019-07-16 | 2019-07-16 | 一种tcp连接的rtt计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112242934A true CN112242934A (zh) | 2021-01-19 |
CN112242934B CN112242934B (zh) | 2022-10-11 |
Family
ID=74166887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910641832.4A Active CN112242934B (zh) | 2019-07-16 | 2019-07-16 | 一种tcp连接的rtt计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112242934B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1630248A (zh) * | 2003-12-19 | 2005-06-22 | 北京航空航天大学 | 基于连接请求验证的SYN flooding攻击防御方法 |
CN101217547A (zh) * | 2008-01-18 | 2008-07-09 | 南京邮电大学 | 基于开源内核的无状态的泛洪请求攻击过滤方法 |
CN103347016A (zh) * | 2013-06-28 | 2013-10-09 | 天津汉柏汉安信息技术有限公司 | 一种攻击的防御方法 |
US9027129B1 (en) * | 2012-04-30 | 2015-05-05 | Brocade Communications Systems, Inc. | Techniques for protecting against denial of service attacks |
CN106470238A (zh) * | 2015-08-20 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 应用于服务器负载均衡中的连接建立方法及装置 |
CN109327426A (zh) * | 2018-01-11 | 2019-02-12 | 白令海 | 一种防火墙攻击防御方法 |
-
2019
- 2019-07-16 CN CN201910641832.4A patent/CN112242934B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1630248A (zh) * | 2003-12-19 | 2005-06-22 | 北京航空航天大学 | 基于连接请求验证的SYN flooding攻击防御方法 |
CN101217547A (zh) * | 2008-01-18 | 2008-07-09 | 南京邮电大学 | 基于开源内核的无状态的泛洪请求攻击过滤方法 |
US9027129B1 (en) * | 2012-04-30 | 2015-05-05 | Brocade Communications Systems, Inc. | Techniques for protecting against denial of service attacks |
CN103347016A (zh) * | 2013-06-28 | 2013-10-09 | 天津汉柏汉安信息技术有限公司 | 一种攻击的防御方法 |
CN106470238A (zh) * | 2015-08-20 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 应用于服务器负载均衡中的连接建立方法及装置 |
CN109327426A (zh) * | 2018-01-11 | 2019-02-12 | 白令海 | 一种防火墙攻击防御方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112242934B (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Stewart | Stream control transmission protocol | |
US8224976B2 (en) | Using a server's capability profile to establish a connection | |
Bellovin | Defending against sequence number attacks | |
US6779033B1 (en) | System and method for transacting a validated application session in a networked computing environment | |
US7584352B2 (en) | Protection against denial of service attacks | |
KR100608136B1 (ko) | 티씨피 연결의 스테이트풀 인스펙션에 있어서의 보안성능향상방법 | |
US6950947B1 (en) | System for sharing network state to enhance network throughput | |
US20120227088A1 (en) | Method for authenticating communication traffic, communication system and protective apparatus | |
US20010042200A1 (en) | Methods and systems for defeating TCP SYN flooding attacks | |
US7404210B2 (en) | Method and apparatus for defending against distributed denial of service attacks on TCP servers by TCP stateless hogs | |
CN101589595A (zh) | 用于潜在被污染端系统的牵制机制 | |
CN108810008B (zh) | 传输控制协议流量过滤方法、装置、服务器及存储介质 | |
CN100420197C (zh) | 一种实现网络设备防攻击的方法 | |
Simpson | TCP cookie transactions (TCPCT) | |
Wang et al. | Efficient and low‐cost defense against distributed denial‐of‐service attacks in SDN‐based networks | |
Sen | A robust mechanism for defending distributed denial of service attacks on web servers | |
Kim et al. | An effective defense against SYN flooding attack in SDN | |
US20240154999A1 (en) | Thwarting syn flood ddos attacks | |
CN102427452B (zh) | 同步报文发送方法、装置和网络设备 | |
EP1154610A2 (en) | Methods and system for defeating TCP Syn flooding attacks | |
CN112242934B (zh) | 一种tcp连接的rtt计算方法 | |
Kim et al. | Concurrent Multipath Transfer using SCTP multihoming over heterogeneous network paths | |
CN115426116B (zh) | 一种基于动态密钥的加密哈希跳变方法 | |
CN112565309B (zh) | 报文处理方法、装置、设备以及存储介质 | |
Kiesel | On the use of cryptographic cookies for transport layer connection establishment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |