CN105791239A - 一种tcp中间人处理方法 - Google Patents

一种tcp中间人处理方法 Download PDF

Info

Publication number
CN105791239A
CN105791239A CN201410817823.3A CN201410817823A CN105791239A CN 105791239 A CN105791239 A CN 105791239A CN 201410817823 A CN201410817823 A CN 201410817823A CN 105791239 A CN105791239 A CN 105791239A
Authority
CN
China
Prior art keywords
tcp
receiving terminal
transmitting terminal
syn
head
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
Application number
CN201410817823.3A
Other languages
English (en)
Other versions
CN105791239B (zh
Inventor
郑艳伟
叶晓舟
宋磊
袁鼎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Xinrand Network Technology Co ltd
Original Assignee
Institute of Acoustics CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Acoustics CAS filed Critical Institute of Acoustics CAS
Priority to CN201410817823.3A priority Critical patent/CN105791239B/zh
Publication of CN105791239A publication Critical patent/CN105791239A/zh
Application granted granted Critical
Publication of CN105791239B publication Critical patent/CN105791239B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种TCP中间人处理方法,包括:发送端与接收端之间建立TCP连接;所述TCP中间人截取并转发发送端和接收端的TCP握手报文,协调发送端和接收端,在发送端和接收端之间建立TCP连接并维持这一TCP连接;发送端向接收端发送TCP数据包;所述TCP中间人截取TCP数据包,剥离数据包MAC头和IP头,提交TCP数据包给其内部的TCP处理模块进行处理、修改,然后TCP中间人为处理后的数据包重新封装IP头和MAC头,重新计算校验和后转发给接收端;接收端接收TCP数据包,并向发送端发送响应数据。

Description

一种TCP中间人处理方法
技术领域
本发明涉及计算机网络和数据传输领域,特别涉及一种TCP中间人处理方法。
背景技术
随着信息技术和网络互联技术的发展,网络与信息安全问题日益突出。应用网关、应用级代理以及数据采集分析设备在HTTP代理、HTTP缓存、基于应用的负载均衡、深度内容检测、网关病毒过滤、数据采集审计等领域扮演者越来越重要的网络服务角色。应用网关、应用级代理以及数据采集分析设备通常采用透明代理技术,在客户端和服务器之间充当中间人的角色,接收流经的TCP数据包并重定向到内核层的本地网络协议栈中,由协议栈对数据包进行协议解析处理和TCP重组,提取出应用数据,然后通过套接字将应用层数据从内核层拷贝到用户层,传递给业务程序进行各种处理(如病毒检测、关键词过滤)和修改(替换、删除);处理后,业务程序再将数据通过套接字从用户层拷贝到内核层,交给本地网络协议栈,并通知协议栈采用重定向前原始数据包的目的IP地址和目的端口重新构建数据包并进行协议封装,然后发送出去。
现有的TCP中间人处理方法都是工作在正常TCP/IP协议栈模式下,中间人分别与客户端和服务端建立两个socket连接,透明的进行数据的双向传递,作为一个中间人监听两端的交互报文,并协助客户端和服务端完成网络通信。传统方法保持了对现有网络的兼容性,可以在应用层实现负责的协议处理;缺点是会对两端的正常交互造成影响,吞吐量小,通信时延长,性能降低。原因是对于每一个报文都存在多次的拷贝和用户态到内核态的切换,消耗了大量的资源,增加了通信延迟。
发明内容
本发明的目的在于克服现有技术中的现有的TCP中间人处理方法吞吐量小、通信时延长、性能低的缺陷,从而提供一种吞吐量大、时延小、高性能的TCP中间人处理方法。
为了实现上述目的,本发明提供了一种TCP中间人处理方法,包括:
步骤1)、发送端与接收端之间建立TCP连接;
所述TCP中间人截取并转发发送端和接收端的TCP握手报文,协调发送端和接收端,在发送端和接收端之间建立TCP连接并维持这一TCP连接;
步骤2)、发送端向接收端发送TCP数据包;
所述TCP中间人截取TCP数据包,剥离数据包MAC头和IP头,提交TCP数据包给其内部的TCP处理模块进行处理、修改,然后TCP中间人为处理后的数据包重新封装IP头和MAC头,重新计算校验和后转发给接收端;
步骤3)、接收端接收TCP数据包,并向发送端发送响应数据。
上述技术方案中,所述步骤101)进一步包括:
步骤1-1)、发送端向接收端发送SYN报文,请求建立TCP连接;
步骤1-2)、TCP中间人截取发送端的SYN报文,去掉并缓存MAC头和IP头,提交给TCP处理模块,TCP处理模块缓存此SYN报文,并按照二层数据包的封装格式为此SYN报文填充原有的IP头和MAC头,重新计算数据包的校验和;
步骤1-3)、TCP中间人代替发送端向接收端转发此SYN报文;
步骤1-4)、接收端接收到TCP中间人转发的一次握手SYN报文,回复二次握手SYN/ACK报文给发送端;
步骤1-5)、TCP中间人截取到接收端的二次握手SYN/ACK报文,去掉并缓存MAC头和IP头,提交给TCP处理模块,TCP处理模块缓存此SYN/ACK报文,并按照二层数据包的封装格式为此SYN/ACK报文填充原有的IP头和MAC头,重新计算数据包的校验和;
步骤1-6)、TCP中间人代替接收端向发送端转发此二次握手SYN/ACK报文;
步骤1-7)、发送端接收到TCP中间人转发的二次握手SYN/ACK报文,成功建立TCP连接;
步骤1-8)、发送端向接收端回复三次握手ACK报文;
步骤1-9)、TCP中间人截取到发送端的三次握手ACK报文,去掉并缓存MAC头和IP头,提交给TCP处理模块,TCP处理模块缓存此ACK报文,并按照二层数据包的封装格式为此ACK报文填充原有的IP头和MAC头,重新计算数据包的校验和;
步骤1-10)、TCP中间人代替发送端向接收端转发此ACK报文;
步骤1-11)、接收端接收到TCP中间人转发的三次握手ACK报文,接收端成功建立TCP连接。
上述技术方案中,所述步骤2)进一步包括:
步骤2-1)、发送端通过TCP连接向接收端发送应用数据;
步骤2-2)、TCP中间人截取发送端的数据包,去掉并缓存MAC头和IP头,提交给TCP处理模块并缓存;
步骤2-3)、TCP中间人代替接收端向发送端回复ACK响应,此ACK报文的源IP和MAC是接收端,目的IP和MAC是发送端;
步骤2-4)、TCP中间人对数据包进行修改处理,并代替发送端向接收端转发修改后的数据包。
上述技术方案中,所述步骤3)进一步包括:
步骤4-1)、接收端接收到TCP中间人转发的数据包,向发送端回复ACK响应;
步骤4-2)、TCP中间人截取到接收端回复的ACK响应,去掉并缓存MAC头和IP头,提交给TCP处理模块,删除缓存中被ACK确认的数据包。
本发明的优点在于:
在本发明的TCP中间人处理方法中,TCP中间人置于两个网络节点之间,对流经的TCP数据包进行接收、转发处理,保持了两端正常的TCP连接,本发明对TCP数据包的修改对发送端和接收端来说是透明的,不影响发送端和接收端的正常交互;并且通过TCP处理模块的缓存、丢包重传、定时器超时重传、滑动窗口、拥塞控制等机制,实现TCP数据包的可靠传输。
附图说明
图1是本发明的TCP中间人处理方法的流程图;
图2是本发明的TCP中间人处理方法中建立TCP连接的流程图;
图3是本发明的TCP中间人处理方法中传输应用数据的流程图。
具体实施方式
现结合附图对本发明作进一步的描述。
应用网关、应用级代理以及数据采集分析等网络设备通常并不是普通的X86服务器架构,大多是嵌入式的网络处理器架构,而且这些设备的系统一般并不是完备的操作系统,而是简单的实时操作系统。嵌入式网络处理器特点是处理网络数据包的能力比较高,但是CPU运算能力相对较弱。TCP中间人最主要的功能是把流经的TCP数据包截获、处理、转发,因此可针对嵌入式网络处理器和实时简单操作系统的特征,有选择地对TCPIP协议栈进行裁剪修改,减少不必要的数据拷贝和进程切换。
下面对本发明的TCP中间人处理方法进行说明。
本发明中所述的TCP中间人置于两个网络节点之间(这两个网络节点既可以是发送端,也可以是接收端),它能够对流经的TCP数据包进行接收、修改、转发处理,并保持正常的TCP连接。所述TCP中间人包括有TCP处理模块,该模块基于TCP协议的原理,实现了接收确认、丢包重传、定时器超时重传、滑动窗口、拥塞控制、慢启动、快速恢复等机制。
参考图1,本发明的TCP中间人处理方法包括:
步骤101)、发送端与接收端之间建立TCP连接;
本步骤中,TCP中间人并不分别与发送端和接收端各建立两个完整的TCP连接,而是截取并转发发送端和接收端的TCP握手报文,协调发送端和接收端,在发送端和接收端之间建立TCP连接并维持这一TCP连接;
步骤102)、发送端向接收端发送TCP数据包;
本步骤中,TCP中间人截取TCP数据包,剥离数据包MAC头和IP头,提交TCP数据包给TCP处理模块进行处理、修改,然后TCP中间人为处理后的数据包重新封装IP头和MAC头,重新计算校验和后转发给接收端;
步骤103)、接收端接收TCP数据包,并向发送端发送响应数据。
参考图2,步骤101)中所涉及的发送端与接收端之间建立TCP连接的进一步包括如下步骤:
201)发送端向接收端发送SYN报文,请求建立TCP连接;
202)TCP中间人截取发送端的SYN报文,去掉并缓存MAC头和IP头,提交给TCP处理模块,TCP处理模块缓存此SYN报文,并按照二层数据包的封装格式为此SYN报文填充原有的IP头和MAC头,重新计算数据包的校验和;
203)TCP中间人代替发送端向接收端转发此SYN报文;
204)接收端接收到TCP中间人转发的一次握手SYN报文,回复二次握手SYN/ACK报文给发送端;
205)TCP中间人截取到接收端的二次握手SYN/ACK报文,去掉并缓存MAC头和IP头,提交给TCP处理模块,TCP处理模块缓存此SYN/ACK报文,并按照二层数据包的封装格式为此SYN/ACK报文填充原有的IP头和MAC头,重新计算数据包的校验和;
206)TCP中间人代替接收端向发送端转发此二次握手SYN/ACK报文;
207)发送端接收到TCP中间人转发的二次握手SYN/ACK报文,成功建立TCP连接;
208)发送端向接收端回复三次握手ACK报文;
209)TCP中间人截取到发送端的三次握手ACK报文,去掉并缓存MAC头和IP头,提交给TCP处理模块,TCP处理模块缓存此ACK报文,并按照二层数据包的封装格式为此ACK报文填充原有的IP头和MAC头,重新计算数据包的校验和;
210)TCP中间人代替发送端向接收端转发此ACK报文;
211)接收端接收到TCP中间人转发的三次握手ACK报文,接收端成功建立TCP连接。
进一步地,通过TCP中间人的协调,发送端和接收端建立TCP连接后,传输数据的过程如图3所示,包括如下步骤:
301)发送端通过TCP连接向接收端发送应用数据;
302)TCP中间人截取发送端的数据包,去掉并缓存MAC头和IP头,提交给TCP处理模块并缓存;
303)TCP中间人代替接收端向发送端回复ACK响应,此ACK报文的源IP和MAC是接收端,目的IP和MAC是发送端;
304)TCP中间人对数据包进行修改处理,并代替发送端向接收端转发修改后的数据包;
305)接收端接收到TCP中间人转发的数据包,向发送端回复ACK响应;
306)TCP中间人截取到接收端回复的ACK响应,去掉并缓存MAC头和IP头,提交给TCP处理模块,删除缓存中被ACK确认的数据包,至此完成一次成功的数据传输。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (4)

1.一种TCP中间人处理方法,包括:
步骤1)、发送端与接收端之间建立TCP连接;
所述TCP中间人截取并转发发送端和接收端的TCP握手报文,协调发送端和接收端,在发送端和接收端之间建立TCP连接并维持这一TCP连接;
步骤2)、发送端向接收端发送TCP数据包;
所述TCP中间人截取TCP数据包,剥离数据包MAC头和IP头,提交TCP数据包给其内部的TCP处理模块进行处理、修改,然后TCP中间人为处理后的数据包重新封装IP头和MAC头,重新计算校验和后转发给接收端;
步骤3)、接收端接收TCP数据包,并向发送端发送响应数据。
2.根据权利要求1所述的TCP中间人处理方法,其特征在于,所述步骤101)进一步包括:
步骤1-1)、发送端向接收端发送SYN报文,请求建立TCP连接;
步骤1-2)、TCP中间人截取发送端的SYN报文,去掉并缓存MAC头和IP头,提交给TCP处理模块,TCP处理模块缓存此SYN报文,并按照二层数据包的封装格式为此SYN报文填充原有的IP头和MAC头,重新计算数据包的校验和;
步骤1-3)、TCP中间人代替发送端向接收端转发此SYN报文;
步骤1-4)、接收端接收到TCP中间人转发的一次握手SYN报文,回复二次握手SYN/ACK报文给发送端;
步骤1-5)、TCP中间人截取到接收端的二次握手SYN/ACK报文,去掉并缓存MAC头和IP头,提交给TCP处理模块,TCP处理模块缓存此SYN/ACK报文,并按照二层数据包的封装格式为此SYN/ACK报文填充原有的IP头和MAC头,重新计算数据包的校验和;
步骤1-6)、TCP中间人代替接收端向发送端转发此二次握手SYN/ACK报文;
步骤1-7)、发送端接收到TCP中间人转发的二次握手SYN/ACK报文,成功建立TCP连接;
步骤1-8)、发送端向接收端回复三次握手ACK报文;
步骤1-9)、TCP中间人截取到发送端的三次握手ACK报文,去掉并缓存MAC头和IP头,提交给TCP处理模块,TCP处理模块缓存此ACK报文,并按照二层数据包的封装格式为此ACK报文填充原有的IP头和MAC头,重新计算数据包的校验和;
步骤1-10)、TCP中间人代替发送端向接收端转发此ACK报文;
步骤1-11)、接收端接收到TCP中间人转发的三次握手ACK报文,接收端成功建立TCP连接。
3.根据权利要求1所述的TCP中间人处理方法,其特征在于,所述步骤2)进一步包括:
步骤2-1)、发送端通过TCP连接向接收端发送应用数据;
步骤2-2)、TCP中间人截取发送端的数据包,去掉并缓存MAC头和IP头,提交给TCP处理模块并缓存;
步骤2-3)、TCP中间人代替接收端向发送端回复ACK响应,此ACK报文的源IP和MAC是接收端,目的IP和MAC是发送端;
步骤2-4)、TCP中间人对数据包进行修改处理,并代替发送端向接收端转发修改后的数据包。
4.根据权利要求1所述的TCP中间人处理方法,其特征在于,所述步骤3)进一步包括:
步骤4-1)、接收端接收到TCP中间人转发的数据包,向发送端回复ACK响应;
步骤4-2)、TCP中间人截取到接收端回复的ACK响应,去掉并缓存MAC头和IP头,提交给TCP处理模块,删除缓存中被ACK确认的数据包。
CN201410817823.3A 2014-12-24 2014-12-24 一种tcp中间人处理方法 Active CN105791239B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410817823.3A CN105791239B (zh) 2014-12-24 2014-12-24 一种tcp中间人处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410817823.3A CN105791239B (zh) 2014-12-24 2014-12-24 一种tcp中间人处理方法

Publications (2)

Publication Number Publication Date
CN105791239A true CN105791239A (zh) 2016-07-20
CN105791239B CN105791239B (zh) 2019-01-25

Family

ID=56378419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410817823.3A Active CN105791239B (zh) 2014-12-24 2014-12-24 一种tcp中间人处理方法

Country Status (1)

Country Link
CN (1) CN105791239B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106357710A (zh) * 2015-07-15 2017-01-25 中国科学院声学研究所 一种基于多核网络处理器的tcp粘合系统及方法
CN110213167A (zh) * 2018-02-28 2019-09-06 吴瑞 一种传输控制协议在网络拥塞时的处理方法和装置
CN114025030A (zh) * 2021-11-08 2022-02-08 北京天融信网络安全技术有限公司 透明代理实现方法、装置、计算机设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040006643A1 (en) * 2002-06-26 2004-01-08 Sandvine Incorporated TCP proxy providing application layer modifications
CN101626384A (zh) * 2009-08-05 2010-01-13 腾讯科技(深圳)有限公司 一种基于tcp协议传输数据包的方法和系统
CN101699797A (zh) * 2009-11-13 2010-04-28 珠海网博信息科技有限公司 使用udp协议进行数据传输的方法
CN101783789A (zh) * 2009-01-16 2010-07-21 深圳市维信联合科技有限公司 网络数据包传输处理方法、设备及系统
CN101834833A (zh) * 2009-03-13 2010-09-15 丛林网络公司 对分布式拒绝服务攻击的服务器防护

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040006643A1 (en) * 2002-06-26 2004-01-08 Sandvine Incorporated TCP proxy providing application layer modifications
CN101783789A (zh) * 2009-01-16 2010-07-21 深圳市维信联合科技有限公司 网络数据包传输处理方法、设备及系统
CN101834833A (zh) * 2009-03-13 2010-09-15 丛林网络公司 对分布式拒绝服务攻击的服务器防护
CN101626384A (zh) * 2009-08-05 2010-01-13 腾讯科技(深圳)有限公司 一种基于tcp协议传输数据包的方法和系统
CN101699797A (zh) * 2009-11-13 2010-04-28 珠海网博信息科技有限公司 使用udp协议进行数据传输的方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106357710A (zh) * 2015-07-15 2017-01-25 中国科学院声学研究所 一种基于多核网络处理器的tcp粘合系统及方法
CN110213167A (zh) * 2018-02-28 2019-09-06 吴瑞 一种传输控制协议在网络拥塞时的处理方法和装置
CN114025030A (zh) * 2021-11-08 2022-02-08 北京天融信网络安全技术有限公司 透明代理实现方法、装置、计算机设备和介质

Also Published As

Publication number Publication date
CN105791239B (zh) 2019-01-25

Similar Documents

Publication Publication Date Title
CN101217493B (zh) 一种tcp数据包的传输方法
US9906630B2 (en) Processing data packets in performance enhancing proxy (PEP) environment
CN101217464B (zh) 一种udp数据包的传输方法
US20070025374A1 (en) TCP normalization engine
WO2018032399A1 (en) Server and method having high concurrency capability
KR20170026541A (ko) 터널화된 트래픽의 최적화를 위한 방법 및 장치
EP1327196A2 (en) System and method for highly scalable high-speed content-based filtering and load balancing in interconnected fabrics
US20160241664A1 (en) Method, device, and system for redirecting data by using service proxy
US20220166832A1 (en) Device and Method for Romote Direct Memory Access
US20150373135A1 (en) Wide area network optimization
WO2016099357A1 (en) Methods and first network node for managing a stream control transmission protocol association
WO2017219813A1 (zh) 一种流量处理方法及透明缓存系统
Chihani et al. A Multipath TCP model for ns-3 simulator
US20150222703A1 (en) Communication system utilizing http
WO2015106453A1 (zh) 处理业务的方法和网络设备
Gomez et al. Tcp usage guidance in the internet of things (iot)
JP6172546B2 (ja) トラフィックステアリング方法、デバイス、及びシステム
CN105791239A (zh) 一种tcp中间人处理方法
CN111385068B (zh) 数据传输方法、装置、电子设备及通信系统
CN108737413B (zh) 传输层的数据处理方法、装置及计算机可读存储介质
CN106789878A (zh) 一种面向大流量环境的文件还原系统以及方法
WO2016154831A1 (zh) 一种实现传输控制协议tcp传输的方法及装置
Zheng et al. Research on multi-path network in cloud computing based on SCTP
WO2015048999A1 (en) Method and proxy node for source to destination packet transfer
Nikitinskiy et al. A stateless transport protocol in software defined networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210803

Address after: Room 1601, 16th floor, East Tower, Ximei building, No. 6, Changchun Road, high tech Industrial Development Zone, Zhengzhou, Henan 450001

Patentee after: Zhengzhou xinrand Network Technology Co.,Ltd.

Address before: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District

Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

TR01 Transfer of patent right