CN101699801A - 一种数据传输方法及传输数据的虚拟对等网络系统 - Google Patents
一种数据传输方法及传输数据的虚拟对等网络系统 Download PDFInfo
- Publication number
- CN101699801A CN101699801A CN200910235956A CN200910235956A CN101699801A CN 101699801 A CN101699801 A CN 101699801A CN 200910235956 A CN200910235956 A CN 200910235956A CN 200910235956 A CN200910235956 A CN 200910235956A CN 101699801 A CN101699801 A CN 101699801A
- Authority
- CN
- China
- Prior art keywords
- address
- client
- network
- virtual
- server
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据传输方法及传输数据的虚拟对等网络系统,通过在客户端原有传输控制协议/网际协议(TCP/IP,Transfer ControlProtocol/Internet Protocol)网络协议栈的IP层增加虚拟IP层,用以在将虚拟网络IP地址作为目的网络IP地址时,从服务器获取该虚拟网络IP地址对应的公用网络IP地址,并将该虚拟网络IP地址封装为对应的公用网络IP地址;以及,从服务器存储的路由信息表中获取至公用网络IP地址的路由路径信息,并根据获取的路由路径信息进行相应处理。应用本发明,组建VPN网络时,服务器不需要再对数据进行转发,可以降低数据的传输时延、简化对服务器的性能和带宽要求、提高网络传输效率。
Description
技术领域
本发明涉及数据传输技术,特别涉及一种数据传输方法及传输数据的虚拟对等网络系统。
背景技术
现有互联网应用中,当两个客户端需要进行数据通信和联网时,往往是由服务器进行数据转发,这种模式一般称之为CS(client server)模式。随着个人数据的爆发性增长,人们迫切需要有一种技术能实现两个客户端的直接通信。但现实网络中,存在大量只具有私网IP地址的客户端,这类客户端由于被NAT网关所屏蔽,其他客户端无法对其进行访问。为此,现有技术中提出了网络地址转换(NAT,Network Address Translation)网关穿越技术,通过采用一定的技术措施使得内网之间的客户端可以实现互联,常用的NAT网关穿越技术包括NAT的UDP简单穿越(STUN,Simple Traversal ofUser Datagram Protocol through Network Address Translators)协议、通用即插即用(UPnP,Universal Plug and Play)协议等,通过外部第三方服务器(Server),实现NAT网关穿越。但这些NAT网关穿越技术并不能保证100%的成功,那些没有穿越能力的客户端就无法让其他客户端通信了。
现有技术中,VPN技术通过在真实网络之上虚拟一个网络,成功把多个客户端组成了一个虚拟网,这个虚拟网内的客户端都可以通过虚拟网络地址进行互联,运行各种网络应用。但VPN技术需要一个服务器,所有的数据转发都通过该服务器进行(如图1),因此服务器的带宽和cpu负担很重,无法支持大规模的(数百万客户端同时在线连接)网络连接。
此外,一些网络应用软件,例如,微软网络服务(MSN,Microsoft serviceNetwork)、QQ、Skype等,可以将多个客户端连接成为一个专网,用以提供特定应用(例如,即时消息、文件传送、视频聊天等),但由于无法透明提供所有网络应用,举例来说,两个登陆到QQ的客户端,可以进行视频聊天,但两个客户端可能无法相互ping通,无法进行局域网游戏,无法通过网络邻居共享相关目录,也无法访问对方的网页服务器(Web Server),因此,在此不再赘述。
发明内容
有鉴于此,本发明的主要目的在于提供一种数据传输方法,不需要服务器进行数据中转,降低数据的传输时延、大大降低对服务器带宽和性能的要求、提高网络传输效率。
本发明的另一目的在于提供一种传输数据的虚拟对等网络系统,不需要服务器进行数据中转,,降低数据的传输时延、大大降低对服务器带宽和性能的要求、提高网络传输效率。
为达到上述目的,本发明提供了一种数据传输方法,预先在客户端传输控制协议/网际协议TCP/IP网络协议栈的IP层增加用于完成虚拟网络IP地址封装处理的虚拟IP层并为所述虚拟IP层分配一个虚拟网络IP地址;服务器根据客户端上报的注册信息,判断该客户端是否具备网络地址转换NAT穿越能力,如果是,服务器将该客户端NAT网关的公用网络IP地址和相应TCP端口号作为转发路径存储在转发路由表中;否则,服务器根据预先设定的路由算法,将选取的具备NAT穿越能力的第三方转发客户端对应的公用网络IP地址和相应的TCP端口号作为转发路径存储在转发路由表中;该方法包括:
当源客户端的虚拟IP层发送数据报文时,向服务器发送查询目的虚拟网络IP地址的路由信息请求;
服务器根据接收的目的虚拟网络IP地址查询存储的转发路由表,获取该目的虚拟网络IP地址对应的转发路径,向源客户端的虚拟IP层返回携带转发路径的查询路由响应信息;
源客户端的虚拟IP层接收查询路由响应信息,利用所述转发路径包含的目的公用网络IP地址和相应TCP端口号对所述数据报文进行封装后发送。
所述注册信息包括:虚拟网络IP地址、公用网络IP地址或隶属于某个NAT网关的私有网络IP地址、客户端公用TCP端口号、自身所属NAT网关公用网络IP地址、自身所属NAT网关TCP端口号、客户端在线状态指示、客户端带宽、以及客户端中央处理器负载。
所述将选取的具备NAT穿越能力的第三方转发客户端对应的公用网络IP地址和相应的TCP端口号作为转发路径存储在转发路由表中的步骤进一步包括:
所述服务器将所述第三方转发客户端对应的公用网络IP地址和相应的TCP端口号告知所述源客户端,并由所述源客户端主动发起和保持与所述第三方转发客户端的TCP连接,所述封装后的数据报文是利用所述TCP连接发送。
所述获取该目的虚拟网络IP地址对应的转发路径包括:
服务器根据该目的虚拟网络IP地址查询到其当前属于哪个客户端,并从存储的转发路由表中读取对应的公用网络IP地址及NAT网关TCP端口信息作为所述转发路径。
所述预先设定的路由算法为:
从各在线的具有NAT穿越能力的客户端中,随机选择能够为所述的客户端进行数据转发的路由算法;或,
从各在线的具有公用网络IP地址的客户端中,根据地域相近原则选择能够为所述的客户端进行数据转发的路由算法;或,
从各在线的具有公用网络IP地址的客户端中,根据客户端带宽性能选择能够为所述的客户端进行数据转发的路由算法。
所述向服务器发送查询目的虚拟网络IP地址的路由信息请求的步骤前,进一步包括:
虚拟IP层接收上层应用发来的数据报文,判断数据报文的目的地址是否为公用网络IP地址,如果是,则将数据报文发送至IP层处理,否则,执行所述向服务器发送查询目的虚拟网络IP地址的路由信息请求的步骤。
该方法进一步包括:
所述第三方转发客户端在相应的TCP端口号接收封装的数据报文,解析封装包头,根据解析得到的包头中目的虚拟网络IP地址判断该数据报文是否需要转发,如果不需要转发,则将数据报文发送给上层网络应用处理;如果需要转发,则继续转发给相应的目的客户端或下一个第三方转发客户端。
一种传输数据的虚拟对等网络系统,该虚拟对等网络系统包括:服务器以及多个客户端,其中,
服务器,用于接收客户端上报的注册信息,判断该客户端是否具备网络地址转换NAT穿越能力,如果是,将该客户端NAT网关的公用网络IP地址和相应TCP端口号作为转发路径存储在转发路由表中;否则,根据预先设定的路由算法,将选取的具备NAT穿越能力的第三方转发客户端对应的公用网络IP地址和相应的TCP端口号作为转发路径存储在转发路由表中,接收客户端发送的查询目的虚拟网络IP地址的路由信息请求,从存储的转发路由表中获得目的虚拟网络IP地址对应的客户端的转发路径信息,向发送路由信息请求的客户端返回携带转发路径信息的查询路由响应信息;
客户端,预先在TCP/IP网络协议栈的IP层增加用于完成虚拟网络IP地址封装处理的虚拟IP层并为所述虚拟IP层分配一个虚拟网络IP地址;用于向服务器上报注册信息;虚拟IP层接收上层应用发来的数据报文,如果数据报文的目的地址为公用网络IP地址,则将数据报文发送至IP层处理,如果数据报文的目的地址为虚拟网络IP地址,则向服务器发送查询目的虚拟网络IP地址的路由信息请求;虚拟IP层接收查询路由响应信息,以转发路径包含的目的公用网络IP地址和相应TCP端口号信息对数据报文进行封装后发送至IP层进行处理。
所述服务器进一步用于检测到处于数据传输中的中转客户端失去连接时,重新计算转发路由表,并通知请求数据传输的客户端。
由上述的技术方案可见,本发明提供的数据传输方法及传输数据的虚拟对等网络系统,预先在客户端传输控制协议/网际协议TCP/IP网络协议栈的IP层增加用于完成虚拟网络IP地址封装处理的虚拟IP层;客户端向服务器上报注册信息;服务器根据注册信息判断该客户端是否具备网络地址转换NAT穿越能力,如果是,服务器将该客户端NAT网关的公用网络IP地址和相应TCP端口号作为转发路径存储在转发路由表中;否则,服务器根据预先设定的路由算法,将选取的具备NAT穿越能力的第三方转发客户端对应的公用网络IP地址和相应的TCP端口号作为转发路径存储在转发路由表中,然后发起和第三方转发客户端的TCP连接,并保持该连接;客户端的虚拟IP层接收上层应用发送的数据,向服务器发送查询目的虚拟网络IP地址的路由信息请求;服务器接收路由信息请求,从存储的转发路由表中提取该目的虚拟网络IP地址对应的公用网络IP地址和相应的TCP端口号,并向虚拟IP层返回查询路由响应信息;虚拟IP层接收查询路由响应信息,以路由信息中的公用网络IP地址和相应的TCP端口号对数据进行封装后发送至IP层进行处理;IP层将数据报文发送至目的客户端的虚拟IP层,或发送至第三方转发客户端的虚拟IP层,第三方转发客户端的虚拟IP层,根据目的虚拟网络IP地址判别数据报文是否进行转发,并将数据报文通过和目的客户端的TCP连接通道转发给最终目的客户端;目的客户端的虚拟IP层从IP层收到跟自己的TCP对应的数据报文后,去掉包头,将包含虚拟网络IP地址的数据报文交给上层应用处理。这样,不同内网的客户端在传输数据时,通过向服务器获取路由路径信息,进行直接或间接的数据通信,从而不需要服务器进行数据处理和中转,降低了数据通过服务器进行中转的传输时延;进一步地,对服务器的带宽资源以及处理性能要求不高,简化了服务器的复杂结构;而且,不需要服务器进行中转,提高了网络传输效率;而且,网络中每个客户端都可以通过虚拟IP相互互联,并运行任意基于IP通信的应用程序。
附图说明
图1为现有VPN技术方案示意图。
图2为本发明实施例数据传输方法的流程示意图。
图3为现有TCP/IP网络协议栈的结构示意图。
图4为本发明实施例TCP/IP网络协议栈的结构示意图。
图5为本发明实施例的传输数据的虚拟对等网络系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明提供的数据传输方法及传输数据的虚拟对等网络系统,通过在客户端原有传输控制协议/网际协议(TCP/IP,Transfer Control Protocol/InternetProtocol)网络协议栈的IP层增加虚拟IP层,用以在将虚拟网络IP地址作为目的网络IP地址时,从服务器获取该虚拟网络IP地址对应的公用网络IP地址及TCP端口号,并将该虚拟网络IP地址封装为对应的公用网络IP地址,从服务器存储的路由信息表中获取至公用网络IP地址的路由路径信息,并根据获取的路由路径信息进行相应处理。
客户端可以是个人计算机(PC,Personal Computer)、手机或嵌入式设备等。
图2为本发明实施例数据传输方法的流程示意图,参见图2,该流程包括:
步骤201,预先在客户端原有TCP/IP网络协议栈的IP层增加用于完成虚拟网络IP地址封装处理的虚拟IP层;
本步骤中,现有TCP/IP网络协议栈以及本发明实施例TCP/IP网络协议栈的结构分别参见图3和图4,其中,图3为现有TCP/IP网络协议栈的结构示意图,包括网络应用层、TCP/UDP层、IP层以及网络媒质接入控制层(MAC,Medium Access Control)层/物理层;图4为本发明实施例TCP/IP网络协议栈的结构示意图,与图3不同的是,在IP层中增加了虚拟IP层,并为虚拟IP层分配一个虚拟网络IP地址,用于对目的网络IP地址是虚拟网络IP地址的情形进行封装处理,即对原有包头再次进行封装。
虚拟网络IP地址由服务器统一分配和维护,其本质上也属于私有网络IP地址的一种,但它没有物理的网络接口与之对应,而是附着于终端实际的公用网络或私有网络IP地址上。
具体来说,每个客户端系统中会增加虚拟IP层,并分配一个虚拟网络IP地址,该虚拟网络IP地址对应于虚拟IP层。上层应用程序在使用虚拟网络IP地址进行联网通信时,和正常网络IP地址完全一致。虚拟IP层完成虚拟对等网的IP路由和寻址等功能,这种虚拟IP技术类似虚拟专用网(VPN,Virtual Private Network)技术。这种虚拟IP技术由于对上层应用完全透明,因此可以承载所有的网络应用,可便于现有的所有成熟网络应用在虚拟对等网上运行。
步骤202,客户端向服务器上报自身的穿越能力信息;
本步骤中,服务器作为虚拟对等网络系统中所有对等客户端共同的管理服务器,拥有公用网络IP地址和域名,负责处理管理信息流。管理信息流包括客户端上报的穿越能力信息、客户端之间相互访问时的虚拟网络IP路由和寻址的路由信息请求等。
本步骤中,客户端可以在连接网络后,向服务器上报注册信息,注册信息包括自身所属NAT网关公用网络IP地址、自身所属NAT网关TCP端口号和网络地址转换NAT穿越能力信息;也可以在自身的网络配置发生变化后,将变化的穿越能力信息上报至服务器;或者是定期上报。
各客户端的穿越能力信息中包含有每个客户端的虚拟网络IP地址、客户端私有应用端口号、公用网络IP地址(或NAT网关的公用网络IP地址以及该客户端的私有网络IP地址)、客户端公用TCP端口号、在线状态指示、客户端带宽、以及客户端中央处理器负载等。
实际应用中,每个客户端都会有唯一标识自身身份的序列号,客户端在向服务器上报自身的穿越能力信息时,携带序列号,服务器建立序列号与穿越能力信息的映射关系,存储各客户端的NAT穿越能力信息。这样,后续流程中,服务器可以根据需要查询的序列号获取相应客户端的穿越能力信息。
本实施例中,客户端可能具有私有网络IP地址,也可能具有公用网络IP地址,因而,在上报的穿越能力信息中,可能包含上述私有网络IP地址、和/或,公用网络IP地址。
本实施例中,服务器能够根据预先设置的规则,区分一个网络IP地址是私有网络IP地址还是公用网络IP地址。私有网络IP地址可以由内网服务器根据协议规范或实际需要进行配置。
如果客户端为私有网络IP地址,则其可在服务器的帮助下,试图进行NAT穿越,穿越方法包括STUN或uPnP等方式,如果穿越成功,则将自身所属NAT网关公用网络IP地址和NAT网关应用(TCP)端口号上报给服务器,有关详细的获取流程,可参见相关技术文献,在此不再赘述。
NAT穿越能力信息包括:自身网络IP地址、客户端应用端口号、自身所属NAT网关公用网络IP地址和自身所属NAT网关应用端口号。
进一步地,本发明实施例中,穿越能力信息还可以包括:客户端在线状态指示、客户端带宽、以及客户端中央处理器负载等。
举例来说,如果客户端被分配虚拟网络IP地址(iAddr),则上报的穿越能力信息可以包括iAddr:iPort;eAddr:ePort。如果客户端被分配公用网络IP地址(eAddr1),则上报的穿越能力信息可以包括eAddr1:ePort1。
实际应用中,客户端也可以在连接网络后,通过帐号和密码(或数字证书)与服务器进行认证,认证通过后,再向服务器上报穿越能力信息。
步骤203,服务器为每个客户端设置转发路由信息,建立每个虚拟网络IP地址对应的转发IP地址和TCP端口号。
本步骤中,每个客户端向服务器上报了注册信息后,服务器将为其分配转发路由表,如果该客户端具备NAT穿越能力,服务器可将其NAT网关的公用网络IP地址和相应TCP端口号作为转发路径存储在路由表中;如果该客户端不具备NAT穿越能力,服务器根据预先设定的路由算法,挑选一个或多个具备NAT穿越能力的第三方客户端代其转发数据,并将第三方转发客户端对应的公用网络IP和相应的TCP端口号作为转发路径存储在路由表中。
服务器在为客户端挑选第三方转发客户端时,预先设定的路由算法可以是从各在线的具有公用网络IP地址的客户端中,随机选择一些能够到达目的网络IP地址的具有公用网络IP地址的客户端作为中转客户端的路由算法;也可以从各在线的具有公用网络IP地址的客户端中,根据地域相近原则(源客户端、目标客户端以及中转客户端位于同一地域或相近地域)选择能够到达目的网络IP地址的中转客户端的路由算法;还可以从各在线的具有公用网络IP地址的客户端中,根据客户端带宽性能选择能够到达目的网络IP地址的中转客户端(优先选取当前带宽资源富余的客户端作为中转客户端)的路由算法。
当然,服务器也可以考虑各具有公用网络IP地址的客户端(以下称为中转客户端)的负载均衡,例如,根据各具有公用网络IP地址的客户端的带宽资源信息、以及客户端中央处理器负载情况计算路由路径,以避免一个具有公用网络IP地址的客户端中转太多的数据。
实际应用中,服务器也可以在检测到处于数据传输中的中转客户端失去连接时,重新计算并更新转发路由表,并通知请求数据传输的客户端。
步骤204,对于没有NAT穿越能力的客户端,将从服务器处获取为其分配的一个或多个第三方转发客户端的IP地址和TCP号,然后发起和这些转发客户端的TCP连接,并保持该连接。
由于没有NAT穿越能力的客户端,其他客户端不能直接对其访问。因此服务器会为其分配一个或多个第三方转发客户端帮助其被访问。服务器将这些第三方转发客户端的公用网络IP地址和TCP端口号发送给该客户端,该客户端发起针对该公用网络IP和TCP端口的连接,并保持跟第三方转发客户端的这种连接关系。当然,也可以是在后续相应的流程中再发起针对该公用网络IP和TCP端口的连接。这样,当有客户端需要访问该客户端时,会将数据发送至第三方转发客户端,而转发客户端可以通过该连接通道将报文传送到该客户端。
所应说明的是,本实施例中,步骤201至步骤204是虚拟对等网建立的过程,通过这些步骤,每个客户端的信息被存放在服务器处,每个客户端也有了能被其他客户端所访问的数据通道。在执行后续步骤(例如,步骤205)中,也不是需要每次按照步骤201~步骤205执行,在本发明的实施例中,步骤201和步骤204只需要执行一次。
步骤205,客户端的虚拟IP层接收上层应用发送的数据报文,如果数据报文的目的IP地址为公用网络IP地址,则直接交给原有IP层处理;如果数据报文的目的IP地址为虚拟网络IP地址,则向服务器发送查询目的虚拟网络IP地址的路由信息请求。
步骤206,服务器接收路由信息请求,从存储的转发路由表中提取该目的虚拟网络IP地址对应的公用网络IP地址和相应的TCP端口号,并向虚拟IP层返回查询路由响应信息;
查询路由响应信息中包含能直接或间接连向目的虚拟网络IP地址的公用网络IP地址和TCP端口号。
步骤207,虚拟IP层接收查询路由响应信息,以路由信息中的转发IP地址和TCP端口号对数据进行封装后发送至IP层进行处理:
本步骤中,虚拟IP层从接收的查询路由响应信息中提取公用网络IP地址TCP端口号后,将原有数据报文前增加包含该公用网络IP地址及相应的客户端公用应用端口号的封装包头,发送至IP层。
步骤208,IP层将报文发送至目的客户端的虚拟IP层,或发送至第三方转发客户端的虚拟IP层,第三方转发客户端的虚拟IP层,根据目的虚拟网络IP地址判别报文是否进行转发,并将报文通过和虚拟目的客户端的TCP连接通道转发给最终目的客户端。
本步骤中,如果目的客户端具备NAT穿越能力,可以被直接访问,则目的客户端即可直接收到相关数据报文。如果是通过第三方客户端转发,则报文将先被送至第三方客户端的虚拟IP层,第三方客户端虚拟IP层将包含目的虚拟网络IP地址的数据报文恢复后,通过步骤204建立的与该客户端的TCP连接通道将数据报文发送至该目的客户端。
步骤209,目的客户端的虚拟IP层从IP层收到跟自己的TCP端口对应的报文后,去掉包头,将包含虚拟IP地址的报文交给上层应用处理。
至此,数据传输方法的流程结束。
由上述实施例可见,网络中任何两个客户端,无论其是否具备NAT穿越能力,在传输数据时,通过向服务器获取路由路径信息,就可以直接或间接地进行数据交换,而不需要服务器进行数据处理和中转,降低了数据通过服务器进行中转的传输时延,节约了服务器的运营成本;进一步地,对服务器的带宽资源以及处理性能要求不高,简化了服务器的复杂结构,避免了服务器作为中转服务器时,由于网络客户端数量过多时引起的带宽和处理速度瓶颈问题;而且,由于路由算法可以综合考虑各中转客户端的诸多因素,可以使得中转客户端负载较为均衡,不需要服务器进行中转,提高了网络传输效率。本发明可以低成本地为互联网上任何两个或多个客户端提供专有的、保密的、和网络应用无关的网络互联,为基于广域网的对等网络应用提供了一个基础技术平台。
下面再对本发明实施例的传输数据的虚拟对等网络系统进行说明。
图5为本发明实施例的传输数据的虚拟对等网络系统的结构示意图。参见图5,该虚拟对等网络系统包括:服务器、多个客户端,其中,
服务器,用于接收客户端的注册信息并进行存储,根据注册信息为每个客户端分配转发路由所对应的公用网络IP地址和TCP端口信息的转发路由表,并让每个客户端保持和相应第三方转发客户端的TCP连接,确保每个客户端都能被其他客户端直接或间接访问,接收客户端发送的查询目的虚拟网络IP地址的路由信息请求,从存储的转发路由表中获得该虚拟目的客户端的转发路由信息,向发送路由信息请求的客户端返回携带转发路由公用网络IP地址及TCP端口信息的查询路由响应信息;
客户端,预先在TCP/IP网络协议栈的IP层增加用于完成虚拟网络IP地址封装处理的虚拟IP层;用于向服务器上报注册信息;如果有必要,则根据服务器分配的第三方转发客户端信息发起与第三方转发客户端的TCP连接,并保持该连接,确保能随时通过该连接收发来自其他客户端的数据报文;虚拟IP层接收上层应用发来的数据报文,如果报文的目的地址为公用网络IP地址,则将报文发送至IP层处理,如果报文目的地址为虚拟网络IP地址,则向服务器发送查询目的虚拟网络IP地址的路由信息请求;虚拟IP层接收查询路由响应信息,以转发路由对应的公用网络IP地址和TCP端口信息对数据进行封装后发送至IP层进行处理。
本实施例中,穿越能力信息包括虚拟网络IP地址、客户端内网应用端口号(iAddr:iPort)、公用网络IP地址和外网应用端口号(eAddr:ePort)、自身的资源带宽信息以及处理器负载信息等。
实际应用中,客户端也可以接收其它客户端通过自身所属NAT网关发送的数据。
实际应用中,在客户端中增加一个虚拟网卡,并为虚拟网卡分配本发明虚拟对等网的虚拟网络IP地址,以完成虚拟对等网的IP路由和寻址等功能。这种虚拟网卡对上层应用完全透明,可以承载所有的网络应用,便于现有的所有成熟网络应用在虚拟对等网上运行。当网络应用需要IP层提供连接时,如果发现目的网络IP地址属于虚拟网络IP地址,则调用虚拟网卡;如果目的网络IP地址是公用网络IP地址,则使用原有的网卡。
本实施例中,如果客户端不需要通过NAT网关进行NAT转换,则根据路由路径信息进行相应的转发。
在图5的示例中,假设客户端1、2、3的虚拟网络IP地址分别为10.1.1.1~3,虚拟IP层对应的TCP端口号为8888。客户端1直接具有公用网络IP地址11.22.33.44,虚拟IP层;客户端2具有私网IP地址192.168.0.2,其NAT网关地址为22.33.44.55,该NAT网关可被穿越,对应的TCP端口号为4444;客户端3具有的私网IP地址是192.168.1.3,其NAT网关地址为33.44.55.66,该NAT网关不可被穿越。服务器为客户端3分配了客户端1为第三方转发客户端,因此客户端3发起了11.22.33.44:8888的TCP连接,并始终保持。
当客户端2要发起一个针对10.1.1.3的连接时,客户端2的虚拟IP层将10.1.1.3发向服务器查询;服务器发现这个IP属于客户端3,该客户端无穿越能力,而客户端1为其做第三方转发;服务器则将11.22.33.44:8888路由转发信息返回给客户端2,客户端2则将虚拟IP数据报文外部封装上11.22.33.44:8888信息后发送出去;客户端1的IP层收到报文后,发现TCP端口号8888的应用程序是虚拟IP层,因此交给虚拟IP层处理,虚拟IP层将外层地址封装去除后,发现该报文的目的IP是10.1.1.3,就将该报文通过已经和客户端3建立好的TCP连接发送给客户端3。
当客户端3要发起一个针对10.1.1.2的连接时,客户端3的虚拟IP层将10.1.1.2发向服务器查询;服务器发现这个IP属于客户端2,该客户端有穿越能力,服务器则将22.33.44.55:4444的路由转发信息返回给客户端3,客户端3则将虚拟IP数据报文外部封装上22.33.44.55:4444信息后发送出去;该报文被NAT网关1收到后,解析出报文应该送往其内网地址192.168.0.2:8888处,于是进行相应转发,客户端2的IP层收到报文后,发现TCP端口号8888的应用程序是虚拟IP层,因此交给虚拟IP层处理,虚拟IP层将外层地址封装去除后,得到了原始报文。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种数据传输方法,其特征在于,预先在客户端传输控制协议/网际协议TCP/IP网络协议栈的IP层增加用于完成虚拟网络IP地址封装处理的虚拟IP层并为所述虚拟IP层分配一个虚拟网络IP地址;服务器根据客户端上报的注册信息,判断该客户端是否具备网络地址转换NAT穿越能力,如果是,服务器将该客户端NAT网关的公用网络IP地址和相应TCP端口号作为转发路径存储在转发路由表中;否则,服务器根据预先设定的路由算法,将选取的具备NAT穿越能力的第三方转发客户端对应的公用网络IP地址和相应的TCP端口号作为转发路径存储在转发路由表中;该方法包括:
当源客户端的虚拟IP层发送数据报文时,向服务器发送查询目的虚拟网络IP地址的路由信息请求;
服务器根据接收的目的虚拟网络IP地址查询存储的转发路由表,获取该目的虚拟网络IP地址对应的转发路径,向源客户端的虚拟IP层返回携带转发路径的查询路由响应信息;
源客户端的虚拟IP层接收查询路由响应信息,利用所述转发路径包含的目的公用网络IP地址和相应TCP端口号对所述数据报文进行封装后发送。
2.如权利要求1所述的方法,其特征在于,所述注册信息包括:虚拟网络IP地址、公用网络IP地址或隶属于某个NAT网关的私有网络IP地址、客户端公用TCP端口号、自身所属NAT网关公用网络IP地址、自身所属NAT网关TCP端口号、客户端在线状态指示、客户端带宽、以及客户端中央处理器负载。
3.如权利要求1所述的方法,其特征在于,所述将选取的具备NAT穿越能力的第三方转发客户端对应的公用网络IP地址和相应的TCP端口号作为转发路径存储在转发路由表中的步骤进一步包括:
所述服务器将所述第三方转发客户端对应的公用网络IP地址和相应的TCP端口号告知所述源客户端,并由所述源客户端主动发起和保持与所述第三方转发客户端的TCP连接,所述封装后的数据报文是利用所述TCP连接发送。
4.如权利要求1所述的方法,其特征在于,所述获取该目的虚拟网络IP地址对应的转发路径包括:
服务器根据该目的虚拟网络IP地址查询到其当前属于哪个客户端,并从存储的转发路由表中读取对应的公用网络IP地址及NAT网关TCP端口信息作为所述转发路径。
5.如权利要求1所述的方法,其特征在于,所述预先设定的路由算法为:
从各在线的具有NAT穿越能力的客户端中,随机选择能够为所述的客户端进行数据转发的路由算法;或,
从各在线的具有公用网络IP地址的客户端中,根据地域相近原则选择能够为所述的客户端进行数据转发的路由算法;或,
从各在线的具有公用网络IP地址的客户端中,根据客户端带宽性能选择能够为所述的客户端进行数据转发的路由算法。
6.如权利要求1所述的方法,其特征在于,所述向服务器发送查询目的虚拟网络IP地址的路由信息请求的步骤前,进一步包括:
虚拟IP层接收上层应用发来的数据报文,判断数据报文的目的地址是否为公用网络IP地址,如果是,则将数据报文发送至IP层处理,否则,执行所述向服务器发送查询目的虚拟网络IP地址的路由信息请求的步骤。
7.如权利要求1所述的方法,其特征在于,该方法进一步包括:
所述第三方转发客户端在相应的TCP端口号接收封装的数据报文,解析封装包头,根据解析得到的包头中目的虚拟网络IP地址判断该数据报文是否需要转发,如果不需要转发,则将数据报文发送给上层网络应用处理;如果需要转发,则继续转发给相应的目的客户端或下一个第三方转发客户端。
8.一种传输数据的虚拟对等网络系统,其特征在于,该虚拟对等网络系统包括:服务器以及多个客户端,其中,
服务器,用于接收客户端上报的注册信息,判断该客户端是否具备网络地址转换NAT穿越能力,如果是,将该客户端NAT网关的公用网络IP地址和相应TCP端口号作为转发路径存储在转发路由表中;否则,根据预先设定的路由算法,将选取的具备NAT穿越能力的第三方转发客户端对应的公用网络IP地址和相应的TCP端口号作为转发路径存储在转发路由表中,接收客户端发送的查询目的虚拟网络IP地址的路由信息请求,从存储的转发路由表中获得目的虚拟网络IP地址对应的客户端的转发路径信息,向发送路由信息请求的客户端返回携带转发路径信息的查询路由响应信息;
客户端,预先在TCP/IP网络协议栈的IP层增加用于完成虚拟网络IP地址封装处理的虚拟IP层并为所述虚拟IP层分配一个虚拟网络IP地址;用于向服务器上报注册信息;虚拟IP层接收上层应用发来的数据报文,如果数据报文的目的地址为公用网络IP地址,则将数据报文发送至IP层处理,如果数据报文的目的地址为虚拟网络IP地址,则向服务器发送查询目的虚拟网络IP地址的路由信息请求;虚拟IP层接收查询路由响应信息,以转发路径包含的目的公用网络IP地址和相应TCP端口号信息对数据报文进行封装后发送至IP层进行处理。
9.如权利要求8所述的虚拟对等网络系统,其特征在于,所述服务器进一步用于检测到处于数据传输中的中转客户端失去连接时,重新计算转发路由表,并通知请求数据传输的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102359569A CN101699801B (zh) | 2009-10-30 | 2009-10-30 | 一种数据传输方法及传输数据的虚拟对等网络系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102359569A CN101699801B (zh) | 2009-10-30 | 2009-10-30 | 一种数据传输方法及传输数据的虚拟对等网络系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101699801A true CN101699801A (zh) | 2010-04-28 |
CN101699801B CN101699801B (zh) | 2011-09-28 |
Family
ID=42148246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102359569A Expired - Fee Related CN101699801B (zh) | 2009-10-30 | 2009-10-30 | 一种数据传输方法及传输数据的虚拟对等网络系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101699801B (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102255814A (zh) * | 2011-08-02 | 2011-11-23 | 华为技术有限公司 | 一种选择传送路径的方法、装置和系统 |
CN102281180A (zh) * | 2011-07-14 | 2011-12-14 | 冶金自动化研究设计院 | 应用于不同局域网的终端相互通讯的虚拟网卡通讯装置 |
CN102332999A (zh) * | 2011-10-31 | 2012-01-25 | 迈普通信技术股份有限公司 | 一种基于共享nat的网络管理交互系统及交互方法 |
WO2013004139A1 (zh) * | 2011-07-05 | 2013-01-10 | 中兴通讯股份有限公司 | 一种对等网中消息交互的方法及装置、系统 |
CN102957684A (zh) * | 2011-08-25 | 2013-03-06 | 宏碁股份有限公司 | 数字生活网络联盟封装传送方法和系统 |
CN104486108A (zh) * | 2014-12-08 | 2015-04-01 | 畅捷通信息技术股份有限公司 | 基于Zookeeper的节点配置方法和基于Zookeeper的节点配置系统 |
CN106656813A (zh) * | 2016-12-13 | 2017-05-10 | 珠海市杰理科技股份有限公司 | 数据传输方法 |
WO2017113816A1 (zh) * | 2015-12-29 | 2017-07-06 | 乐视控股(北京)有限公司 | 一种对等网络连接方法及装置 |
CN107979627A (zh) * | 2016-10-25 | 2018-05-01 | 北京国双科技有限公司 | 一种网络请求的处理方法及装置 |
CN108712308A (zh) * | 2018-06-06 | 2018-10-26 | 郑州云海信息技术有限公司 | 虚拟网络中检测网络设备的方法和装置 |
CN109617897A (zh) * | 2018-12-28 | 2019-04-12 | 北京指掌易科技有限公司 | 一种对公共移动应用提供安全传输的方法 |
CN109964451A (zh) * | 2016-11-22 | 2019-07-02 | 亚马逊科技公司 | 虚拟网络验证服务 |
CN110636149A (zh) * | 2019-10-17 | 2019-12-31 | 深圳市网心科技有限公司 | 远程访问方法、装置、路由器及存储介质 |
CN110740093A (zh) * | 2019-10-24 | 2020-01-31 | 北京大学 | 一种基于虚拟主机的数据转发装置 |
CN111901357A (zh) * | 2020-08-06 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 远程网络连接方法、系统、计算机设备和存储介质 |
CN112532675A (zh) * | 2019-09-19 | 2021-03-19 | 贵州白山云科技股份有限公司 | 一种网络边缘计算系统的创建方法、装置及介质 |
CN112866074A (zh) * | 2019-11-28 | 2021-05-28 | 烽火通信科技股份有限公司 | 一种虚拟网络连接方法及虚拟网络系统 |
CN112953823A (zh) * | 2021-01-29 | 2021-06-11 | 广州安凯微电子股份有限公司 | 一种虚电路组网的方法 |
CN113098900A (zh) * | 2021-04-29 | 2021-07-09 | 福建奇点时空数字科技有限公司 | 一种支持地址空间扩展的sdn网络ip跳变方法 |
CN113612972A (zh) * | 2021-08-09 | 2021-11-05 | 深圳市猿人创新科技有限公司 | 一种终端监控设备通信方法、装置、电子设备及存储介质 |
CN114650471A (zh) * | 2022-03-28 | 2022-06-21 | 洛阳萃泽信息科技有限公司 | 一种数控机床采集系统、采集模块及机床数据采集方法 |
US11671442B2 (en) | 2018-06-27 | 2023-06-06 | Amazon Technologies, Inc. | Automated packetless network reachability analysis |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100563246C (zh) * | 2005-11-30 | 2009-11-25 | 华为技术有限公司 | 一种基于ip的语音通信边界安全控制系统及方法 |
CN101217508B (zh) * | 2007-12-29 | 2010-06-23 | 腾讯科技(深圳)有限公司 | 一种基于即时通信平台的网络代理系统及其实现方法 |
-
2009
- 2009-10-30 CN CN2009102359569A patent/CN101699801B/zh not_active Expired - Fee Related
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013004139A1 (zh) * | 2011-07-05 | 2013-01-10 | 中兴通讯股份有限公司 | 一种对等网中消息交互的方法及装置、系统 |
CN102281180A (zh) * | 2011-07-14 | 2011-12-14 | 冶金自动化研究设计院 | 应用于不同局域网的终端相互通讯的虚拟网卡通讯装置 |
CN102255814A (zh) * | 2011-08-02 | 2011-11-23 | 华为技术有限公司 | 一种选择传送路径的方法、装置和系统 |
CN102957684A (zh) * | 2011-08-25 | 2013-03-06 | 宏碁股份有限公司 | 数字生活网络联盟封装传送方法和系统 |
CN102332999A (zh) * | 2011-10-31 | 2012-01-25 | 迈普通信技术股份有限公司 | 一种基于共享nat的网络管理交互系统及交互方法 |
CN102332999B (zh) * | 2011-10-31 | 2013-12-25 | 迈普通信技术股份有限公司 | 一种基于共享nat的网络管理交互系统及交互方法 |
CN104486108A (zh) * | 2014-12-08 | 2015-04-01 | 畅捷通信息技术股份有限公司 | 基于Zookeeper的节点配置方法和基于Zookeeper的节点配置系统 |
WO2017113816A1 (zh) * | 2015-12-29 | 2017-07-06 | 乐视控股(北京)有限公司 | 一种对等网络连接方法及装置 |
CN107979627A (zh) * | 2016-10-25 | 2018-05-01 | 北京国双科技有限公司 | 一种网络请求的处理方法及装置 |
CN107979627B (zh) * | 2016-10-25 | 2021-06-08 | 北京国双科技有限公司 | 一种网络请求的处理方法及装置 |
CN109964451B (zh) * | 2016-11-22 | 2022-06-07 | 亚马逊科技公司 | 用以提供虚拟网络验证服务的方法、系统 |
CN109964451A (zh) * | 2016-11-22 | 2019-07-02 | 亚马逊科技公司 | 虚拟网络验证服务 |
CN106656813A (zh) * | 2016-12-13 | 2017-05-10 | 珠海市杰理科技股份有限公司 | 数据传输方法 |
CN106656813B (zh) * | 2016-12-13 | 2020-03-31 | 珠海市杰理科技股份有限公司 | 数据传输方法 |
CN108712308B (zh) * | 2018-06-06 | 2021-11-26 | 郑州云海信息技术有限公司 | 虚拟网络中检测网络设备的方法和装置 |
CN108712308A (zh) * | 2018-06-06 | 2018-10-26 | 郑州云海信息技术有限公司 | 虚拟网络中检测网络设备的方法和装置 |
US11671442B2 (en) | 2018-06-27 | 2023-06-06 | Amazon Technologies, Inc. | Automated packetless network reachability analysis |
CN109617897A (zh) * | 2018-12-28 | 2019-04-12 | 北京指掌易科技有限公司 | 一种对公共移动应用提供安全传输的方法 |
CN112532675A (zh) * | 2019-09-19 | 2021-03-19 | 贵州白山云科技股份有限公司 | 一种网络边缘计算系统的创建方法、装置及介质 |
CN110636149A (zh) * | 2019-10-17 | 2019-12-31 | 深圳市网心科技有限公司 | 远程访问方法、装置、路由器及存储介质 |
CN110636149B (zh) * | 2019-10-17 | 2022-06-10 | 深圳市网心科技有限公司 | 远程访问方法、装置、路由器及存储介质 |
CN110740093B (zh) * | 2019-10-24 | 2020-09-15 | 北京大学 | 一种基于虚拟主机的数据转发装置 |
CN110740093A (zh) * | 2019-10-24 | 2020-01-31 | 北京大学 | 一种基于虚拟主机的数据转发装置 |
CN112866074A (zh) * | 2019-11-28 | 2021-05-28 | 烽火通信科技股份有限公司 | 一种虚拟网络连接方法及虚拟网络系统 |
CN112866074B (zh) * | 2019-11-28 | 2022-04-29 | 烽火通信科技股份有限公司 | 一种虚拟网络连接方法及虚拟网络系统 |
CN111901357A (zh) * | 2020-08-06 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 远程网络连接方法、系统、计算机设备和存储介质 |
CN111901357B (zh) * | 2020-08-06 | 2023-08-11 | 腾讯科技(深圳)有限公司 | 远程网络连接方法、系统、计算机设备和存储介质 |
CN112953823A (zh) * | 2021-01-29 | 2021-06-11 | 广州安凯微电子股份有限公司 | 一种虚电路组网的方法 |
CN113098900A (zh) * | 2021-04-29 | 2021-07-09 | 福建奇点时空数字科技有限公司 | 一种支持地址空间扩展的sdn网络ip跳变方法 |
CN113098900B (zh) * | 2021-04-29 | 2023-04-07 | 厦门美域中央信息科技有限公司 | 一种支持地址空间扩展的sdn网络ip跳变方法 |
CN113612972A (zh) * | 2021-08-09 | 2021-11-05 | 深圳市猿人创新科技有限公司 | 一种终端监控设备通信方法、装置、电子设备及存储介质 |
CN113612972B (zh) * | 2021-08-09 | 2023-12-05 | 深圳市猿人创新科技有限公司 | 一种终端监控设备通信方法、装置、电子设备及存储介质 |
CN114650471A (zh) * | 2022-03-28 | 2022-06-21 | 洛阳萃泽信息科技有限公司 | 一种数控机床采集系统、采集模块及机床数据采集方法 |
CN114650471B (zh) * | 2022-03-28 | 2023-12-26 | 洛阳萃泽信息科技有限公司 | 一种数控机床采集系统、集中采集模块及机床数据采集方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101699801B (zh) | 2011-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101699801B (zh) | 一种数据传输方法及传输数据的虚拟对等网络系统 | |
US9467327B2 (en) | Server-mediated setup and maintenance of peer-to-peer client computer communications | |
CN101141420B (zh) | 私网与公网进行数据通信的方法及系统 | |
US10484335B2 (en) | Secure remote computer network | |
CN101296238B (zh) | 一种保持安全套接层会话持续性的方法及设备 | |
WO2020248963A1 (zh) | 一种建立端到端网络连接的方法、装置及网络系统 | |
CN105376299B (zh) | 一种网络通信方法、设备及网络附属存储设备 | |
JP5518202B2 (ja) | エンドツーエンドコールの実現方法、エンドツーエンドコール端末及びシステム | |
US11337084B2 (en) | Control apparatus for gateway in mobile communication system | |
CN106604119B (zh) | 一种用于智能电视私有云设备的网络穿透方法及系统 | |
CN111435922B (zh) | 一种带宽共享方法 | |
JP2013506358A5 (zh) | ||
US11647069B2 (en) | Secure remote computer network | |
WO2009000181A1 (fr) | Procédé servant à acquérir des ressources transversales, un nœud pair à pair et un système pair à pair | |
WO2011038639A1 (zh) | 端到端即时通讯的实现方法、端到端即时通讯终端及系统 | |
CN103414800B (zh) | 一种nat穿越中分布式中继服务器的分配和选择方法及系统 | |
Pierrel et al. | A policy system for simultaneous multiaccess with host identity protocol | |
CN117439815B (zh) | 一种基于反向透明桥接的内网穿透系统及方法 | |
CN106161534A (zh) | 发送、传递和获取能力的方法及装置 | |
Zhang et al. | A NAT traversal mechanism for peer-to-peer networks | |
CN113992461A (zh) | 一种数据隔离传输方法、系统及存储介质 | |
JP5904965B2 (ja) | 通信装置及び通信システム | |
JP5768550B2 (ja) | 通信端末および通信制御方法 | |
CN104735155A (zh) | 多个终端网络定址、数据传输的管理方法及系统 | |
CA2531678A1 (en) | Method and system for facilitating client computer communications |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110928 Termination date: 20141030 |
|
EXPY | Termination of patent right or utility model |