一种对虚拟网络隧道加速的方法及系统的制作方法_3

文档序号:8365331阅读:来源:国知局
]图9描述了根据本发明实施例的创建以太网隧道的状态机,该状态机(900)共有四个状态:CL0SED(905),REQ-SENT (915),REQ-RCVD (910)和 ESTABLISHED (920)。
[0087]图9中的以太网隧道控制报文如下:
[0088]REQ 报文:REQ 位(460)为 1,ACK 位(455)为 0,RST 位(450)为 O。
[0089]ACK 报文:REQ 位(460)为 0,ACK 位(455)为 1,RST 位(450)为 O。
[0090]REQ+ACK 报文:REQ 位(460)为 1,ACK 位(455)为 1,RST 位(450)为 O。
[0091]RST 报文:REQ 位(460)为 0,ACK 位(455)为 0,RST 位(450)为 I。
[0092]主动建立以太网隧道的端点由CLOSED状态(905)开始,首先主动发出REQ (930),进入REQ-SENT (915)状态,如果接收到REQ+ACK控制报文(955),进入ESTABLISHED (920)状态,同时发送ACK。
[0093]被动建立以太网隧道的端点(通常是已尝试主动建立,但由于隧道两端收到创建隧道指令不同步导致超时失败)也由CLOSED状态(905)开始,接收到REQ(945),进入REQ-RCVD状态,同时发出REQ+ACK,如果收到ACK (950),则进入ESTABLISHED状态。
[0094]状态机(900)也支持隧道两端同时建立的情况。两端点均由CLOSED (905)状态开始,同时发出REQ(930),进入REQ-SENT(915)状态,然后收到对方的REQ(940),进入REQ-RCVD (910)状态,同时发出ACK,接着收到对端刚发的ACK (950),两端点都进入ESTABLISHED (920)状态。
[0095]状态机(900)也描述了以下的异常情况。
[0096]当一端处于CLOSED (905)状态,接收到REQ,但在表800中没有与之对应的记录(隧道类型+对端MAC为键值),则发出RST,如过程925所示。对端则收到RST从REQ-SENT (915)状态转为CLOSED (905)状态,如过程935所示。
[0097]状态机(900)为了简化的目的,没有列出超时重传的状态迀移。当一条以太网隧道处于REQ-SENT状态(915),在规定时间内没有收到ACK,会重传REQ请求。当一条以太网隧道处于REQ-RCVD状态(910),在规定时间内没有收到ACK,会重传之前发出的控制报文REQ或REQ+ACK。由于以太网延迟很小,采用三次退避重传机制,第一次的请求在I秒内未收到ACK,重传相应的请求,第二次的请求在2秒内未收到ACK,将发出第三次请求,第三次请求在4秒内未收到ACK,重传结束,迀移到CLOSED (905)状态。
[0098]前面描述了本实施例的以太网隧道的自动建立、切换过程,接下来描述数据报文的收发流程。
[0099]图10描述了根据本发明实施例的数据报文的发送流程。流程1000从收到待封装的原始以太网报文开始,步骤1005填充隧道类型对应的隧道报头,该隧道报头内容与不同的封装方式无关。步骤1010判断对应的以太网隧道是否为使用状态。如果是,则步骤1015用以太网封装器封包。如果否,则用对应的IP或UDP封装器封包。经过封装的报文进入步骤1025,如果物理网卡支持基于偏移量的LSO或校验检查卸载,则会利用网卡功能以降低计算资源消耗。
[0100]图11描述了根据本发明实施例的报文的接收流程。
[0101]步骤1105从网卡接收以太网报文。
[0102]如果报文为以太网隧道控制报文,则由以太网隧道处理器处理(1115)。
[0103]如果报文为以太网BFD报文,则由以太网隧道检测器处理(1125)。
[0104]如果报文为以太网隧道数据报文,判断对应以太网隧道是否为使用状态(1135)。如果是,则由以太网解封装器解包(1140)。如果否,表明以太网隧道两端状态不一致,执行步骤1160,初始化以太网隧道状态,重新开始以太网隧道建立过程。
[0105]如果报文为IP或UDP隧道报文,判断对应以太网隧道是否为使用状态并且切换窗口结束(1150)。如果否,表明基于IP或UDP封装的隧道可用,执行步骤1155用对应的IP或UDP解封装器解包。如果是,表明以太网隧道两端状态不一致,执行步骤1160,初始化以太网隧道状态,重新开始以太网隧道建立过程。
[0106]从以太网解封装器或IP或UDP解封装器收到的报文执行步骤1165,获取隧道元数据和内层原始以太网报文,结束处理。
[0107]如果收到的报文是非隧道相关的,执行步骤1170,结束处理。
[0108]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可使用软件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0109]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【主权项】
1.一种对数据通信隧道进行加速的方法,应用于虚拟网络隧道端点,其特征在于,所述方法包括: 隧道端点在收到创建第一隧道的指令后,触发建立一条第一隧道类型基于以太网封装的第二隧道的过程,若两隧道端点处于同一以太网广播域并且两隧道端点都支持该隧道类型基于以太网的封装,则第二隧道建立成功,之后基于第一隧道的流量切换到第二隧道。
2.根据权利要求1所述的方法,其特征在于,该方法还包括: 第一隧道封装格式为IP或UDP报头加上隧道头加上原始以太网报文,隧道类型包括VXLAN、GRE、NVGRE 和 GENEVE。
3.根据权利要求1所述的方法,其特征在于,该方法还包括: 第二隧道封装格式为以太网报头加上隧道头加上原始以太网报文,第二隧道的隧道头与第一隧道的隧道头一致。
4.根据权利要求3所述的方法,其特征在于,该方法还包括: 第二隧道的隧道类型由以太网报头中的以太网类型唯一标示,VXLAN、GRE、NVGRE和GENEVE隧道类型在以太网的封装使用不同的以太网类型。
5.根据权利要求1所述的方法,其特征在于,该方法还包括 第二隧道的建立、切换过程由隧道端点自动完成,任意一隧道端点不支持请求的隧道类型的以太网封装,或两隧道端点不在同一以太网广播域,第二隧道不会被成功建立。
6.根据权利要求1所述的方法,其特征在于,该方法还包括: 第二隧道建立过程中,第一隧道保持正常通信。
7.—种可由网络设备的一个或多个处理器读取的程序存储设备,其有形地包含可由所述一个或多个处理器执行以便实施用于虚拟网络隧道加速的方法步骤的指令程序,所述方法步骤包括: 网络设备在收到创建隧道的指令后,触发与对端网络设备建立一条对应隧道类型基于以太网封装隧道的过程,若网络设备与对端处于同一以太网广播域并且两端都支持该隧道类型基于以太网的封装,则以太网隧道建立成功,之后基于原隧道的流量切换到以太网隧道。
8.根据权利要求7的程序存储设备,其中所述网络设备包括交换机。
9.根据权利要求7的程序存储设备,其中所述网络设备包括网关。
【专利摘要】本发明提供的方法和系统是用来对虚拟数据中心虚拟网络隧道进行加速。根据一个实施例,提供了一种用于隧道加速的方法。隧道端点在收到创建第一隧道的指令后,触发建立一条第一隧道类型基于以太网封装的第二隧道的过程,若两隧道端点处于同一以太网广播域并且两隧道端点都支持该隧道类型基于以太网的封装,则第二隧道建立成功,之后基于第一隧道的流量切换到第二隧道。该方法和装置提升了虚拟网络隧道的性能和带宽利用率,同时不影响使用第一隧道的虚拟网络解决方案的业务逻辑。
【IPC分类】H04L12-803, H04L12-46
【公开号】CN104683211
【申请号】CN201510133320
【发明人】肖骏
【申请人】肖骏
【公开日】2015年6月3日
【申请日】2015年3月23日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1