CN105376299B - 一种网络通信方法、设备及网络附属存储设备 - Google Patents
一种网络通信方法、设备及网络附属存储设备 Download PDFInfo
- Publication number
- CN105376299B CN105376299B CN201510641629.9A CN201510641629A CN105376299B CN 105376299 B CN105376299 B CN 105376299B CN 201510641629 A CN201510641629 A CN 201510641629A CN 105376299 B CN105376299 B CN 105376299B
- Authority
- CN
- China
- Prior art keywords
- agent
- communication party
- data
- communication
- party
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 280
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000035515 penetration Effects 0.000 claims description 11
- 238000013519 translation Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- 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
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种提供一种网络通信方法,包括:第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接;所述第一通信方的第一应用通过所述第一代理将第一数据发给所述第二通信方的第二代理;所述第二通信方的第二代理接收所述第一数据,并将所述第一数据发给相应的第二应用;其中,所述第一代理独立于所述第一应用,所述第二代理独立于所述第二应用,所述第一代理与所述第二代理均对相应的第一应用、第二应用透明。本发明还公开了一种设备。通过上述方式,应用通过独立运行的代理与其他网络节点建立P2P连接,并通过本地环回端口完成与代理之间数据的接收和发送,无须修改程序代码,节约系统资源。
Description
技术领域
本发明涉及通信技术,特别是涉及一种网络通信方法、设备及网络附属存储设备。
背景技术
P2P(peer to peer,对等网络)技术充分利用网络中的每一台计算机的能力,互相提供服务。每台计算机既能充当网络服务的请求者,又对其它计算机的请求作出响应,提供资源和服务。
当计算机中的应用需要建立P2P连接时,一般而言是要在应用程序中加入建立P2P连接的代码,如果原有的应用程序中没有这部分代码则需要修改程序,这样操作复杂而且浪费资源。
发明内容
本发明主要解决的技术问题是提供一种网络通信方法、设备及网络附属存储设备,能够在不修改程序代码的情况下实现应用以P2P方式传输数据。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种网络通信方法,包括:第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接;第一通信方的第一应用通过第一代理将第一数据发给第二通信方的第二代理;第二通信方的第二代理接收第一数据,并将第一数据发给相应的第二应用;其中,第一代理独立于第一应用,第二代理独立于第二应用,第一代理与第二代理均对相应的第一应用、第二应用透明。
其中,第一通信方的第一应用通过第一代理将第一数据发给第二通信方的第二代理的步骤包括:第一通信方的第一应用将第一数据发给第一通信方的第一环回端口;第一通信方的第一代理从第一环回端口获得第一数据,并发给第二通信方的第二代理。
其中,第二通信方的第二代理接收第一数据,并将第一数据发给相应的第二应用的步骤包括:第二通信方的第二代理接收第一数据后,将第一数据发送到第二通信方的第二环回端口;第二通信方的相应第二应用从第二环回端口中获得第一数据。
其中,第二通信方的相应第二应用在获得第一数据后,将第二数据发给第二通信方的另一第二环回端口;第二通信方的第二代理从另一第二环回端口获得第二数据,并发给第一通信方的第一代理。
其中,第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接的步骤是指:设置在第一通信方的数据链路层的第一代理与设置在第二通信方的数据链路层的第二代理之间建立P2P穿透连接。
其中,第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接的步骤包括:第一通信方的第一代理向服务器发送第一连接请求,第一连接请求包括第一通信方的地址及端口信息,还包括所要建立连接的对端即第二通信方的信息;服务器接收第一连接请求,将第一通信方的地址及端口信息发给第二通信方的第二代理,并将第二通信方的地址及端口信息发给第一通信方的第一代理,服务器中预先保存有第一通信方和第二通信方的地址及端口信息;第二通信方的第二代理利用第一通信方的地址及端口信息向第一通信方发送第二连接请求,第二连接请求被第一通信方侧的网络地址转换NAT拒绝,第二通信方侧的网络地址转换保存了第一通信方的地址及端口;第一通信方的第一代理向第二通信方发起第三连接请求,第二通信方侧的网络地址转换根据保存的第一通信方的地址及端口而通过第三请求;第二通信方的第二代理接收第三连接请求,以建立第一通信方的第一代理与第二通信方的第二代理之间的P2P穿透连接。
其中第一通信方是私有云服务器,第二通信方是私有云服务器所在内网之外的另一网络节点,或反过来。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种网络通信方法,包括:第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接;第一通信方的第一应用通过第一代理将第一数据发给第二通信方的第二代理,以使得第二通信方的第二代理接收第一数据,并将第一数据发给相应的第二应用;其中,第一代理独立于第一应用,第二代理独立于第二应用,第一代理与第二代理均对相应的第一应用、第二应用透明。
其中,第一通信方的第一应用通过第一代理将第一数据发给第二通信方的第二代理的步骤包括:第一通信方的第一应用将第一数据发给第一通信方的第一环回端口;第一通信方的第一代理从第一环回端口获得第一数据,并发给第二通信方的第二代理。
其中,第一通信方的第一代理接收从第二通信方的第二代理发来的第二数据;第一通信方的第一代理将第二数据发送到第一通信方的另一第一环回端口;第一通信方的第一应用从另一第一环回端口中获得第二数据。
其中,第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接的步骤是指:设置在第一通信方的数据链路层的第一代理与设置在第二通信方的数据链路层的第二代理之间建立P2P穿透连接。
其中,第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接的步骤包括:第一通信方的第一代理向服务器发送第一连接请求,第一连接请求包括第一通信方的地址及端口信息,还包括所要建立连接的对端即第二通信方的信息;服务器接收第一连接请求,将第一通信方的地址及端口信息发给第二通信方的第二代理,并将第二通信方的地址及端口信息发给第一通信方的第一代理,服务器中预先保存有第一通信方和第二通信方的地址及端口信息;第二通信方的第二代理利用第一通信方的地址及端口信息向第一通信方发送第二连接请求,第二连接请求被第一通信方侧的网络地址转换拒绝,第二通信方侧的网络地址转换保存了第一通信方的地址及端口;第一通信方的第一代理向第二通信方发起第三连接请求,第二通信方侧的网络地址转换根据保存的第一通信方的地址及端口而通过第三请求;第二通信方的第二代理接收第三连接请求,以建立第一通信方的第一代理与第二通信方的第二代理之间的P2P穿透连接。
其中,第一通信方是私有云服务器,或者私有云服务器所在内网之外的另一网络节点。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种设备,包括:处理器和网络通信电路;处理器用于运行第一代理,以通过网络通信电路与对端的第二代理之间建立P2P穿透连接;处理器还用于运行第一应用,以通过第一代理将第一数据输出至网络通信电路,网络通信电路将第一数据发给对端的第二代理,以使得对端的第二代理接收第一数据,并将第一数据发给相应的第二应用;其中,第一代理独立于第一应用,第二代理独立于第二应用,第一代理与第二代理均对相应的第一应用、第二应用透明。
其中,处理器具体用于运行第一应用以将第一数据发给第一环回端口,然后运行第一代理以从第一环回端口获得第一数据,并输出至网络通信电路,以实现控制第一应用通过第一代理将第一数据输出至网络通信电路。
其中,处理器还用于运行第一代理以通过网络通信电路接收从对端的第二代理发来的第二数据,然后运行第一代理以将第二数据发送到另一第一环回端口,然后运行第一应用以从另一第一环回端口中获得第二数据。
其中,设备是私有云服务器,或者私有云服务器所在内网之外的另一网络节点。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种网络附属存储设备,包括:处理器、硬盘和路由电路,硬盘和路由电路分别连接处理器;处理器用于运行第一代理,以通过路由电路与对端的第二代理之间建立P2P穿透连接;处理器还用于运行第一应用,以通过第一代理将第一数据输出至路由电路,路由电路将第一数据发给对端的第二代理,以使得对端的第二代理接收第一数据,并将第一数据发给相应的第二应用;其中,第一代理独立于第一应用,第二代理独立于第二应用,第一代理与第二代理均对相应的第一应用、第二应用透明。
本发明的有益效果是:位于不同内网的设备之间通过独立运行的代理建立P2P连接,不同设备上的应用通过代理发送和接收数据,这样应用无须修改代码即可通过代理与其他网络节点建立P2P连接,节约系统资源。
附图说明
图1是本发明网络通信方法一个实施例中实现网络通信的流程图;
图2是本发明网络通信方法一个实施例中第一通信方向第二通信方发送数据的流程图;
图3是本发明网络通信方法一个实施例中第二通信方向第一通信方发送数据的流程图;
图4是本发明网络通信方法一个实施例中建立P2P穿透连接的示意图;
图5是本发明设备一个实施例的示意图;
图6是本发明设备一个实施例中使用两个环回端口的示意图;
图7是本发明网络附属存储设备一个实施例的结构示意图。
具体实施方式
如图1所示,本发明网络通信方法的第一实施例包括:
S110,第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接;
第一代理独立于第一应用,第二代理独立于第二应用,第一代理与第二代理均对相应的第一应用、第二应用透明。
第一代理、第二代理均为独立运行的程序,是本机各个程序与其他设备之间进行P2P穿透连接的桥梁、中介,当然,也可以理解为一种通信接口。第一代理、第二代理的程序可以按照要求、本机系统环境等进行设计。第一代理、第二代理可以被本机程序调用与其他设备上的代理建立P2P连接,并为本机应用程序提供透明的数据分发和接收;第一通信方和第二通信方可以在两个不同的内网中,也可以一个在内网中,一个在公网上。
S120,第一通信方的第一应用通过第一代理将第一数据发给第二通信方的第二代理;
第一数据可以为通信请求、文本信息、网页、音视频媒体、文件等,在不同设备之间的传输由代理程序完成。
S130,第二通信方的第二代理接收第一数据,并将第一数据发给相应的第二应用;
第二通信方的第二应用接收了第一数据,完成了第一通信方的第一应用向第二通信方的第二应用发送第一数据的过程。
通过上述实施例的实施,不在同一内网的设备之间通过独立运行的代理程序建立P2P连接,不同设备上的应用通过代理发送和接收数据,这样应用程序无须修改代码即可通过代理与其他设备进行P2P数据传输,节约系统资源。
参考图2,在本发明网络通信方法的第二实施例包括:
S210,第一通信方的第一代理与第二通信方的第二代理建立P2P穿透连接;
S220,第一通信方的第一应用将第一数据发给第一通信方的第一环回端口;
S230,第一通信方的第一代理从第一环回端口获得第一数据,并将其发给第二通信方的第二代理;
S240,第二通信方的第二代理接收第一数据后,将第一数据发送到第二通信方的第二环回端口;
S250,第二通信方的相应第二应用从第二环回端口中获得第一数据,完成第一通信方向第二通信方发送数据。
环回端口是设备上的虚拟端口,地址范围为127.0.0.1至127.255.255.254,发送给环回端口的数据不会通过外部网络接口。每台设备上的代理通过本地环回端口完成与本机应用程序之间数据的接收和发送。
如图3所示,在本发明网络通信方法的第三实施例中,第一通信方的第一应用向第二通信方的相应第二应用发送第一数据(参考第一实施例或第二实施例的描述)之后的步骤包括:
S310,第二通信方的第二应用将第二数据发给第二通信方的另一第二环回端口;
第二数据可以为第二应用发出的反馈信息、文本信息,音视频媒体、文件等。
S320,第二通信方的第二代理从另一第二环回端口获得第二数据,并将其发给第一通信方的第一代理;
另一第二环回端口用于第二通信方的应用程序向第二代理发送数据,使用的地址与第二实施例中第二通信方的应用程序接收数据用的第二环回端口地址不同。
S330,第一通信方的第一代理接收第二数据之后将其发送到第一通信方的另一第一环回端口;
另一第一环回端口用于第一通信方的应用程序从第一代理接收数据,使用的地址与第二实施例中第一通信方的应用发送数据用的第一环回端口地址不同。
S340,第一通信方的第一应用从另一第一环回端口获得第二数据;
完成第一通信方的第一应用从第二通信方的第二应用接收数据的过程。
第一通信方的第一应用在调用独立运行的代理程序发送第一数据给第二通信方的第二应用之后,接收第二通信方的第二应用返回的第二数据,实现P2P的数据相互传输。
对于第一通信方和第二通信方建立起的P2P连接,第一通信方使用的第二环回端口和另一第二环回端口的地址与第一通信方使用的第一环回端口和另一第一环回端口的地址可以相同,也可以不同。如果第一通信方中至少两个应用同时与第二通信方中的应用连接,每个应用都是通过第一环回端口向第一代理发送数据,通过另一第一环回端口从第一代理接收第二通信方返回的数据,反之亦然。
此外,第一通信方可以同时与多个网络节点建立P2P连接,每个连接都占用两个环回端口用于应用程序与代理之间的数据接收和发送,不同的连接使用的环回端口地址各不相同。同理可以推出第二通信方与多个网络节点建立P2P连接的情况。
在本发明的一个实施例中,第一代理设置在第一通信方的数据链路层,第二代理设置在第二通信方的数据链路层。
在本发明的一个实施例中,第一通信方是私有云服务器,第二通信方是私有云服务器所在内网之外的另一网络节点;或反过来。在网络附属存储(NAS,network attachedstorage)设备上加装路由电路即可成为本发明设备的一种实施例。网络附属存储设备包括处理器、硬盘和路由电路,其中在处理器中可运行独立的操作系统,进而,在本发明中将网络附属存储设备作为私有云服务器。私有云服务器位于家庭网络中的网关,家庭中的电脑,移动终端等连接私有云服务器。私有云服务器虽然位于家庭网络中的网关,但是如果家庭网络是采用小区共享宽带,那么私有云服务器位于小区内网之中;即使使用宽带或者拨号联网,私有云的IP地址一般为动态分配,无法直接获知其IP地址。因此当用户在家庭网络之外的网络节点上访问私有云服务器时,仍需要建立P2P连接。
还可以在家庭网络中的路由器上加装处理器、硬盘和网络接口作为私有云服务器,其中处理器运行独立的操作系统,网络接口直接连接到路由器的一个LAN口。私有云服务器没有自己的公网IP,而是与家庭中的电脑,移动终端等位于同一内网,因此当用户在家庭网络之外的网络节点上访问私有云服务器时,需要建立P2P连接。
私有云服务器除了提供传统的数据存储与共享和网页浏览服务之外,还可以集成智能家电控件,可以控制家庭中的家电。例如,第一通信方为私有云服务器,第二通信方为家庭网络外的终端设备,该终端设备可以具有自己的公网IP,也可以位于另一个内网之中。用户可以通过终端设备上的代理与私有云服务器建立P2P连接,使得终端设备中的应用程序与私有云服务器的程序之间传输数据,比如通过终端设备中的应用程序访问私有云服务器中的智能家电控件,实现远程遥控家中的电器。或者反过来,第一通信方为位于家庭网络之外的终端设备,第二通信方为私有云服务器。
网络地址转换(Network Address Translation,NAT)是一种广泛应用的网络技术,用于隔离内部网络和外部网络(Internet),可以保护内部网络的安全并且解决IPv4地址不足的问题。当内部主机向外部主机发起连接时,NAT设备为它分配一个唯一的端口号。NAT允许已经与NAT内部主机通信过的外部主机发送的信息进入内网,而没有与内部主机通信过的外部主机直接发送的信息被直接丢弃掉,这样保护了内网的安全,但是也限制了P2P的应用。
参考图4说明位于不同内网的两个节点通过服务器S建立P2P穿透连接的过程。在本发明的一个实施例中,第一通信方1位于NAT设备A的内网中,A的公网IP为155.99.25.11;第二通信方2位于NAT设备B的内网中,B的公网IP为138.76.29.7。
第一通信方1向服务器S发送消息,NAT设备A会给第一通信方1分配一个端口62000,服务器S记录下第一通信方1的地址和端口信息,此处地址和端口是服务器S观察到的第一通信方1的公网IP和NAT设备A分配给它的端口,即155.99.25.11:62000,而不是第一通信方1在内网中的地址。同理,服务器S会记录下第二通信方2的地址和端口信息,138.76.29.7:31000。
第一通信方1的第一代理101向服务器S发送第一连接请求,包括第一通信方1的地址及端口信息,还包括所要建立连接的对端即第二通信方2的信息;服务器S接收第一连接请求,将记录的第一通信方1的地址及端口信息(155.99.25.11:62000)发给第二通信方2的第二代理201,并将第二通信方2的地址及端口信息(138.76.29.7:31000)发给第一通信方1的第一代理101。
第二通信方2的第二代理201向第一通信方1(155.99.25.11:62000)发送第二连接请求,由于第二通信方2是没有与内部主机通信过的外部主机,第二连接请求被NAT设备A拒绝。虽然连接没有成功,NAT设备B保存了第一通信方1的地址及端口信息(155.99.25.11:62000),以及内网中的第二通信方2曾向其发起连接这一信息。
第一通信方1的第一代理101向第二通信方2发起第三连接请求,由于NAT设备B存有第一通信方1的地址及端口信息和第二通信方2向第一通信方1发起连接请求的信息,第一通信方1被视为曾经与NAT设备B内部主机(第二通信方2)通信过的外部主机,第三连接请求被NAT设备B允许通过。第二通信方2的第二代理201接受第三连接请求,建立第一通信方1的第一代理101与第二通信方2的第二代理201之间的P2P穿透连接。
如果第一通信方位于内网中,第二通信方位于公网上时,第一通信方获得第二通信方的地址之后可以直接向第二通信方发送请求建立连接。如果第一通信方位于公网上,第二通信方位于内网中时,第一通信方向服务器发送连接请求,服务器向第二通信方发送第一通信方的地址和端口信息,第二通信方向第一通信方请求建立连接,第一通信方接受请求与第二通信方建立连接。
如图5所示,在本发明设备的第一实施例(作为第一通信方)中,,包括处理器和网络通信电路,处理器连接网络通信电路;处理器运行第一代理30,以通过网络通信电路与对端(第二通信方)的第二代理之间建立P2P穿透连接;处理器还运行第一应用40,以将第一数据发给第一环回端口51,处理器还控制第一代理30从第一环回端口51获得第一数据并将其输出至网络通信电路,网络通信电路将第一数据发给对端的第二代理,以使得对端的第二代理接收第一数据,并将第一数据发给相应的第二应用;其中,第一代理30独立于第一应用40,第二代理独立于第二应用,第一代理30与第二代理均对相应的第一应用40、第二应用透明。
本地环回端口是虚拟端口,地址范围为127.0.0.1至127.255.255.254,发送给环回端口的数据不会通过网络通信电路。
通过上述实施例的实施,设备通过独立运行的代理程序与其他不在同一内网的网络节点建立P2P连接,设备上的应用通过代理程序与其他网络节点的应用程序传输数据,这样应用程序无须修改代码即可通过代理与其他设备进行P2P数据传输,节约系统资源。
如图6所示,在本发明设备的第二实施例中,处理器还控制第一代理30通过网络通信电路接收从对端的第二代理发来的第二数据,并将第二数据发送到另一第一环回端口52,处理器还控制第一应用40从另一第一环回端口52获得第二数据,完成第一应用40从对端的相应第二应用接收数据的过程。
设备上的应用通过本地环回端口完成与代理程序之间数据的发送和接收。其中第一环回端口51和另一第一环回端口52的地址不同,例如说使用127.0.0.1作为第一环回端口51的地址,127.0.0.10作为另一第一环回端口52的地址。如果设备中运行有至少两个应用同时与对端的应用连接,每个应用都是通过第一环回端口51向第一代理30发送数据,通过另一第一环回端口52从第一代理30接收对端返回的数据。如果设备同时与多个网络节点分别建立P2P连接,与每个网络节点的连接都使用独立的两个环回端口作为应用与第一代理30之间数据发送和接收的接口,所使用的多个环回端口的地址各不相同。
在本发明设备的一个实施例中,网络附属存储设备包括处理器、硬盘和路由电路,其中在处理器中可运行独立的操作系统,进而,在本发明中将网络附属存储设备作为私有云服务器。私有云服务器位于家庭网络中的网关,家庭中的电脑,移动终端等连接私有云服务器。私有云服务器虽然位于家庭网络中的网关,但是如果家庭网络是采用小区共享宽带,那么私有云服务器位于小区内网之中;即使使用宽带或拨号联网,私有云的IP地址一般为动态分配,无法直接获知其IP地址。因此当用户在家庭网络之外的网络节点上访问私有云服务器时,仍需要建立P2P连接。
还可以在家庭网络中的路由器上加装处理器、硬盘和网络接口作为私有云服务器,其中处理器运行独立的操作系统,网络接口直接连接到路由器的一个LAN口。私有云服务器没有自己的公网IP,而是与家庭中的电脑,移动终端等位于同一内网,因此当用户在家庭网络之外的网络节点上访问私有云服务器时,需要建立P2P连接。
私有云服务器除了提供传统的数据存储与共享和网页浏览服务之外,还可以集成智能家电控件,可以控制家庭中的家电。例如,设备为私有云服务器,对端为家庭网络外的终端设备,对端可以具有自己的公网IP,也可以位于另一个内网之中。用户可以通过对端上的代理与私有云服务器建立P2P连接,使得终端设备中的应用程序与私有云服务器的程序之间传输数据,比如通过终端设备中的应用程序访问私有云服务器中的智能家电控件,实现远程遥控家中的电器。或者反过来,设备为位于家庭网络之外的另一内网中的终端设备,对端为私有云服务器。
在本发明网络附属存储的一个实施例中,包括:处理器710、硬盘720和路由电路730,硬盘720和路由电路730分别连接处理器710。路由电路730的WAN接口连接Internet,LAN接口分别连接内网设备,并完成数据包在处理器710和对应接口之间的传输。处理器710用于交换路由信息、查找路由表和转发数据包,配合路由电路730实现局域网和广域网的互连、数据的处理和分发、流量控制等路由功能。处理器710还用于运行第一代理,以与对端的第二代理之间建立P2P穿透连接,处理器710还用于运行第一应用,以通过第一代理将第一数据输出至路由电路730,路由电路730将第一数据发给对端的第二代理,以使得对端的第二代理接收第一数据,并将第一数据发给相应的第二应用,其中,第一代理独立于第一应用,第二代理独立于第二应用,第一代理与第二代理均对相应的第一应用、第二应用透明。网络附属存储可以作为家庭网络中的私有云服务器。
网络附属存储通过独立运行的代理程序与其他不在同一内网的网络节点建立P2P连接,网络附属存储上的应用通过代理程序与其他网络节点的应用程序传输数据,这样应用程序无须修改代码即可通过代理与其他设备进行P2P数据传输,节约系统资源。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种网络通信方法,其特征在于,包括:
内网中的第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接;
所述第一通信方的第一应用将第一数据发给所述第一通信方的第一环回端口;
所述第一通信方的所述第一代理从所述第一环回端口获得所述第一数据,并发给所述第二通信方的第二代理;
所述第二通信方的第二代理接收所述第一数据后,将所述第一数据发送到所述第二通信方的第二环回端口;
所述第二通信方相应的第二应用从所述第二环回端口中获得所述第一数据;
将第二数据发给所述第二通信方的另一第二环回端口;
所述第二通信方的所述第二代理从所述另一第二环回端口获得所述第二数据,并发给所述第一通信方的第一代理;
其中,所述第一代理在所述第一通信方内运行,所述第二代理在所述第二通信方内运行,所述第一代理独立于所述第一应用,所述第二代理独立于所述第二应用,所述第一代理与所述第二代理均对相应的第一应用、第二应用透明,所述第二环回端口和所述另一第二环回端口作为一环回端口组合用于所述第二通信方与所述第一通信方之间的连接,不同通信方之间连接所采用的所述环回端口组合不同。
2.根据权利要求1所述的方法,其特征在于,
所述第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接的步骤是指:设置在所述第一通信方的数据链路层的第一代理与设置在所述第二通信方的数据链路层的第二代理之间建立P2P穿透连接。
3.根据权利要求1所述的方法,其特征在于,
所述第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接的步骤包括:
所述第一通信方的第一代理向服务器发送第一连接请求,所述第一连接请求包括第一通信方的地址及端口信息,还包括所要建立连接的对端即所述第二通信方的信息;
所述服务器接收所述第一连接请求,将所述第一通信方的地址及端口信息发给所述第二通信方的第二代理,并将所述第二通信方的地址及端口信息发给所述第一通信方的第一代理,所述服务器中预先保存有所述第一通信方和所述第二通信方的地址及端口信息;
所述第二通信方的第二代理利用所述第一通信方的地址及端口信息向所述第一通信方发送第二连接请求,所述第二连接请求被所述第一通信方侧的网络地址转换NAT拒绝,所述第二通信方侧的网络地址转换保存了所述第一通信方的地址及端口;
所述第一通信方的第一代理向所述第二通信方发起第三连接请求,所述第二通信方侧的网络地址转换根据所述保存的所述第一通信方的地址及端口而通过所述第三连接请求;
所述第二通信方的第二代理接收所述第三连接请求,以建立所述第一通信方的第一代理与第二通信方的第二代理之间的P2P穿透连接。
4.根据权利要求1至2任一项所述的方法,其特征在于,
所述第一通信方是私有云服务器,所述第二通信方是所述私有云服务器所在内网之外的另一网络节点,或反过来。
5.一种网络通信方法,其特征在于,包括:
内网中的第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接;
所述第一通信方的第一应用将第一数据发给所述第一通信方的第一环回端口;
所述第一通信方的所述第一代理从所述第一环回端口获得所述第一数据,并发给所述第二通信方的第二代理,以使得所述第二通信方的第二代理接收所述第一数据,并将所述第一数据发给相应的第二应用;
所述第一通信方的第一代理接收从所述第二通信方的第二代理发来的第二数据;
所述第一通信方的第一代理将所述第二数据发送到所述第一通信方的另一第一环回端口;
所述第一通信方的所述第一应用从所述另一第一环回端口中获得所述第二数据;
其中,所述第一代理在所述第一通信方内运行,所述第二代理在所述第二通信方内运行,所述第一代理独立于所述第一应用,所述第二代理独立于所述第二应用,所述第一代理与所述第二代理均对相应的第一应用、第二应用透明,所述第一环回端口和所述另一第一环回端口作为一环回端口组合用于所述第一通信方与所述第二通信方之间的连接,不同通信方之间连接所采用的所述环回端口组合不同。
6.根据权利要求5所述的方法,其特征在于,
所述第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接的步骤是指:设置在所述第一通信方的数据链路层的第一代理与设置在所述第二通信方的数据链路层的第二代理之间建立P2P穿透连接。
7.根据权利要求5所述的方法,其特征在于,
所述第一通信方的第一代理与第二通信方的第二代理之间建立P2P穿透连接的步骤包括:
所述第一通信方的第一代理向服务器发送第一连接请求,所述第一连接请求包括第一通信方的地址及端口信息,还包括所要建立连接的对端即所述第二通信方的信息;
所述服务器接收所述第一连接请求,将所述第一通信方的地址及端口信息发给所述第二通信方的第二代理,并将所述第二通信方的地址及端口信息发给所述第一通信方的第一代理,所述服务器中预先保存有所述第一通信方和所述第二通信方的地址及端口信息;
所述第二通信方的第二代理利用所述第一通信方的地址及端口信息向所述第一通信方发送第二连接请求,所述第二连接请求被所述第一通信方侧的网络地址转换拒绝,所述第二通信方侧的网络地址转换保存了所述第一通信方的地址及端口;
所述第一通信方的第一代理向所述第二通信方发起第三连接请求,所述第二通信方侧的网络地址转换根据所述保存的所述第一通信方的地址及端口而通过所述第三连接请求;
所述第二通信方的第二代理接收所述第三连接请求,以建立所述第一通信方的第一代理与第二通信方的第二代理之间的P2P穿透连接。
8.根据权利要求5所述的方法,其特征在于,
所述第一通信方是私有云服务器,或者所述私有云服务器所在内网之外的另一网络节点。
9.一种用于内网的网络通信设备,其特征在于,包括:
处理器和网络通信电路;
所述处理器用于运行第一代理,以通过所述网络通信电路与对端的第二代理之间建立P2P穿透连接;
所述处理器还用于运行第一应用,以通过所述第一代理将第一数据输出至所述网络通信电路,所述网络通信电路将所述第一数据发给所述对端的第二代理,以使得所述对端的第二代理接收所述第一数据,并将所述第一数据发给相应的第二应用;所述处理器具体用于运行所述第一应用以将所述第一数据发给第一环回端口,然后运行所述第一代理以从所述第一环回端口获得所述第一数据,并输出至所述网络通信电路;
所述处理器还用于运行所述第一代理以通过所述网络通信电路接收从所述对端的第二代理发来的第二数据,然后运行所述第一代理以将所述第二数据发送到另一第一环回端口,然后运行所述第一应用以从所述另一第一环回端口中获得所述第二数据;
其中,所述第一代理独立于所述第一应用,所述第二代理独立于所述第二应用,所述第一代理与所述第二代理均对相应的第一应用、第二应用透明,所述第一环回端口和所述另一第一环回端口作为一环回端口组合用于第一通信方与第二通信方之间的连接,不同通信方之间连接所采用的所述环回端口组合不同。
10.根据权利要求9所述的设备,其特征在于,
所述设备是私有云服务器,或者所述私有云服务器所在内网之外的另一网络节点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510641629.9A CN105376299B (zh) | 2015-09-30 | 2015-09-30 | 一种网络通信方法、设备及网络附属存储设备 |
PCT/CN2016/080671 WO2017054447A1 (zh) | 2015-09-30 | 2016-04-29 | 一种网络通信方法、设备及网络附属存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510641629.9A CN105376299B (zh) | 2015-09-30 | 2015-09-30 | 一种网络通信方法、设备及网络附属存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105376299A CN105376299A (zh) | 2016-03-02 |
CN105376299B true CN105376299B (zh) | 2020-12-04 |
Family
ID=55378094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510641629.9A Active CN105376299B (zh) | 2015-09-30 | 2015-09-30 | 一种网络通信方法、设备及网络附属存储设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105376299B (zh) |
WO (1) | WO2017054447A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105376299B (zh) * | 2015-09-30 | 2020-12-04 | 深圳市先河系统技术有限公司 | 一种网络通信方法、设备及网络附属存储设备 |
CN107222326B (zh) * | 2016-03-22 | 2021-02-02 | 斑马智行网络(香港)有限公司 | 用于设备间服务的访问方法、配置方法及装置 |
CN106131233B (zh) * | 2016-06-20 | 2019-03-15 | 腾讯科技(深圳)有限公司 | 实现数据库多路径访问的方法、装置及系统 |
CN106604119B (zh) * | 2016-12-26 | 2020-12-22 | 深圳市Tcl高新技术开发有限公司 | 一种用于智能电视私有云设备的网络穿透方法及系统 |
CN110611693A (zh) * | 2018-06-15 | 2019-12-24 | 上海宽翼通信科技股份有限公司 | 一种基于私有云的在线存储方法、系统及私有云客户端 |
CN111953640A (zh) * | 2019-05-17 | 2020-11-17 | 阿里巴巴集团控股有限公司 | 通信方法、通信系统、云节点和可读存储介质 |
CN110661858A (zh) * | 2019-09-12 | 2020-01-07 | 南京博联智能科技有限公司 | 基于websocket的内网穿透方法及系统 |
CN111030984B (zh) * | 2019-10-22 | 2022-08-19 | 上海泰宇信息技术股份有限公司 | 一种数据安全传输系统及方法 |
CN114979261B (zh) * | 2021-02-24 | 2024-06-25 | 华为技术有限公司 | 业务交互方法、终端、服务器及系统 |
CN113079156A (zh) * | 2021-03-31 | 2021-07-06 | 国网浙江省电力有限公司信息通信分公司 | 一种内外网信息交互系统 |
CN115776493A (zh) * | 2021-09-07 | 2023-03-10 | 华为云计算技术有限公司 | 资源请求方法、系统、装置、设备及存储介质 |
CN113839849A (zh) * | 2021-09-22 | 2021-12-24 | 天津津航计算技术研究所 | 一种基于stun的虚拟专用网络架设方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8917311B1 (en) * | 2014-03-31 | 2014-12-23 | Apple Inc. | Establishing a connection for a video call |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2027698A4 (en) * | 2006-06-14 | 2014-04-16 | Nokia Corp | METHOD AND DEVICE FOR WIRELESS TRANSMISSION OF TELEVISION ON IP |
CN101170572A (zh) * | 2006-10-23 | 2008-04-30 | 日电(中国)有限公司 | 基于p2p sip技术实现的多媒体网络通信系统 |
CN101087239A (zh) * | 2007-07-17 | 2007-12-12 | 北京搜狗科技发展有限公司 | 一种对等网络中充分利用带宽资源的数据传输方法及装置 |
US20100017500A1 (en) * | 2008-07-17 | 2010-01-21 | Rubik Lee | Methods and systems for peer-to-peer proxy sharing |
US8769278B2 (en) * | 2010-04-07 | 2014-07-01 | Apple Inc. | Apparatus and method for efficiently and securely exchanging connection data |
CN102984186A (zh) * | 2011-09-05 | 2013-03-20 | 中兴通讯股份有限公司 | 会话建立方法及装置 |
CN102868769A (zh) * | 2012-10-16 | 2013-01-09 | 青岛海尔软件有限公司 | 物联网与互联网实时双向数据透传系统 |
CN102932362A (zh) * | 2012-11-09 | 2013-02-13 | 中山爱科数字科技股份有限公司 | 一种家庭dvd远程共享播放方法 |
CN103179213B (zh) * | 2013-04-03 | 2016-05-18 | 深圳市闪联信息技术有限公司 | 基于点对点代理机制的家庭媒体资源传输系统 |
CN105376299B (zh) * | 2015-09-30 | 2020-12-04 | 深圳市先河系统技术有限公司 | 一种网络通信方法、设备及网络附属存储设备 |
-
2015
- 2015-09-30 CN CN201510641629.9A patent/CN105376299B/zh active Active
-
2016
- 2016-04-29 WO PCT/CN2016/080671 patent/WO2017054447A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8917311B1 (en) * | 2014-03-31 | 2014-12-23 | Apple Inc. | Establishing a connection for a video call |
Also Published As
Publication number | Publication date |
---|---|
CN105376299A (zh) | 2016-03-02 |
WO2017054447A1 (zh) | 2017-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105376299B (zh) | 一种网络通信方法、设备及网络附属存储设备 | |
US8631155B2 (en) | Network address translation traversals for peer-to-peer networks | |
CN101699801B (zh) | 一种数据传输方法及传输数据的虚拟对等网络系统 | |
US9143421B2 (en) | Network system capable of implementing stun with the assistance of two network devices and method thereof | |
EP1441483A2 (en) | Gateway for supporting communications between network devices of different private networks | |
EP3958534A1 (en) | Method and apparatus for establishing end-to-end network connection, and network system | |
EP3223498A1 (en) | Method and apparatus for interconnection between networks | |
WO2011018775A1 (en) | A method and host node for multiple nat64 environments | |
JP2011525776A (ja) | 中継サーバー間の通信を管理するための技法 | |
CN103108089A (zh) | 网络系统的连线建立管理方法及其相关系统 | |
CN104836863A (zh) | 实现tcp反向端口映射的系统和方法 | |
US8873569B2 (en) | User centric virtual network and method of establishing the same | |
JP6386166B2 (ja) | IPv4とIPv6との間の翻訳方法及び装置 | |
US20140337478A1 (en) | Peer-to-peer network communications | |
WO2011038639A1 (zh) | 端到端即时通讯的实现方法、端到端即时通讯终端及系统 | |
TW201701635A (zh) | 用於多層網路位址轉譯器結構之網路傳輸方法及網路傳輸系統 | |
KR20140092630A (ko) | 사용자장치, 통신서버 및 그 제어방법 | |
US8812694B2 (en) | Dialog establishment over a peer-to-peer architecture | |
JP2019050628A5 (zh) | ||
KR100552475B1 (ko) | 서로 다른 사설망에 위치한 네트워크 장치들 사이의통신을 지원하는 망접속장치 | |
CN108337331B (zh) | 网络穿透方法、装置、系统及网络连通性检查方法 | |
CN113067908B (zh) | 一种nat穿越方法、装置、电子设备和存储介质 | |
EP3264724B1 (en) | Method and apparatus for sending, transferring and acquiring capability | |
CA2799507C (en) | Dialog establishment over a peer-to-peer architecture | |
CN117439815B (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 |