CN110474830B - 一种基于端口转发的p2p隧道通信方法 - Google Patents
一种基于端口转发的p2p隧道通信方法 Download PDFInfo
- Publication number
- CN110474830B CN110474830B CN201910769238.3A CN201910769238A CN110474830B CN 110474830 B CN110474830 B CN 110474830B CN 201910769238 A CN201910769238 A CN 201910769238A CN 110474830 B CN110474830 B CN 110474830B
- Authority
- CN
- China
- Prior art keywords
- tunnel
- local
- connection
- monitoring service
- end node
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于通信技术领域,公开了一种基于端口转发的P2P隧道通信方法,本方法是在P2P社交网络中的节点间建立P2P连接通道的基础上进行的,包括如下步骤:本端节点通过P2P连接通道发送隧道创建信息至对端节点;P2P连接通道收到对端节点回应,创建监听服务,将监听服务与P2P连接通道进行绑定,存储至本端节点的转发器的转发数据表中;本端节点的应用程序创建到监听服务的本地连接,P2P隧道建立完成;应用程序通过本地连接与对端节点的具体服务进行P2P隧道通信。利用本发明有效地屏蔽了P2P通信技术知识对应用程序开发造成的技术瓶颈,降低了网络编程的能力需求。
Description
技术领域
本发明属于通信技术领域,涉及一种P2P网络通信技术,具体地说是一种基于端口转发的P2P隧道通信方法。
背景技术
当需要访问私网内部的计算机资源的时候,常用的解决方法是使用P2P的网络通信技术。由于P2P通信的复杂性导致很多应用程序开发者必须付出非常高昂的开发成本,还有就是那些已经使用TCP/UDP协议开发的应用程序也不能直接应用在P2P的通信网络中。
隧道技术(Tunneling)是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。新的帧头提供路由信息,以便通过互联网传递被封装的负载数据。
因此,如何运用隧道技术以解决在P2P即时通信中应用程序开发者的开发成本高及解决已经开发的应用程序可以方便地用于P2P通信网络的问题,已然成为行业内亟待解决的技术难题。
发明内容
本发明为了解决上述问题,设计了一种基于端口转发的P2P隧道通信方法,利用本发明有效地屏蔽了P2P通信技术知识对应用程序开发造成的技术瓶颈,降低了网络编程的能力需求。
本发明采用的技术方案为:一种基于端口转发的P2P隧道通信方法,本方法是在P2P社交网络中的节点间建立P2P连接通道(PT)的基础上进行的,关键在于:所述的通信方法中包括如下步骤:
1-1)本端节点通过P2P连接通道发送隧道创建信息至对端节点,所述隧道创建信息包括本地ID、请求对端的具体服务信息;
1-2)P2P连接通道收到对端节点回应,如果对端节点创建隧道失败,则返回错误信息,跳至步骤1-8);否则,则跳至步骤1-3);
1-3)本端节点创建监听服务,将监听服务与P2P连接通道进行绑定,存储至本端节点的转发器的转发数据表中;
1-4)本端节点的应用程序创建到监听服务的本地连接,P2P隧道建立完成;
1-5)应用程序通过本地连接与对端节点的具体服务进行P2P隧道通信;
1-6)关闭隧道连接:应用程序发送隧道关闭信息关闭本地连接;
1-7)本端节点的转发器转发检测到本地连接关闭后关闭监听服务,解除监听服务与P2P连接通道的绑定,P2P隧道关闭;
1-8)结束。
进一步地,步骤1-1)中所述的具体服务信息包括基于TCP/UDP的应用的即时通信、WEB服务器、文件服务器或IP摄像头。
进一步地,步骤1-1)中所述的隧道创建信息还包括具体服务的描述信息,该描述信息包括IP、端口或协议。
进一步地,步骤1-3)中所述的转发数据表中包括端口、P2P连接通道、协议类型的表项。
进一步地,步骤1-4)中所述的本端节点的应用程序创建到监听服务的类型由步骤1-1)中具体服务的协议类型决定,如果具体服务的协议为TCP协议,则监听服务的类型TCPserver;如果具体服务的协议为UDP协议,则监听服务的类型UDP server。
进一步地,步骤1-5)中所述的P2P隧道通信包括发送和接收数据步骤,所述的发送数据步骤中包括:
1-5-1)本端节点的应用程序通过本地连接发送数据至监听服务,本端节点转发器在监听服务收到数据后查找转发数据表,通过转发数据表中该监听服务所对应的P2P连接通道发送至对端节点;
所述的接收数据步骤中包括:
1-5-2)本端节点通过P2P连接通道接收到对端节点发送的数据后,本端节点的转发器在转发数据表中查找该P2P连接通道所对应的监听服务,然后通过监听服务发送数据至本地连接,应用程序从本地连接接收数据。
进一步地,步骤1-6)所述的关闭隧道连接的步骤中还包括:在转发器中还增设心跳机制,转发器每隔T秒发送一次心跳包,如果3T秒没有收到对方心跳,则应用程序发送隧道关闭信息关闭本地连接。
本发明的有益效果在于:1、本发明提出了在P2P即时通信中应用隧道技术的实施方案,将P2P通信知识进行了封装,填补了技术空白;2、本发明隧道通信技术的实现,使得应用程序开发者不用关心P2P通信技术本身,而可以专注与应用程序本身,待应用程序研发成功后,直接套用本发明方法的封装P2P技术的黑盒隧道即可,有效地降低了网络编程所需的能力,提高了应用程序开发者的研发效率;3、已经使用其他协议开发的应用程序,如TCP/UDP协议开发的应用程序也能直接利用本发明方法的黑盒隧道技术而直接应用在P2P的通信网络中,有效地解决了已开发的应用程序与P2P通信技术不匹配的技术问题。
附图说明
图1是本发明实施例的系统框架图。
图2是本发明实施例的隧道创建流程图。
图3是本发明实施例的转发数据表示意图。
具体实施方式
下面结合附图及实施例对本发明进行详细说明。
为了解决P2P通信的问题,本方法提出一种使用传输层端口转发的方式,通过P2P传输TCP/UDP数据从而实现TCP/UDP over P2P的功能,通过使用本方法,上层应用程序不在关心底层P2P网络通信的过程。本发明方法同时也可以被用于在私网内部部署基于TCP/UDP的服务,包括但不限于FTP、WEB、ERP、邮箱、即时聊天。
整个方法的架构如图1所示,P2P传输TCP/UPD数据(TCP/UDP over P2P)的功能在一个被称呼为转发器的模块中完成,转发器在一条连接建立过程中分为发送方和接收方两种角色。
连接发起方:存在于连接发起方节点如图1中的节点A,发起方是整个连接的发起点;连接建立后它将客户端的数据通过P2P连接传输到接收方节点,同时将返回的数据发送给客户端。
连接接收方:存在于被连接节点如果图1中的节点B、C,接收方需要按照发送方的请求与本端的的服务建立连接;连接建立后将发送方发送过来的数据转发到本端服务,同时将本端服务的回复消息发送给发送方。
结合图2,TCP/UDP over P2P连接建立,通信和关闭流程的步骤如下:
步骤1前提条件:完成点对点连接PT(如图1中的点对点连接PT1、PT2)建立;
1-1)本端节点,即发起方节点A通过P2P连接通道PT1、PT2发送隧道创建信息至对端节点(如节点B、C),所述隧道创建信息包括本地ID、请求对端的具体服务PS信息,等待对端节点回应;
1-2)PT1、PT2收到对端节点回应,如果对端节点创建隧道失败,则返回错误信息,跳至步骤1-8);否则,则跳至步骤1-3);
1-3)在本端节点创建监听服务S1、S2,将监听服务S1、S2与PT1、PT2分别进行绑定,即S1绑定PT1、S2绑定PT2,存储至本端节点的转发器的转发数据表中,转发数据表的格式参见图3,转发数据表中包括端口、P2P连接通道PT、协议类型的表项的绑定表项;
1-4)本端节点的应用程序创建到监听服务S1的本地连接LC1,监听服务S2的本地连接LC2,P2P隧道建立完成;
1-5)应用程序通过本地连接LC1、LC2与对端节点的具体服务PS进行P2P隧道通信;
1-6)关闭隧道连接:应用程序发送隧道关闭信息关闭本地连接LC1、LC2;
1-7)本端节点的转发器转发检测到本地连接LC1、LC2关闭后关闭监听服务S1、S2,解除监听服务S1、S2与P2P连接通道PT1、PT2的绑定,P2P隧道关闭;
1-8)结束。
步骤1-1)中,具体服务PS包括但是不限于各种基于TCP/UDP的应用(即时通信,WEB服务器,文件服务器,IP摄像头)及PS的描述信息,PS的描述信息包括但不限于IP,端口,协议。
步骤1-3)中,创建监听服务的类型根据PS的协议类型决定,PS基于TCP协议的需要创建TCP server,基于UDP的需要创建UDP server;绑定是通过在转发器的转发表中增加一条转发记录,记录项包括但不限于本地的端口、PT、协议类型(TCP/UDP)。
步骤1-5)中,隧道通信实现的原理是应用程序通过LC1发送数据到S1,转发器在S1收到数据后查找转发数据表后,通过PT1发送到对端用户节点B;当从PT1接收到对端数据后也是查找转发数据表之后,通过S1发送数据到LC1,应用程序从LC1接收数据。发送节点A与节点C的通信过程也一样:应用程序通过LC2发送数据到S2,转发器在S2收到数据后查找转发数据表后,通过PT2发送到对端用户节点C;当从PT2接收到对端数据后也是查找转发数据表之后,通过S2发送数据到LC2,应用程序从LC2接收数据。
步骤1-6)中,除了应用程序主动关闭连接外,在转发器模块实现了一个心跳机制,每条隧道隔T秒发送一次心跳包,如果3T秒没有收到对方心跳就会主动关闭连接,关闭的方式同步骤1-6)、1-7)一致。
下面对转发器的核心部件做具体的描述:
<1>转发器之间通过自定义的协议完成P2P隧道的创建、通信和关闭,自定义通信协议包括消息、控制命令、心跳三类:
1)消息用于承载应用程序之间的通信消息;
2)控制命令包括但不限于连接建立、关闭、消息确认三种;
3)心跳用于连接保活和网络异常检测。
<2>转发数据表用于发送记录消息的转发路由,转发数据表结构如图3所示,处理和转发规则如下:
1)所有从本地连接LC收的数据转发到对应的PT;
2)所有从PT收到的数据、处理控制命令和心跳数据,转发消息类型的数据到对应的本地连接LC。
本发明提出了在P2P即时通信中应用隧道技术的实施方案,本发明方法相当于研发了一条水管的“接头”,相当于将P2P通信知识封装于水管内,新研发与已经研发的应用程序直接套用“接头”即可完成P2P通信,有效地降低了网络编程所需的能力,有效地解决了已开发的应用程序与P2P通信技术不匹配的技术问题。
Claims (7)
1.一种基于端口转发的P2P隧道通信方法,本方法是在P2P社交网络中的节点间建立P2P连接通道的基础上进行的,其特征在于:所述的通信方法中包括如下步骤:
1-1)本端节点通过P2P连接通道发送隧道创建信息至对端节点,所述隧道创建信息包括本端节点ID、请求对端的具体服务信息;
1-2)P2P连接通道收到对端节点回应,如果对端节点创建隧道失败,则返回错误信息,跳至步骤1-8);否则,则跳至步骤1-3);
1-3)本端节点创建监听服务,将监听服务与P2P连接通道进行绑定,存储至本端节点的转发器的转发数据表中;
1-4)本端节点的应用程序创建到监听服务的本地连接,P2P隧道建立完成;
1-5)应用程序通过本地连接与对端节点的具体服务进行P2P隧道通信;
1-6)关闭隧道连接:应用程序发送隧道关闭信息关闭本地连接;
1-7)本端节点的转发器转发检测到本地连接关闭后关闭监听服务,解除监听服务与P2P连接通道的绑定,P2P隧道关闭;
1-8)结束。
2.根据权利要求1所述的一种基于端口转发的P2P隧道通信方法,其特征在于:步骤1-1)中所述的具体服务信息包括基于TCP/UDP的应用的即时通信、WEB服务器、文件服务器或IP摄像头。
3.根据权利要求1所述的一种基于端口转发的P2P隧道通信方法,其特征在于:步骤1-1)中所述的隧道创建信息还包括具体服务的描述信息,该描述信息包括IP、端口或协议。
4.根据权利要求3所述的一种基于端口转发的P2P隧道通信方法,其特征在于:步骤1-3)中所述的转发数据表中包括端口、P2P连接通道和协议类型的表项。
5.根据权利要求1所述的一种基于端口转发的P2P隧道通信方法,其特征在于:步骤1-4)中所述的监听服务的类型由步骤1-1)中具体服务的协议类型决定,如果具体服务的协议为TCP协议,则监听服务的类型TCP server;如果具体服务的协议为UDP协议,则监听服务的类型UDP server。
6.根据权利要求1所述的一种基于端口转发的P2P隧道通信方法,其特征在于:步骤1-5)中所述的P2P隧道通信包括发送和接收数据步骤,所述的发送数据步骤中包括:
1-5-1)本端节点的应用程序通过本地连接发送数据至监听服务,本端节点转发器在监听服务收到数据后查找转发数据表,通过转发数据表中该监听服务所对应的P2P连接通道发送至对端节点;
所述的接收数据步骤中包括:
1-5-2)本端节点通过P2P连接通道接收到对端节点发送的数据后,本端节点的转发器在转发数据表中查找该P2P连接通道所对应的监听服务,然后通过监听服务发送数据至本地连接,应用程序从本地连接接收数据。
7.根据权利要求1所述的一种基于端口转发的P2P隧道通信方法,其特征在于:步骤1-6)所述的关闭隧道连接的步骤中还包括:在转发器中还增设心跳机制,转发器每隔T秒发送一次心跳包,如果3T秒没有收到对方心跳,则应用程序发送隧道关闭信息关闭本地连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910769238.3A CN110474830B (zh) | 2019-08-20 | 2019-08-20 | 一种基于端口转发的p2p隧道通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910769238.3A CN110474830B (zh) | 2019-08-20 | 2019-08-20 | 一种基于端口转发的p2p隧道通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110474830A CN110474830A (zh) | 2019-11-19 |
CN110474830B true CN110474830B (zh) | 2021-04-20 |
Family
ID=68512036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910769238.3A Active CN110474830B (zh) | 2019-08-20 | 2019-08-20 | 一种基于端口转发的p2p隧道通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110474830B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515944A (zh) * | 2008-02-22 | 2009-08-26 | 华为技术有限公司 | 一种p2p业务接入方法、系统和装置 |
CN104378410A (zh) * | 2014-09-30 | 2015-02-25 | 东莞市联讯系统科技有限公司 | 一种微型私有云存储、传输的系统及方法 |
CN104954260A (zh) * | 2015-05-22 | 2015-09-30 | 上海斐讯数据通信技术有限公司 | 一种基于数据链路层的点对点vpn路由方法及系统 |
CN107181677A (zh) * | 2016-03-09 | 2017-09-19 | 中兴通讯股份有限公司 | 一种p2mp主隧道节点保护的方法及装置 |
CN109714240A (zh) * | 2019-02-18 | 2019-05-03 | 全讯汇聚网络科技(北京)有限公司 | 基于p2p和vpn技术的路由器联网方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101854313A (zh) * | 2009-09-27 | 2010-10-06 | 济南维优科技开发有限公司 | 一种基于p2p-vpn技术穿越nat的远程访问网关 |
CN105703997B (zh) * | 2014-11-28 | 2019-11-12 | 杭州迪普科技股份有限公司 | 一种隧道控制方法及装置 |
US10050806B2 (en) * | 2015-12-07 | 2018-08-14 | Futurewei Technologies, Inc. | End-to-end (E2E) tunnel based on shortest point-to-point (P2P) path computation |
US10116467B2 (en) * | 2016-10-17 | 2018-10-30 | Cisco Technology, Inc. | Ethernet tag mapping in virtual private wire service using ethernet virtual private network |
CN109672619B (zh) * | 2017-10-17 | 2021-08-20 | 华为技术有限公司 | 一种处理报文的方法、设备及系统 |
-
2019
- 2019-08-20 CN CN201910769238.3A patent/CN110474830B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515944A (zh) * | 2008-02-22 | 2009-08-26 | 华为技术有限公司 | 一种p2p业务接入方法、系统和装置 |
CN104378410A (zh) * | 2014-09-30 | 2015-02-25 | 东莞市联讯系统科技有限公司 | 一种微型私有云存储、传输的系统及方法 |
CN104954260A (zh) * | 2015-05-22 | 2015-09-30 | 上海斐讯数据通信技术有限公司 | 一种基于数据链路层的点对点vpn路由方法及系统 |
CN107181677A (zh) * | 2016-03-09 | 2017-09-19 | 中兴通讯股份有限公司 | 一种p2mp主隧道节点保护的方法及装置 |
CN109714240A (zh) * | 2019-02-18 | 2019-05-03 | 全讯汇聚网络科技(北京)有限公司 | 基于p2p和vpn技术的路由器联网方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110474830A (zh) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7499445B2 (en) | System and method for routing ISIS traffic through unidirectional links of a computer network | |
CN102546800B (zh) | 一种网关握手、通信方法、网关及Web通信系统 | |
US8812726B2 (en) | Service insertion in a computer network using internet protocol version 6 techniques | |
US9787593B2 (en) | Performing path-oriented systems management | |
US8824480B2 (en) | Method and apparatus for end-host based mobility, multi-homing and multipath protocols | |
JP5242591B2 (ja) | イーサネット(登録商標)/tmplsハイブリッドネットワークoamフレーム作成方法および対応する信号 | |
CN101465844B (zh) | 一种防火墙穿越方法、系统和设备 | |
US8817815B2 (en) | Traffic optimization over network link | |
JP2005045791A (ja) | 移動ポイント・ツー・ポイント・プロトコル | |
CN102694738B (zh) | 在虚拟专用网网关转发报文的方法以及虚拟专用网网关 | |
US20120099579A1 (en) | Zigbee gateway and ip service server interworking with zigbee gateway through ip network | |
US20150373135A1 (en) | Wide area network optimization | |
CN110086689B (zh) | 一种双栈bfd检测方法以及系统 | |
CN104717259A (zh) | 分布式中转服务器网络辅助的多路径数据传输系统与方法 | |
CN109936492A (zh) | 一种通过隧道传输报文的方法、装置和系统 | |
EP2984794B1 (en) | Network device with tunnel establishment control based on site-type attribute received from other network device | |
CN115189920A (zh) | 跨网络域通信方法和相关装置 | |
WO1996000468A1 (en) | Method for using point-to-point protocol over an imperfect mesh network | |
CN110474830B (zh) | 一种基于端口转发的p2p隧道通信方法 | |
CN112910791B (zh) | 导流系统及其方法 | |
JP2003069615A (ja) | 通信制御装置および通信制御方法 | |
CN113794715A (zh) | 一种虚拟点对点网络数据发送、接收、应答方法及其系统 | |
CN114553567B (zh) | 多方安全计算中的网络传输方法、系统、存储介质及计算设备 | |
CN116032690B (zh) | 一种边缘计算场景下的虚拟网络调度方法 | |
CN112910790B (zh) | 导流系统及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |