CN102130910B - Tcp代理插入和卸载方法及业务网关设备 - Google Patents
Tcp代理插入和卸载方法及业务网关设备 Download PDFInfo
- Publication number
- CN102130910B CN102130910B CN201110048376.6A CN201110048376A CN102130910B CN 102130910 B CN102130910 B CN 102130910B CN 201110048376 A CN201110048376 A CN 201110048376A CN 102130910 B CN102130910 B CN 102130910B
- Authority
- CN
- China
- Prior art keywords
- message
- tcp
- sequence number
- received
- client
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000005540 biological transmission Effects 0.000 title claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 89
- 238000004891 communication Methods 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 29
- 238000012937 correction Methods 0.000 claims description 27
- 238000012966 insertion method Methods 0.000 claims description 7
- 230000002457 bidirectional effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 14
- 238000003780 insertion Methods 0.000 description 8
- 230000037431 insertion Effects 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- 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]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- 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]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种TCP代理插入和卸载方法及业务网关设备。该方法包括在TCP连接建立时,通过L3层转发TCP客户端与TCP服务端之间的TCP连接建立报文,并记录TCP连接建立报文的选项信息和序号信息;在TCP连接建立后根据代理策略对接收的报文进行判定;对于根据代理策略确定未需要代理的报文,通过L3层转发,并根据所述接收的报文的序号信息对记录的序号信息进行更新;对于根据代理策略确定需要代理的报文,根据记录的选项信息和序号信息生成客户端伪套接字和服务端伪套接字,采用所述客户端伪套接字和服务端伪套接字终结所述接收的报文,并通过L7层处理终结后的报文,转发处理后的报文。本发明实施例可以提高系统性能。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种传输控制协议(Transmission Control Protocol,简称TCP)代理插入和卸载方法及业务网关设备。
背景技术
为了解决移动宽带业务(Mobile BroadBand,MBB)运营面临的挑战,通常在移动终端与移动互联网连接的关口上布属业务网关设备,实现精细化数据业务控制管理。为了实现精细化数据业务控制管理,通常业务网关设备需要解析层7(L7层)数据包的内容,并根据其内容和相关属性进行相关处理,例如内容适配、内容增强、防病毒、网络加速。由于基本上所有网络服务都是基于TCP,为了实现上述的相关处理,需要业务网关设备监听每个TCP连接,并在TCP连接上增加数据、修改数据、删除数据等。然而,由于TCP具有面向连接、面向数据流、可靠及提供流控机制的特点,如果简单地对数据进行增加、修改或删除操作,必然会影响连接的正确性。为了在保证TCP连接正确的基础上进行增加数据、修改数据或者删除数据等操作,TCP代理(TCP Proxy)技术应运而生。
TCP代理包括显式代理和透明代理,透明代理方式下,终端无需指定代理的IP地址,业务网关设备通过监听连接实现对连接的代理。透明代理的大致流程如下:终端(Mobile Station,MS)向业务网关设备发送连接建立报文,业务网关设备接收到该连接建立报文后判断是否需要代理,如果不需要代理,则将该连接建立报文以及后续报文直接转发给业务提供商(Serving Provider,SP)。如果需要代理,业务网关设备在连接建立阶段根据TCP连接信息生成伪套接字,以分别伪装成SP或者MS;在分别伪装成SP或MS后,业务网关设备可以对连接建立报文及后续的报文进行终结处理,并对终结的数据在L7层进行上述的相关处理,例如内容适配、内容增强、防病毒、网络加速等。
从上述TCP代理的流程可以看出,对于一个TCP连接而言,要么始终进行TCP代理,要么始终不进行TCP代理,在进行TCP代理时需要经过L7层转发,不进行TCP代理时直接透传。直接透传转发的性能是远远高于通过L7层层转发的性能。运营商通过业务网关设备提供的精细化数据业务控制管理,例如在线点播、超文本传输协议(HyperText TransferProtocol,HTTP)大文件下载、头增强等业务中,通常是MS通过业务网关设备向SP进行业务请求时的首报文或前几个报文需要进行上述的相关处理,而后续的大量报文是不需要上述处理的。然而,按照现有TCP代理的流程,则会一直进行TCP代理,这无疑会降低系统性能。
发明内容
本发明实施例是提供一种TCP代理插入和卸载方法及业务网关设备,用以在一定程度上解决现有技术中始终进行TCP代理造成的性能下降问题,从而提高系统性能。
本发明实施例提供了一种TCP代理插入方法,包括:
在TCP连接建立时,通过L3层转发TCP客户端与TCP服务端之间的TCP连接建立报文,并记录所述TCP连接建立报文的选项信息和序号信息;
在TCP连接建立后,根据代理策略对接收的报文进行代理判定;
对于根据代理策略确定未需要代理的报文,通过L3层转发所述接收的报文,并根据接收的报文的序号信息对记录的序号信息进行更新;
对于根据代理策略确定需要代理的报文,根据记录的选项信息和序号信息生成客户端伪套接字和服务端伪套接字,采用所述客户端伪套接字和服务端伪套接字终结所述接收的报文,并通过L7层处理终结后的报文,转发处理后的报文。
本发明实施例提供了一种TCP代理卸载方法,包括:
采用TCP代理通过L7层处理转发TCP客户端与TCP服务端之间的报文;
在根据代理策略确定不需要代理后,指示所述TCP客户端和TCP服务端暂停发送报文,将TCP代理缓存的报文分别发送给所述TCP客户端和TCP服务端,并生成粘连信息;
根据所述粘连信息,对所述TCP客户端与所述TCP服务端在暂停发送报文结束后重新传输的报文进行序号修正处理,使得修正后的序号与修正前的序号的差值为所述粘连信息中包括的最后发送的报文的序号与期望接收的报文的序号的差值,通过L3层转发处理后的报文。
本发明实施例提供了一种业务网关设备,包括:
通信接口模块,用于接收来自TCP客户端或者TCP服务端的报文;
代理策略判定模块,用于根据代理策略判断所述通信接口模块接收的报文是否需要TCP代理;
三层转发模块,用于对所述代理策略判定模块确定不需要TCP代理的报文,通过L3层转发;
连接信息记录模块,用于对所述三层转发模块转发的TCP连接建立过程中的TCP连接建立报文,记录所述TCP连接建立报文的选项信息和序号信息,以及对所述三层转发模块转发的TCP连接建立后的报文,根据所述TCP连接建立后的报文的序号信息对记录的序号信息进行更新;
TCP代理处理模块,用于对所述代理策略判定模块确定需要TCP代理的报文,根据记录的选项信息和序号信息生成客户端伪套接字和服务端伪套接字,并采用所述客户端伪套接字和服务端伪套接字终结;
应用模块,用于对终结后的报文进行L7层处理,转发处理后的报文。
本发明实施例提供了一种业务网关设备,包括:
通信接口模块,用于接收来自TCP客户端或者TCP服务端的报文;
代理策略判定模块,用于根据代理策略判断所述通信接口模块接收的报文是否需要TCP代理;
TCP代理处理模块,用于在所述代理策略判定模块判断出需要TCP代理时,生成客户端伪套接字和服务端伪套接字,并对接收的报文进行终结处理;
应用模块,用于对所述TCP代理处理模块终结后的报文进行L7层处理后转发;
所述TCP代理处理模块还用于在所述代理策略判定模块根据代理策略确定不需要代理后,指示所述TCP客户端和TCP服务端暂停发送报文,将缓存的报文分别发送给所述TCP客户端和TCP服务端,并生成粘连信息;
连接粘连处理模块,用于根据所述粘连信息,对所述TCP客户端与所述TCP服务端在暂停发送报文结束后重新传输的报文进行序号修正处理,使得修正后的序号与修正前的序号的差值为所述粘连信息中包括的最后发送的报文的序号与期望接收的报文的序号的差值;
三层转发模块,用于通过L3层转发所述连接粘连处理模块处理后的报文。
可见,由上述技术方案可知,本发明实施例通过在TCP连接建立后对接收的报文进行TCP代理判定,可以在TCP连接建立后根据实际需要在一定时间内进行TCP代理,而在另外的一定时间内不进行TCP代理,而不是现有技术中在TCP连接建立后始终进行TCP代理或者始终不进行TCP代理,可以实现灵活代理,避免始终代理造成的性能下降问题,实现系统性能的提升。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明业务网关设备实施例一的结构示意图;
图2为本发明TCP代理插入方法实施例一的流程示意图;
图3为本发明实施例中TCP代理插入前后的传输路径示意图;
图4为本发明TCP代理插入方法实施例二的流程示意图;
图5为本发明实施例中MS向SP方向上传输报文的示意图;
图6为本发明实施例中SP向MS方向上传输报文的示意图;
图7为本发明实施例中记录并更新期望接收的报文的报文序号的流程示意图;
图8为本发明实施例中在获取需要代理后记录并更新ACK序号的流程示意图;
图9为本发明TCP代理卸载方法的实施例一的流程示意图;
图10为本发明实施例中TCP代理卸载过程中的数据传输路径示意图;
图11为本发明TCP代理卸载方法实施例二的流程示意图;
图12为本发明实施例中动态插入及卸载TCP代理对应的业务一的流程示意图;
图13为本发明实施例中动态插入及卸载TCP代理对应的业务二的流程示意图;
图14为本发明实施例中需要动态插入TCP代理时业务网关设备的结构示意图;
图15为本发明实施例中需要动态卸载TCP代理时业务网关设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了实现TCP代理的动态插入与卸载,本发明实施例提供了一种业务网关设备,图1为本发明业务网关设备实施例一的结构示意图,包括:通信接口模块11、代理策略判定模块12、三层转发模块13、TCP代理处理模块14、应用模块15、连接信息记录模块16和连接粘连处理模块17。
其中,通信接口模块11可以提供IP包的接收和发送功能;代理策略判定模块12可以提供是否对连接进行代理的判定功能;三层转发模块13可以提供IP包的主机接收和转发处理;TCP代理处理模块14可以提供标准的TCP协议处理机制,能够根据TCP连接报文的选项信息需要生成TCP客户端伪套接字和TCP服务端伪套接字,以分别伪装成TCP客户端(伪客户端)和TCP服务端(伪TCP服务端);应用模块15可以提供基本业务协议的识别、解析、以及在连接上增加、删除、修改数据的功能,以及代理指示功能;连接信息记录模块16可以提供TCP连接关键信息的监听与记录功能;连接粘连处理模块17可以提供在TCP连接卸载后的连接序号的修正处理。
基于图1所示的结构,可以实现TCP代理的插入及卸载,下面分别描述TCP代理插入方法及TCP代理卸载方法。
图2为本发明TCP代理插入方法实施例一的流程示意图,包括:
步骤21:在TCP连接建立时,业务网关设备通过L3层转发TCP客户端与TCP服务端之间的TCP连接建立报文,并记录所述TCP连接建立报文的选项信息和序号信息。
例如,本发明实施例中以TCP客户端为MS、TCP服务端为SP为例。
如背景技术中所描述的,TCP是基于连接的协议,MS与SP进行数据传输之前需要建立TCP连接。现有技术中,在TCP建立连接时会进行是否需要TCP代理的判断,可能会对TCP连接建立报文采用TCP代理处理并在后续一直进行TCP代理,或者在TCP连接建立过程中判断出不进行TCP代理且后续一直不进行TCP代理。
但是,本发明实施例中,在TCP建立连接过程中,始终不进行TCP代理,即本发明实施例是通过L3层直接透传TCP连接建立报文(3次握手报文),不会经过L7层对TCP连接建立报文进行处理,而在后续过程中可能会根据策略进行TCP代理而不是如现有技术中一直不进行TCP代理。
参见图1,在TCP连接建立报文传输过程中,可以由连接信息记录模块记录TCP连接建立报文的选项信息和序号信息。
具体地,参见图1,TCP连接建立报文的传输路径1可以为:通信接口模块→代理策略判断模块→三层转发模块→通信接口模块。在上述路径下,三层转发模块将该选项信息和序号信息发送给连接信息记录模块。可以理解的是,也可以是三层转发模块将TCP连接建立报文发送给连接信息记录模块,由连接信息记录模块记录该选项信息和序号信息后再返回给三层转发模块,并通过通信接口模块进行转发。
步骤22:业务网关设备在TCP连接建立后,根据代理策略对接收的报文进行代理判定,若不需要代理,则执行步骤23,否则执行步骤24;
其中,可以由应用模块向代理策略判定模块发送指示消息,该指示消息中携带表明哪些报文需要代理,哪些不需要代理的代理策略,之后,代理策略判定模块根据该代理策略进行TCP代理判定。
步骤23:对于根据代理策略确定未需要代理的报文,业务网关设备通过L3层转发所述接收的报文,并根据接收的报文的序号信息对记录的序号信息进行更新。
其中,该报文通过L3层转发的流程可以参见上述对TCP连接建立报文的转发流程,并且与TCP连接建立报文不同的是,在TCP连接建立后转发报文时是采用接收的报文的序号信息更新已记录的序号信息。
步骤24:对于根据代理策略确定需要代理的报文,业务网关设备根据记录的选项信息和序号信息生成客户端伪套接字和服务端伪套接字,采用所述客户端伪套接字和服务端伪套接字终结所述接收的报文,并通过L7层处理终结后的报文,转发处理后的报文。
例如,参见图1,应用模块可以根据具体业务确定是否需要TCP代理,如,应用模块可以设定第一业务的首个数据包需要TCP代理,其余数据包不需要TCP代理,之后应用模块可以将设定的是否需要TCP代理的策略写入代理策略判定模块。代理策略判定模块在接收到报文后可以根据该写入的代理策略进行判定。
如果代理策略判定模块判断出需要代理,则将报文发送给TCP代理处理模块,否则发送给三层转发模块。
TCP代理处理模块在接收到报文后,可以从连接信息记录模块中获取选项信息和序号信息,根据该选项信息和序号信息生成客户端伪套接字(MS socket)和服务端伪套接字(SP socket)。
在生成伪套接字后,业务网关设备可以分别伪装成SP和MS,对报文进行终结处理,与真实的MS和SP通信,例如客户端伪套接字对应的为伪客户端(MS’),与真实的SP通信,服务端伪套接字对应的为伪服务端(SP’),与真实的MS通信。SP’与MS’之间的报文需要经过L7层处理,即由应用模块进行数据的增、删、修改等处理。
具体地,参见图1,在需要代理时,报文的路径2为:通信接口模块→代理策略判定模块→TCP代理处理模块→应用模块→TCP代理处理模块→三层报文转发模块→通信接口模块。
可以理解的是,如果不需要代理,则数据路径如路径1所示。
具体地,图3为本发明实施例中TCP代理插入前后的传输路径示意图,参见图3,其中,图3中,TCP客户端具体为MS,TCP服务端具体为SP,伪客户端为MS’,伪服务端为SP’。如果不需要代理,则传输路径为路径1,如果需要代理,则传输路径为路径2。
本实施例通过在TCP连接建立时不进行TCP代理的判定,而是记录相关信息,在需要TCP代理时根据记录的相关信息生成伪套接字,可以实现TCP代理的动态插入,即在需要TCP代理时插入TCP代理,而不是如现有技术在TCP建立阶段判断出需要TCP代理后,在后续流程中始终采用TCP代理。本实施例可以实现灵活代理,避免始终代理造成的性能下降问题,实现系统性能的提升。
本实施例在需要TCP代理时插入TCP代理,可以实现灵活代理,避免始终代理造成的性能下降问题,实现系统性能的提升。
图4为本发明TCP代理插入方法实施例二的流程示意图,包括:
步骤401:通信接口模块接收通信一端发送的控制报文,并将控制报文发送给代理策略判定模块。
其中,控制报文为TCP连接建立报文。
步骤402:代理策略判定模块判断出控制报文不需要进行代理,并将控制报文发送给三层转发模块。
例如,代理策略判定模块中可以预先配置一些策略,指定某些五元组或者净荷中的数据需要代理,之后,可以根据接收的报文的五元组或者净荷中的数据等判定接收的报文是否需要代理。特别地,该步骤中由于报文是控制报文,是不需要代理的,因此,代理策略判定模块可以判定出不进行代理,将控制报文转发给三层转发模块。
步骤403:三层转发模块将控制报文的选项信息发送给连接信息记录模块。
步骤404:连接信息记录模块保存该选项信息。
步骤405:在TCP连接建立完成后,通信接口模块接收报文,并将接收的报文发送给代理策略判定模块。
步骤406:代理策略判定模块判断是否需要代理,如果不需要,执行步骤407,否则,执行步骤408。
步骤407:代理策略判定模块将不需要代理的报文发送给三层转发模块。之后,执行步骤414。
步骤408:代理策略判定模块将需要代理的报文发送给TCP代理处理模块。
步骤409:TCP代理处理模块判断是否开始代理,若是,执行步骤410。
例如,TCP代理处理模块可以获取接收的报文的起始数据序号,如果TCP代理处理模块判断出小于该起始数据序号的数据都被确认(ACK),则开始代理。即在代理过程中如果收发影响断链的报文,则中止代理过程,继续进行三层转发;如果不需要代理,则继续记录报文的序号直至需要代理。
具体地,TCP代理处理模块可以从连接信息记录模块中获取记录的数据序号信息,根据该序号信息来判断上述的是否确认。具体地,连接信息记录模块中会记录获取需要TCP代理时,由TCP客户端到TCP服务端方向上以及由TCP服务端到TCP客户端方向上期望接收的报文的报文序号和报文的ACK序号。如果记录的所述由TCP客户端到TCP服务端方向上期望接收的报文的报文序号,等于记录的所述由TCP服务端到TCP客户端方向上报文的ACK序号,且记录的所述由TCP服务端到TCP客户端方向上期望接收的报文的报文序号,等于记录的所述由TCP客户端到TCP服务端方向上报文的ACK序号,则上述确认成立,开始代理。
例如,期望接收的报文的报文序号包括sp_rcv_nxt和ms_rcv_nxt,ACK序号包括sp_lastack和ms_lastlack。sp_rcv_nxt为MS向SP方向上记录的期望接收的报文的报文序号,最终记录的该值为代理开始时的值,ms_rcv_nxt为SP向MS方向上记录的期望接收的报文的报文序号,最终记录的值为代理开始时的值,sp_lastack为SP向MS方向上最大的ACK序号,ms_lastlack为MS向SP方向最大的ACK序号。
如果sp_rcv_nxt=sp_lastack,并且ms_rcv_nxt=ms_lastlack,则开始TCP代理。
上述序号的记录及更新方式可以参见下述描述。
步骤410:TCP代理处理模块生成伪套接字,并将需要代理的报文发送给应用模块。
步骤411:应用模块对需要代理的报文进行L7层处理,例如内容适配、内容增强、防病毒、网络加速、广告插入等。
步骤412:应用模块将L7层处理后的报文发送给TCP代理处理模块。
步骤413:TCP代理处理模块将该L7层处理后的报文发送给三层转发模块。
步骤414:三层转发模块将接收的报文的数据序号进行记录及更新,将更新后的序号发送给连接信息记录模块。
步骤415:连接信息记录模块保存更新后的数据序号。
可以理解的是,也可以是三层转发模块将报文发送给连接信息记录模块,由连接信息记录模块进行记录及更新。
步骤416:三层转发模块将接收的报文发送给通信接口模块,以发送给通信的另一端。
图5为本发明实施例中MS向SP方向上传输报文的示意图,图6为本发明实施例中SP向MS方向上传输报文的示意图。每个报文包括多段数据,例如在途中的报文包括数据4、5、6及数据D、E、F。
图7为本发明实施例中记录并更新期望接收的报文的报文序号的流程示意图,包括:
步骤71:比较接收的报文的报文序号(起始数据序号)与当前记录的期望接收的报文的报文序号,之后执行如下步骤中的一项以进行相应处理。
步骤72:如果接收的报文的起始数据序号大于当前记录的期望接收的报文的报文序号,则对所述接收的报文进行缓存直至接收到的报文的起始数据序号等于当前记录的期望接收的报文的报文序号,将按序接收的报文转发给对端,并将记录的期望接收的报文序号更新为下一个按序接收的期望接收的报文的起始数据序号;
步骤73:如果接收的报文的起始数据序号小于当前记录的期望接收的报文的报文序号,则对所述接收的报文进行L3层转发,并保持记录的期望接收的报文的报文序号不变;
步骤74:如果接收的报文的起始数据序号等于当前记录的期望接收的报文的序号,则对所述接收的报文进行L3层转发,并将记录的期望接收的报文的报文序号更新为下一个按序接收的期望接收的报文的起始数据序号。
在MS到SP的方向上,
1)如果接收的报文的起始数据序号大于当前记录的sp_rcv_nxt,则缓存接收的报文直至接收到起始数据序号为当前记录的sp_rcv_nxt的报文,之后按序转发,并将记录的sp_rcv_nxt的值更新为下一个按序接收的报文的起始数据序号。
例如,当前记录的sp_rcv_nxt=5,起始数据序号>5的报文均被缓存直至接收到起始数据序号=5的报文,之后,将按序接收的报文转发,并更新sp_rcv_nxt=5+报文的长度,如果报文的长度为1,则更新后的sp_rcv_nxt=6。
2)如果接收的报文的起始数据序号小于当前记录的sp_rcv_nxt,则转发该接收的报文,并保持记录的sp_rcv_nxt的值不变。
例如,当前记录的sp_rcv_nxt=5,起始数据序号<5的报文均被转发,并且记录的sp_rcv_nxt=5。
3)如果接收的报文的起始数据序号等于当前记录的sp_rcv_nxt,则转发该接收的报文,并将记录的sp_rcv_nxt的值更新为下一个按序接收的报文的起始数据序号。
例如,当前记录的sp_rcv_nxt=5,当接收的报文的起始数据序号=5,则将该接收的报文转发,并更新sp_rcv_nxt=5+报文的长度,如果报文的长度为1,则更新后的sp_rcv_nxt=6。
在SP到MS的方向上,
1)如果接收的报文的起始数据序号大于当前记录的ms_rcv_nxt,则缓存接收的报文直至接收到起始数据序号为当前记录的ms_rcv_nxt的报文,之后按序转发,并将记录的ms_rcv_nxt的值更新为下一个按序接收的报文的起始数据序号。
例如,当前记录的ms_rcv_nxt=5,起始数据序号>5的报文均被缓存直至接收到起始数据序号=5的报文,之后,将按序接收的报文转发,并更新ms_rcv_nxt=5+报文的长度,如果报文的长度为1,则更新后的ms_rcv_nxt=6。
2)如果接收的报文的起始数据序号小于当前记录的ms_rcv_nxt,则转发该接收的报文,并保持记录的ms_rcv_nxt的值不变。
例如,当前记录的ms_rcv_nxt=5,起始数据序号<5的报文均被转发,并且记录的ms_rcv_nxt=5。
3)如果接收的报文的起始数据序号等于当前记录的ms_rcv_nxt,则转发该接收的报文,并将记录的ms_rcv_nxt的值更新为下一个按序接收的报文的起始数据序号。
例如,当前记录的ms_rcv_nxt=5,当接收的报文的起始数据序号=5,则将该接收的报文转发,并更新ms_rcv_nxt=5+报文的长度,如果报文的长度为1,则更新后的ms_rcv_nxt=6。
在未获取需要代理的策略时,通过L3层转发报文,并将记录的ACK序号更新为接收到的报文中的最大ACK序号。
图8为本发明实施例中在获取需要代理后记录并更新ACK序号的流程示意图,包括:
步骤81:根据所述记录的期望接收的报文的报文序号,对接收的报文进行处理;
步骤82:将记录的ACK序号更新为接收到的报文的最大ACK序号。对
于步骤81可以如下实现:
1)当所述报文是包含ACK标记的数据报文时,步骤81包括:
如果所述数据报文的起始数据序号小于同方向上的分界线对应的报文序号,且所述数据报文中包含序号大于等于所述同方向上的分界线对应的报文序号的数据,则在所述数据报文中删除所述序号大于等于所述同方向上的分界线对应的报文序号的数据,并修改报文长度以及重新计算校验和后转发给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端;
或者,
如果所述数据报文的起始数据序号大于等于同方向上的分界线对应的报文序号,则删除所述数据报文中的数据,修改报文长度、将所述数据报文的报文序号修改为同方向上的分界线对应的报文序号,并重新计算校验和后转发给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端;
或者,
如果所述数据报文的起始数据序号均小于同方向上的分界线对应的报文,且所述数据报文中不包含所述同方向上的分界线对应的报文序号之后的数据,则将所述数据报文转发给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端。
2)当所述报文是纯ACK报文时,步骤81包括:
将纯ACK报文透传给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端。
seq标识接收的报文的起始数据序号,具体如下:
在MS到SP的方向上,
1)对于报文为包含ACK标记的数据报文时,
情况一:如果seq<小于当前记录的sp_rcv_nxt,且所述接收的数据报文中包含序号大于等于当前记录的sp_rcv_nxt的数据,则在所述接收的数据报文中删除所述序号大于等于当前记录的sp_rcv_nxt的数据,并修改报文长度以及重新计算校验和后转发给对端;
情况二:如果seq>=sp_rcv_nxt,则删除所述接收的数据报文中的数据,并修改报文长度,将seq更新为sp_rcv_nxt,并重新计算校验后转发给对端;
情况三:如果接收的数据报文中包含的数据的序号均小于当前记录的sp_rcv_nxt,且所述数据报文中不包含大于等于sp_rcv_nxt的数据,则将所述接收的数据报文转发给对端。
2)对于所述报文是纯ACK报文时,则直接转发纯ACK报文给SP。
在SP到MS的方向上,
1)对于报文为包含ACK标记的数据报文时,
情况一:如果seq<小于当前记录的ms_rcv_nxt,且所述接收的数据报文中包含序号大于等于当前记录的ms_rcv_nxt的数据,则在所述接收的数据报文中删除所述序号大于等于当前记录的ms_rcv_nxt的数据,并修改报文长度以及重新计算校验和后转发给对端,保持处理后的数据报文的起始数据序号不变;
情况二:如果seq>=ms_rcv_nxt,则删除所述接收的数据报文中的数据,并修改报文长度,将seq更新为ms_rcv_nxt后,重新计算校验和后转发给对端;
情况三:如果接收的数据报文中包含的数据的序号均小于当前记录的ms_rcv_nxt,且不包含大于等于ms_rcv_nxt的数据,则将所述接收的数据报文转发给对端。
2)对于所述报文是纯ACK报文时,则直接转发该纯ACK报文给MS。
本实施例通过上述对序号信息的处理,可以实现在合适的时机插入TCP代理,提高系统性能。
图9为本发明TCP代理卸载方法的实施例一的流程示意图,包括:
步骤91:业务网关设备采用TCP代理通过L7层处理转发TCP客户端与TCP服务端之间的报文。
例如,参见图1,以路径1转发报文。
步骤92:业务网关设备在根据代理策略确定不需要代理后,指示所述TCP客户端和TCP服务端暂停发送报文,将TCP代理缓存的报文分别发送给所述TCP客户端和TCP服务端,并生成粘连信息。
其中,参见图1,代理策略判定模块根据预先保存的策略信息可以确定不需要代理。
在不需要代理后,TCP代理处理模块将更新后的数据序号(获取不需要代理时对应的TCP客户端最后发送的报文的报文序号和ACK序号,以及TCP服务端最后发送的报文的报文序号和ACK序号)发送给连接粘连处理模块。
步骤93:业务网关设备根据所述粘连信息,对所述TCP客户端与所述TCP服务端在暂停发送报文结束后重新传输的报文进行序号修正处理,使得修正后的序号与修正前的序号的差值为所述粘连信息中包括的最后发送的报文的序号与期望接收的报文的序号的差值,通过L3层转发处理后的报文。
在卸载代理后,粘连信息处理模块可以根据粘连信息处理后续的报文。
图10为本发明实施例中TCP代理卸载过程中的数据传输路径示意图,其中,TCP代理卸载前,数据传输路径为101;TCP代理卸载中,数据传输路径为102,此时需要业务网关设备通知MS和SP的窗口为0;TCP代理卸载后,数据传输路径为103,需要经过连接粘连处理模块的处理。
本实施例通过在不需要TCP代理时卸载代理,可以避免始终TCP代理造成的系统性能下降问题,提高系统性能。
图11为本发明TCP代理卸载方法实施例二的流程示意图,包括:
步骤111:需要代理的报文经过TCP代理处理模块及应用模块处理后,在通信两端之间进行传输。
具体实现可以参见上述TCP代理插入流程。
步骤112:代理策略判定模块判断出不需要代理。
步骤113:代理策略判定模块向TCP代理处理模块发送卸载的指示信息。
步骤114:TCP代理处理模块分别伪装成MS、SP向真实的SP、MS发送接收窗口为0的通告,以避免业务网关设备继续接收数据。
其中,TCP代理处理模块可以用MS伪套接字伪装成MS(MS’),用SP伪套接字伪装成SP(SP’)。
另外,通告接收窗口为0后,即使业务网关设备继续接收到数据,也将接收的数据从报文中删除,但是继续处理报文。
步骤115:TCP代理处理模块将缓存的数据分别发送给MS和SP,并携带窗口(windows字段的值)为0。
步骤116:TCP代理处理模块将粘连信息发送给连接粘连处理模块。
当然,如果在粘连过程中如果收到了RST、FIN等断链报文,则终止粘连。
步骤117:连接粘连处理模块接收通信一端发送的报文。
对于卸载之后的窗口放大过程可以由MS、SP自动完成,也可以由业务网关设备向MS和SP发送重复的报文,但窗口为非0。
步骤118:连接粘连处理模块对接收的报文进行修正处理。
例如,在不需要重定向的情况下,该粘连信息可以包括:客户端伪套接字(MS’)记录的由TCP客户端到TCP服务端方向上最后发送的报文的报文序号(MS’_seq)和ACK序号(MS’_ack)以及期望接收的报文的报文序号(MS’_seq_rcv_next)和ACK序号(MS’_ack_rcv_next);服务端伪套接字记录的由TCP服务端到TCP客户端方向上最后发送的报文的报文序号(SP’_seq)和ACK序号(SP’_ack)以及期望接收的报文的报文序号(SP’_seq_rcv_next)和ACK序号(SP’_ack_rcv_next);
所述根据所述粘连信息处理所述TCP客户端与所述TCP服务端之间的报文,包括:
对由TCP客户端到TCP服务端方向上的报文的报文序号和ACK序号进行修正,使得修正后的报文序号与修正前的报文序号的差值为伪TCP客户端记录的最后发送的报文的报文序号与伪TCP服务端记录的期望接收的报文的报文序号的差值,以及,使得修正后的ACK序号与修正前的ACK序号的差值为伪TCP客户端记录的最后发送的报文的ACK序号与伪TCP服务端记录的期望接收的报文的ACK序号的差值;
对由TCP服务端到TCP客户端方向上的报文的报文序号和ACK序号进行修正,使得修正后的报文序号与修正前的报文序号的差值为伪TCP服务端记录的最后发送的报文的报文序号与伪TCP客户端记录的期望接收的报文的报文序号的差值,以及,使得修正后的ACK序号与修正前的ACK序号的差值为伪TCP服务端记录的最后发送的报文的ACK序号与伪TCP客户端记录的期望接收的报文的ACK序号的差值。为所述获取不需要代理时对应的TCP客户端最后发送的报文的报文序号和ACK序号,以及TCP服务端最后发送的报文的报文序号和ACK序号,所述处理包括:
例如,如果粘连信息中sp′socket记录的序号分别为:SP’_seq=200,SP’_ack=80,SP’_seq_rcv_next=300,SP’_ack_rcv_next=60;ms′socket记录的序号分别为:MS’_seq=100,MS’_ack=50,MS’_seq_rcv_next=400,MS’_ack_rcv_next=70。则把MS到SP方向上的报文序号和ACK序号为300、60的报文修正为报文序号为100、ACK序号为50。将SP到MS方向上报文序号和ACK序号分别为400、70的报文修正为报文序号为200,ACK序号为80。
步骤119:连接粘连处理模块将修正后的报文发送给通信的另一端。
本实施例通过在不需要TCP代理时卸载TCP代理,可以避免始终TCP代理造成的问题,提高系统性能。
图12为本发明实施例中动态插入及卸载TCP代理对应的业务一的流程示意图,参见图12,前几个HTTP响应进行L7层层转发,然后后续长时间、大流量的视频数据下载可直接进行L3层层转发,以加速下载。
图13为本发明实施例中动态插入及卸载TCP代理对应的业务二的流程示意图,参见图13,根据业务需要对TCP交互过程中动态进行代理、与代理卸载,从而提升性能。
表1为CISCO 2010年的流量模型分析数据,其中可见P2P、Email、WebTV占总流得的60%以上;这些业务通常都是首包才需要进行增值业务处理,该专利可实现任意时刻的代理与代理卸载,而无需都经过L7层处理,单流性能可提升60%以下。
注:数据来源于CISCO 2010年的流量模型分析数据
表1
图14为本发明实施例中需要动态插入TCP代理时业务网关设备的结构示意图,包括通信接口模块141、代理策略判定模块142、三层转发模块143、连接信息记录模块144、TCP代理处理模块145和应用模块146;通信接口模块141用于接收来自TCP客户端或者TCP服务端的报文;代理策略判定模块142用于根据代理策略判断所述通信接口模块接收的报文是否需要TCP代理;三层转发模块143用于对所述代理策略判定模块确定不需要TCP代理的报文,通过L3层转发;连接信息记录模块144用于对所述三层转发模块转发的TCP连接建立过程中的TCP连接建立报文,记录所述TCP连接建立报文的选项信息和序号信息,以及对所述三层转发模块转发的TCP连接建立后的报文,根据所述TCP连接建立后的报文的序号信息对记录的序号信息进行更新;TCP代理处理模块145用于在对所述代理策略判定模块确定需要TCP代理的报文,根据所述选项信息和序号信息生成客户端伪套接字和服务端伪套接字,并采用所述客户端伪套接字和服务端伪套接字终结;应用模块146用于对终结后的报文进行L7层处理,转发处理后的报文。
其中,代理策略判定模块可以具体用于接收应用模块指示的代理策略。
当记录的序号信息为期望接收的报文的报文序号时,所述连接信息记录模块144具体用于:如果接收的报文的报文序号大于当前记录的期望接收的报文的报文序号,则缓存所述报文直到接收的报文的报文序号等于当前记录的期望接收的报文的报文序号后,触发所述三层转发模块通过L3层转发所述报文,并将记录的报文序号更新为下一个按序期望接收的报文的报文序号;或者,如果接收的报文的报文序号小于当前记录的期望接收的报文的报文序号,则触发所述三层转发模块通过L3层转发所述报文,并保持记录的报文序号不变;或者,如果接收的报文的报文序号等于当前记录的期望接收的报文的报文序号,则触发所述三层转发模块通过L3层转发所述报文,并将记录的报文序号更新为下一个按序期望接收的报文的报文序号。
当记录的序号信息为ACK序号时,所述连接信息记录模块144具体用于:将记录的ACK序号更新为接收到的报文的最大ACK序号。
所述TCP代理处理模块145具体用于:对所述代理策略判定模块确定需要TCP代理的报文,将记录的序号信息作为双向传输的报文的分界线,并判断所述分界线前的双向传输的数据报文是否都被确认;如果分界线前的双向传输的数据报文都被确认后,采用所述选项信息生成客户端伪套接字和服务端伪套接字;其中,所述序号信息包括期望接收的报文的报文序号,所述期望接收的报文的报文序号包括:由TCP客户端到TCP服务端方向上期望接收的报文的报文序号和由TCP服务端到TCP客户端方向上期望接收的报文的报文序号。
如果接收的报文为包含ACK标记的数据报文,所述三层转发模块143还用于:如果所述报文的起始数据序号小于同方向上的分界线对应的报文序号,且所述报文中包含序号大于等于所述同方向上的分界线对应的报文序号的数据,则在所述报文中删除所述序号大于等于所述同方向上的分界线对应的报文序号的数据,并修改报文长度以及重新计算校验和后转发给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端;或者,如果所述报文的起始数据序号大于等于同方向上的分界线对应的报文序号,则删除所述报文中的数据,修改报文长度、将所述报文的报文序号修改为同方向上的分界线对应的报文序号,并重新计算校验和后转发给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端;或者,如果所述报文的起始数据序号均小于同方向上的分界线对应的报文,且所述报文中不包含所述同方向上的分界线对应的报文序号之后的数据,则将所述报文转发给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端。
如果接收的报文为纯ACK报文,所述三层转发模块143还用于:将纯ACK报文透传给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端。
所述序号信息还包括ACK序号,所述连接信息记录模块144还用于:将记录的ACK序号更新为双向传输的报文的最大ACK序号,所述ACK序号包括:由TCP客户端到TCP服务端方向上报文的ACK序号和由TCP服务端到TCP客户端方向上报文的ACK序号;所述TCP代理处理模块145具体用于:如果记录的所述由TCP客户端到TCP服务端方向上期望接收的报文的报文序号,等于记录的所述由TCP服务端到TCP客户端方向上报文的ACK序号,且记录的所述由TCP服务端到TCP客户端方向上期望接收的报文的报文序号,等于记录的所述由TCP客户端到TCP服务端方向上报文的ACK序号,则判断出分界线前的双向传输的数据报文都被确认。
另外,可以理解的是,在上述模块的连接关系上,上层模块报文要经过下层模块进行传输,例如,L7层的报文要经过L3层传输,L3层的报文要经过通信接口传输。
本实施例在需要TCP代理时插入TCP代理,可以实现灵活代理,避免始终代理造成的性能下降问题,实现系统性能的提升。
图15为本发明实施例中需要动态卸载TCP代理时业务网关设备的结构示意图,包括通信接口模块151、代理策略判定模块152、TCP代理处理模块153、应用模块154、连接粘连处理模块155和三层转发模块156;通信接口模块151用于接收来自TCP客户端或者TCP服务端的报文;代理策略判定模块152用于根据代理策略判断所述通信接口模块接收的报文是否需要TCP代理;TCP代理处理模块153用于在所述代理策略判定模块判断出需要TCP代理时,生成客户端伪套接字和服务端伪套接字,并对接收的报文进行终结处理;应用模块154用于对所述TCP代理处理模块终结后的报文进行L7层处理后转发;所述TCP代理处理模块153还用于在所述代理策略判定模块根据代理策略确定不需要代理后,指示所述TCP客户端和TCP服务端暂停发送报文,将缓存的报文分别发送给所述TCP客户端和TCP服务端,并生成粘连信息;连接粘连处理模块155用于根据所述粘连信息,对所述TCP客户端与所述TCP服务端在暂停发送报文结束后重新传输的报文进行序号修正处理,使得修正后的序号与修正前的序号的差值为所述粘连信息中包括的最后发送的报文的序号与期望接收的报文的序号的差值;三层转发模块156用于通过L3层转发所述连接粘连处理模块处理后的报文。
其中,代理策略判定模块可以具体用于接收应用模块指示的代理策略。
所述TCP代理处理模块153具体用于:模拟TCP服务端和TCP客户端分别向对应的所述TCP客户端和所述TCP服务端发送接收窗口为0的通告,使所述TCP客户端和TCP服务端将报文的窗口字段中设为0,使得在一定时间内不再向业务网关设备发送报文;将缓存的报文分别发送给所述TCP客户端和所述TCP服务端。
所述粘连信息包括:客户端伪套接字记录的由TCP客户端到TCP服务端方向上最后发送的报文的报文序号和ACK序号以及期望接收的报文的报文序号和ACK序号;服务端伪套接字记录的由TCP服务端到TCP客户端方向上最后发送的报文的报文序号和ACK序号以及期望接收的报文的报文序号和ACK序号;所述连接粘连处理模块155具体用于:对由TCP客户端到TCP服务端方向上的报文的报文序号和ACK序号进行修正,使得修正后的报文序号与修正前的报文序号的差值为伪TCP客户端记录的最后发送的报文的报文序号与伪TCP服务端记录的期望接收的报文的报文序号的差值,以及,使得修正后的ACK序号与修正前的ACK序号的差值为伪TCP客户端记录的最后发送的报文的ACK序号与伪TCP服务端记录的期望接收的报文的ACK序号的差值;对由TCP服务端到TCP客户端方向上的报文的报文序号和ACK序号进行修正,使得修正后的报文序号与修正前的报文序号的差值为伪TCP服务端记录的最后发送的报文的报文序号与伪TCP客户端记录的期望接收的报文的报文序号的差值,以及,使得修正后的ACK序号与修正前的ACK序号的差值为伪TCP服务端记录的最后发送的报文的ACK序号与伪TCP客户端记录的期望接收的报文的ACK序号的差值。
另外,可以理解的是,在上述模块的连接关系上,上层模块报文要经过下层模块进行传输,例如,L7层的报文要经过L3层传输,L3层的报文要经过通信接口传输。
本实施例通过在不需要TCP代理时卸载TCP代理,可以避免始终TCP代理造成的问题,提高系统性能。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (21)
1.一种TCP代理插入方法,其特征在于,包括:
业务网关设备在TCP连接建立时,通过L3层转发TCP客户端与TCP服务端之间的TCP连接建立报文,并记录所述TCP连接建立报文的选项信息和序号信息;
所述业务网关设备在TCP连接建立后,根据代理策略对接收的报文进行代理判定;
所述业务网关设备对于根据代理策略确定未需要代理的报文,通过L3层转发所述接收的报文,并根据接收的报文的序号信息对记录的序号信息进行更新;
所述业务网关设备对于根据代理策略确定需要代理的报文,根据记录的选项信息和序号信息生成客户端伪套接字和服务端伪套接字,采用所述客户端伪套接字和服务端伪套接字终结所述接收的报文,并通过L7层处理终结后的报文,转发处理后的报文。
2.根据权利要求1所述的方法,其特征在于,所述序号信息为期望接收的报文的报文序号,所述通过L3层转发所述接收的报文,并根据接收的报文的序号信息对记录的序号信息进行更新,包括:
如果接收的报文的报文序号大于当前记录的期望接收的报文的报文序号,则所述业务网关设备缓存所述报文直到接收的报文的报文序号等于当前记录的期望接收的报文的报文序号后进行L3层转发,并将记录的报文序号更新为下一个按序期望接收的报文的报文序号;
或者,
如果接收的报文的报文序号小于当前记录的期望接收的报文的报文序号,则所述业务网关设备通过L3层转发所述报文,并保持记录的报文序号不变;
或者,
如果接收的报文的报文序号等于当前记录的期望接收的报文的报文序号,则所述业务网关设备通过L3层转发所述报文,并将记录的报文序号更新为下一个按序期望接收的报文的报文序号。
3.根据权利要求1所述的方法,其特征在于,所述序号信息为ACK序号,所述通过L3层转发所述接收的报文,并根据接收的报文的序号信息对记录的序号信息进行更新,包括:
所述业务网关设备通过L3层转发所述报文,并将记录的ACK序号更新为接收到的报文中的最大ACK序号。
4.根据权利要求1所述的方法,其特征在于,所述根据记录的选项信息和序号信息生成客户端伪套接字和服务端伪套接字,包括:
所述业务网关设备根据记录的序号信息确定双向传输的报文的分界线,并判断所述分界线前的双向传输的数据报文是否都被确认;
如果所述分界线前的双向传输的数据报文都被确认后,业务网关设备采用所述选项信息生成客户端伪套接字和服务端伪套接字。
5.根据权利要求4所述的方法,其特征在于,所述序号信息包括记录的期望接收的报文的报文序号,
所述根据记录的序号信息确定双向传输的报文的分界线,包括:
所述业务网关设备将记录的期望接收的报文的报文序号作为分界线,所述期望接收的报文的报文序号包括:由TCP客户端到TCP服务端方向上期望接收的报文的报文序号和由TCP服务端到TCP客户端方向上期望接收的报文的报文序号。
6.根据权利要求5所述的方法,其特征在于,如果所述报文为包含ACK标记的数据报文,所述方法还包括:
如果所述数据报文的起始数据序号小于同方向上的分界线对应的报文序号,且所述数据报文中包含序号大于等于所述同方向上的分界线对应的报文序号的数据,则所述业务网关设备在所述数据报文中删除所述序号大于等于所述同方向上的分界线对应的报文序号的数据,并修改报文长度以及重新计算校验和后转发给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端;
或者,
如果所述数据报文的起始数据序号大于等于同方向上的分界线对应的报文序号,则所述业务网关设备删除所述数据报文中的数据,修改报文长度、将所述数据报文的报文序号修改为同方向上的分界线对应的报文序号,并重新计算校验和后转发给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端;
或者,
如果所述数据报文的起始数据序号均小于同方向上的分界线对应的报文,且所述数据报文中不包含序号大于等于所述同方向上的分界线对应的报文序号的数据,则所述业务网关设备将所述数据报文转发给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端。
7.根据权利要求5所述的方法,其特征在于,如果所述报文为纯ACK报文,所述方法还包括:
所述业务网关设备将纯ACK报文透传给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端。
8.根据权利要求6或7所述的方法,其特征在于,所述序号信息还包括ACK序号,所述方法还包括:
所述业务网关设备将记录的ACK序号更新为双向传输的报文的最大ACK序号,所述ACK序号包括:由TCP客户端到TCP服务端方向上报文的ACK序号和由TCP服务端到TCP客户端方向上报文的ACK序号;
所述判断所述分界线前的双向传输的数据报文是否都被确认,包括:如果记录的所述由TCP客户端到TCP服务端方向上期望接收的报文的报文序号,等于记录的所述由TCP服务端到TCP客户端方向上报文的ACK序号,且记录的所述由TCP服务端到TCP客户端方向上期望接收的报文的报文序号,等于记录的所述由TCP客户端到TCP服务端方向上报文的ACK序号,则所述业务网关设备判断所述分界线前的双向传输的数据报文都被确认。
9.一种TCP代理卸载方法,其特征在于,包括:
业务网关设备采用TCP代理通过L7层处理转发TCP客户端与TCP服务端之间的报文;
所述业务网关设备在根据代理策略确定不需要代理后,指示所述TCP客户端和TCP服务端暂停发送报文,将TCP代理缓存的报文分别发送给所述TCP客户端和TCP服务端,并生成粘连信息;
所述业务网关设备根据所述粘连信息,对所述TCP客户端与所述TCP服务端在暂停发送报文结束后重新传输的报文进行序号修正处理,使得修正后的序号与修正前的序号的差值为所述粘连信息中包括的最后发送的报文的序号与期望接收的报文的序号的差值,通过L3层转发处理后的报文。
10.根据权利要求9所述的方法,其特征在于,所述指示所述TCP客户端和TCP服务端暂停发送报文,将TCP代理缓存的报文分别发送给所述TCP客户端和TCP服务端,包括:
所述业务网关设备模拟TCP服务端和TCP客户端分别向对应的所述TCP客户端和所述TCP服务端发送接收窗口为0的通告,使所述TCP客户端和TCP服务端将报文的窗口字段中设为0,使得在一定时间内不再向业务网关设备发送报文;
所述业务网关设备将TCP代理缓存的报文分别发送给所述TCP客户端和所述TCP服务端。
11.根据权利要求9或10所述的方法,其特征在于,
所述粘连信息包括:客户端伪套接字记录的由TCP客户端到TCP服务端方向上最后发送的报文的报文序号和ACK序号以及期望接收的报文的报文序号和ACK序号;服务端伪套接字记录的由TCP服务端到TCP客户端方向上最后发送的报文的报文序号和ACK序号以及期望接收的报文的报文序号和ACK序号;
所述根据所述粘连信息对所述TCP客户端与所述TCP服务端暂停发送报文结束后重新传输的报文进行序号修正处理,包括:
所述业务网关设备对由TCP客户端到TCP服务端方向上的报文的报文序号和ACK序号进行修正,使得修正后的报文序号与修正前的报文序号的差值为伪TCP客户端记录的最后发送的报文的报文序号与伪TCP服务端记录的期望接收的报文的报文序号的差值,以及,使得修正后的ACK序号与修正前的ACK序号的差值为伪TCP客户端记录的最后发送的报文的ACK序号与伪TCP服务端记录的期望接收的报文的ACK序号的差值;
所述业务网关设备对由TCP服务端到TCP客户端方向上的报文的报文序号和ACK序号进行修正,使得修正后的报文序号与修正前的报文序号的差值为伪TCP服务端记录的最后发送的报文的报文序号与伪TCP客户端记录的期望接收的报文的报文序号的差值,以及,使得修正后的ACK序号与修正前的ACK序号的差值为伪TCP服务端记录的最后发送的报文的ACK序号与伪TCP客户端记录的期望接收的报文的ACK序号的差值。
12.一种业务网关设备,其特征在于,包括:
通信接口模块,用于接收来自TCP客户端或者TCP服务端的报文;
代理策略判定模块,用于根据代理策略判断所述通信接口模块接收的报文是否需要TCP代理;
三层转发模块,用于对所述代理策略判定模块确定不需要TCP代理的报文,通过L3层转发;
连接信息记录模块,用于对所述三层转发模块转发的TCP连接建立过程中的TCP连接建立报文,记录所述TCP连接建立报文的选项信息和序号信息,以及对所述三层转发模块转发的TCP连接建立后的报文,根据所述TCP连接建立后的报文的序号信息对记录的序号信息进行更新;
TCP代理处理模块,用于对所述代理策略判定模块确定需要TCP代理的报文,根据记录的选项信息和序号信息生成客户端伪套接字和服务端伪套接字,并采用所述客户端伪套接字和服务端伪套接字终结;
应用模块,用于对终结后的报文进行L7层处理,转发处理后的报文。
13.根据权利要求12所述的设备,其特征在于,所述序号信息为期望接收的报文的报文序号,所述连接信息记录模块具体用于:
如果接收的报文的报文序号大于当前记录的期望接收的报文的报文序号,则缓存所述报文直到接收的报文的报文序号等于当前记录的期望接收的报文的报文序号后,触发所述三层转发模块通过L3层转发所述报文,并将记录的报文序号更新为下一个按序期望接收的报文的报文序号;
或者,
如果接收的报文的报文序号小于当前记录的期望接收的报文的报文序号,则触发所述三层转发模块通过L3层转发所述报文,并保持记录的报文序号不变;
或者,
如果接收的报文的报文序号等于当前记录的期望接收的报文的报文序号,则触发所述三层转发模块通过L3层转发所述报文,并将记录的报文序号更新为下一个按序期望接收的报文的报文序号。
14.根据权利要求12所述的设备,其特征在于,所述序号信息为ACK序号,所述连接信息记录模块具体用于:
将记录的ACK序号更新为接收到的报文的最大ACK序号。
15.根据权利要求12所述的设备,其特征在于,所述TCP代理处理模块具体用于:
对所述代理策略判定模块确定需要TCP代理的报文,将记录的序号信息作为双向传输的报文的分界线,并判断所述分界线前的双向传输的数据报文是否都被确认;如果分界线前的双向传输的数据报文都被确认后,采用所述选项信息生成客户端伪套接字和服务端伪套接字;
其中,所述序号信息包括期望接收的报文的报文序号,所述期望接收的报文的报文序号包括:由TCP客户端到TCP服务端方向上期望接收的报文的报文序号和由TCP服务端到TCP客户端方向上期望接收的报文的报文序号。
16.根据权利要求15所述的设备,其特征在于,如果所述报文为包含ACK标记的数据报文,所述三层转发模块还用于:
如果所述报文的起始数据序号小于同方向上的分界线对应的报文序号,且所述报文中包含序号大于等于所述同方向上的分界线对应的报文序号的数据,则在所述报文中删除所述序号大于等于所述同方向上的分界线对应的报文序号的数据,并修改报文长度以及重新计算校验和后转发给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端;
或者,
如果所述报文的起始数据序号大于等于同方向上的分界线对应的报文序号,则删除所述报文中的数据,修改报文长度、将所述报文的报文序号修改为同方向上的分界线对应的报文序号,并重新计算校验和后转发给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端;
或者,
如果所述报文的起始数据序号均小于同方向上的分界线对应的报文,且所述报文中不包含序号大于等于所述同方向上的分界线对应的报文序号的数据,则将所述报文转发给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端,当接收的报文来自TCP服务端时,所述对端为TCP客户端。
17.根据权利要求15所述的设备,其特征在于,如果所述报文为纯ACK报文,所述三层转发模块还用于:将纯ACK报文透传给对端,当接收的报文来自TCP客户端时,所述对端为TCP服务端;当接收的报文来自TCP服务端时,所述对端为TCP客户端。
18.根据权利要求16或17所述的设备,其特征在于,所述序号信息还包括ACK序号,所述连接信息记录模块还用于:
将记录的ACK序号更新为双向传输的报文的最大ACK序号,所述ACK序号包括:由TCP客户端到TCP服务端方向上报文的ACK序号和由TCP服务端到TCP客户端方向上报文的ACK序号;
所述TCP代理处理模块具体用于:如果记录的所述由TCP客户端到TCP服务端方向上期望接收的报文的报文序号,等于记录的所述由TCP服务端到TCP客户端方向上报文的ACK序号,且记录的所述由TCP服务端到TCP客户端方向上期望接收的报文的报文序号,等于记录的所述由TCP客户端到TCP服务端方向上报文的ACK序号,则判断出分界线前的双向传输的数据报文都被确认。
19.一种业务网关设备,其特征在于,包括:
通信接口模块,用于接收来自TCP客户端或者TCP服务端的报文;
代理策略判定模块,用于根据代理策略判断所述通信接口模块接收的报文是否需要TCP代理;
TCP代理处理模块,用于在所述代理策略判定模块判断出需要TCP代理时,生成客户端伪套接字和服务端伪套接字,并对接收的报文进行终结处理;
应用模块,用于对所述TCP代理处理模块终结后的报文进行L7层处理后转发;
所述TCP代理处理模块还用于在所述代理策略判定模块根据代理策略确定不需要代理后,指示所述TCP客户端和TCP服务端暂停发送报文,将缓存的报文分别发送给所述TCP客户端和TCP服务端,并生成粘连信息;
连接粘连处理模块,用于根据所述粘连信息,对所述TCP客户端与所述TCP服务端在暂停发送报文结束后重新传输的报文进行序号修正处理,使得修正后的序号与修正前的序号的差值为所述粘连信息中包括的最后发送的报文的序号与期望接收的报文的序号的差值;
三层转发模块,用于通过L3层转发所述连接粘连处理模块处理后的报文。
20.根据权利要求19所述的设备,其特征在于,所述TCP代理处理模块具体用于:
模拟TCP服务端和TCP客户端分别向对应的所述TCP客户端和所述TCP服务端发送接收窗口为0的通告,使所述TCP客户端和TCP服务端将报文的窗口字段中设为0,使得在一定时间内不再向业务网关设备发送报文;
将缓存的报文分别发送给所述TCP客户端和所述TCP服务端。
21.根据权利要求19所述的设备,其特征在于,所述粘连信息包括:客户端伪套接字记录的由TCP客户端到TCP服务端方向上最后发送的报文的报文序号和ACK序号以及期望接收的报文的报文序号和ACK序号;服务端伪套接字记录的由TCP服务端到TCP客户端方向上最后发送的报文的报文序号和ACK序号以及期望接收的报文的报文序号和ACK序号;
所述连接粘连处理模块具体用于:
对由TCP客户端到TCP服务端方向上的报文的报文序号和ACK序号进行修正,使得修正后的报文序号与修正前的报文序号的差值为伪TCP客户端记录的最后发送的报文的报文序号与伪TCP服务端记录的期望接收的报文的报文序号的差值,以及,使得修正后的ACK序号与修正前的ACK序号的差值为伪TCP客户端记录的最后发送的报文的ACK序号与伪TCP服务端记录的期望接收的报文的ACK序号的差值;
对由TCP服务端到TCP客户端方向上的报文的报文序号和ACK序号进行修正,使得修正后的报文序号与修正前的报文序号的差值为伪TCP服务端记录的最后发送的报文的报文序号与伪TCP客户端记录的期望接收的报文的报文序号的差值,以及,使得修正后的ACK序号与修正前的ACK序号的差值为伪TCP服务端记录的最后发送的报文的ACK序号与伪TCP客户端记录的期望接收的报文的ACK序号的差值。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110048376.6A CN102130910B (zh) | 2011-02-28 | 2011-02-28 | Tcp代理插入和卸载方法及业务网关设备 |
EP11859717.8A EP2557754B1 (en) | 2011-02-28 | 2011-09-02 | Method for inserting and unloading tcp proxy and service gateway device |
PCT/CN2011/079287 WO2012116541A1 (zh) | 2011-02-28 | 2011-09-02 | Tcp代理插入和卸载方法及业务网关设备 |
US13/689,277 US8446840B2 (en) | 2011-02-28 | 2012-11-29 | TCP proxy insertion and uninstall method, and service gateway device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110048376.6A CN102130910B (zh) | 2011-02-28 | 2011-02-28 | Tcp代理插入和卸载方法及业务网关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102130910A CN102130910A (zh) | 2011-07-20 |
CN102130910B true CN102130910B (zh) | 2015-04-29 |
Family
ID=44268800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110048376.6A Active CN102130910B (zh) | 2011-02-28 | 2011-02-28 | Tcp代理插入和卸载方法及业务网关设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8446840B2 (zh) |
EP (1) | EP2557754B1 (zh) |
CN (1) | CN102130910B (zh) |
WO (1) | WO2012116541A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130910B (zh) | 2011-02-28 | 2015-04-29 | 华为技术有限公司 | Tcp代理插入和卸载方法及业务网关设备 |
CN102946387B (zh) * | 2012-11-01 | 2016-12-21 | 惠州Tcl移动通信有限公司 | 一种防御拒接服务攻击的方法 |
CN104170346B (zh) * | 2013-02-26 | 2018-03-09 | 华为技术有限公司 | 数据传输方法、系统及代理设备 |
CN103368772B (zh) * | 2013-06-26 | 2016-12-28 | 华为技术有限公司 | 半卸载方法、设备及系统 |
CN104767781B (zh) * | 2014-01-08 | 2018-09-04 | 杭州迪普科技股份有限公司 | 一种tcp代理装置以及方法 |
CN105099992B (zh) * | 2014-04-29 | 2018-07-24 | 杭州迪普科技股份有限公司 | 一种报文修改装置及方法 |
US9912641B2 (en) * | 2014-07-03 | 2018-03-06 | Juniper Networks, Inc. | System, method, and apparatus for inspecting online communication sessions via polymorphic security proxies |
KR102342144B1 (ko) * | 2014-12-01 | 2021-12-22 | 삼성전자주식회사 | 통신 시스템에서 분리된 tcp 연결을 설정하는 방법 및 장치와 이를 위한 핸드 오버 지원 방법 및 장치 |
CN107078837A (zh) * | 2015-07-10 | 2017-08-18 | 华为技术有限公司 | 一种协议帧传输方法、装置、节点设备以及系统 |
CN105721432B (zh) * | 2016-01-15 | 2019-08-30 | 国家电网公司 | 一种面向电力iec104规约的tcp透明代理实现方法 |
US20210367944A1 (en) * | 2016-03-28 | 2021-11-25 | Zscaler, Inc. | REST API provided by a local agent to detect network path of a request |
WO2018212613A1 (en) | 2017-05-17 | 2018-11-22 | Samsung Electronics Co., Ltd. | Tcp proxy device-assisted communication method and apparatus in wireless communication |
US11223567B2 (en) * | 2019-01-18 | 2022-01-11 | Cisco Technology, Inc. | Transmission control protocol session mobility |
CN109936514B (zh) * | 2019-04-29 | 2022-06-21 | 新华三信息安全技术有限公司 | 一种报文处理方法和装置 |
US11652801B2 (en) * | 2019-09-24 | 2023-05-16 | Pribit Technology, Inc. | Network access control system and method therefor |
CN111447144A (zh) * | 2020-04-01 | 2020-07-24 | 中核武汉核电运行技术股份有限公司 | 一种基于透明代理的应用路由方法 |
CN114025030A (zh) * | 2021-11-08 | 2022-02-08 | 北京天融信网络安全技术有限公司 | 透明代理实现方法、装置、计算机设备和介质 |
CN114980365A (zh) * | 2022-05-20 | 2022-08-30 | 恒玄科技(北京)有限公司 | 一种WiFi保活方法、WiFi保活装置及WiFi芯片 |
CN115174345B (zh) * | 2022-06-16 | 2023-11-03 | 珠海高凌信息科技股份有限公司 | 一种fpga透明代理系统、方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1582583A (zh) * | 2001-02-15 | 2005-02-16 | 讯捷通讯公司 | 用于无线接口上tcp性能改善的双重代理方法 |
CN1753354A (zh) * | 2005-10-25 | 2006-03-29 | 华中科技大学 | 基于arq信息的基站tcp代理确认方法及其系统 |
US7076555B1 (en) * | 2002-01-23 | 2006-07-11 | Novell, Inc. | System and method for transparent takeover of TCP connections between servers |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5941988A (en) * | 1997-01-27 | 1999-08-24 | International Business Machines Corporation | Session and transport layer proxies via TCP glue |
US5861883A (en) | 1997-05-13 | 1999-01-19 | International Business Machines Corp. | Method and system for portably enabling awareness, touring, and conferencing over the world-wide web using proxies and shared-state servers |
US6006268A (en) * | 1997-07-31 | 1999-12-21 | Cisco Technology, Inc. | Method and apparatus for reducing overhead on a proxied connection |
US20030229809A1 (en) * | 1999-04-15 | 2003-12-11 | Asaf Wexler | Transparent proxy server |
KR101032247B1 (ko) | 2003-03-20 | 2011-05-02 | 노키아 지멘스 네트웍스 게엠베하 운트 코. 카게 | 데이터 패킷들을 송신하기 위한 방법 및 송신기 |
CN1642140A (zh) | 2004-01-08 | 2005-07-20 | 上海环达计算机科技有限公司 | 运用于代理服务器上的封包转送系统及方法 |
EP1601152A1 (en) * | 2004-05-28 | 2005-11-30 | Hitachi, Ltd. | Method and apparatus for transmitting data packets in a communication network |
FI119303B (fi) * | 2005-06-07 | 2008-09-30 | Teliasonera Ab | Liitettävyys tilatietoisten palomuurien välillä |
CN101047704A (zh) | 2006-04-05 | 2007-10-03 | 华为技术有限公司 | 基于会话发起协议网络的数据库访问系统、装置及方法 |
US7706367B2 (en) * | 2006-10-03 | 2010-04-27 | International Business Machines Corporation | Integrated tunneling and network address translation: performance improvement for an interception proxy server |
CN101212719B (zh) | 2006-12-31 | 2011-12-28 | 华为技术有限公司 | 一种无线通信网络中实现融合消息业务的方法及系统 |
CN101355524B (zh) | 2007-07-24 | 2013-10-09 | 华为技术有限公司 | 一种消息处理方法、系统、服务器和终端 |
CN101170605A (zh) | 2007-10-26 | 2008-04-30 | 华为技术有限公司 | 一种发起方信息的显示方法和设备 |
CN101247353B (zh) | 2008-03-25 | 2010-08-25 | 杭州华三通信技术有限公司 | 流老化方法及网络设备 |
EP2395712A4 (en) * | 2009-02-03 | 2012-07-04 | Nec Corp | APPLICATION SWITCHING SYSTEM AND APPLICATION SWITCHING METHOD |
US8654787B2 (en) * | 2009-03-27 | 2014-02-18 | Dell Products L.P. | Apparatus and method for remote communication and transmission protocols |
US8539099B2 (en) * | 2010-01-08 | 2013-09-17 | Alcatel Lucent | Method for providing on-path content distribution |
US8547835B2 (en) * | 2010-10-21 | 2013-10-01 | Telefonaktiebolaget L M Ericsson (Publ) | Controlling IP flows to bypass a packet data network gateway using multi-path transmission control protocol connections |
CN102130910B (zh) * | 2011-02-28 | 2015-04-29 | 华为技术有限公司 | Tcp代理插入和卸载方法及业务网关设备 |
-
2011
- 2011-02-28 CN CN201110048376.6A patent/CN102130910B/zh active Active
- 2011-09-02 EP EP11859717.8A patent/EP2557754B1/en active Active
- 2011-09-02 WO PCT/CN2011/079287 patent/WO2012116541A1/zh active Application Filing
-
2012
- 2012-11-29 US US13/689,277 patent/US8446840B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1582583A (zh) * | 2001-02-15 | 2005-02-16 | 讯捷通讯公司 | 用于无线接口上tcp性能改善的双重代理方法 |
US7076555B1 (en) * | 2002-01-23 | 2006-07-11 | Novell, Inc. | System and method for transparent takeover of TCP connections between servers |
CN1753354A (zh) * | 2005-10-25 | 2006-03-29 | 华中科技大学 | 基于arq信息的基站tcp代理确认方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2557754B1 (en) | 2016-12-28 |
CN102130910A (zh) | 2011-07-20 |
US8446840B2 (en) | 2013-05-21 |
US20130083799A1 (en) | 2013-04-04 |
EP2557754A1 (en) | 2013-02-13 |
WO2012116541A1 (zh) | 2012-09-07 |
EP2557754A4 (en) | 2013-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102130910B (zh) | Tcp代理插入和卸载方法及业务网关设备 | |
US10104179B2 (en) | Data transmission method and system, and proxy device | |
US7646791B2 (en) | Method and apparatus of data segmentation in a mobile communications system | |
US8121135B2 (en) | Discovering path maximum transmission unit size | |
CN102006283B (zh) | 数据传输的方法和装置 | |
CN101997673B (zh) | 网络代理实现方法及装置 | |
US20070025374A1 (en) | TCP normalization engine | |
US20100250767A1 (en) | Apparatus and method for accelerating streams through use of transparent proxy architecture | |
US9531508B2 (en) | Methods and systems for estimating missing data | |
US9338189B2 (en) | Internet protocol multimedia subsystem network, and data transmission method and apparatus | |
US11201699B2 (en) | Methods and systems for transmitting error correction packets | |
CN112583874A (zh) | 异构网络的报文转发方法及装置 | |
EP3174334A1 (en) | Apparatus and method for data delivery in delay-tolerant network (dtn) | |
CN114039933A (zh) | 一种5g网络链路的ip传输方法、装置、设备及产品 | |
CN111147483B (zh) | 一种对原始网络数据包的有损压缩存储方法和装置 | |
CN104852988A (zh) | 一种报文转发方法和装置 | |
US7984164B2 (en) | Server, and packet transferring method and program therefor | |
JP4506430B2 (ja) | アプリケーションモニタ装置 | |
CN112583935B (zh) | 缓冲区窗口调整方法、网关设备及存储介质 | |
Mogildea et al. | QUIC over Satellite: Introduction and Performance Measurements | |
JP4447028B2 (ja) | 通信制御方法、送信装置、およびコンピュータプログラム | |
JP2009044694A (ja) | データユニットの送信回数のカウント方法、カウント装置、送信装置、およびコンピュータプログラム | |
CN114726797B (zh) | 加速传输方法、装置、设备、系统和存储介质 | |
CN116471345B (zh) | 一种数据通信方法、装置、设备及介质 | |
JP2004241872A (ja) | 情報通信方法および中継装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |