报文传输方法及交换机与流程

文档序号:14847731发布日期:2018-06-30 16:56阅读:690来源:国知局
报文传输方法及交换机与流程

本发明涉及通信技术,尤其涉及一种报文传输方法及交换机。



背景技术:

随着网络应用、大数据分析以及云计算等业务的不断发展,业界对数据中心的规模以及数据中心的网络(英文:Fabric)容量需求越来越大。因此,需要提供特定架构的数据中心,以满足各种业务的需求。典型的数据中心架构包括Clos架构等。不论基于何种架构,数据中心在运行时,都需要解决负载均衡的问题。

现有技术中,提出了一种数据中心负载均衡方法。该方法应用于支持等价多路径(英文:Equal-cost multi-path)技术的数据中心中。在源交换机通过多条等价路径中的一条路径向目的交换机发送第一报文的过程中,所述路径上的中间交换机将所述路径的路径标识以及所述路径中各段链路的拥塞度量值添加到所述数据报文中发往所述目的交换机。当所述目的交换机向所述源交换机发送第二数据报文时,所述目标交换机将所述路径标识和所述路径对应的拥塞信息封装在所述第二数据报文中,并向所述源交换机发送封装了所述拥塞信息的第二数据报文。所述源交换机根据所接收到的不同数据报文中的拥塞信息就可以确定交换机所述多条等价路径中的负载最轻的路径。当所述源交换机需要再次向所述目交换机发送数据报文时,所述源交换机就会优选该负载最轻的路径发送数据报文。

但是,上述方法仅适用于源交换机和目的交换机之间存在等价多路径的数据中心架构,例如克劳斯(英文:Clos)架构,并不适用于其他不具有等价多路径特点的架构,难以满足基于这些不具有等价多路径特点的架构的数据中心的需求。



技术实现要素:

本发明实施例提供一种报文传输方法及交换机,用于解决现有技术的报文传输方法难以满足不具有等价多路径特点的架构的数据中心需求的问题。

本发明实施例第一方面提供一种报文传输方法,该方法站在源交换机的角度进行描述,在该方法中,源交换机首先接收第一数据报文,并确定该第一数据报文对应的流标识以及该第一数据报文的目的交换机,进而,源交换机根据到达该目的交换机的最优路径以及上述流标识,来确定发送第一数据报文的目标路径,其中,到达该目的交换机的最优路径是由目的交换机反馈给源交换机的,具体是由目的交换机从源交换机和目的交换机之间的多条不等价路径中确定并反馈给源交换机的。源交换机确定出发送第一数据报文的目标路径之后,即可根据该目标路径向目的交换机发送第一数据报文。

在该方法中,源交换机根据最优路径以及流标识确定第一数据报文的目标路径,其中,最优路径是目的交换机从源交换机和目的交换机之间的多条不等价路径中确定并反馈给源交换机的,即目的交换机是综合考虑了源交换机和目的交换机之间的路径信息来确定最优路径,源交换机再根据该最优路径来选择目标路径,从而保证了存在不等价路径的数据中心的负载均衡,提升了网络吞吐量,提高了网络利用率。

在一种可能的设计中,源交换机根据目标路径向目的交换机发送第一数据报文时,具体处理过程为:

首先,源交换机为第一数据报文添加第一外层头,该第一外层头中包括拥塞度量信息字段以及路径标识字段,拥塞度量信息字段用于标识目标路径的拥塞状态,路径标识字段用于标识目标路径。

进而,源交换机根据目标路径向目标交换机发送添加了第一外层头的第一数据报文。

源交换机在发送第一数据报文时,在第一数据报文中添加拥塞度量信息里字段以及路径标识字段,可以使得目的交换机根据这些字段所指示的信息来确定源交换机和目的交换机之间的当前最优路径。

在一种可能的设计中,源交换机可以根据上述流标识以及预设的映射关系表,确定发送所述第一数据报文的目标路径,其中,该映射关系表的每个表项用于记录流标识与发送路径的对应关系。

一种情况下,在根据流标识以及预设的映射关系表,确定发送第一数据报文的目标路径时,假设流标识对应的数据流为所述源交换机发往所述目的交换机的第N个数据流,当映射关系表中不存在所述流标识对应的表项,且所述N为预设值的整数倍时,所述源交换机随机选择所述源交换机至所述目的交换机之间的一条发送路径作为所述目标路径。当所述映射关系表中不存在所述流标识对应的表项,且所述N不为预设值的整数倍时,所述源交换机将所述目的交换机反馈的所述最优路径作为所述目标路径。

上述处理方法可以保证源交换机可以使用多条路径向目的交换机发送数据报文,避免一些路径一直不被使用,从而使得目的交换机可以实时获取到所有路径的拥塞状态信息,进而根据这些拥塞状态信息确定所述目的交换机到所述源交换机的当前最优路径。

在一种可能的设计中,源交换机在确定出第一数据报文的目标路径之后,可以在映射关系表中增加所述流标识与所述目标路径的对应关系。

将流标识与目标路径的对应关系增加到映射关系表之后,当源交换机再次需要发送数据报文时,就可以根据数据报文对应的流标识直接在映射关系表中查询到数据报文的目标路径,从而提升报文传输的效率。

另一种情况下,在根据流标识以及预设的映射关系表,确定发送第一数据报文的目标路径时,若所述映射关系表中存在所述流标识对应的表项,则所述源交换机将所述表项中与所述流标识对应的发送路径作为所述目标路径。

上述处理过程中,源交换机通过直接读取映射关系表就可以确定出第一数据报文的目标路径,而现有技术中在确定目标路径时,需要遍历所有路径并逐个进行比对才可以确定,因此,本发明实施例相对于现有技术,还减少了运算复杂度,提高了交换机的转发效率。

在一种可能的设计中,源交换机还可以接收所述目的交换机发送的包括所述流标识的第二数据报文,所述第二数据报文封装有第二外层头,所述第二外层头中的报文类型字段的值指示所述第二数据报文的类型为最优路径反馈类型。

源接收到第二数据报文之后,可以读取所述第二外层头中的路径标识,将所述最优路径更新为所述路径标识对应的路径。

源交换机接收到目的交换机发送的包含最优路径的第二数据报文之后,及时将本地所保存的最优路径替换为接收到的最新的最优路径,从而保证再发送数据报文时可以根据最新的最优路径来发送,进一步提升数据中心的负载均衡。

在一种可能的设计中,所述源交换机向所述目的交换机所发送的第一数据报文的第一外层头中还包括路径跳数字段,所述路径跳数字段用于标识所述第一数据报文在所述目标路径上所经过的跳数。

当目的交换机中没有保存最短路径的标识而只是保存了最短路径的跳数信息时,上述路径跳数字段可以使得目的交换机判断第一数据报文的发送路径是否为最短路径。

本发明第二方面提供一种报文传输方法,该方法站在目的交换机的角度进行描述,在该方法中,目的交换机首先接收源交换机发送的第一数据报文,该第一数据报文中包括路径标识以及拥塞度量信息,其中,路径标识指示第一数据报文的发送路径,拥塞度量信息指示该发送路径的拥塞状态。目的交换机进而从第一数据报文中获取该路径标识以及拥塞度量信息,并且根据源交换机与目的交换机之间的多条不等价路径的信息以及从第一数据报文中获取的路径标识以及拥塞度量信息,来确定源交换机至目的交换机之间的当前最优路径。在确定出当前最优路径之后,如果当前最优路径与目的交换机向源交换机所反馈的目的交换机与源交换机之间的在先最优路径不同,则目的交换机向源交换机发送所述当前最优路径。

在该方法中,目的交换机在确定当前最优路径时,综合考虑了源交换机和目的交换机之前的路径跳数以及路径拥塞状态,从而保证了存在不等价路径的数据中心的负载均衡,提升了网络吞吐量,提高了网络利用率。

并且,目的交换机确定到达源交换机的当前最优路径,仅在当前最优路径发生变化时才向源交换机发送变化后的最优路径。而现有技术中,只要路径的拥塞状态发生变化,目的交换机就向源交换机发送数据报文,并且由源交换机确定目标路径。由于每条路径的拥塞状态的变化远比源交换机和目的交换机之间的最优路径的变化频繁,因此,相比于现有技术,本实施例中,目的交换机向源交换机发送数据报文的次数大大减少,从而减少了源交换机、目的交换机以及整个网络的负担。

在一种可能的设计中,第一数据报文包括第一外层头,所述第一外层头中包括所述路径标识以及所述拥塞度量信息;

所述第一外层头中还包括报文类型字段,当所述报文类型字段的值指示所述第一数据报文的报文类型为拥塞信息传递类型时,所述目的交换机从所述第一外层头中获取所述路径标识以及所述拥塞度量信息。

即,本发明实施例将报文类型、路径标识、拥塞度量信息这些重要信息填充在数据报文的外层头中进行传输,不仅不会占用需要传输的数据的传输资源,同时也便于源交换机、中间交换机以及目的及交换机的填充、更新以及读取。

在一种可能的设计中,目的交换机在确定当前最优路径时,若所述路径标识所指示的所述第一数据报文的发送路径为所述源交换机至所述目的交换机之间的最短路径,则所述目的交换机根据所述第一数据报文中的所述拥塞度量信息以及所述目的交换机中所保存的所述最短路径的拥塞度量值,确定所述源交换机至所述目的交换机之间的当前最优路径。

一种情况下,若所述第一数据报文中的所述拥塞度量信息所指示的拥塞度量值大于或等于预设拥塞阈值,并且所述目的交换机中所保存的所述最短路径的拥塞度量值小于所述预设拥塞阈值,则所述目的交换机将所述源交换机和所述目的交换机之间的在先次优路径作为所述源交换机至所述目的交换机之间的当前最优路径。

如果第一数据报文中的拥塞度量信息所指示的拥塞度量值大于或等于预设拥塞阈值,而最短路径的拥塞度量值小于预设拥塞阈值,则说明最短路径在第一数据报文发送前并没有拥塞,而在第一数据报文发送时出现拥塞,则此时,不能再将最短路径作为源交换机和目的交换机之间的当前最优路径,而将源交换机和目的交换机之间的在先次优路径作为当前最优路径,以避免数据报文在拥塞的最短路径上发送所造成的传输效率降低等问题。

另一种情况下,若所述第一数据报文中的所述拥塞度量信息所指示的拥塞度量值小于预设拥塞阈值,并且所述目的交换机中所保存的所述最短路径的拥塞度量值大于或等于所述预设拥塞阈值,则所述目的交换机将所述最短路径作为所述源交换机和所述目的交换机之间的当前最优路径。

如果第一数据报文中的拥塞度量信息所指示的拥塞度量值小于预设拥塞阈值,而最短路径的拥塞度量值大于或等于预设拥塞阈值,则说明最短路径在第一数据报文前已经拥塞,不被作为当前最优路径,而当第一数据报文发送时,最短路径不再拥塞,则此时,目的交换机需要及时将当前最优路径调整回最短路径。即,只要最短路径不拥塞,就将最短路径作为当前最优路径,从而在保证路径不拥塞的前提下,尽量使用最短路径,以减少数据报文传输时间,增大网络吞吐量,提高网络利用率。

在一种可能的设计中,若所述路径标识所指示的所述第一数据报文的发送路径不为所述源交换机至所述目的交换机之间的最短路径,则所述目的交换机根据所述第一数据报文中的所述拥塞度量信息所指示的拥塞度量值与所述目的交换机中所保存的在先次优路径的拥塞度量值确定所述源交换机至所述目的交换机之间的当前次优路径。

在一种可能的设计中,所述目的交换机判断所述第一数据报文中的所述拥塞度量信息所指示的拥塞度量值是否小于所述目的交换机中所保存的在先次优路径的拥塞度量值,若是,则将所述路径标识所指示的所述第一数据报文的发送路径作为所述源交换机至所述目的交换机之间的当前次优路径。

即,只要源交换机至目的交换机之间的除最短路径之外的某条路径的拥塞度量值小于在先次优路径的拥塞度量值,就对次优路径进行调整,即保证当前次优路径一直都是最不拥塞的一条路径。进而,当最短路径由于拥塞不能作为当前最优路径时,选择当前次优路径作为当前最优路径,从而保证数据报文的传输效率,实现良好的负载均衡效果。

在一种可能的设计中,目的交换机在更新当前次优路径之后,还会向源交换机发送所述当前次优路径。

目的交换机向源交换机发送当前次优路径,可以使得源交换机按照当前次优路径发送数据报文,进一步提升数据报文的传输效率。

在一种可能的设计中,所述第一数据报文中还包括路径跳数字段,所述方法还包括:

所述目的交换机根据所述路径跳数字段的值,确定所述第一数据报文的发送路径是否为所述源交换机至所述目的交换机之间的最短路径。

本发明第三方面提供一种交换机,该交换机具有实现上述方法设计中源交换机的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一种可能的设计中,该交换机可以包括接收模块、处理模块以及发送模块,接收模块、处理模块以及发送模块可以执行上述方法中的相应功能,例如:接收模块,用于接收第一数据报文;处理模块,用于确定所述第一数据报文对应的流标识以及所述第一数据报文的目的交换机;所述处理模块,还用于根据到达目的交换机的最优路径和所述流标识确定发送所述第一数据报文的目标路径,所述最优路径为目的交换机从所述源交换机和所述目的交换机之间的多条不等价路径中确定并反馈给所述源交换机的;发送模块,用于根据所述目标路径向所述目的交换机发送所述第一数据报文。

本发明第四方面提供一种交换机,该交换机具有实现上述方法设计中目的交换机的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一种可能的设计中,该交换机可以包括接收模块、处理模块以及发送模块,接收模块、处理模块以及发送模块可以执行上述方法中的相应功能,例如:接收模块,用于接收源交换机发送的第一数据报文;所述第一数据报文包括路径标识以及拥塞度量信息;所述路径标识指示所述第一数据报文的发送路径;所述拥塞度量信息指示所述发送路径的拥塞状态;处理模块,用于从所述第一数据报文中获取所述路径标识以及所述拥塞度量信息;所述处理模块,还用于根据所述源交换机与所述目的交换机之间的多条不等价路径的信息以及所述路径标识以及拥塞度量信息,确定所述源交换机至所述目的交换机之间的当前最优路径;发送模块,用于在所述处理模块所确定的所述当前最优路径与所述目的交换机向所述源交换机反馈的所述目的交换机与所述源交换机之间的在先最优路径不同时,向所述源交换机发送所述当前最优路径。

本发明第五方面提供一种交换机,该交换机包括存储器以及处理器,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中的程序指令,实现上述第一方面及其各实施方式中的方法。

本发明第六方面提供一种交换机,该交换机包括存储器以及处理器,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中的程序指令,实现上述第二方面及其各实施方式中的方法。

附图说明

图1为本发明实施例提供的一种数据中心的结构示意图;

图2为本发明实施例提供的报文传输方法的交互流程图;

图3为本发明实施例提供的一种交换机的模块结构图;

图4为本发明实施例提供的另一种交换机的模块结构图;

图5为本发明实施例提供的一种交换机的实体框图;

图6为本发明实施例提供的另一种交换机的实体框图。

具体实施方式

本发明实施例基于上述问题,提出一种适用于不具有等价多路径特点的架构的报文传输方法,在确定源交换机到目的交换机的发送路径时,综合考虑路径的跳数以及路径的拥塞状态,即,优先使用最短路径作为发送路径,当最短路径出现拥塞时,再使用次优路径作为发送路径,从而达到负载均衡的目的。

图1为本发明实施例提供的一种数据中心的结构示意图,所述数据中心采用了两级MESH架构。如图1所示,该MESH架构包括多个交换组(图1示出了3个),每个交换组包括多个交换机(图1示出了3个)。其中,第一交换组包括的3个交换机为分别为A11、A12和A13,第二交换组包括的3个交换机为B11、B12和B13,第三交换组包括的3个交换机为C11、C12和C13。A11、B11和C11组成第一组间平面,A12、B12和C12组成第二组间平面,A13、B13和C13组成第三组间平面。属于同一个交换组的任意两个交换机之间直接连接,属于同一个组间平面的任意两个交换机之间直接连接。基于这种连接,该MESH架构中两个组内交换机之间的最短路径的跳数可以为1跳,次优路径的跳数为2跳,两个组间交换机之间的最短路径的跳数可以为1跳或者2跳,次优路径的跳数可以为3跳或4跳。

需要说明的是,本发明实施例以MESH架构为例来介绍本发明的技术方案,但这并不应作为本发明实施例的限制,本发明实施例同样可以应用于其他不具有等价多路径特点的架构组成的数据中心。

在该数据中心中,每个交换机连接至少一个服务器(图1中示出了一个),每个服务器通过所述服务器连接的交换机访问其他服务器。

基于图1所示的数据中心,本发明实施例提供了一种报文传输方法。如图2所示,该方法包括:

S201、源交换机接收服务器发送的第一数据报文。

在数据中心中,源交换机接收其所连接的服务器发送的第一数据报文,并将该第一数据报文按照确定的路径发送到目的交换机。

S202、源交换机确定第一数据报文对应的流标识以及第一数据报文的目的交换机。

可选地,源交换机可以根据第一数据报文的五元组信息确定第一数据报文的流标识以及目的交换机。

其中,上述流标识可以是数据流的标识,也可以是将数据流分割后得到的流簇(英文:flowlet)的标识。

S203、源交换机根据到达目的交换机的最优路径和上述流标识确定发送第一数据报文的目标路径。

其中,所述最优路径是指源交换机接收到所述第一数据报文时,所述源交换机至目的交换机之间的最优路径。

所述最优路径是由目的交换机从源交换机和目的交换交换机之间的多条不等价路径中确定并反馈给源交换机的。目的交换机和源交换机之间可能存在多条路径,这些路径所经过的跳数可能并不相同,即这些路径可能是不等价的路径。目的交换机可以从这些不等价路径中选择出一条作为最优路径发送给源交换机。

源交换机确定出第一数据报文需要发往的目的交换机之后,结合第一数据报文对应的流标识以及到该目的交换机的最优路径,确定出发送第一数据报文的目标路径。源交换机结合流标识以及所述最优路径确定的目标路径,可能就为所述最优路径,也可能是源交换机和目的交换机之间的其他路径。具体过程将在下文中进行详细描述。

S204、源交换机在为所述第一数据报文添加所述目标路径的路径标识以及拥塞度量信息后,根据所确定的目标路径向所述目的交换机发送所述第一数据报文。

本发明实施例在数据报文的外层头中增加特定的字段,以在源交换机和目的交换机之间传递用于确定最优路径的信息。如表1所示,为本发明实施例中在外层头中增加的字段。

表1

在一个实施方式中,当报文类型字段的值为0时,指示报文类型为拥塞信息传递类型,当报文类型字段的值为1时,指示报文类型为最优路径反馈类型。

上述外层头可以是虚拟可扩展局域网(英文:Virtual eXtensible virtual area network,简称VXLAN)头,也可以是多链路透明互联(英文:Transparent Interconnection of Lots of Links,简称:TRILL)头。

源交换机发送第一数据报文前,可以为第一数据报文封装第一外层头,并填写所述第一外层头中的上述字段。具体地,源交换机需要将报文类型字段的值置为“拥塞信息传递类型”对应的值,相应地,将路径标识字段的值置为S102中所确定的目标路径的标识。并且,源交换机还需要将源交换机所检测到的拥塞信息填充到拥塞度量信息字段,例如,源交换机将所述目标路径的当前的链路使用率填充到该拥塞度量信息字段。

另外,作为一种可选方式,源交换机还可以在目标路径跳数字段填充初始值,例如“1”,表示目标路径经过了1跳。中间交换机在转发第一数据报文的过程中,更新该字段的值。当目的交换机中仅保存了最短路径的跳数,而无法得知最短路径的标识时,目的交换机可以根据该字段来判断目标路径是否为源交换机与目的交换机之间的最短路径。

进而,源交换机根据上述目标路径向目标交换机发送添加了上述第一外层头的第一数据报文。

S205、中间交换机接收所述第一数据报文。

S206、中间交换机更新所述第一数据报文中的第一外层头中对应字段的值。

当中间交换机接收到源交换机或上一个中间交换机发送的第一数据报文后,仅可能需要对表1所示的拥塞度量信息字段或路径跳数字段进行更新。对于拥塞度量信息字段,如果拥塞度量信息表示链路使用率,则中间交换机根据当前所检测到的链路使用率来更新拥塞度量信息字段中的值;如果拥塞度量信息表示端到端传输时间等,则中间交换机不需要对该字段进行更新处理,而是由目的交换机直接处理。对于目标路径跳数字段,中间交换机需要将该字段的值加1。

S207、中间交换机将所述第一数据报文发送给目的交换机。

需要说明的是,如果有多个中间交换机,则分别执行上述S205-S207的步骤,仅是发送数据报文的交换机或者接收数据报文的交换机不同。例如,假设源交换机到目的交换机之间有3个中间交换机M1、M2、M3,则M1从源交换机接收第一数据报文,并将该第一数据报文转发到M2,M2从M1接收该第一数据报文并将该第一数据报文转发到M3,M3从M2接收该第一数据报文,并将该第一将数据报文转发到目的交换机。

上述各中间交换机在转发该第一数据报文的过程中,会修改该第一数据报文的中的拥塞度量信息字段和/或路径跳数字段,但不会修改该第一数据报文的载荷(英文:payload),因此,仍然可以称修改后的第一数据报文为第一数据报文。

另外,如果源交换机和目的交换机之间没有中间交换机,则可以不需要执行上述S205-S207的步骤。

S208、目的交换机接收源交换机发送的第一数据报文,该第一数据报文中包括路径标识以及拥塞度量信息。

S209、目的交换机从第一数据报文中所述获取路径标识以及拥塞度量信息。

其中,上述路径标识指示第一数据报文的发送路径,即前述步骤S203中所确定出的目标路径,上述拥塞度量信息指示所述目标路径的拥塞情况。

具体地,如前述步骤S204中所述,源交换机在发送第一数据报文前,为第一数据报文封装第一外层头,该第一外层头中包括路径标识字段、拥塞度量信息字段以及报文类型字段。本步骤中,目的交换机首先读取第一外层头中的报文类型字段的值,当报文类型字段的值指示第一数据报文的报文类型为拥塞信息传递类型时,目的交换机从第一外层头中获取路径标识以及拥塞度量信息。

如果源交换机和目的交换机之间存在中间交换机,则目的交换机接收的是从源交换机发送的经过中间交换机转发的第一数据报文。

S210、目的交换机根据源交换机与目的交换机之间的多条不等价路径的信息以及上述路径标识以及拥塞度量信息,确定源交换机至目的交换机之间的当前最优路径。

可选地,目的交换机中预先保存源交换机和目的交换机之间的多条不等价路径,包括最短路径以及其他路径。

其中,源交换机和目的交换机之间的最短路径是指从源交换机到目的交换机经过的跳数最少的路径。

目的交换机根据源交换机和目的交换机之间的多条不等价路径以及上述路径标识以及拥塞度量信息,即结合不同路径的跳数以及拥塞状态,来确定源交换机到目的交换机之间的当前最优路径。目的交换机根据上述信息确定当前最优路径的具体方法在下文中进行详细描述。

S211、目的交换机判断所确定的当前最优路径是否与目的交换机向源交换机反馈的在先最优路径不同,若是,则执行S212,否则,结束。

其中,目的交换机向源交换机反馈的在先最优路径是指目的交换机最近一次向源交换机反馈的最优路径,目的交换机每次向源交换机反馈最优路径之后,会记录所反馈的在先最优路径,当再次确定出当前最优路径之后,目的交换机比较所述在先最优路径和所述当前最优路径。目的交换机具体可以比较两个路径的标识,如果标识不同,则确定两个路径不同。

S212、目的交换机向源交换机发送第二数据报文,该第二数据报文中包括目的交换机所确定的当前最优路径。

当确定出的当前最优路径与目的交换机向源交换机反馈的在先最优路径不同时,目的交换机需要将所述当前最优路径反馈给源交换机,以使源交换机根据所述当前最优路径向目的交换机发送数据报文。

需要说明的是,本实施例是以源交换机发送数据报文为起始来进行说明,但是,显然,在源交换机发送数据报文之前,也可以首先接收目的交换机发送的携带当前最优路径的数据报文,即,在上述步骤S201之前,也可以执行S212。

具体地,目的交换机首先在第二数据报文中封装第二外层头,将第二外层头的报文类型字段的值设置为“最优路径反馈类型”,即,该第二外层头中的报文类型字段的值指示该数据报文的类型为最优路径反馈类型,目的交换机进而将所确定出的当前最优路径的标识填充在第二外层头的路径标识字段中。

S213、中间交换机接收目的交换机发送的第二数据报文,并将第二数据报文转发给源交换机。

中间交换机转发目的交换机向源交换机发送的第二数据报文时,不需要对第二数据报文外层头中的字段进行更新,而仅是将第二数据报文转发出去即可。

需要说明的是,如果有多个中间交换机,则每个中间交换机分别执行上述S213的步骤,仅是发送数据报文的交换机或者接收数据报文的交换机不同。例如,假设目的交换机到源交换机之间有3个中间交换机M3、M2、M1,则M3从目的交换机接收数据包报文,并将数据报文转发到M2,M2从M3接收数据报文并将数据报文转发到M1,M1从M2接收数据报文,并将数据报文转发到源交换机。

另外,如果源交换机和目的交换机之间没有中间交换机,则可以不需要执行上述S213的步骤。

S214、源交换机接收第二数据报文,读取第二数据报文中的路径标识,并将所述最优路径更新为所述第二数据报文中携带的所述当前最优路径。

源交换机接收到目的交换机发送的第二数据报文后,首先判断第二数据报文的第二外层头中的报文类型字段的值是否为“最优路径反馈类型”,如果是,则说明该报文中携带了目的交换机向源交换机反馈的当前最优路径,则源交换机读取并保存第二外层头中的路径标识字段的值,即将源交换机中原来保存的最优路径更新为所述当前最优路径。

进而,当再次从服务器接收到数据报文后,源交换机就根据更新后的最优路径确定目标路径。

可选地,源交换机可以通过一个最优路径表来保存到不同目的交换机的最优路径,该最优路径表的每个表项包括一个目标交换机的标识以及所述目的交换机对应的到达所述源交换机的最优路径。当需要确定到达某个目的交换机的最优路径时,所述源交换机直接根据目的交换机的标识就可以查询出到所述目的交换机的最优路径。

本实施例中,源交换机向目的交换机发送的第一数据报文中携带路径标识以及拥塞度量信息值,目的交换机根据该值以及源交换机到目的交换机之间的多条不等价路径的信息,来确定出源交换机至目的交换机之间的当前最优路径。即本发明实施例综合考虑了源交换机和目的交换机之前的路径跳数以及路径拥塞状态,从而保证了存在不等价路径的数据中心的负载均衡,提升了网络吞吐量,提高了网络利用率。

进一步地,目的交换机确定到达源交换机的当前最优路径,仅在当前最优路径发生变化时才向源交换机发送变化后的最优路径。而现有技术中,只要路径的拥塞状态发生变化,目的交换机就向源交换机发送数据报文,并且由源交换机确定目标路径。由于每条路径的拥塞状态的变化远比源交换机和目的交换机之间的最优路径的变化频繁,因此,相比于现有技术,本实施例中,目的交换机向源交换机发送数据报文的次数大大减少,从而减少了源交换机、目的交换机以及整个网络的负担。

以下介绍上述步骤S203中源交换机根据第一数据报文的流标识以及目的交换机所反馈的最优路径确定发送第一数据报文的目标路径的具体方法。

本实施例中以流标识为flowlet标识为例来进行说明。

数据报文按照数据流进行发送,一个数据流可以划分为不同的flowlet进行发送,具体地,当一个数据流中的数据报文A与该数据流的上一个数据报文到达某个交换机的时间差大于预设值时,该数据报文A就可以划分到该数据流的一个新的flowlet中,不同的flowlet可以按照不同的路径进行发送。本发明实施例中,可以为每个flowlet设置一个路径。

当源交换机从服务器接收到第一数据报文后,首先确定第一数据报文对应的flowlet标识,即该数据报文所属的flowlet。其中,flowlet标识可以通过第一数据报文的五元组信息来确定。

进而,在本实施例中,源交换机根据流标识以及预设的映射关系表,确定发送上述第一数据报文的目标路径。

其中,上述映射关系表的每个表项用于记录流标识与发送路径的对应关系,即上述映射映射关系表用于指示每个流标识对应的数据报文的发送路径。

源交换机根据流标识与上述映射关系表确定第一数据报文的目标路径时,首先需要根据流标识查询映射关系表,查询的结果可能为映射关系表中存在该流标识对应的表项,也可能为映射关系表中不存在该流标识对应的表项,以下分别进行说明。

1、映射关系表中不存在该流标识对应的表项

当映射关系表中不存在上述流标识对应的表项时,源交换机根据上述流标识确定数据报文的目标路径。

具体地,假设上述流标识对应的数据流为源交换机发往目的交换机的第N个数据流,其中,N为大于零的整数,如果N为预设值的整数倍,则源交换机随机选择源交换机至目的交换机之间的一条发送路径作为第一数据报文的目标路径;如果N不为预设值的整数倍,则源交换机将目的交换机反馈的最优路径作为第一数据报文的目标路径。

上述过程可以描述为:

当映射关系表中不存在流标识对应的表项,且N为预设值的整数倍时,源交换机随机选择交换机至目的交换机之间的一条发送路径作为目标路径;或者,

当映射关系表中不存在流标识对应的表项,且N不为预设值的整数倍时,源交换机将目的交换机反馈的最优路径作为目标路径。

当映射关系表中不存在上述流标识对应的表项时,说明流标识对应的flowlet为新的flowlet,则此时,源交换机并不是直接将目的交换机反馈的最优路径作为第一数据报文的目标路径,而是根据流的序号N进行区分,如果N为一个预设值的整数倍,例如3的整数倍,则选择一条随机路径作为第一数据报文的目标路径,如果N不为预设值的整数倍,则选择目的交换机反馈的最优路径作为第一数据报文的目标路径。

源交换机的这种处理方法可以保证源交换机可以使用多条路径向目的交换机发送数据报文,避免一些路径一直不被使用,从而使得目的交换机可以实时获取到所有路径的拥塞状态信息,进而根据这些拥塞状态信息确定所述目的交换机到所述源交换机的当前最优路径。

进一步地,在源交换机根据流标识确定出第一数据报文的目标路径之后,源交换机将第一数据报文对应的流标识以及目标路径增加到映射关系表中,即在映射关系表中增加包括流标识与目标路径的对应关系的表项。当该流标识对应的数据流中的下一个数据报文到达时,源交换机通过查询所述映射关系表就可以直接获取到下一个数据报文的目标路径。

2、映射关系表中存在该流标识对应的表项

当所述映射关系表中存在上述流标识对应的表项时,说明该流标识对应的流为已有的流,此时,源交换机直接将上述流标识对应的表项中与上述流标识对应的发送路径作为第一数据报文的目标路径。

举例来说,假设源交换机已经确定出当前需要发送的数据报文对应的流标识为2,源交换机查询映射关系表发现该表中流标识为2的表项,并且该表项对应的目标路径为A,则源交换机可以直接确定当前需要发送的数据报文的目标路径为路径A。

上述过程中,源交换机通过直接读取映射关系表就可以确定出第一数据报文的目标路径,而现有技术中在确定目标路径时,需要遍历所有路径并逐个进行比对才可以确定,因此,本发明实施例相对于现有技术,还减少了运算复杂度,提高了交换机的转发效率。

以下介绍上述S210中目的交换机根据源交换机与目的交换机之间的多条不等价路径的信息以及上述路径标识以及拥塞度量信息,确定源交换机至目的交换机之间的当前最优路径的具体方法。

可选地,目的交换机可以同样基于上述表1中的字段来获取路径信息以及拥塞信息。

目的交换机在判断出从源交换机发送过来的第一数据报文中报文类型字段的值指示第一数据报文的报文类型为拥塞信息传递类型后,读取第一数据报文中的第一外层头中的路径标识以及拥塞度量信息,进而,目的交换机对路径标识进行判断,并根据判断结果执行不同处理。具体如下:

1、路径标识对应的路径为最短路径

如果路径标识所指示的第一数据报文的发送路径为源交换机至目的交换机之间的最短路径,则目的交换机根据第一数据报文中的拥塞度量信息以及目的交换机中所保存的源交换机至目的交换机之间的最短路径的拥塞度量值,确定源交换机至目的交换机之间的当前最优路径。

其中,在判断路径标识所指示的第一数据报文的发送路径是否为源交换机至目的交换机之间的最短路径时,需要根据目的交换机所保存的最短路径的信息的具体情况来进行判断。例如,在一种情况下,目的交换机中所保存的最短路径的信息包括了最短路径的标识,即目的交换机根据所保存的信息就可以知道最短路径是哪条路径。当收到第一数据报文后,直接比对路径标识就可以确定第一数据报文的目标路径是否为最短路径。而另一种情况下,目的交换机中可能仅保存了最短路径的跳数信息,而并不清楚最短路径具体为哪条路径。在这种情况下,目的交换机可以通过读取第一数据报文的第一外层头中的路径跳数字段的值来进行判断。如果该字段的值与目的交换机所保存的最短路径的跳数值相同,则可以确定第一数据报文的目标路径就是源交换机至目的交换机之间的最短路径。

无论目的交换机中所保存的最短路径信息为何种信息,目的交换机中都可以保存最短路径的拥塞度量值。

在确定出第一数据报文的目标路径是源交换机至目的交换机之间的最短路径后,目的交换机根据第一数据报文中的第一外层头的拥塞度量信息与目的交换机中所保存的源交换机至目的交换机之间的最短路径的拥塞度量值,来确定当前最优路径。

一种情况下,若第一数据报文中的拥塞度量信息所指示的拥塞度量值大于或等于预设拥塞阈值,并且目的交换机中所保存的源交换机至目的交换机之间的最短路径的拥塞度量值小于预设拥塞阈值,则将源交换机和目的交换机之间的在先次优路径作为源交换机至目的交换机之间的当前最优路径。

如果第一数据报文中的拥塞度量信息所指示的拥塞度量值大于或等于预设拥塞阈值,而最短路径的拥塞度量值小于预设拥塞阈值,则说明最短路径在第一数据报文发送前并没有拥塞,而在第一数据报文发送时出现拥塞,则此时,不能再将最短路径作为源交换机和目的交换机之间的当前最优路径,而将源交换机和目的交换机之间的在先次优路径作为当前最优路径,以避免数据报文在拥塞的最短路径上发送所造成的传输效率降低等问题。

其中,源交换机和目的交换机之间可以存在多条不等价路径,其中,除最短路径外的拥塞度量值最小的路径为次优路径。在先次优路径是指目的交换机最近一次记录的次优路径。当最短路径出现拥塞时,目的交换机将在先次优路径作为当前最优路径,可以保证最佳的传输效率,进而达到最佳的负载均衡效果。

另一种情况下,如果第一数据报文中的拥塞度量信息所指示的拥塞度量外层头值小于预设拥塞阈值,并且目的交换机中所保存的源交换机至目的交换机之间的最短路径的拥塞度量值大于或等于预设拥塞阈值,则将源交换机至目的交换机之间的最短路径作为源交换机和目的交换机之间的当前最优路径。

如果第一数据报文中的拥塞度量信息所指示的拥塞度量值小于预设拥塞阈值,而最短路径的拥塞度量值大于或等于预设拥塞阈值,则说明最短路径在第一数据报文前已经拥塞,不被作为当前最优路径,而当第一数据报文发送时,最短路径不再拥塞,则此时,目的交换机需要及时将当前最优路径调整回最短路径。即,只要最短路径不拥塞,就将最短路径作为当前最优路径,从而在保证路径不拥塞的前提下,尽量使用最短路径,以减少数据报文传输时间,增大网络吞吐量,提高网络利用率。

在上述两种情况中,目的交换机变更了当前最优路径之后,都需要相应地更新最短路径的拥塞度量值,即将拥塞度量值更新为第一数据报文中的拥塞度量信息所指示的拥塞度量值,从而及时动态更新最短路径的拥塞度量值,以保证在下次接收到源交换机所发送的数据报文后再根据最短路径的拥塞度量值来确定当前最优路径。

2、路径标识对应的路径不为最短路径

如果路径标识所指示的第一数据报文的发送路径不为源交换机至目的交换机之间的最短路径,则目的交换机根据第一数据报文中的拥塞度量信息所指示的拥塞度量值与目的交换机中所保存的在先次优路径的拥塞度量值确定源交换机至目的交换机之间的当前次优路径。

具体地,当目的交换机确定出路径标识所指示的第一数据报文的发送路径不为源交换机至目的交换机之间的最短路径时,判断第一数据报文中的拥塞度量信息所指示的拥塞度量值是否小于目的交换机中所保存的次优路径的拥塞度量值,若是,则将路径标识所指示的第一数据报文的发送路径作为源交换机至目的交换机之间的当前次优路径。

即,只要源交换机至目的交换机之间的除最短路径之外的某条路径的拥塞度量值小于在先次优路径的拥塞度量值,就对次优路径进行调整,即保证当前次优路径一直都是最不拥塞的一条路径。进而,当最短路径由于拥塞不能作为当前最优路径时,选择当前次优路径作为当前最优路径,从而保证数据报文的传输效率,实现良好的负载均衡效果。

需要说明的是,目的交换机中保存源交换机至目的交换机之间的次优路径信息,包括路径标识以及拥塞度量值,在次优路径发生变化后,目的交换机在保存新的次优路径信息时,也需要保存路径标识以及拥塞度量值,当再次收到报文类型为拥塞信息传递类型的数据报文时,可以根据所保存的信息再来确定当前最优路径。

另外,本发明实施例中的拥塞度量值,可以直接使用链路使用率、端到端传输时间等实际测量值,也可以根据这些实际测量值进行量化运算获得,以使得拥塞度量值的判断和比较更加简便。

进一步地,目的交换机在更新当前次优路径之后,如果最短路径当前的拥塞度量值大于预设拥塞阈值,则目的交换机可以向源交换机发送当前次优路径。

具体地,如果最短路径当前的拥塞度量值大于预设拥塞阈值,则说明最短路径当前拥塞,并且源交换机已经根据目的交换机的反馈使用了当前次优路径来发送数据报文。因此,在当前次优路径发生变化之后,目的交换机需要将当前次优路径发送给源交换机,以使得源交换机按照当前次优路径发送数据报文,进一步提升数据报文的传输效率。

需要说明的是,目的交换机在向源交换机发送更新后的当前次优路径时,也需要在数据报文中封装外层头,并且外层头中的报文类型字段的值为最优路径反馈类型,外层头中的路径标识对应的路径为该更新后的当前次优路径。

图3为本发明实施例提供的一种交换机的模块结构图,该交换机具体指源交换机,该交换机包括:

接收模块301,用于接收第一数据报文。

处理模块302,用于确定第一数据报文对应的流标识以及第一数据报文的目的交换机。

处理模块302,还用于根据到达目的交换机的最优路径和上述流标识确定发送第一数据报文的目标路径,该最优路径为目的交换机从源交换机和目的交换机之间的多条不等价路径中确定并反馈给源交换机的。

发送模块303,用于根据上述目标路径向目的交换机发送第一数据报文。

该交换机用于实现前述方法实施例,其实现原理和技术效果类似,此处不再赘述。

另一实施例中,发送模块301具体用于:

为第一数据报文添加第一外层头,其中,该第一外层头中包括拥塞度量信息字段以及路径标识字段,该拥塞度量信息字段用于标识目标路径的拥塞状态,该路径标识字段用于标识目标路径;以及,

根据目标路径向目标交换机发送添加了第一外层头的第一数据报文。

另一实施例中,处理模块302具体用于:

根据流标识以及预设的映射关系表,确定发送第一数据报文的目标路径,其中,映射关系表的每个表项用于记录流标识与发送路径的对应关系。

处理模块302在进行上述处理时的一种具体过程为:

假设流标识对应的数据流为源交换机发往目的交换机的第N个数据流,则,

当映射关系表中不存在流标识对应的表项,且N为预设值的整数倍时,随机选择源交换机至目的交换机之间的一条发送路径作为目标路径。

或者,

当映射关系表中不存在流标识对应的表项,且N不为预设值的整数倍时,将目的交换机反馈的最优路径作为目标路径。

进一步地,处理模块302还用于:

在映射关系表中增加流标识与目标路径的对应关系。

处理模块302在进行上述处理时的另一种具体过程为:

若映射关系表中存在流标识对应的表项,则将表项中与流标识对应的发送路径作为目标路径。

另一实施例中,接收模块301还用于:

接收目的交换机发送的包括流标识的第二数据报文;该第二数据报文封装有第二外层头;第二外层头中的报文类型字段的值指示第二数据报文的类型为最优路径反馈类型。

处理模块302还用于:

读取第二外层头中的路径标识,将最优路径更新为路径标识对应的路径。

另一实施例中,源交换机向目的交换机所发送的第一数据报文的第一外层头中还包括路径跳数字段,该路径跳数字段用于标识第一数据报文在目标路径上所经过的跳数。

图4为本发明实施例提供的另一种交换机的模块结构图,该交换机具体指目的交换机,该交换机包括:

接收模块401,用于接收源交换机发送的第一数据报文,该第一数据报文包括路径标识以及拥塞度量信息,该路径标识指示第一数据报文的发送路径,该拥塞度量信息指示发送路径的拥塞状态。

处理模块402,用于从第一数据报文中获取路径标识以及拥塞度量信息。

处理模块402,还用于根据源交换机与目的交换机之间的多条不等价路径的信息以及上述路径标识以及拥塞度量信息,确定源交换机至目的交换机之间的当前最优路径。

发送模块403,用于在处理模块402所确定的当前最优路径与目的交换机向源交换机反馈的目的交换机与源交换机之间的在先最优路径不同时,向源交换机发送上述当前最优路径。

该交换机用于实现前述方法实施例,其实现原理和技术效果类似,此处不再赘述。

另一实施例中,第一数据报文包括第一外层头,该第一外层头中包括上述路径标识以及上述拥塞度量信息。

第一外层头中还包括报文类型字段,当报文类型字段的值指示第一数据报文的报文类型为拥塞信息传递类型时,处理模块402从第一外层头中获取上述路径标识以及上述拥塞度量信息。

另一实施例中,处理模块402具体用于:

若上述路径标识所指示的第一数据报文的发送路径为源交换机至目的交换机之间的最短路径,则根据第一数据报文中的拥塞度量信息以及目的交换机中所保存的最短路径的拥塞度量值,确定源交换机至目的交换机之间的当前最优路径。

处理模块402在进行上述处理时的一种具体过程为:

若第一数据报文中的拥塞度量信息所指示的拥塞度量值大于或等于预设拥塞阈值,并且目的交换机中所保存的最短路径的拥塞度量值小于预设拥塞阈值,则将源交换机和目的交换机之间的在先次优路径作为源交换机至目的交换机之间的当前最优路径。

处理模块402在进行上述处理时的另一种具体过程为:

若第一数据报文中的拥塞度量信息所指示的拥塞度量值小于预设拥塞阈值,并且目的交换机中所保存的最短路径的拥塞度量值大于或等于预设拥塞阈值,则将最短路径作为源交换机和目的交换机之间的当前最优路径。

另一实施例中,处理模块402还用于:

若上述路径标识所指示的第一数据报文的发送路径不为源交换机至目的交换机之间的最短路径,则根据第一数据报文中的拥塞度量信息所指示的拥塞度量值与目的交换机中所保存的在先次优路径的拥塞度量值确定源交换机至目的交换机之间的当前次优路径。

进一步地,处理模块402具体还用于:

判断第一数据报文中的拥塞度量信息所指示的拥塞度量值是否小于目的交换机中所保存的在先次优路径的拥塞度量值,若是,则将上述路径标识所指示的第一数据报文的发送路径作为源交换机至目的交换机之间的当前次优路径。

另一实施例中,发送模块403还用于:

向源交换机发送当前次优路径。

另一实施例中,第一数据报文中还包括路径跳数字段,相应地,处理模块402还用于:

根据上述路径跳数字段的值,确定第一数据报文的发送路径是否为源交换机至目的交换机之间的最短路径。

图5为本发明实施例提供的一种交换机的实体框图,该交换机具体指源交换机,该交换机包括:

存储器501和处理器502;

存储器501用于存储程序指令,处理器502用于调用存储器501中的程序指令,实现上述各方法实施例中所述源交换机的功能。

图6为本发明实施例提供的另一种交换机的实体框图,该交换机具体指目的交换机,该交换机包括:

存储器601和处理器602;

存储器601用于存储程序指令,处理器602用于调用存储器601中的程序指令,实现上述各方法实施例中所述目的交换机的功能。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1