CN104079537A - 一种基于传输控制协议建立会话连接的方法、装置及系统 - Google Patents
一种基于传输控制协议建立会话连接的方法、装置及系统 Download PDFInfo
- Publication number
- CN104079537A CN104079537A CN201310103897.6A CN201310103897A CN104079537A CN 104079537 A CN104079537 A CN 104079537A CN 201310103897 A CN201310103897 A CN 201310103897A CN 104079537 A CN104079537 A CN 104079537A
- Authority
- CN
- China
- Prior art keywords
- gateway
- callee
- calling party
- address
- transmission control
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于传输控制协议建立会话连接的方法、装置及系统,涉及通信技术领域,用于实现网络地址转换的传输控制协议简单穿越。本发明提供的基于传输控制协议建立会话连接的方法,包括:获取主叫方网关的地址以及使用网关的端口信息;根据所述主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发起传输控制协议建立连接,以使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系;在所述主叫方发起传输控制协议建立连接时,接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的握手消息并向所述主叫方返回第一应答消息;接收主叫方发送的第二应答消息,建立与主叫方之间的会话连接。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于传输控制协议(Transmission Control Protocol,以下简称为TCP)建立会话连接的方法、装置及系统。
背景技术
网络地址转换(Network Address Translators,NAT)是在IP地址日益缺乏的情况下产生的,主要目的就是为了能够地址重用。NAT是一个IETF(Internet Engineering Task Force,互联网工程任务组)标准,可以将局域网中的内部地址节点翻译成合法的IP地址在Internet上使用(即把IP包内的地址域用合法的IP地址来替换),或者可以把一个IP地址转换成某个局域网节点的地址,从而可以帮助网络超越地址的限制,合理的安排网络中共有Internet地址和私有IP地址的使用。
然而,NAT的存在将给通信双方建立会话连接带来问题。比如:当主叫对处于NAT后的被叫发起会话请求时,由于此时被叫用户尚未在其NAT上留下端口映射关系,因此主叫不知道目的的端口号,NAT设备也不知道该往内网何处转发外来的请求。这种接连是不能建立成功的。如果通信双方都在NAT之后,建立会话连接将会更加困难。
康奈尔大学的NUTSS项目组提出了一种STUN(Simple Traversal of UDP over NATs,NAT的UDP简单穿越)的改进协议STUNT(STUN with TCP),这个协议利用发送一个低生命周期的信号来引发本地NAT返回一个ICMP(Internet Control Message Protocol,Internet控制报文协议)错误消息,以获得TCP连接 序号等信息,然后利用这些信息来伪造一个TCP连接的方法从而实现NAT的穿越。
具体的,如图1所示,终端双方(终端A、终端B)都主动发送低生命周期(TTL)的SYN,且SYN的生命周期要足够大,大到SYN包能穿过终端双方各自的NAT,但生命周期又要足够小,小到穿过各自的NAT后就过期而被网络丢弃。这样发起终端一方的NAT就会返回一个ICMP消息,通过侦听经过原始套接字(RAW-socket)或PCAP(packet capture library,抓包库)返回的ICMP消息,终端可以得知初始TCP的序号。终端双方把各自的序号告诉都能抵达(连接)的STUNT服务器,紧接着STUNT服务器通过设置匹配的序号构造一个SYNACK来欺骗双方(双方都认为该SYNACK是对方回应的)。完成TCP握手任务的ACK按照正常方式穿过网络。这种方法最大的缺点在于,需要一个第三方为一个任意地址产生一个欺骗包,而该欺骗包很可能被网络中各种各样的进出过滤器丢弃。
发明内容
本发明的实施例提供一种基于TCP建立会话连接的方法、装置及系统,用于实现NAT的TCP简单穿越。
为达到上述目的,本发明的实施例根据如下技术方案:
第一方面,本发明实施例提供了一种基于TCP建立会话连接的方法,包括:获取主叫方网关的地址以及使用网关的端口信息;根据所述主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发起TCP建立连接,以使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系;在所述主叫方发起TCP建立连接时,接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射 关系发送的握手消息并向所述主叫方返回第一应答消息;接收主叫方发送的第二应答消息,建立与主叫方之间的会话连接。
第二方面,本发明实施例还提供了一种基于TCP建立会话连接的方法,包括:获取被叫方网关的地址以及使用网关的端口信息;在所述被叫方向主叫方网关发起TCP建立连接后,根据所述被叫方网关的地址以及使用网关的端口信息向所述被叫方网关发送握手消息以使得所述被叫方网管将所述握手消息发送给被叫方,所述被叫方网关在所述被叫方发起TCP建立连接时记录有被叫方与被叫方网关之间的端口映射关系;接收被叫方返回的第一应答消息并发送第二应答消息给被叫方,建立与被叫方之间的会话连接。
第三方面,本发明实施例还提供了一种服务端,包括:
第一获取单元,用于获取主叫方网关的地址以及使用网关的端口信息;
第一发起单元,用于根据所述第一获取单元获取的主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发起TCP建立连接,以使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系;
第一接收单元,在所述主叫方发起TCP建立连接时,用于接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的握手消息;
第一发送单元,用于向所述主叫方返回第一应答消息;
第二接收单元,用于接收主叫方发送的第二应答消息,建立与主叫方之间的会话连接。
第四方面,本发明实施例还提供了一种客户端,包括:
第二获取单元,用于获取被叫方网关的地址以及使用网关的端口信息;
第二发送单元,用于在所述被叫方向主叫方网关发起TCP建立连接后,根据所述第二获取单元获取的被叫方网关的地址以及使用网关的端口信息向所述 被叫方网关发送握手消息以使得所述被叫方网管将所述握手消息发送给被叫方,所述被叫方网关在所述被叫方发起TCP建立连接时记录有被叫方与被叫方网关之间的端口映射关系;
第三接收单元,用于接收被叫方返回的第一应答消息;
第三发送单元,用于发送第二应答消息给被叫方,建立与被叫方之间的会话连接。
第五方面,本发明实施例还提供了一种基于TCP建立会话连接的系统,包括:主叫方和被叫方
所述被叫方,用于获取主叫方网关的地址以及使用网关的端口信息;根据所述主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发起TCP建立连接,以使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系;在所述主叫方发起TCP建立连接时,接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的握手消息并向所述主叫方返回第一应答消息;接收主叫方发送的第二应答消息,建立与主叫方之间的会话连接;
所述主叫方,用于获取被叫方网关的地址以及使用网关的端口信息;在所述被叫方向主叫方网关发起TCP建立连接后,根据所述被叫方网关的地址以及使用网关的端口信息向所述被叫方网关发送握手消息以使得所述被叫方网管将所述握手消息发送给被叫方,所述被叫方网关在所述被叫方发起TCP建立连接时记录有被叫方与被叫方网关之间的端口映射关系;接收被叫方返回的第一应答消息并发送第二应答消息给被叫方,建立与被叫方之间的会话连接。
本发明实施例提供的一种基于TCP建立会话连接的方法、装置及系统,由于被叫方主动发起TCP建立连接,使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系,在主叫方发起TCP建立连接时,被叫方能够接收所述被叫 方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的握手消息,从而实现了主叫方与被叫方之间的会话连接建立成功,即实现了NAT的TCP简单穿越,避免了现有技术中实现NAT的TCP穿越需要一个第三方为一个任意地址产生一个欺骗包,而该欺骗包很可能被网络中各种各样的进出过滤器丢弃的情况发生。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中NAT的TCP穿越时序图;
图2为本发明实施例提供的一种基于TCP建立会话连接的方法的流程图一;
图3为本发明实施例提供的一种基于TCP建立会话连接的方法的流程图二;
图4为本发明又一实施例提供的一种基于TCP建立会话连接的方法的时序图;
图5为本发明另一实施例提供的服务端的结构示意图;
图6为图5所示的服务端中第一获取单元的结构示意图;
图7为本发明另一实施例提供的客户端的结构示意图;
图8为图7所示的客户端中第二获取单元的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,本发明实施例提供一种基于TCP建立会话连接的方法,可以应用于作为被叫方的终端,包括:
步骤201、获取主叫方网关的地址以及使用网关的端口信息。
步骤202、根据所述主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发起TCP建立连接,以使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系。
步骤203、在所述主叫方发起TCP建立连接时,接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的握手消息并向所述主叫方返回第一应答消息。
在本实施例中,所述握手消息可以是SYN消息,所述第一应答消息可以是SYN-ACK消息。
步骤204、接收主叫方发送的第二应答消息,建立与主叫方之间的会话连接。
在本实施例中,所述第二应答消息可以是ACK消息。
如图3所示,对应于上述实施例,本发明实施例还提供一种基于TCP建立会话连接的方法,可以应用于作为主叫方的终端,包括:
步骤301、获取被叫方网关的地址以及使用网关的端口信息。
步骤302、在所述被叫方向主叫方网关发起TCP建立连接后,根据所述被叫方网关的地址以及使用网关的端口信息向所述被叫方网关发送握手消息以使得所述被叫方网管将所述握手消息发送给被叫方,所述被叫方网关在所述被叫 方发起TCP建立连接时记录有被叫方与被叫方网关之间的端口映射关系。
在本实施例中,所述握手消息可以是SYN消息。
步骤303、接收被叫方返回的第一应答消息并发送第二应答消息给被叫方,建立与被叫方之间的会话连接。
在本实施例中,所述第一应答消息可以是SYN-ACK消息,所述第二应答消息可以是ACK消息。
本发明实施例提供的一种基于TCP建立会话连接的方法,由于被叫方主动发起TCP建立连接,使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系,在主叫方发起TCP建立连接时,被叫方能够接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的握手消息,从而实现了主叫方与被叫方之间的会话连接建立成功,即实现了NAT的TCP简单穿越,避免了现有技术中实现NAT的TCP穿越需要一个第三方为一个任意地址产生一个欺骗包,而该欺骗包很可能被网络中各种各样的进出过滤器丢弃的情况发生。
为了使得本领域技术人员更好的理解本方案,现对本发明又一实施例提供的一种基于TCP建立会话连接的方法进行详细的说明。
本发明又一实施例提供的基于TCP建立会话连接的方法可以应用于一种TCP网络架构,在该TCP网络架构中设置有主叫方、主叫方网关、注册服务器、被叫方以及被叫方网关。值得说明的是,在本实施例中,发起TCP建立连接,均是由发起方发送SYN消息给对端,实现TCP建立连接,是由发起方发送SYN消息,并且发起方能够接收到对端返回的SYN-ACK消息并在此发送一个ACK消息,通过发起方与对端的三次握手实现发起方与对端之间的TCP连接。
如图4所示,本发明又一实施例提供的一种基于TCP建立会话连接的方法,包括:
步骤401、主叫方、被叫方均与注册服务器之间建立TCP连接。
步骤402、主叫方向注册服务器发送第二注册消息,以使得注册服务器记录被叫方网关的地址以及使用网关的端口信息。
步骤403、被叫方向注册服务器发送第一注册消息,以使得注册服务器记录主叫方网关的地址以及使用网关的端口信息。
步骤404、主叫方向注册服务器发送第二请求消息,其中,所述第二请求消息中携带有主叫方的标识信息。
步骤405、注册服务器根据第二请求消息向主叫方返回第二回复消息,其中,所述第二回复消息中携带有被叫方网关的地址以及使用网关的端口信息。
步骤406、被叫方向注册服务器发送第一请求消息,其中,所述第一请求消息中携带有主叫方的标识信息;
步骤407、注册服务器根据所述第一请求消息向被叫方返回第一回复消息,其中,所述第一回复消息中携带有主叫方网关的地址以及使用网关的端口信息。
步骤408、被叫方根据主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发起TCP建立连接,以使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系。
在所述步骤408中,由于标准TCP建立连接均是由主叫方发起的,在本步骤中,由被叫方主动发起TCP建立连接,其报文不是标准的TCP/IP协议栈能发出的,所以只能采用手动构造报文并到送该报文的方法来实现。值得说明的是,在本实施例中,手动构造的报文为伪造SYN消息,伪造SYN消息为原始套接字RAW-socket或者抓包库PCAP。
由于本实施例中涉及到如何构造一个TCP的SYN报文,即伪造SYN消息,并发送该报文,现在介绍下如何实现。
在windows/linux系统上有两种方案,一是适用RAW-socket;另一种则是使用PCAP;RAW-socket在windows上在XP以后,不能发送TCP报文而PCAP可以发送TCP报文,故在本实施例中以PCAP为例进行详细的说明来实现。Pcap在windows上有NDIS协议层驱动,它完全绕开了TCP/IP协议栈,所以能够发送和接收任何以太网报文。本实施例对于如何构造并发送TCPSYN报文不做任何限制,在windows上,除了上面的方法,也可以实现自己的NDIS中间层、协议层、NIC层驱动来实现同样的目的。
此外,由于建立TCP连接由被叫方主动发起,所以改报文肯定会失败,但是,却打通了主叫方到被叫方的通道,即被叫方网管上记录了被叫方与被叫方网关之间的端口映射关系。
步骤409、主叫方向被叫方网关发送SYN消息。
步骤410、被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系将SYN消息发送给被叫方。
步骤411、被叫方向所述主叫方返回SYN-ACK消息。
步骤412、主叫方在接收到SYN-ACK消息后向被叫方发送ACK消息,主叫方与被叫方之间实现了会话连接。
本发明实施例提供的一种基于TCP建立会话连接的方法,由于被叫方主动发起TCP建立连接,使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系,在主叫方发起TCP建立连接时,被叫方能够接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的SYN消息,从而实现了主叫方与被叫方之间的会话连接建立成功,即实现了NAT的TCP简单穿越,避免了现有技术中实现NAT的TCP穿越需要一个第三方为一个任意地址产生一个欺骗包,而该欺骗包很可能被网络中各种各样的进出过滤器丢弃的情况发生。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本发明另一实施例提供的一种服务端,如图5所示,包括:
第一获取单元51,用于获取主叫方网关的地址以及使用网关的端口信息。
其中,如图6所示,所述第一获取单元,包括:
第一建立子单元61,用于与注册服务器之间建立TCP连接;
第一发送子单元62,用于向所述注册服务器发送第一请求消息,所述第一请求消息中携带有主叫方的标识信息;
第一接收子单元63,用于接收所述注册服务器根据所述第一请求消息发送的第一回复消息,所述第一回复消息中携带有主叫方网关的地址以及使用网关的端口信息。
进一步的,如图6所示,所述第一获取单元,还包括:
第二发送子单元64,用于向所述注册服务器发送第一注册消息,以使得所述注册服务器记录被叫方网关的地址以及使用网关的端口信息。
第一发起单元52,用于根据所述第一获取单元获取的主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发起TCP建立连接,以使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系;
在本实施例中,所述第一发起单元,具体用于根据所述主叫方网关的地址 以及使用网关的端口信息向所述主叫方网关发送伪造握手消息,所述伪造握手消息为原始套接字RAW-socket或者抓包库PCAP。
第一接收单元53,在所述主叫方发起TCP建立连接时,用于接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的握手消息;
第一发送单元54,用于向所述主叫方返回第一应答消息;
第二接收单元55,用于接收主叫方发送的第二应答消息,建立与主叫方之间的会话连接。
对应于上述实施例,本发明另一实施例还提供一种客户端,如图7所示,包括:
第二获取单元71,用于获取被叫方网关的地址以及使用网关的端口信息;
其中,如图8所示,所述第二获取单元,包括:
第二建立子单元81,用于与注册服务器之间建立TCP连接;
第三发送子单元82,用于向所述注册服务器发送第二请求消息,所述第二请求消息中携带有被叫方的标识信息;
第二接收子单元83,用于接收所述注册服务器根据所述第二请求消息发送的第二回复消息,所述第二回复消息中携带有被叫方网关的地址以及使用网关的端口信息。
进一步的,如图8所示,第二获取单元,还包括:
第四发送子单元84,用于向所述注册服务器发送第二注册消息,以使得所述注册服务器记录主叫方网关的地址以及使用网关的端口信息。
第二发送单元72,用于在所述被叫方向主叫方网关发起TCP建立连接后,根据所述第二获取单元获取的被叫方网关的地址以及使用网关的端口信息向所述被叫方网关发送握手消息以使得所述被叫方网管将所述握手消息发送给被叫 方,所述被叫方网关在所述被叫方发起TCP建立连接时记录有被叫方与被叫方网关之间的端口映射关系;
第三接收单元73,用于接收被叫方返回的第一应答消息;
第三发送单元74,用于发送第二应答消息给被叫方,建立与被叫方之间的会话连接。
本发明实施例提供的一种客户端、服务端,由于被叫方主动发起TCP建立连接,使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系,在主叫方发起TCP建立连接时,被叫方能够接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的握手消息,从而实现了主叫方与被叫方之间的会话连接建立成功,即实现了NAT的TCP简单穿越,避免了现有技术中实现NAT的TCP穿越需要一个第三方为一个任意地址产生一个欺骗包,而该欺骗包很可能被网络中各种各样的进出过滤器丢弃的情况发生。
本发明另一实施例提供的一种基于TCP建立会话连接的系统,包括:主叫方和被叫方
所述被叫方,用于获取主叫方网关的地址以及使用网关的端口信息;根据所述主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发起TCP建立连接,以使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系;在所述主叫方发起TCP建立连接时,接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的握手消息并向所述主叫方返回第一应答消息;接收主叫方发送的第二应答消息,建立与主叫方之间的会话连接;
所述主叫方,用于获取被叫方网关的地址以及使用网关的端口信息;在所述被叫方向主叫方网关发起TCP建立连接后,根据所述被叫方网关的地址以及使用网关的端口信息向所述被叫方网关发送握手消息以使得所述被叫方网管将 所述握手消息发送给被叫方,所述被叫方网关在所述被叫方发起TCP建立连接时记录有被叫方与被叫方网关之间的端口映射关系;接收被叫方返回的第一应答消息并发送第二应答消息给被叫方,建立与被叫方之间的会话连接。
本发明实施例提供的一种基于TCP建立会话连接的系统,由于被叫方主动发起TCP建立连接,使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系,在主叫方发起TCP建立连接时,被叫方能够接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的握手消息,从而实现了主叫方与被叫方之间的会话连接建立成功,即实现了NAT的TCP简单穿越,避免了现有技术中实现NAT的TCP穿越需要一个第三方为一个任意地址产生一个欺骗包,而该欺骗包很可能被网络中各种各样的进出过滤器丢弃的情况发生。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种基于传输控制协议建立会话连接的方法,其特征在于,包括:
获取主叫方网关的地址以及使用网关的端口信息;
根据所述主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发起传输控制协议建立连接,以使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系;
在所述主叫方发起传输控制协议建立连接时,接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的握手消息并向所述主叫方返回第一应答消息;
接收主叫方发送的第二应答消息,建立与主叫方之间的会话连接。
2.根据权利要求1所述的方法,其特征在于,所述获取主叫方网关的地址以及使用网关的端口信息,包括:
与注册服务器之间建立传输控制协议连接;
向所述注册服务器发送第一请求消息,所述第一请求消息中携带有主叫方的标识信息;
接收所述注册服务器根据所述第一请求消息发送的第一回复消息,所述第一回复消息中携带有主叫方网关的地址以及使用网关的端口信息。
3.根据权利要求2所述的方法,其特征在于,在所述与注册服务器之间建立传输控制协议连接之后,还包括:
向所述注册服务器发送第一注册消息,以使得所述注册服务器记录被叫方网关的地址以及使用网关的端口信息。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发起传输控制协议建立连接,包括:
根据所述主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发送伪造握手消息,所述伪造握手消息为原始套接字RAW-socket或者抓包库PCAP。
5.一种基于传输控制协议建立会话连接的方法,其特征在于,包括:
获取被叫方网关的地址以及使用网关的端口信息;
在所述被叫方向主叫方网关发起传输控制协议建立连接后,根据所述被叫方网关的地址以及使用网关的端口信息向所述被叫方网关发送握手消息以使得所述被叫方网管将所述握手消息发送给被叫方,所述被叫方网关在所述被叫方发起传输控制协议建立连接时记录有被叫方与被叫方网关之间的端口映射关系;
接收被叫方返回的第一应答消息并发送第二应答消息给被叫方,建立与被叫方之间的会话连接。
6.根据权利要求5所述的方法,其特征在于,所述获取被叫方网关的地址以及使用网关的端口信息,包括:
与注册服务器之间建立传输控制协议连接;
向所述注册服务器发送第二请求消息,所述第二请求消息中携带有被叫方的标识信息;
接收所述注册服务器根据所述第二请求消息发送的第二回复消息,所述第二回复消息中携带有被叫方网关的地址以及使用网关的端口信息。
7.根据权利要求6所述的方法,其特征在于,在所述与注册服务器之间建立传输控制协议连接之后,还包括:
向所述注册服务器发送第二注册消息,以使得所述注册服务器记录主叫方网关的地址以及使用网关的端口信息。
8.根据权利要求5-7任一项所述的方法,其特征在于,所述被叫方向主叫方网关发起传输控制协议建立连接,具体包括:
所述被叫方向主叫方网关发送伪造握手消息,所述伪造握手消息为原始套接字RAW-socket或者抓包库PCAP。
9.一种服务端,其特征在于,包括:
第一获取单元,用于获取主叫方网关的地址以及使用网关的端口信息;
第一发起单元,用于根据所述第一获取单元获取的主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发起传输控制协议建立连接,以使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系;
第一接收单元,在所述主叫方发起传输控制协议建立连接时,用于接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的握手消息;
第一发送单元,用于向所述主叫方返回第一应答消息;
第二接收单元,用于接收主叫方发送的第二应答消息,建立与主叫方之间的会话连接。
10.根据权利要求9所述的服务端,其特征在于,所述第一获取单元,包括:
第一建立子单元,用于与注册服务器之间建立传输控制协议连接;
第一发送子单元,用于向所述注册服务器发送第一请求消息,所述第一请求消息中携带有主叫方的标识信息;
第一接收子单元,用于接收所述注册服务器根据所述第一请求消息发送的第一回复消息,所述第一回复消息中携带有主叫方网关的地址以及使用网关的端口信息。
11.根据权利要求10所述的服务端,其特征在于,所述第一获取单元,还包括:
第二发送子单元,用于向所述注册服务器发送第一注册消息,以使得所述注册服务器记录被叫方网关的地址以及使用网关的端口信息。
12.根据权利要求9-11任一项所述的服务端,其特征在于,所述第一发起单元,具体用于根据所述主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发送伪造握手消息,所述伪造握手消息为原始套接字RAW-socket或者抓包库PCAP。
13.一种客户端,其特征在于,包括:
第二获取单元,用于获取被叫方网关的地址以及使用网关的端口信息;
第二发送单元,用于在所述被叫方向主叫方网关发起传输控制协议建立连接后,根据所述第二获取单元获取的被叫方网关的地址以及使用网关的端口信息向所述被叫方网关发送握手消息以使得所述被叫方网管将所述握手消息发送给被叫方,所述被叫方网关在所述被叫方发起传输控制协议建立连接时记录有被叫方与被叫方网关之间的端口映射关系;
第三接收单元,用于接收被叫方返回的第一应答消息;
第三发送单元,用于发送第二应答消息给被叫方,建立与被叫方之间的会话连接。
14.根据权利要求13所述的客户端,其特征在于,所述第二获取单元,包括:
第二建立子单元,用于与注册服务器之间建立传输控制协议连接;
第三发送子单元,用于向所述注册服务器发送第二请求消息,所述第二请求消息中携带有被叫方的标识信息;
第二接收子单元,用于接收所述注册服务器根据所述第二请求消息发送的第二回复消息,所述第二回复消息中携带有被叫方网关的地址以及使用网关的端口信息。
15.根据权利要求14所述的客户端,其特征在于,第二获取单元,还包括:
第四发送子单元,用于向所述注册服务器发送第二注册消息,以使得所述注册服务器记录主叫方网关的地址以及使用网关的端口信息。
16.一种基于传输控制协议建立会话连接的系统,其特征在于,包括:主叫方和被叫方
所述被叫方,用于获取主叫方网关的地址以及使用网关的端口信息;根据所述主叫方网关的地址以及使用网关的端口信息向所述主叫方网关发起传输控制协议建立连接,以使得被叫方网关记录被叫方与被叫方网关之间的端口映射关系;在所述主叫方发起传输控制协议建立连接时,接收所述被叫方网关根据所述被叫方与被叫方网关之间的端口映射关系发送的握手消息并向所述主叫方返回第一应答消息;接收主叫方发送的第二应答消息,建立与主叫方之间的会话连接;
所述主叫方,用于获取被叫方网关的地址以及使用网关的端口信息;在所述被叫方向主叫方网关发起传输控制协议建立连接后,根据所述被叫方网关的地址以及使用网关的端口信息向所述被叫方网关发送握手消息以使得所述被叫方网管将所述握手消息发送给被叫方,所述被叫方网关在所述被叫方发起传输控制协议建立连接时记录有被叫方与被叫方网关之间的端口映射关系;接收被叫方返回的第一应答消息并发送第二应答消息给被叫方,建立与被叫方之间的会话连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310103897.6A CN104079537B (zh) | 2013-03-28 | 2013-03-28 | 一种基于传输控制协议建立会话连接的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310103897.6A CN104079537B (zh) | 2013-03-28 | 2013-03-28 | 一种基于传输控制协议建立会话连接的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104079537A true CN104079537A (zh) | 2014-10-01 |
CN104079537B CN104079537B (zh) | 2018-03-23 |
Family
ID=51600586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310103897.6A Active CN104079537B (zh) | 2013-03-28 | 2013-03-28 | 一种基于传输控制协议建立会话连接的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104079537B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254433A (zh) * | 2016-07-28 | 2016-12-21 | 杭州迪普科技有限公司 | 一种建立tcp通信连接的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050089028A1 (en) * | 2003-10-27 | 2005-04-28 | Marconi Communications, Inc. | Method and system for managing computer networks |
CN1665235A (zh) * | 2004-03-02 | 2005-09-07 | 华为技术有限公司 | 一种穿越子网的方法及子网穿越系统 |
CN1691817A (zh) * | 2004-04-30 | 2005-11-02 | 华为技术有限公司 | 会话建立方法 |
CN101374141A (zh) * | 2007-08-23 | 2009-02-25 | 浙江省电信有限公司 | 一种基于pcp协议的tcp nat穿越方法 |
CN101741914A (zh) * | 2010-02-03 | 2010-06-16 | 上海悠络客电子科技有限公司 | 一种p2p网络中穿透nat建立覆盖网的方法和系统 |
-
2013
- 2013-03-28 CN CN201310103897.6A patent/CN104079537B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050089028A1 (en) * | 2003-10-27 | 2005-04-28 | Marconi Communications, Inc. | Method and system for managing computer networks |
CN1665235A (zh) * | 2004-03-02 | 2005-09-07 | 华为技术有限公司 | 一种穿越子网的方法及子网穿越系统 |
CN1691817A (zh) * | 2004-04-30 | 2005-11-02 | 华为技术有限公司 | 会话建立方法 |
CN101374141A (zh) * | 2007-08-23 | 2009-02-25 | 浙江省电信有限公司 | 一种基于pcp协议的tcp nat穿越方法 |
CN101741914A (zh) * | 2010-02-03 | 2010-06-16 | 上海悠络客电子科技有限公司 | 一种p2p网络中穿透nat建立覆盖网的方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254433A (zh) * | 2016-07-28 | 2016-12-21 | 杭州迪普科技有限公司 | 一种建立tcp通信连接的方法及装置 |
CN106254433B (zh) * | 2016-07-28 | 2020-11-06 | 杭州迪普科技股份有限公司 | 一种建立tcp通信连接的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104079537B (zh) | 2018-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2805476B1 (en) | Ice based nat traversal | |
Rosenberg et al. | TCP Candidates with Interactive Connectivity Establishment (ICE) | |
US7788383B2 (en) | Communicating a selection of a potential configuration | |
KR101368172B1 (ko) | 호출자 통신 클라이언트와 피호출자 통신 클라이언트 간의 통신 세션을 셋업하는 방법과 이 통신 세션의 셋업을 가능하게 하는 통신 네트워크와 컴퓨터 프로그램 | |
WO2006136908A8 (en) | System, terminal, method, and computer program product for establishing a transport- level connection with a server located behind a network address translator and/or firewall | |
US8040800B2 (en) | Method for address translation device traversal for SIP signaling messages through temporary use of the TCP transport protocol | |
JP3891195B2 (ja) | データ通信方法 | |
JP2011507438A (ja) | Sip応答メッセージの送信インターフェースの制御 | |
US20150304276A1 (en) | Network address translation traversal system and method for real-time communications | |
EP1694034A1 (en) | Method to establish a peer-to-peer connection between two user agents located behind symmetric NATs | |
GB2513597A (en) | SIP signalling | |
US20130117437A1 (en) | Method for establising tcp connecting according to nat behaviors | |
Srirama et al. | Tcp hole punching approach to address devices in mobile networks | |
Tseng et al. | Can: A context-aware NAT traversal scheme | |
CN104079537A (zh) | 一种基于传输控制协议建立会话连接的方法、装置及系统 | |
WO2017161866A1 (zh) | 网络连接方法及装置 | |
Phuoc et al. | NAT traversal techniques in peer-to-peer networks | |
CN112055037A (zh) | Nat穿透连接方法及系统 | |
Makinen et al. | Measurements on the feasibility of TCP NAT traversal in cellular networks | |
Goldberg et al. | A Network Address Translator (NAT) Traversal Mechanism for Media Controlled by the Real-Time Streaming Protocol (RTSP) | |
CN108337331B (zh) | 网络穿透方法、装置、系统及网络连通性检查方法 | |
JP4889620B2 (ja) | 通信ネットワークにおけるipパケット中継方法およびゲートウェイ装置 | |
Choi et al. | Design and implementation of P2P home monitoring system architecture with IP cameras for a vacuum robot in ubiquitous environments | |
CN113098949B (zh) | 点对点通信方法及系统、用于点对点通信的服务端 | |
CN103457823A (zh) | 双栈协议桥接拨号的实现方法 |
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 |