一种端到端连接建立方法和装置制造方法
【专利摘要】本发明提供了一种端到端连接建立方法,应用于多径传输控制协议MPTCP网络中,所述方法包括:终端的第一私网地址跟远端终端建立端到端的TCP连接并关闭该连接;该终端与远端终端建立MPTCP主连接;该终端通过建立的MPTCP主连接向远端终端发送增加地址报文,并携带第一私网地址的映射公网地址和映射端口;该终端开启与第一私网地址绑定的本地端口的监听功能,监听远端终端使用第二地址发送给本终端的报文,与远端终端进行三次握手,完成MPTCP子连接的建立。基于同样的发明构思,本申请还提出一种端到端连接建立装置,在兼容MPTCP的基础上,实现了位于不同局域网内的终端之间建立MPTCP网络中的P2P连接。
【专利说明】一种端到端连接建立方法和装置
【技术领域】
[0001] 本发明涉及通信【技术领域】,特别涉及一种端到端连接建立方法和装置。
【背景技术】
[0002] 伴随着互联网各种应用的兴起,特别是端到端(P2P)的应用,如BitTorrent, eMule,PPStream等,用户对带宽的需求越来越大。同时,带宽接入技术也得到了前所未有 的发展,尤其是无线宽带接入技术,如WiFi,WiMAX,3G/4G等,使得一个用户终端同时具有 到目标节点的多条链路。
[0003] 如何以资源共享的方式,把数据流分发到这多条链路上来提高网络带宽,为了解 决这一问题,多路径传输控制协议(MPTCP)应运而生。但是对于通信双方均通过子网接入 互联网的网络拓扑时,通信双方无法建立基于MPTCP的P2P连接。
【发明内容】
[0004] 有鉴于此,本申请提供一种端到端连接建立方法和装置,以解决通信双方均通过 子网接入互联网的网络拓扑时,通信双方无法建立基于MPTCP的P2P连接的问题。
[0005] 为解决上述技术问题,本申请的技术方案是这样实现的:
[0006] -种端到端连接建立方法,应用于多径传输控制协议MPTCP网络中,所述方法包 括:
[0007] 终端将本地第一私网地址与远端终端的第二地址建立TCP连接,并在所述TCP连 接建立完成后,关闭该TCP连接;
[0008] 该终端与远端终端建立MPTCP主连接;
[0009] 该终端通过建立的MPTCP主连接向远端终端发送增加地址报文,并携带通过建立 TCP连接获得的第一私网地址的映射公网地址和映射端口;
[0010] 该终端开启与第一私网地址绑定的本地端口的监听功能,监听远端终端使用第二 地址发送给本终端的报文,与远端终端进行三次握手,完成MPTCP子连接的建立。
[0011] 一种端到端连接建立装置,应用于多径传输控制协议MPTCP网络中的终端上,所 述装置包括:建立单元、记录单元和发送单元;
[0012] 所述建立单元,用于将本地第一私网地址与远端终端的第二地址建立TCP连接, 并在所述TCP连接建立完成后,关闭该TCP连接;与远端终端建立MPTCP主连接;开启与 第一私网地址绑定的本地端口的监听功能,监听远端终端使用第二地址发送给本终端的报 文,与远端终端进行三次握手,完成MPTCP子连接的建立;
[0013] 所述记录单元,用于将所述建立单元建立TCP连接时,获得的第一私网地址的映 射公网地址和映射端口进行记录;
[0014] 所述发送单元,用于通过所述建立单元建立的MPTCP主连接向远端终端发送增加 地址报文,并携带所述记录单元记录的第一私网地址的映射公网地址和映射端口。
[0015] 综上所述,本申请中对于新增地址为私网地址时,需先建立该私网地址与远端终 端的地址的传输控制协议(TCP)连接,并关闭建立的TCP连接;当通信双方终端建立MPTCP 主连接后,通过地址增加报文将该私网地址对应的映射公网地址和映射端口发送给所述远 端设备,进行三次握手,完成MPTCP子连接的建立。通过该方案在兼容MPTCP的基础上,实 现了位于不同局域网内的终端之间建立MPTCP网络中的P2P连接。
【专利附图】
【附图说明】
[0016] 图1为本申请具体实施例中端到端连接建立方法流程示意图;
[0017] 图2为基于MPTCP的P2P连接的组网示意图;
[0018] 图3为本申请具体实施例中应用于上述技术的装置结构示意图。
【具体实施方式】
[0019] 为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并据实施例, 对本发明的技术方案进行详细说明。
[0020] 本申请实施例中提出一种端到端连接建立方法,应用于MPTCP网络中,对于新增 地址为私网地址时,需先建立该私网地址与远端终端的地址的传输控制协议(TCP)连接, 并关闭建立的TCP连接;当通信双方终端建立MPTCP主连接后,通过地址增加报文将该私网 地址对应的映射公网地址和映射端口发送给所述远端设备,进行三次握手,完成MPTCP子 连接的建立。在兼容MPTCP的基础上,实现了位于不同局域网内的终端之间建立MPTCP网 络中的P2P连接。
[0021] 本申请中若使用本地私网地址建立MPTCP子连接时,需将本地该私网地址(如,第 一私网地址)与远端终端的地址(如,第二地址,该地址可以为公网地址,也可以为私网地 址)建立TCP连接,并在所述TCP连接建立完成后,关闭该TCP连接。
[0022] 在具体实现TCP连接建立过程中,终端首先获得第一私网地址对应的映射公网地 址;然后分别通过端口算法获得对应的映射端口,并在本地记录第一私网地址的公网映射 地址和映射端口,以便用于后续的MPTCP子连接的建立;并且将获得的公网映射地址和对 应的端口发送给信令服务器,并指示信令服务器发送给对应的远端设备;最后进行TCP穿 透完成TCP连接的建立。
[0023] 本终端的远端终端如果本地地址为私网地址时,操作同本终端,获取私网地址的 映射端口和映射公网地址;当远端终端的本地地址为公网地址时,直接将公网地址和对应 的端口发送给信令服务器并指示发送给对端终端即可。
[0024] 终端关闭建立的TCP连接,以便于后面MPTCP继续使用该建立TCP连接的端口。
[0025] 参见图1,图1为本申请具体实施例中端到端连接建立方法流程示意图。具体步骤 为:
[0026] 步骤101,终端与远端终端建立MPTCP主连接。
[0027] 终端与远端终端之间建立MPTCP主连接,用于建立该连接的地址可以是私网地 址,也可以是公网地址;远端终端用于建立连接的地址可以是公网地址也可以是私网地址。
[0028] 当远端终端被动建立MPTCP主连接,且远端终端用于建立MPTCP主连接的地址为 私网地址时,需要先通过建立TCP连接使远端设备获得本地私网地址的映射公网地址和映 射端口并通知本终端该私网地址对应的映射公网地址和映射端口。
[0029] 本终端使用获得的远端终端的该私网地址对应的映射公网地址和映射端口与远 端终端建立MPTCP主连接。
[0030] 当远端终端被动建立MPTCP主连接,且远端终端用于建立MPTCP主连接的地址为 公网地址时,可以同现有实现,直接进行MPTCP主连接,也可以通过本申请提供的获取私网 地址的映射公网地址和映射端口实现。
[0031] 在已存在MPTCP主连接的基础上,建立MPTCP子连接,如果新增本地地址为私网 地址,执行步骤102到步骤103 ;如果新增本地地址为公网地址,可以执行步骤102到步骤 103,也可以使用现有实现进行连接的建立。
[0032] 本申请具体实现时,在MPTCP主连接建立完成后,终端可以发起本地的私网地址 与对端的公网或私网地址之间MPTCP子连接的建立;
[0033] 如果MPTCP连接中新增本地地址为公网地址时,同现有实现,本申请也能够兼容, 即在向对端发送地址增加报文时,携带上该公网地址和对应的端口即可。
[0034] 步骤102,该终端通过建立的MPTCP主连接向远端终端发送增加地址报文,并携带 通过建立TCP连接获得的第一私网地址的映射公网地址和映射端口。
[0035] 由于该终端的本地地址为私网地址,因此将该私网地址对应的映射公网地址和映 射端口发送给远端终端,以便远端终端能够将报文发送到终端。
[0036] 步骤103,该终端开启与第一私网地址绑定的本地端口的监听功能,监听远端终端 使用第二地址发送给本终端的报文,与远端终端进行三次握手,完成MPTCP子连接的建立。
[0037] 本步骤中该终端与远端终端进行三次握手,完成MPTCP子连接的建立,包括:
[0038] 该终端接收到远端终端接收到所述增加地址报文而发送的第一握手报文时,向远 端终端发送第二握手报文;
[0039] 该终端接收到远端终端接收到所述第二握手报文而响应的第三握手报文时,完成 MPTCP子连接的建立。
[0040] 其中,远端终端发送的第一握手报文的目的IP地址和目的端口为,接收到的增加 地址报文中携带的第一私网地址对应的映射公网地址和映射端口。
[0041] 下面结合附图,详细说明本申请具体实施时如何实现基于MPTCP的P2P连接的建 立过程。
[0042] 参见图2,图2为基于MPTCP的P2P连接的组网示意图。图2中以终端1有2个私 网地址,分别为addrla和addrlb,通过2个不同的局域网连接至IP网络;终端2有1个私 网地址,通过所在局域网连接至IP网络为例,来说明本申请的连接建立过程。
[0043] 终端1的私网地址addrla绑定的端口为portla,私网地址addrlb绑定的端口为 portlb ;终端2的私网地址addr2绑定的端口为port2。
[0044] 下面详细描述终端1和终端2建立基于MPTCP的P2P连接的过程:
[0045] 第一步,终端1分别私网地址addrla与终端2的私网地址addr2之间的TCP连接; 建立私网地址addrlb与终端2的私网地址addr2之间的TCP连接,两条TCP建立的过程相 同,下面以私网地址addrla与终端2的私网地址addr2之间的TCP连接建立过程为例,具 体步骤为:
[0046] (1)、终端1通过NAT的用户数据报协议简单穿越(Simple Traversal of UDP over NATs,STUN)服务器获取私网地址addrla的映射公网地址exaddrla。终端2也会通过STUN 服务器获取私网地址addr2的映射公网地址exaddr2。
[0047] (2)、终端1和终端2分别通过本地配置的端口算法计算本地私网地址连接的NAT 路由器下一次分配的端口。具体计算方法同现有实现,这里不再详细描述。
[0048] 假设终端1计算私网地址addrla的映射公网地址exaddrla对应的映射端口 为exportla ;终端2计算私网地址addr2的映射公网地址exaddr2对应的映射端口为 export2a〇
[0049] (3)、终端1将获得的exaddrla :exportla发送给信令服务器;终端2将exaddr2 : export2a发送给映射服务器。
[0050] (4)、终端1与终端2通过信令服务器获知对端的映射公网地址及对应的映射端 口,exaddrla :exportla -exaddr2 :export2a〇
[0051] 对于私网地址addrlb与终端2的私网地址addr2之间的TCP连接建立,获知的对 应关系为 exaddrlb :exportlb-exaddr2 :export2b〇
[0052] (5)、进行TCP打洞,以addrla :portla跟addr2 :port2之间进行TCP打洞为例:
[0053] a、终端1在portla上开启监听功能,监听目的地址为与该端口绑定的私网地址 addrla的报文。
[0054] b、终端1以地址addrla为源地址,端口 portla为源端口,产生目的地址为 exaddr2,目的端口为export2a的SYNC报文并发送给终端2。
[0055] NAT1接收到后,通过与该源地址绑定端口发送该SNYC报文,并记录发送过目的地 址exaddr2、目的端口为export2a的报文。
[0056] NAT-3接收到该SYNC报文时,由于本地未记录向终端1的映射公网地址exaddrla 和映射端口 exportla发送过报文,因此,NAT-3将该报文丢弃,不会发送给终端2。这是出 于一种类似于防火墙的保护。
[0057] c、终端2产生SYNC报文并发送给终端1的exaddrla :exportla。
[0058] NAT-3接收到终端2发送的SYNC报文时,会向NAT-1转发,并记录发送过目的地址 exaddrla、目的端口为exportla的报文.
[0059] NAT-1接收到该SYNC报文后,根据本地记录确定已向终端2的公网映射地址 exaddr2和映射端口 export2a发送过报文时,在本地进行网络地址转换,发送给终端1。
[0060] d、终端1通过portla监听并接收NAT1转发的终端2发送的SYNC包时,建立起 TCP连接。此时,TCP打洞成功。
[0061] 同样addrlb :portlb跟addr2 :port2之间进行TCP打洞的过程同上述描述,这里 不再 描述。
[0062] 第二步、终端1关闭以上TCP连接,以便于后面MPTCP继续使用该端口,即将端口 portla和端口 port lb关闭的监听功能关闭。
[0063] 第三步,终端1与终端2建立MPTCP连接,由于本地存在多个私网地址,先选择一 个私网地址与终端2的私网地址建立MPTCP主连接。
[0064] 对于选择本地私网地址中哪个私网地址首先建立MPTCP主连接,可以根据具体应 用进行选择。
[0065] 本实施例中假设选择私网地址addrlb与私网地址addr2建立MPTCP主连接。
[0066] 终端1与终端2通过三次握手建立私网地址addrlb与addr2的MPTCP连接,具体 建立方式同现有实现,本实施例不再进行具体描述。
[0067] 第四步,终端1通过地址增加报文将私网地址addrlb的映射公网地址exaddrlb 和映射端口 exportlb发送给终端2 ;并在端口 portlb上开启监听功能,用于接收终端2发 来的报文。
[0068] 在现有实现时,终端1会通过TCP_MULTIPATH_ADD格式报文将私网地址addrlb和 对应端口 portlb发送给终端2 ;终端2在接收到这个报文后,发送SYNC报文时,目的地址 为addrlb,目的端口为portlb,由于该私网地址是一个局域网地址,该报文不会发送给终 端1,因此,现有实现的方式中,不能实现在MPTCP主连接后,私网地址之间建立MPTCP子连 接。
[0069] 本步骤中同样适用TCP_MULTIPATH_ADD格式向终端2发送,只是将私网地址 addrlb的映射公网地址exaddrlb和映射端口 exportlb发送给终端2。
[0070] 第五步,终端2接收到该地址增加报文时,向终端1发送第一握手报文。
[0071] 本步骤中终端2向终端1发送的第一握手报文为SYNC报文,该报文的目的地址为 exaddrlb,目的端口为 exportlb。
[0072] 由于之前TCP打洞已经完成,所以该SYNC报文到达NAT-1时,通过网络地址转化, 以及终端1在端口 portlb上的监听功能,最终发送给终端1。
[0073] 第六步,终端1在接收到终端2发送的第一握手报文时,向终端回复第二握手报 文。
[0074] 本步骤中的第二握手报文为SYNC+ACK包。
[0075] 第七步,终端2接收到第二握手报文时,向终端1回复第三握手报文。
[0076] 第八步,终端1接收到第三握手包时,完成MPTCP子连接的建立。
[0077] 若终端1还存在其他私网地址,也需要与终端2的私网地址建立MPTCP子连接时, 重复第四步到第八步的过程,建立这两个私网地址之间的MPTCP子连接。
[0078] 基于同样的发明构思,本申请还提出一种端到端连接建立装置,应用于多径传输 控制协议MPTCP网络中的终端上。参见图3,图3为本申请具体实施例中应用于上述技术的 装置结构示意图。该装置包括:建立单元301、记录单元302和发送单元303 ;
[0079] 建立单元301,用于将本地第一私网地址与远端终端的第二地址建立TCP连接,并 在所述TCP连接建立完成后,关闭该TCP连接;与远端终端建立MPTCP主连接;开启与第一 私网地址绑定的本地端口的监听功能,监听远端终端使用第二地址发送给本终端的报文, 与远端终端进行三次握手,完成MPTCP子连接的建立;
[0080] 记录单元302,用于将建立单元301建立TCP连接时,获得的第一私网地址的映射 公网地址和映射端口进行记录;
[0081] 发送单元303,用于通过建立单元301建立的MPTCP主连接向远端终端发送增加地 址报文,并携带记录单元302记录的第一私网地址的映射公网地址和映射端口。
[0082] 较佳地,所述第二地址为私网地址或公网地址。
[0083] 较佳地,
[0084] 建立单元301,具体用于接收到远端终端接收到所述增加地址报文而发送的第一 握手报文时,向远端终端发送第二握手报文;在接收到远端终端接收到所述第二握手报文 而响应的第三握手报文时,完成MPTCP子连接的建立。
[0085] 较佳地,
[0086] 所述远端终端发送的第一握手报文的目的IP地址和目的端口为,接收到的增加 地址报文中携带的第一私网地址对应的映射公网地址和映射端口
[0087] 上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可 以进一步拆分成多个子单兀。
[0088] 综上所述,本申请中对于新增地址为私网地址时,需先建立该私网地址与远端终 端的地址的传输控制协议(TCP)连接,并关闭建立的TCP连接;当通信双方终端建立MPTCP 主连接后,通过地址增加报文将该私网地址对应的映射公网地址和映射端口发送给所述远 端设备,进行三次握手,完成MPTCP子连接的建立。通过该方案在兼容MPTCP的基础上,实 现了位于不同局域网内的终端之间建立MPTCP网络中的P2P连接。
[0089] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1. 一种端到端连接建立方法,应用于多径传输控制协议MPTCP网络中,其特征在于,所 述方法包括: 终端将本地第一私网地址与远端终端的第二地址建立传输控制协议TCP连接,并在所 述TCP连接建立完成后,关闭该TCP连接; 该终端与远端终端建立MPTCP主连接; 该终端通过建立的MPTCP主连接向远端终端发送增加地址报文,并携带通过建立TCP 连接获得的第一私网地址的映射公网地址和映射端口; 该终端开启与第一私网地址绑定的本地端口的监听功能,监听远端终端使用第二地址 发送给本终端的报文,与远端终端进行三次握手,完成MPTCP子连接的建立。
2. 根据权利要求1所述的方法,其特征在于,所述第二地址为私网地址或公网地址。
3. 根据权利要求1或2所述的方法,其特征在于,所述与远端终端进行三次握手,完成 MPTCP子连接的建立,包括: 该终端接收到远端终端接收到所述增加地址报文而发送的第一握手报文时,向远端终 端发送第二握手报文; 该终端接收到远端终端接收到所述第二握手报文而响应的第三握手报文时,完成 MPTCP子连接的建立。
4. 根据权利要求3所述的方法,其特征在于, 所述远端终端发送的第一握手报文的目的IP地址和目的端口为,接收到的增加地址 报文中携带的第一私网地址对应的映射公网地址和映射端口。
5. -种端到端连接建立装置,应用于多径传输控制协议MPTCP网络中的终端上,其特 征在于,所述装置包括:建立单元、记录单元和发送单元; 所述建立单元,用于将本地第一私网地址与远端终端的第二地址建立传输控制协议 TCP连接,并在所述TCP连接建立完成后,关闭该TCP连接;与远端终端建立MPTCP主连接; 开启与第一私网地址绑定的本地端口的监听功能,监听远端终端使用第二地址发送给本终 端的报文,与远端终端进行三次握手,完成MPTCP子连接的建立; 所述记录单元,用于将所述建立单元建立TCP连接时,获得的第一私网地址的映射公 网地址和映射端口进行记录; 所述发送单元,用于通过所述建立单元建立的MPTCP主连接向远端终端发送增加地址 报文,并携带所述记录单元记录的第一私网地址的映射公网地址和映射端口。
6. 根据权利要求5所述的装置,其特征在于,所述第二地址为私网地址或公网地址。
7. 根据权利要求5或6所述的装置,其特征在于, 所述建立单元,具体用于接收到远端终端接收到所述增加地址报文而发送的第一握手 报文时,向远端终端发送第二握手报文;在接收到远端终端接收到所述第二握手报文而响 应的第三握手报文时,完成MPTCP子连接的建立。
8. 根据权利要求7所述的装置,其特征在于, 所述远端终端发送的第一握手报文的目的IP地址和目的端口为,接收到的增加地址 报文中携带的第一私网地址对应的映射公网地址和映射端口。
【文档编号】H04L29/08GK104144218SQ201410380511
【公开日】2014年11月12日 申请日期:2014年8月4日 优先权日:2014年8月4日
【发明者】殷国甫, 颜晓蔚 申请人:三星电子(中国)研发中心, 三星电子株式会社