一种基于DVPN的数据传输方法和设备技术

技术编号:8536613 阅读:155 留言:0更新日期:2013-04-04 21:23
本发明专利技术公开了一种基于DVPN的数据传输方法和设备,该方法包括:Spoke向邻居Spoke发送CostRequest报文;所述Spoke接收所述邻居Spoke返回的CostResponse报文,所述CostResponse报文中携带了所述邻居Spoke与目的Spoke之间的Cost值;所述Spoke比较本设备与所述目的Spoke之间的Cost值和本设备至所述邻居Spoke至所述目的Spoke之间的Cost值,并在需要向所述目的Spoke发送数据时,通过Cost值最小的路径向所述目的Spoke发送数据。本发明专利技术中,能够降低数据的转发延迟。

【技术实现步骤摘要】

本专利技术涉及通信
,特别是涉及一种基于DVPN(Dynamic Virtual PrivateNetwork,动态虚拟专用网络)的数据传输方法和设备。
技术介绍
越来越多的企业希望利用公共网络组建VPN (Virtual Private Network,虚拟专用网络),以连接地理位置不同的多个分支机构;然而企业分支机构通常采用动态地址接入公共网络,使得通信一端无法事先知道对端的公网地址,为组建VPN提出了难题。为此提出了 DVPN 技术,其通过 NHRP (Next Hop Resolution Protocol,下一跳解析协议)或者 VAM(VPN Address Management, VPN地址管理)协议收集、维护和分发动态变化的公网地址信息,从而在企业网各分支机构使用动态地址接入公网的情况下,在各分支机构间建立VPN。 DVPN包括Full-Mesh (全互联)网络,在Full-Mesh网络中,Spoke之间可以建立direct (直连)隧道直接进行通信,且Hub主要作为路由信息交换的中心;具体的,Spoke在向Server (服务器)注册后可以获得Hub的信息,并与Hub建立永久的隧道连接;且任意两个Spoke之间可以建立direct隧道,该direct隧道是动态的,在一段规定时间内没有数据交互时需要被删除。在Full-Mesh网络中,隧道建立过程包括如下步骤 步骤1、如图1所示的Site(节点)接入网络的初始状态示意图;在初始状态下,各Site都接入到网络,但彼此之间没有建立隧道。步骤2、如图2所示的Site向Server注册示意图;在各Site向Server注册的过程中,各Site可以通过注册请求报文和回应报文的交互,获得Hub或Spoke的身份,且在Spoke和Hub之间建立隧道;其中,该Server可以是NHS (对应于NHRP实现的方式)或者VAM Server (对应于VAM实现的方式)。步骤3、如图3所示的Spoke之间建立direct隧道示意图;在Spoke之间建立direct隧道的过程中,假设Spokel与PCl相连,Spoke2与PC2相连,当PCl需要发送数据给PC2时,Spokel向Server发送下一跳解析请求报文,Server将Spoke2注册的公网地址通过下一跳解析响应报文通知给Spokel,之后Spokel可以利用Spoke2的公网地址建立到Spoke2 的 direct 隧道。在所有Spoke之间都建立direct隧道之后,可以形成一个Full-Mesh网络,如图4所示,为Full-Mesh网络的示意图;该网络中包括Spoke和Hub之间的隧道以及Spoke和Spoke之间的direct隧道;此时,各Spoke之间的数据可以直接通过Spoke之间的direct隧道转发,而不需要通过Hub进行中转。现有技术中,Spoke之间在通过direct隧道进行数据转发时,Spoke之间的direct隧道并不一定是最短转发路径。如图5所示,为Full-Mesh网络转发路径Cost (开销)示意图;Sp0kel到达Spoke2的direct隧道需要经历8跳(此转发路径经过8个路由器或三层交换机),而Spokel至Hub至Spoke2的路径需要经历2+4=6跳,Spokel至Spoke3至Spoke2的路径需要经历2+2=4跳。
技术实现思路
本专利技术提供一种基于DVPN的数据传输方法和设备,以通过较小的路径开销传输数据,并降低数据的转发延迟。为了达到上述目的,本专利技术实施例提供一种基于动态虚拟专用网络DVPN的数据传输方法,应用于包括多个Spoke的网络中,各Spoke上维护有邻居开销Cost表,所述邻居Cost表中记录了本设备与邻居Spoke之间的Cost值,该方法包括以下步骤 Spoke向邻居Spoke发送开销请求Cost Request报文,所述Cost Request报文中携 带了目的Spoke的信息;由所述邻居Spoke在收到所述Cost Request报文之后,利用所述目的Spoke的信息查询本地维护的邻居Cost表,获得本设备与所述目的Spoke之间的Cost值; 所述Spoke接收邻居Spoke返回的开销响应Cost Response报文,所述Cost Response报文中携带了所述邻居Spoke与所述目的Spoke之间的Cost值; 所述Spoke比较本设备与所述目的Spoke之间的Cost值和本设备至所述邻居Spoke至所述目的Spoke之间的Cost值,并在需要向所述目的Spoke发送数据时,通过Cost值最小的路径向所述目的Spoke发送数据。所述网络中还包括有服务器,各Spoke维护邻居Cost表的过程,进一步包括各Spoke在向所述服务器发起注册的过程中,接收来自所述服务器的注册应答报文,所述注册应答报文中携带了生存时间TTL值N; 各Spoke均向本设备的邻居Spoke发送保活Keepalive报文,所述Keepalive报文中携带了所述TTL值N; 各Spoke在收到来自邻居Spoke的Keepalive报文后,获得Keepalive报文中携带的TTL值M,并确定本设备与邻居Spoke之间的Cost值为(N_M); 各Spoke在本地维护的邻居Cost表中记录所述邻居Spoke的信息与所述Cost值(N_M)之间的对应关系。所述目的Spoke的信息包括目的Spoke的公网地址;所述Spoke向邻居Spoke发送开销请求Cost Request报文的过程,进一步包括 所述Spoke在需要向目的Spoke发送数据时,向邻居Spoke发送携带所述目的Spoke的公网地址的Cost Request报文。所述Spoke通过Cost值最小的路径向所述目的Spoke发送数据,具体包括所述Spoke在Cost值最小的路径为所述Spoke至邻居Spoke至目的Spoke时,通过所述Spoke与目的Spoke之间的direct隧道地址对所述数据进行第一层封装,并通过所述Spoke与邻居Spoke之间的direct隧道地址对第一层封装后的数据进行第二层封装,并将第二层封装后的数据发送给所述邻居Spoke ; 由所述邻居Spoke在收到第二层封装后的数据时,解第二层封装得到第一层封装后的数据,并将第一层封装后的数据发送给所述目的Spoke。所述Spoke通过Cost值最小的路径向所述目的Spoke发送数据,具体包括所述Spoke在Cost值最小的路径为所述Spoke至邻居Spoke至目的Spoke时,通过所述Spoke与邻居Spoke之间的direct隧道地址对所述数据进行封装,并在封装后的数据的指定字段中携带所述目的Spoke的公网地址,并将封装后的数据发送给所述邻居Spoke ; 由所述邻居Spoke在收到封装后的数据时,如果发现指定字段中携带的公网地址不是本设备的公网地址,则将封装后的数据的目的地址修改为所述指定字段中携带的公网地址,并将修改后的数据发送给所述目的Spoke。本专利技术实施例提供一种基于动态虚拟专用网络DVPN的数据传输设备,作为Spoke应用于包括多个Spoke的网络中,所述设备包括 维护模块,用于维护邻居开本文档来自技高网
...

【技术保护点】
一种基于动态虚拟专用网络DVPN的数据传输方法,应用于包括多个Spoke的网络中,其特征在于,各Spoke上维护有邻居开销Cost表,所述邻居Cost表中记录了本设备与邻居Spoke之间的Cost值,该方法包括以下步骤:Spoke向邻居Spoke发送开销请求Cost?Request报文,所述Cost?Request报文中携带了目的Spoke的信息;由所述邻居Spoke在收到所述Cost?Request报文之后,利用所述目的Spoke的信息查询本地维护的邻居Cost表,获得本设备与所述目的Spoke之间的Cost值;所述Spoke接收邻居Spoke返回的开销响应Cost?Response报文,所述Cost?Response报文中携带了所述邻居Spoke与所述目的Spoke之间的Cost值;所述Spoke比较本设备与所述目的Spoke之间的Cost值和本设备至所述邻居Spoke至所述目的Spoke之间的Cost值,并在需要向所述目的Spoke发送数据时,通过Cost值最小的路径向所述目的Spoke发送数据。

【技术特征摘要】
1.一种基于动态虚拟专用网络DVPN的数据传输方法,应用于包括多个Spoke的网络中,其特征在于,各Spoke上维护有邻居开销Cost表,所述邻居Cost表中记录了本设备与邻居Spoke之间的Cost值,该方法包括以下步骤 Spoke向邻居Spoke发送开销请求Cost Request报文,所述Cost Request报文中携带了目的Spoke的信息;由所述邻居Spoke在收到所述Cost Request报文之后,利用所述目的Spoke的信息查询本地维护的邻居Cost表,获得本设备与所述目的Spoke之间的Cost值; 所述Spoke接收邻居Spoke返回的开销响应Cost Response报文,所述Cost Response报文中携带了所述邻居Spoke与所述目的Spoke之间的Cost值; 所述Spoke比较本设备与所述目的Spoke之间的Cost值和本设备至所述邻居Spoke至所述目的Spoke之间的Cost值,并在需要向所述目的Spoke发送数据时,通过Cost值最小的路径向所述目的Spoke发送数据。2.如权利要求1所述的方法,其特征在于,所述网络中还包括有服务器,各Spoke维护邻居Cost表的过程,进一步包括 各Spoke在向所述服务器发起注册的过程中,接收来自所述服务器的注册应答报文,所述注册应答报文中携带了生存时间TTL值N ; 各Spoke均向本设备的邻居Spoke发送保活Keepalive报文,所述Keepalive报文中携带了所述TTL值N ; 各Spoke在收到来自邻居Spoke的Keepalive报文后,获得Keepalive报文中携带的TTL值M,并确定本设备与邻居Spoke之间的Cost值为(N-M); 各Spoke在本地维护的邻居Cost表中记录所述邻居Spoke的信息与所述Cost值(N_M)之间的对应关系。3.如权利要求1或2所述的方法,其特征在于,所述目的Spoke的信息包括目的Spoke的公网地址;所述Spoke向邻居Spoke发送开销请求Cost Request报文的过程,进一步包括 所述Spoke在需要向目的Spoke发送数据时,向邻居Spoke发送携带所述目的Spoke的公网地址的Cost Request报文。4.如权利要求1所述的方法,其特征在于,所述Spoke通过Cost值最小的路径向所述目的Spoke发送数据,具体包括 所述Spoke在Cost值最小的路径为所述Spoke至邻居Spoke至目的Spoke时,通过所述Spoke与目的Spoke之间的direct隧道地址对所述数据进行第一层封装,并通过所述Spoke与邻居Spoke之间的direct隧道地址对第一层封装后的数据进行第二层封装,并将第二层封装后的数据发送给所述邻居Spoke ; 由所述邻居Spoke在收到第二层封装后的数据时,解第二层封装得到第一层封装后的数据,并将第一层封装后的数据发送给所述目的Spoke。5.如权利要求1所述的方法,其特征在于,所述Spoke通过Cost值最小的路径向所述目的Spoke发送数据,具体包括 所述Spoke在Cost值最小的路径为所述Spoke至邻居Spoke至目的Spoke时,通过所述Spoke与邻居Spoke之间的direct隧道地址对所述数据进行封装,并在封装后的数据的指定字段中携带所述目的Spoke的公网地址,并将封装后的数据发送给所述邻居Spoke ; 由所述邻居Spoke在收到封装后的数据时,如果发现...

【专利技术属性】
技术研发人员:王佩龙毛昱
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1