本申请涉及计算机,尤其涉及一种用于隧道报文封装的方法、计算机设备及介质。
背景技术:
1、云计算和数据中心的发展应用到网络虚拟化,使用隧道技术实现物理网络层和虚拟网络层之间的隔离,在现有物理网络基础上创建多个虚拟网络,实现数据中心的自动化和智能化。现有技术中,使用隧道技术进行隧道报文封装和隧道报文发送,可能因为地址解析问题而导致丢包也即丢弃报文,并且在流量较低的情况下也可能发生丢包现象,这样导致需要重传,不利于提升网络性能和降低延迟。
2、为此,本申请提供了一种用于隧道报文封装的方法、计算机设备及介质,用于应对现有技术中的技术难题。
技术实现思路
1、第一方面,本申请提供了一种用于隧道报文封装的方法。所述方法包括:响应于传输网络层邻居表的更新,虚拟交换机利用更新后的传输网络层邻居表同步更新所述虚拟交换机的隧道邻居表中的多个隧道的隧道相关网络协议地址;响应于对内层报文进行隧道报文封装和通过所述多个隧道中的第一隧道进行隧道报文发送,通过查询相对于所述虚拟交换机的本地地址解析协议表,获取与外层报文所包括的目的网络协议地址对应的目的物理地址,所述第一隧道的隧道相关网络协议地址包括所述目的网络协议地址;当所述本地地址解析协议表查询成功时,不缓存所述内层报文,并且,利用所述目的物理地址,对所述内层报文进行隧道报文封装得到由所述内层报文和所述外层报文构成的隧道报文,当所述本地地址解析协议表查询失败时,缓存所述内层报文并向所述目的网络协议地址发送地址解析协议请求,以及,当与所述地址解析协议请求对应的地址解析协议响应没有在所述内层报文相关联的报文生存周期内被收到时,清理被缓存的所述内层报文。
2、通过本申请的第一方面,提供了两种彼此独立运行的更新机制,第一种更新机制是:响应于传输网络层邻居表的更新,虚拟交换机利用更新后的传输网络层邻居表同步更新所述虚拟交换机的隧道邻居表中的多个隧道的隧道相关网络协议地址;第二种更新机制是:响应于对内层报文进行隧道报文封装和通过所述多个隧道中的第一隧道进行隧道报文发送,通过查询相对于所述虚拟交换机的本地地址解析协议表,获取与外层报文所包括的目的网络协议地址对应的目的物理地址,当所述本地地址解析协议表查询失败时,缓存所述内层报文并向所述目的网络协议地址发送地址解析协议请求,以及,当与所述地址解析协议请求对应的地址解析协议响应没有在所述内层报文相关联的报文生存周期内被收到时,清理被缓存的所述内层报文。应当理解的是,第一种更新机制和第二种更新机制之间是彼此独立运行且协同作用。在这两种更新机制的协同作用下,可以避免首包的丢失,提高隧道首包的转发效率,还可以降低需要缓存的首包数量,降低内存资源和处理流程的损耗,有利于提高隧道报文封装成功率、实现零丢包还有降低网络延迟和提升网络传输性能。
3、在本申请的第一方面的一种可能的实现方式中,所述传输网络层邻居表的更新包括主动轮询所述隧道邻居表中的所述多个隧道各自的隧道相关网络协议地址是否存在对应物理地址。
4、在本申请的第一方面的一种可能的实现方式中,所述方法还包括:在所述虚拟交换机利用所述更新后的传输网络层邻居表同步更新所述虚拟交换机的所述隧道邻居表中的所述多个隧道的隧道相关网络协议地址之后,所述虚拟交换机利用所述更新后的传输网络层邻居表来更新内核的地址解析协议表中的隧道相关网络协议地址。
5、在本申请的第一方面的一种可能的实现方式中,所述内核被配置为:基于所述内核的地址解析协议表中的全部网络协议地址,向所述内核的地址解析协议表中的全部网络协议地址发送地址解析协议请求从而更新所述内核的地址解析协议表中的隧道相关网络协议地址和所述内核的地址解析协议表中的非隧道相关网络协议地址。
6、在本申请的第一方面的一种可能的实现方式中,所述传输网络层邻居表包括用于指示网络协议地址与物理地址之间的对应关系的至少一个表项,所述更新后的传输网络层邻居表包括相对于所述至少一个表项的新增表项,其中,所述虚拟交换机利用所述更新后的传输网络层邻居表同步更新所述虚拟交换机的所述隧道邻居表中的所述多个隧道的隧道相关网络协议地址,包括:所述虚拟交换机利用所述更新后的传输网络层邻居表中的所述新增表项,更新所述虚拟交换机的所述隧道邻居表中的所述多个隧道的隧道相关网络协议地址。
7、在本申请的第一方面的一种可能的实现方式中,所述传输网络层邻居表的更新至少基于所述多个隧道的隧道创建和隧道删除。
8、在本申请的第一方面的一种可能的实现方式中,所述传输网络层邻居表的更新至少还基于待添加隧道所对应的网络协议地址是否存在于所述传输网络层邻居表。
9、在本申请的第一方面的一种可能的实现方式中,所述虚拟交换机利用所述更新后的传输网络层邻居表同步更新所述虚拟交换机的所述隧道邻居表中的所述多个隧道的隧道相关网络协议地址,从而降低所述本地地址解析协议表查询失败的概率。
10、在本申请的第一方面的一种可能的实现方式中,所述方法还包括:当与所述地址解析协议请求对应的所述地址解析协议响应在所述内层报文相关联的报文生存周期内被收到时,利用所述地址解析协议响应,更新所述本地地址解析协议表以及对被缓存的所述内层报文进行隧道报文封装得到所述隧道报文。
11、在本申请的第一方面的一种可能的实现方式中,所述内层报文包括内层以太网报文头、内层网络协议地址头和载荷。
12、在本申请的第一方面的一种可能的实现方式中,所述隧道报文的隧道报文格式是虚拟扩展局域网,网络虚拟化通用路由封装或者通用网络虚拟化封装。
13、在本申请的第一方面的一种可能的实现方式中,所述虚拟交换机是开放虚拟交换机、或者开放虚拟交换机与数据平面开发套件的结合。
14、第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方面的任一种实现方式的方法。
15、第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
16、第四方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
1.一种用于隧道报文封装的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述传输网络层邻居表的更新包括主动轮询所述隧道邻居表中的所述多个隧道各自的隧道相关网络协议地址是否存在对应物理地址。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述内核被配置为:基于所述内核的地址解析协议表中的全部网络协议地址,向所述内核的地址解析协议表中的全部网络协议地址发送地址解析协议请求从而更新所述内核的地址解析协议表中的隧道相关网络协议地址和所述内核的地址解析协议表中的非隧道相关网络协议地址。
5.根据权利要求1所述的方法,其特征在于,所述传输网络层邻居表包括用于指示网络协议地址与物理地址之间的对应关系的至少一个表项,所述更新后的传输网络层邻居表包括相对于所述至少一个表项的新增表项,其中,所述虚拟交换机利用所述更新后的传输网络层邻居表同步更新所述虚拟交换机的所述隧道邻居表中的所述多个隧道的隧道相关网络协议地址,包括:
6.根据权利要求1所述的方法,其特征在于,所述传输网络层邻居表的更新至少基于所述多个隧道的隧道创建和隧道删除。
7.根据权利要求6所述的方法,其特征在于,所述传输网络层邻居表的更新至少还基于待添加隧道所对应的网络协议地址是否存在于所述传输网络层邻居表。
8.根据权利要求7所述的方法,其特征在于,所述虚拟交换机利用所述更新后的传输网络层邻居表同步更新所述虚拟交换机的所述隧道邻居表中的所述多个隧道的隧道相关网络协议地址,从而降低所述本地地址解析协议表查询失败的概率。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
10.根据权利要求1所述的方法,其特征在于,所述内层报文包括内层以太网报文头、内层网络协议地址头和载荷。
11.根据权利要求1所述的方法,其特征在于,所述隧道报文的隧道报文格式是虚拟扩展局域网,网络虚拟化通用路由封装或者通用网络虚拟化封装。
12.根据权利要求1所述的方法,其特征在于,所述虚拟交换机是开放虚拟交换机、或者开放虚拟交换机与数据平面开发套件的结合。
13.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至12中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据权利要求1至12中任一项所述的方法。