CN103825683A - 基于tcp重传机制的内核代理方法及装置 - Google Patents

基于tcp重传机制的内核代理方法及装置 Download PDF

Info

Publication number
CN103825683A
CN103825683A CN201410099474.6A CN201410099474A CN103825683A CN 103825683 A CN103825683 A CN 103825683A CN 201410099474 A CN201410099474 A CN 201410099474A CN 103825683 A CN103825683 A CN 103825683A
Authority
CN
China
Prior art keywords
kernel
message
data
carry out
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
Application number
CN201410099474.6A
Other languages
English (en)
Other versions
CN103825683B (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.)
BEIJING JIKEJIKE TECHNOLOGY Co Ltd
Original Assignee
BEIJING JIKEJIKE TECHNOLOGY Co Ltd
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 BEIJING JIKEJIKE TECHNOLOGY Co Ltd filed Critical BEIJING JIKEJIKE TECHNOLOGY Co Ltd
Priority to CN201410099474.6A priority Critical patent/CN103825683B/zh
Publication of CN103825683A publication Critical patent/CN103825683A/zh
Application granted granted Critical
Publication of CN103825683B publication Critical patent/CN103825683B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明提供一种基于TCP重传机制的内核代理方法及装置,该方法包括:三次握手不进行代理处理,当在内核中收到第四个数据报文时,在内核中对应用层的第一个数据报文进行分析处理,以决定是否进行代理处理;当需要进行代理处理时,通过伪造数据报文触发TCP重传机制,将数据报文送到用户态去处理。本发明利用TCP的重传机制,提出一种高效的应用层代理解决方案,解决了传统应用层代理解决方案用户体验不好,或设计复杂,或性能差的问题。

Description

基于TCP重传机制的内核代理方法及装置
技术领域
本发明属于计算机通信技术领域,具体涉及一种基于TCP重传机制的内核代理方法及装置。
背景技术
代理指的是在原有的客户端与服务器的通讯过程中加入代理处理逻辑,这样,客户端实际是在与代理进行通讯,然后代理再将客户端发送过来的数据转发给服务器;服务器与客户端之间的通讯也是通过代理转发的,因此,代理可以监听客户端与服务器之间的通讯,并修改其中的数据,以满足上层各种业务的需求。应用层指的是网络协议栈中传输层的上一层,应用层代理指的是在应用层加入代理逻辑,以处理我们关心的业务数据。这是一个通用的技术,但是不同的设计,对性能的影响、代码的复杂度、可扩展性各不相同。当前的通用设计是在内核中,将所有的TCP报文通过网络地址转换(Network Address Translation,简称NAT)机制送到用户态去处理,这样,无论应用层是否关注的数据都会被送到用户态去处理,虽然处理简洁,但会降低使用性能,同时代理容易出错;另一种方案是直接在内核中实现代理,这样的额编码难度较大,并且维护非常难,不易扩展。
超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是:在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的报文,那么就重新发送数据,直到发送成功为止。数据要送到用户态去是需要在TCP层,对三次握手的第一个报文就通过NAT或者其他手段向上送,但是在TCP三次握手完成后,我们才能看见应用层的数据,也即当我们看到应用层数据时,再做代理,已经晚了。
当前的通用设计是在内核中,将所有的TCP报文通过NAT机制送到用户态去处理,这样,无论应用层是否关注的数据都会送到用户态去处理,虽然处理简介,但是会降低使用性能,出现代理出错;另一种方案是直接在内核中实现处理,这样,编码难度大,难维护,不易扩展。
发明内容
本发明提供一种基于TCP重传机制的内核代理方法及装置,解决了传统应用层代理解决方案用户体验不好,或设计复杂,或性能差的问题。
为实现上述目的,本发明提供一种基于TCP重传机制的内核代理方法,该方法包括:
在内核中对应用层的第一个数据报文进行分析处理,以决定是否进行代理处理;
当需要进行代理处理时,通过伪造数据报文触发TCP重传机制,将数据报文送到用户态去处理。
可选地,当需要进行代理处理时,通过伪造数据报文触发TCP重传机制,将数据报文送到用户态去处理包括:
三次握手不进行代理处理,当内核收到第四个数据报文时,对应用层数据进行简单的分析,记录此服务器的IP地址,在内核中伪造一个握手报文发给客户端,客户端重新发送握手报文;
当内核发现服务器的IP地址与当期记录的相同时,将其发送到用户态去处理。
可选地,该方法还包括:当不需要进行代理处理时,则进行正常的报文处理流程。
为实现上述目的,本发明提供一种基于TCP重传机制的内核代理装置,包括:
分析单元,用于在内核中对应用层的第一个数据报文进行分析处理,以决定是否进行代理处理;
处理单元,用于当需要进行代理处理时,通过伪造数据报文触发TCP重传机制,将数据报文送到用户态去处理。
可选地,所述处理单元,用于当需要进行代理处理时,通过伪造数据报文触发TCP重传机制,将数据报文送到用户态去处理包括:
三次握手不进行代理处理,当内核收到第四个数据报文时,对应用层数据进行简单的分析,记录此服务器的IP地址,在内核中伪造一个握手报文发给客户端,客户端重新发送握手报文;
当内核发现服务器的IP地址与当期记录的相同时,将其发送到用户态去处理。
可选地,所述分析单元分析出不需要进行代理处理时,则所述处理单元进行正常的报文处理流程。
本发明提供的基于TCP重传机制的内核代理方法及装置中,三次握手不做代理,这个服务器如果有问题,客户端能够很快发现问题,加强用户体验,当内核中收到第四个数据报文时,会对应用层数据进行简单的分析,如果不需要代理处理,则继续走正常的报文处理的流程,毫无性能损耗;若需要代理的处理,便记录服务器的IP地址,并在内核中伪造一个握手报文发给客户端,以欺骗客户端说握手不成功,客户端会重新发送握手报文,当内核中发现服务器的IP地址与前期记录的相同时,便将其发送到用户态去处理。本发明提供技术方案可以识别出需要进行代理的应用层数据,将其送到用户态中去处理,其他大多数不需要代理的数据直接通过,在保持内核处理简洁性的同时,提高了内核性能,并降低了内核处理出错的概率。
附图说明
图1为本发明实施例一提供的基于TCP重传机制的内核代理方法的流程示意图;
图2为本发明实施例二提供的基于TCP重传机制的内核代理装置的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
图1为本发明实施例一提供的基于TCP重传机制的内核代理方法的流程示意图,如图1所示,该方法包括:
步骤S101、三次握手不进行代理处理,当在内核中收到第四个数据报文时,在内核中对应用层的第一个数据报文进行分析处理,以决定是否进行代理处理。
具体地,数据要送到用户态去是需要在TCP层,对三次握手的第一个报文就通过NAT或其它手段向上送。但是在TCP的三次握手完成后,我们才能看到应用层的数据。换言之,当我们看到应用层数据时,再做代理,看起来已经晚了。
本发明的技术方案中在三次握手中不做代理,这个服务器如果有问题,客户端能够很快的发现问题,加强用户体验。当内核收到第4个数据报文时,会对应用层数据进行简单的分析,若不需要代理处理,则继续走正常的报文处理的流程,毫无性能省耗。若需要代理的处理,便记录此服务器的IP,并在内核中伪造一个握手报文发给客户端,以欺骗客户端说握手不成功。这样,客户端会重新发送握手报文,当内核发现服务器的IP与前期记录的相同时,便将其发送到用户态去处理,在内核中所有的处理过程相当简洁。
步骤S102、当需要进行代理处理时,通过伪造数据报文触发TCP重传机制,将数据报文送到用户态去处理。
具体地,当需要进行代理处理时,三次握手不进行代理处理,当内核收到第四个数据报文时,对应用层数据进行简单的分析,记录此服务器的IP地址,在内核中伪造一个握手报文发给客户端,客户端重新发送握手报文;
当内核发现服务器的IP地址与当期记录的相同时,将其发送到用户态去处理。
本实施例中,识别出需要代理的应用层数据,送到用户态去处理,其它大多数不需要代理的数据直接放过,在保持简洁性的同时,提高了性能,并减少了出问题的概率,需要代理的报文,能很快检测出网络是否通畅,加强了用户体验。
图2为本发明实施例二提供的基于TCP重传机制的内核代理装置的结构示意图,如图2所示,该装置包括:分析单元201和处理单元202,分析单元201用于,处理单元202用于在内核中对应用层的第一个数据报文进行分析处理,以决定是否进行代理处理;202处理单元用于当需要进行代理处理时,通过伪造数据报文触发TCP重传机制,将数据报文送到用户态去处理。
具体地,数据要送到用户态去是需要在TCP层,对三次握手的第一个报文就通过NAT或其它手段向上送。但是在TCP的三次握手完成后,我们才能看到应用层的数据。换言之,当我们看到应用层数据时,再做代理,看起来已经晚了。
本发明提供的基于TCP重传机制的内核代理方法及装置中,三次握手不做代理,这个服务器如果有问题,客户端能够很快发现问题,加强用户体验,当内核中收到第四个数据报文时,会对应用层数据进行简单的分析,如果不需要代理处理,则继续走正常的报文处理的流程,毫无性能损耗;若需要代理的处理,便记录服务器的IP地址,并在内核中伪造一个握手报文发给客户端,以欺骗客户端说握手不成功,客户端会重新发送握手报文,当内核中发现服务器的IP地址与前期记录的相同时,便将其发送到用户态去处理。本发明提供技术方案可以识别出需要进行代理的应用层数据,将其送到用户态中去处理,其他大多数不需要代理的数据直接通过,在保持内核处理简洁性的同时,提高了内核性能,并降低了内核处理出错的概率。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

Claims (6)

1.一种基于TCP重传机制的内核代理方法,其特征在于,包括:
三次握手不进行代理处理,当在内核中收到第四个数据报文时,在内核中对应用层的第一个数据报文进行分析处理,以决定是否进行代理处理;
当需要进行代理处理时,通过伪造数据报文触发TCP重传机制,将数据报文送到用户态去处理。
2.根据权利要求1所述的方法,其特征在于,当需要进行代理处理时,通过伪造数据报文触发TCP重传机制,将数据报文送到用户态去处理包括:
对应用层数据进行简单的分析,记录此服务器的IP地址,在内核中伪造一个握手报文发给客户端,客户端重新发送握手报文;
当内核发现服务器的IP地址与当期记录的相同时,将其发送到用户态去处理。
3.根据权利要求2所述的方法,其特征在于,还包括:当不需要进行代理处理时,则进行正常的报文处理流程。
4.一种基于TCP重传机制的内核代理装置,其特征在于,包括:
分析单元,用于在内核中对应用层的第一个数据报文进行分析处理,以决定是否进行代理处理;
处理单元,用于当需要进行代理处理时,通过伪造数据报文触发TCP重传机制,将数据报文送到用户态去处理。
5.根据权利要求4所述的装置,其特征在于,所述处理单元,用于当需要进行代理处理时,通过伪造数据报文触发TCP重传机制,将数据报文送到用户态去处理包括:
三次握手不进行代理处理,当内核收到第四个数据报文时,对应用层数据进行简单的分析,记录此服务器的IP地址,在内核中伪造一个握手报文发给客户端,客户端重新发送握手报文;
当内核发现服务器的IP地址与当期记录的相同时,将其发送到用户态去处理。
6.根据权利要求5所述的装置,其特征在于,所述分析单元分析出不需要进行代理处理时,则所述处理单元进行正常的报文处理流程。
CN201410099474.6A 2014-03-17 2014-03-17 基于tcp重传机制的内核代理方法及装置 Expired - Fee Related CN103825683B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410099474.6A CN103825683B (zh) 2014-03-17 2014-03-17 基于tcp重传机制的内核代理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410099474.6A CN103825683B (zh) 2014-03-17 2014-03-17 基于tcp重传机制的内核代理方法及装置

Publications (2)

Publication Number Publication Date
CN103825683A true CN103825683A (zh) 2014-05-28
CN103825683B CN103825683B (zh) 2017-05-17

Family

ID=50760537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410099474.6A Expired - Fee Related CN103825683B (zh) 2014-03-17 2014-03-17 基于tcp重传机制的内核代理方法及装置

Country Status (1)

Country Link
CN (1) CN103825683B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104506490A (zh) * 2014-11-27 2015-04-08 北京极科极客科技有限公司 一种路由器内核下的代理方法及装置
US10237153B2 (en) 2015-11-25 2019-03-19 Huawei Technologies Co., Ltd. Packet retransmission method and apparatus
CN109842511A (zh) * 2017-11-28 2019-06-04 网宿科技股份有限公司 一种tcp性能参数的确定方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004004272A1 (en) * 2002-06-26 2004-01-08 Sandvine Incorporated A tcp proxy providing application layer modifications
US20080181213A1 (en) * 2007-01-26 2008-07-31 Mike Ovsiannikov Systems and Methods of Using an IP ID Field for Automatic WAN/LAN Detection
CN101340322A (zh) * 2008-08-29 2009-01-07 陈玲玲 一种web访问出错提示方法
CN101924771A (zh) * 2010-08-26 2010-12-22 北京天融信科技有限公司 一种用于加速应用代理的核心级tcp连接粘合方法
CN103491065A (zh) * 2012-06-14 2014-01-01 中兴通讯股份有限公司 一种透明代理及其实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004004272A1 (en) * 2002-06-26 2004-01-08 Sandvine Incorporated A tcp proxy providing application layer modifications
US20080181213A1 (en) * 2007-01-26 2008-07-31 Mike Ovsiannikov Systems and Methods of Using an IP ID Field for Automatic WAN/LAN Detection
CN101340322A (zh) * 2008-08-29 2009-01-07 陈玲玲 一种web访问出错提示方法
CN101924771A (zh) * 2010-08-26 2010-12-22 北京天融信科技有限公司 一种用于加速应用代理的核心级tcp连接粘合方法
CN103491065A (zh) * 2012-06-14 2014-01-01 中兴通讯股份有限公司 一种透明代理及其实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
冯东雷等: ""多层交换技术在宽带防火墙***中的应用"", 《计算机工程与应用》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104506490A (zh) * 2014-11-27 2015-04-08 北京极科极客科技有限公司 一种路由器内核下的代理方法及装置
US10237153B2 (en) 2015-11-25 2019-03-19 Huawei Technologies Co., Ltd. Packet retransmission method and apparatus
CN109842511A (zh) * 2017-11-28 2019-06-04 网宿科技股份有限公司 一种tcp性能参数的确定方法及***
CN109842511B (zh) * 2017-11-28 2022-07-08 网宿科技股份有限公司 一种tcp性能参数的确定方法及***

Also Published As

Publication number Publication date
CN103825683B (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
US10474514B2 (en) Method for flow control and for reliable communication in a collaborative environment
US10392823B2 (en) Synthetic client
CN108009027A (zh) 队列消息一致性的实现方法、装置、设备及存储介质
US9274894B1 (en) System and method for providing a watchdog timer to enable collection of crash data
CN105898893B (zh) 一种移动终端与物联网设备全双工通信的方法
CN103491162B (zh) 基于移动互联网的信息分享方法及***
EP2866395A1 (en) Maximum transmission unit negotiation method and data terminal
WO2016090995A1 (zh) 页面与长连接服务器间的通信方法及客户端
CN104079571A (zh) 一种识别Android模拟器的方法及装置
CN106452973A (zh) 维持通信链路长连接的方法、装置及终端
CN107203443A (zh) 一种基于kvm虚拟化的虚拟机高可用的方法与装置
CN103825683A (zh) 基于tcp重传机制的内核代理方法及装置
CN111385068B (zh) 数据传输方法、装置、电子设备及通信***
CN106375148A (zh) 即时通讯中的动态网络心跳处理方法及终端
US10476919B2 (en) System and method for reliable messaging between application sessions across volatile networking conditions
US10033489B1 (en) Managing communications based on network conditions
CN115348333B (zh) 基于udp双端通信交互的数据传输方法、***及设备
CN109286665B (zh) 实时移动游戏长链接处理方法及装置
CN101001213A (zh) 一种短消息传输***及方法
CN112787954A (zh) 一种加密挖矿流量识别方法、***、装置及存储介质
CN101616164B (zh) 一种传输报文的方法和装置
CN111949542B (zh) 回归测试或者压力测试的生成数据的提取方法及装置
CN102883129B (zh) 视频通信方法及终端
CN107623562A (zh) 数据传输方法、装置及电子设备
CN115118392A (zh) D-sack的确定方法、处理器与通信***

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
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Kernel proxy method and device based on TCP (transmission control protocol) retransmission mechanism

Effective date of registration: 20180625

Granted publication date: 20170517

Pledgee: Beijing first financing Company limited by guarantee

Pledgor: BEIJING JIKEJIKE TECHNOLOGY CO., LTD.

Registration number: 2018990000486

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170517

Termination date: 20210317