CN1819562A - 一种tcp连接的合并方法 - Google Patents
一种tcp连接的合并方法 Download PDFInfo
- Publication number
- CN1819562A CN1819562A CNA2006100660083A CN200610066008A CN1819562A CN 1819562 A CN1819562 A CN 1819562A CN A2006100660083 A CNA2006100660083 A CN A2006100660083A CN 200610066008 A CN200610066008 A CN 200610066008A CN 1819562 A CN1819562 A CN 1819562A
- Authority
- CN
- China
- Prior art keywords
- tcp
- address
- main equipment
- slave unit
- merging method
- 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
Abstract
本发明公开了一种TCP连接的合并方法,其特征在于,包括:A、第一、第二从设备分别向主设备发出建立TCP连接请求,主设备采用哄骗方式立即发送确认消息给第一、第二从设备,在主设备不启动TCP处理流程情况下,第一、第二从设备分别与主设备建立TCP连接TCP I、TCP II;B、在主设备上建立该两个TCP连接TCP I、TCP II的对应关系;C、第一、第二从设备通过主设备转发进行数据传输。采用本发明的TCP连接的合并方法,由于中间节点不用处理复杂的TCP协议和状态机,大大降低中间节点的处理负荷。可采用网络处理器或硬件逻辑实现高速转发,将两条以上TCP连接的合并从而实现端到端的可靠传输。
Description
技术领域
本发明涉及计算机网络技术领域,具体涉及TCP连接的处理方法。
技术背景
传输控制协议(TCP)是TCP/IP协议栈中的传输层协议,它通过序列确认以及包重发机制,提供可靠的数据流发送和应用程序的虚拟连接服务。当网络层服务质量不能满足要求时,通过TCP服务加以提高,以满足高层的要求。在网络中,计算机上须确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到正确的回复,为此,TCP在端点间建立连接或虚拟电路进行可靠通信,而且TCP进程能够同时发送和接收包。TCP通过面向连接的、端到端的可靠数据报发送来保证可靠性。另外,TCP提供了有效的流控制,当向发送者返回确认响应时,接收TCP进程就会说明它能接收并保证缓存不会发生溢出信息。
大多数网络服务如文件传输服务、远程登录服务、WEB服务等都是基于传输控制协议(TCP)连接的。两台计算机通过网络进行数据通信时,也需要进行TCP连接。
但在TCP应用中经常遇到这样的情况,两台计算机都位于私网中,它们通过网络地址转换设备上因特网,如果这两台计算机之间要进行数据传送,通常需要一台位于公网的服务器来实现转接。如图1所示,首先,计算机A、B分别和服务器C建立TCP连接,服务器C先接收到一个TCP连接TCP1发来的数据,再发送到另外一个TCP连接TCP2上,这样数据才能到达对方计算机。在服务器上监听并建立两条TCP连接,然后由服务器转发从一个TCP连接收到另外一个连接。
服务器上需要建立两条TCP连接,由于TCP是个比较复杂的协议,TCP的建立和维护需要消耗大量的计算机资源,所以TCP连接建立的数量和速度通常是衡量一个服务器处理能力的指标。
另外一个缺点就是,服务器进行TCP数据转发时理论上存在数据被误改写的可能,不能实现真正意义上的端到端可靠性。
发明内容
鉴于此,本发明要解决的技术问题在于,提供一种TCP连接的处理方法,以实现端到端的数据传输的高效、可靠。
本发明提供一种TCP连接的合并方法,包括步骤:
一种TCP连接的合并方法,包括:
A.第一、第二从设备分别向主设备发出建立TCP连接请求,主设备响应该请求,立即发送确认消息给第一、第二从设备,第一、第二从设备分别与主设备建立TCP连接TCP I、TCP II;
B.在主设备上建立该两个TCP连接TCP I、TCP II的对应关系;
C.主设备根据所述对应关系将来自第一、第二从设备的数据转发给第二、第一从设备。
步骤A中所述主设备发送的确认消息为伪确认消息,以使所述从设备收到该确认消息后继续进行建立TCP连接的后续步骤。
所述TCP连接由源IP地址、源端口地址、目的IP地址、目的端口地址进行标识。
在进行步骤A之前,第一、第二从设备分别通过TCP连接注册到主设备,主设备通知从设备发起TCP连接建立。
TCP连接TCP I、TCP II建立之后,主设备通过注册时的TCP连接通道发送连接建立成功消息发给第一、第二从设备,随后所述主设备进入数据转发状态。
还包括步骤:
D.主设备对所收到的数据包的源IP地址和源端口地址以及目的IP地址和端口地址进行变换;
E.根据TCP I与TCP II的发送序号差和确认序号差,调整数据包的发送序号和确认序号;
F.主设备进行数据转发。
其中步骤D包括:
将从TCP I或TCP II收到的数据包的源IP地址和源端口地址替换为TCPII或TCP I对应的主设备侧的IP地址和端口地址,将所述数据包的目的IP地址和端口地址替换为TCP II或TCP I记录的第二或第一从设备端的IP地址和端口地址。
当数据包被更改后,需要重新计算IP和TCP校验和。
当TCP II或TCP I终止,主设备删除TCP I或TCP II连接,同时删除相关的转发记录。
根据本发明的TCP连接的合并方法,包括步骤:
a.第一、第二从设备分别向主设备发出建立TCP连接请求,主设备采用哄骗方式立即发送确认消息给第一、第二从设备,在主设备不启动TCP处理流程情况下,第一、第二从设备分别与主设备建立TCP连接TCP I、TCP II;
b.在主设备上建立该两个TCP连接TCP I、TCP II的对应关系;
c.主设备根据所述对应关系将来自第一、第二从设备的数据转发给第二、第一从设备。
TCP连接TCP I、TCP II建立之后,主设备通过注册时的TCP连接通道发送连接建立成功消息发给第一、第二从设备,随后所述主设备进入数据转发状态。
还包括步骤:
d.主设备对所收到的数据包的源IP地址和源端口地址以及目的IP地址和端口地址进行变换;
e.根据TCP I与TCP II的发送序号差和确认序号差,调整数据包的发送序号和确认序号;
f.主设备进行数据转发。
其中步骤d包括:
将从TCP I或TCP II收到的数据包的源IP地址和源端口地址替换为TCP II或TCP I对应的主设备侧的IP地址和端口地址,将所述数据包的目的IP地址和端口地址替换为TCP II或TCP I记录的第二或第一从设备端的IP地址和端口地址。
由于根据本发明的方法,分别由从设备向主设备发起两条TCP连接,从设备不受地址转换设备和防火墙限制与主设备建立连接,适合各种组网环境。主设备发送伪确认信息的方式及时响应从设备的TCP建立请求,使得TCP连接顺畅建立,随即转发从设备之间的数据,由于中间节点不用处理复杂的TCP协议和状态机,大大降低中间节点的处理负荷。可采用网络处理器或硬件逻辑实现高速转发,将两条以上TCP连接的合并从而实现端到端的可靠传输。
附图说明
图1是现有的基于TCP连接传送数据的示意图;
图2是为说明本发明所提供方法的工作原理示意图;
图3是根据本发明的方法流程图;
图4为根据本发明的实施例的工作原理示意图。
具体实施方式
下面结合说明书附图来说明本发明的原理。参照图2和图3,根据本发明的TCP连接的合并处理过程如下:
1、从设备I、II通过TCP连接注册到主设备,主设备通知从设备I、II发起连接建立。
2、从设备I、II分别向主设备发出开始TCP连接建立请求(TCP SYN),主设备向从设备I、II分别发出伪确认(SYN ACK)消息,但此时主设备并没有真正启动TCP的处理流程,其目的就是哄骗从设备I、II本设备已经完成TCP建立处理,以使从设备I、II收到该确认消息后继续进行建立TCP连接的后续步骤。
3、在主设备上建立这个两个TCP连接的对应关系,即将两个TCP连接的源IP、源端口、目的IP、目的端口建立映射关系。
4、两条TCP连接都建立好后,主设备发连接建立成功的通知消息给发给从设备I、II,由于主设备是伪TCP连接,无法真正保证发送的消息能准确可靠发送到对端,所以发送成功消息通过注册时的TCP连接通道来发送。随后主设备进入数据转发状态。
5、从设备I、II间正常发送数据,主设备转发从设备I、II的数据,转发的过程见后面的描述。
6、如果有一条TCP终止,主设备将删除另一条TCP连接,同时删除相关的转发记录。
在主设备上的数据转发过程如下:
如图2所示,假设一个数据由从设备I发往设备II。从设备I与主设备之间的TCP连接标记为TCP I,从设备II与主设备之间的TCP连接标记为TCP II。
主设备收到从设备I从TCP I发来的数据后,查找到与其对应的从设备II的另一条TCP II连接信息,替换数据包的源IP和源端口为TCP II对应的主设备侧的IP和端口,替换数据包的目的IP和端口为TCP II记录的从设备II端的IP和端口。
记录两条TCP连接的起始发送和确认序号的序号差,调整TCP的序号和检验码,对该两条TCP连接,数据包的发送、确认序号进行检测,如果存在差异则需要进行调整,同时相应地重新计算IP和TCP校验和。例如,如果TCP I的发送序号比TCP II的序号小N,确认序号小M,则将数据包的发送、确认序号分别加N和M。
之后,主设备转发该数据包。
由从设备II发往从设备I的数据包的处理与上述过程类似,在此不再叙述。
实施例
下面以一个SSL应用的例子来说明详细说明如何实现两条TCP连接的合并的。
如图4所示,PC-B是一个资料服务器,计算机PC-A想访问计算机PC-B的资源,由于PC-A、PC-B没有直接联网,只能通过因特网来访问,所以为了安全,使用SSL来进行访问,但由于PC-A、PC-B都位于私网中,是通过地址转换设备上网的,而且出口有防火墙设备,所以无法在PC-A、PC-B间直接建立SSL连接,需要通过一个服务器SERVER-C来转接。目前通常的解决方法,是直接和SERVER-C建立两个TCP连接,然后将一个连接接收到数据,发送到另外一个连接,这种方法需要SERVER-C服务器维护两条完整的TCP连接,接入用户的数量和速度都非常受限,但采用本发明,服务器SERVER-C不用维护TCP连接,只需做一个简单的转发就可以了,建立速度、接入用户的数量、转发速度都要高很多。下面我们说明一下具体的工作过程
假设PC-A、PC-B、SERVER-C对应的IP地址分别IPA、IPB、IPC,其基本工作原理如下:
首先,PC-A、PC-B先登录到服务器SERVER-C,请求建立PC-A、PC-B的连接关系,SERVER-C通知PC-A、PC-B向SERVER-C发起TCP建立,TCP的端口分别是PORTA、PORTB、PORTC,为了便于SERVER-C识别两条需要合并的连接,可以同时发一个唯一的连接标识给PC-A、PC-B。
其次,PC-A、PC-B分别发起TCP SYN开始TCP建立的3次握手,SERVER-C进行TCP哄骗,回应TCP SYNACK,两条TCP连接建立。
这时PC-A、PC-B可以向SERVER-C发出自己的连接标识,SERVER-C根据连接标识建立两个TCP连接的转发关系。
接着,SERVER-C通知PC-A、PC-B连接标识对应的TCP连接合并成功,SERVER-C进入转发状态,不再解释两个连接的数据内容。
其后,PC-A就可以向PC-B发起SSL建立流程了,这时PC-APC-B完全感觉不到中间得变化,跟PC-A和PC-B直接建立有TCP连接一样,即使服务器SERVER-C不支持SSL也不受丝毫影响。
完成SSL建立就可以进行安全的数据传输了。
SERVER-C的数据转发过程如下:
(1)SERVER-C收到PC-A发来的数据包,假设TCPA的序号比TCPB的序号大N,确认序号大M。则替换数据包的源IPA、源端口PORTA为IPC、PORTC,替换数据包中的目的IPC、目的端口PORTC为IPB、PORTB。
(2)SERVER-C调整发送、确认序号分别为序号-N和序号-M,模为最大TCP序号数。
(3)发送数据。
如果不采用本发明,SERVER-C必须多维护两个完整TCP连接,先从一个TCP连接接收数据流,然后再写到另一个TCP连接上,对SERVER-C资源的消耗要大得多。
上述实施例为本发明的示范性的实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (16)
1、一种TCP连接的合并方法,其特征在于,包括:
A.第一、第二从设备分别向主设备发出建立TCP连接请求,主设备响应该请求,立即发送确认消息给第一、第二从设备,第一、第二从设备分别与主设备建立TCP连接TCP I、TCP II;
B.在主设备上建立该两个TCP连接TCP I、TCP II的对应关系;
C.主设备根据所述对应关系将来自第一、第二从设备的数据转发给第二、第一从设备。
2、如权利要求1所述的TCP连接的合并方法,其特征在于,步骤A中所述主设备发送的确认消息为伪确认消息,以使所述从设备收到该确认消息后继续进行建立TCP连接的后续步骤。
3、如权利要求1所述的TCP连接的合并方法,其特征在于,所述TCP连接由源IP地址、源端口地址、目的IP地址、目的端口地址进行标识。
4、如权利要求1所述的TCP连接的合并方法,其特征在于,在进行步骤A之前,第一、第二从设备分别通过TCP连接注册到主设备,主设备通知从设备发起TCP连接建立。
5、如权利要求4所述的TCP连接的合并方法,其特征在于,TCP连接TCPI、TCP II建立之后,主设备通过注册时的TCP连接通道发送连接建立成功消息发给第一、第二从设备,随后所述主设备进入数据转发状态。
6、如权利要求1所述的TCP连接的合并方法,其特征在于,还包括步骤:
D.主设备对所收到的数据包的源IP地址和源端口地址以及目的IP地址和端口地址进行变换;
E.根据TCP I与TCP II的发送序号差和确认序号差,调整数据包的发送序号和确认序号;
F.主设备进行数据转发。
7、如权利要求7所述的TCP连接的合并方法,其特征在于,其中步骤D包括:
将从TCP I或TCP II收到的数据包的源IP地址和源端口地址替换为TCP II或TCP I对应的主设备侧的IP地址和端口地址,将所述数据包的目的IP地址和端口地址替换为TCP II或TCP I记录的第二或第一从设备端的IP地址和端口地址。
8、如权利要求7所述的TCP连接的合并方法,其特征在于,当数据包被更改后,需要重新计算IP和TCP校验和。
9、如权利要求1或7所述的TCP连接的合并方法,其特征在于,当TCPII或TCP I终止,主设备删除TCP I或TCP II连接,同时删除相关的转发记录。
10、一种TCP连接的合并方法,其特征在于,包括步骤:
a.第一、第二从设备分别向主设备发出建立TCP连接请求,主设备采用哄骗方式立即发送确认消息给第一、第二从设备,在主设备不启动TCP处理流程情况下,第一、第二从设备分别与主设备建立TCP连接TCP I、TCP II;
b.在主设备上建立该两个TCP连接TCP I、TCP II的对应关系;
c.主设备根据所述对应关系将来自第一、第二从设备的数据转发给第二、第一从设备。
11、如权利要求10所述的TCP连接的合并方法,其特征在于,TCP连接TCP I、TCP II建立之后,主设备通过注册时的TCP连接通道发送连接建立成功消息发给第一、第二从设备,随后所述主设备进入数据转发状态。
12、如权利要求10所述的TCP连接的合并方法,其特征在于,还包括步骤:
d.主设备对所收到的数据包的源IP地址和源端口地址以及目的IP地址和端口地址进行变换;
e.根据TCP I与TCP II的发送序号差和确认序号差,调整数据包的发送序号和确认序号;
f.主设备进行数据转发。
13、如权利要求12所述的TCP连接的合并方法,其特征在于,其中步骤d包括:
将从TCP I或TCP II收到的数据包的源IP地址和源端口地址替换为TCP II或TCP I对应的主设备侧的IP地址和端口地址,将所述数据包的目的IP地址和端口地址替换为TCP II或TCP I记录的第二或第一从设备端的IP地址和端口址址。
14、一种TCP连接的合并方法,其特征在于,通过第三设备转发数据实现两个设备之间的数据交换,包括步骤:
所述第三设备响应建立TCP连接请求,采用哄骗方式立即发送确认消息给发出TCP连接请求的网络设备,分别与发出TCP连接请求的设备建立伪TCP连接;
所述第三设备为相互关联的两个伪TCP连接建立对应关系;
所述第三设备根据所述对应关系为两个伪TCP连接相应的网络设备转发数据。
15、如权利要求14所述的TCP连接的合并方法,其特征在于,所述第三设备对所收到的数据包的源IP地址和源端口地址以及目的IP地址和端口地址进行变换;
所述第三设备根据所述两伪TCP连接的发送序号差和确认序号差,调整数据包的发送序号和确认序号。
16、如权利要求15所述的TCP连接的合并方法,其特征在于,其中所述IP地址和端口地址变换包括:
将从其中一伪TCP连接收到的数据包的源IP地址和源端口地址替换为另一伪TCP连接对应的所述第三设备侧的IP地址和端口地址,将所述数据包的目的IP地址和端口地址替换为另一伪TCP连接对应的设备端的IP地址和端口址址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100660083A CN100423513C (zh) | 2006-03-21 | 2006-03-21 | 一种tcp连接的合并方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100660083A CN100423513C (zh) | 2006-03-21 | 2006-03-21 | 一种tcp连接的合并方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1819562A true CN1819562A (zh) | 2006-08-16 |
CN100423513C CN100423513C (zh) | 2008-10-01 |
Family
ID=36919251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100660083A Active CN100423513C (zh) | 2006-03-21 | 2006-03-21 | 一种tcp连接的合并方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100423513C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008138275A1 (fr) * | 2007-05-15 | 2008-11-20 | Huawei Technologies Co., Ltd. | Procédé, dispositif et système l2c |
CN105991629A (zh) * | 2015-03-26 | 2016-10-05 | 杭州迪普科技有限公司 | Tcp连接建立方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3315926B2 (ja) * | 1998-05-25 | 2002-08-19 | ケイディーディーアイ株式会社 | Tcp通信高速化装置 |
US20030235206A1 (en) * | 2001-02-15 | 2003-12-25 | Tantivy Communications, Inc. | Dual proxy approach to TCP performance improvements over a wireless interface |
CN1134938C (zh) * | 2001-06-11 | 2004-01-14 | 华为技术有限公司 | 设置于服务器群组前端的连接倒换系统及其倒换方法 |
CN100388709C (zh) * | 2002-11-28 | 2008-05-14 | 中兴通讯股份有限公司 | 一种从局域网连接互连网的方法 |
JP4260659B2 (ja) * | 2004-03-12 | 2009-04-30 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | パケットのnat透過機能を有する端末装置及びそのプログラム |
-
2006
- 2006-03-21 CN CNB2006100660083A patent/CN100423513C/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008138275A1 (fr) * | 2007-05-15 | 2008-11-20 | Huawei Technologies Co., Ltd. | Procédé, dispositif et système l2c |
CN101309285B (zh) * | 2007-05-15 | 2012-09-05 | 华为技术有限公司 | 一种第二层控制的方法、装置及其系统 |
CN105991629A (zh) * | 2015-03-26 | 2016-10-05 | 杭州迪普科技有限公司 | Tcp连接建立方法及装置 |
CN105991629B (zh) * | 2015-03-26 | 2019-06-04 | 杭州迪普科技股份有限公司 | Tcp连接建立方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100423513C (zh) | 2008-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1881916A (zh) | 一种在通信设备间实现通信的方法及装置 | |
CN1158615C (zh) | 对流媒体服务器实现负载均衡的方法和设备 | |
US8458280B2 (en) | Apparatus and method for packet transmission over a high speed network supporting remote direct memory access operations | |
CN1251446C (zh) | 一种防御网络传输控制协议同步报文泛滥攻击的方法 | |
US20010029544A1 (en) | System for increasing data packet transfer rate between a plurality of modems and the internet | |
CN1921438A (zh) | 一种应用代理实现网间应用加速的方法 | |
CN101056222A (zh) | 一种深度报文检测方法、网络设备及系统 | |
CN1968227A (zh) | 一种无线接入网关支持透明代理的系统及方法 | |
CN1728671A (zh) | 服务器设备及其控制方法和使用该服务器建立连接的方法 | |
CN101030946A (zh) | 一种实现数据业务的方法及系统 | |
CN101039310A (zh) | 链路共享服务装置以及通信方法 | |
CN1909507A (zh) | 一种报文转发方法和系统 | |
CN1115843C (zh) | 无线数据通信设备和方法 | |
CN1917512A (zh) | 一种建立对等直连通道的方法 | |
WO2011057525A1 (zh) | 基于包处理的http服务器及其数据处理方法 | |
CN1272724C (zh) | 基于内核中套接字对接的第七层负载均衡的方法 | |
CN1838669A (zh) | 对于双向通信的超文本传输协议使用 | |
CN101043523A (zh) | 即时消息服务器的登录方法、系统及代理服务器 | |
CN1177438C (zh) | 基于远程登录互联网协议的网络设备中继管理的实现方法 | |
CN1863202A (zh) | 提高负载均衡设备和服务器处理性能的方法 | |
CN1801718A (zh) | 一种内容分发网络中oma下载的实现方法 | |
CN1819562A (zh) | 一种tcp连接的合并方法 | |
CN1905476A (zh) | 一种对终端产品的管理系统及方法 | |
CN1665239A (zh) | 一种实现不同通信协议设备间信息传输的方法 | |
CN1599330A (zh) | 一种实现对nat内网络设备进行远程登录管理的方法 |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |