发明内容
本发明实施例提供一种基于优先级的数据传输方法和设备,以保障重要服务器的流量得到及时转发,继而保证数据中心工作稳定。
为了达到上述目的,本发明实施例提供一种基于优先级的数据传输方法,应用于包括多个边缘设备ED的以太网虚拟化互联EVI网络中,所述EVI网络中包括与ED连接的服务器,该方法包括以下步骤:
ED获得其它ED连接服务器对应的优先级、带宽以及MAC地址,并在优先级信息表中记录所述其它ED连接服务器的MAC地址、对应的优先级和带宽之间的对应关系,以及在所述对应关系中记录所述其它ED连接服务器对应的使用带宽为指定数值;
当所述ED需要向其它ED连接服务器发送数据时,所述ED获得所述数据的目的MAC地址,并通过所述目的MAC地址匹配所述优先级信息表中记录的MAC地址,获得对应的优先级、带宽和使用带宽;
当所述获得的使用带宽小于所述获得的带宽时,所述ED在封装所述数据的IP报文头中设置优先级为所述获得的优先级,并发送封装后的数据,以及利用所述数据使用的带宽更新所述优先级信息表中对应的使用带宽。
所述ED获得其它ED连接服务器对应的优先级、带宽以及MAC地址,具体包括:
当在ED上配置自身连接服务器对应的优先级、带宽以及MAC地址时,所述ED获得自身连接服务器对应的优先级、带宽以及MAC地址,并通知给其它ED,以及接收其它ED通知的所述其它ED连接服务器对应的优先级、带宽以及MAC地址;或者,
当在所述ED上配置其它ED连接服务器对应的优先级、带宽以及MAC地址时,所述ED根据自身的配置信息获得所述其它ED连接服务器对应的优先级、带宽以及MAC地址,并通知给所述EVI网络中其它ED。
所述ED获得自身连接服务器对应的优先级、带宽和MAC地址的过程,进一步包括:
当在ED上配置MAC地址、优先级和带宽之间的对应关系时,所述ED获得自身连接服务器的MAC地址,根据获得的MAC地址和自身的配置信息获得自身连接服务器对应的优先级、带宽和MAC地址;或者,
当在ED上配置IP地址、优先级和带宽之间的对应关系时,所述ED获得自身连接服务器的IP地址,通过获得的IP地址获得自身连接服务器的MAC地址,并根据获得的MAC地址和自身的配置信息获得自身连接服务器对应的优先级、带宽和MAC地址。
用于通知服务器对应的优先级、带宽和MAC地址的报文包括EVI-中间系统到中间系统ISIS报文;其中,所述EVI-ISIS报文中携带有类型TYPE字段、长度LENGTH字段和值VALUE字段,所述TYPE字段表示所述EVI-ISIS报文用于传输服务器对应的优先级和带宽,所述LENGTH字段表示所述EVI-ISIS报文长度,所述VALUE字段用于携带服务器对应的优先级、带宽和MAC地址。
所述ED通过所述目的MAC地址匹配所述优先级信息表中记录的MAC地址,获得对应的优先级、带宽和使用带宽,之后还包括:
当所述获得的使用带宽不小于所述获得的带宽时,所述ED在封装所述数据的IP报文头中设置优先级为指定优先级,并发送封装后的数据。
所述方法进一步包括:所述ED在IP报文头的服务类型TOS字段中设置优先级。
本发明实施例提供一种边缘设备ED,应用于包括多个ED的以太网虚拟化互联EVI网络中,所述EVI网络中包括与ED连接的服务器,所述ED包括:
第一获得模块,用于获得其它ED连接服务器对应的优先级、带宽以及MAC地址;
记录模块,用于在优先级信息表中记录所述其它ED连接服务器的MAC地址、对应的优先级和带宽之间的对应关系,以及在所述对应关系中记录所述其它ED连接服务器对应的使用带宽为指定数值;
第二获得模块,用于当本设备需要向其它ED连接服务器发送数据时,获得所述数据的目的MAC地址,并通过所述目的MAC地址匹配所述优先级信息表中记录的MAC地址,获得对应的优先级、带宽和使用带宽;
发送模块,用于当所述获得的使用带宽小于所述获得的带宽时,在封装所述数据的IP报文头中设置优先级为所述获得的优先级,并发送封装后的数据,以及利用所述数据使用的带宽更新所述优先级信息表中对应的使用带宽。
所述第一获得模块,具体用于当在ED上配置本设备连接服务器对应的优先级、带宽以及MAC地址时,获得本设备连接服务器对应的优先级、带宽以及MAC地址,并通知给其它ED,以及接收其它ED通知的所述其它ED连接服务器对应的优先级、带宽以及MAC地址;或者,
当在本设备上配置其它ED连接服务器对应的优先级、带宽以及MAC地址时,根据本设备的配置信息获得所述其它ED连接服务器对应的优先级、带宽以及MAC地址,并通知给所述EVI网络中其它ED。
所述第一获得模块,进一步用于当在本设备上配置MAC地址、优先级和带宽之间的对应关系时,获得本设备连接服务器的MAC地址,根据获得的MAC地址和本设备的配置信息获得本设备连接服务器对应的优先级、带宽和MAC地址;或者,
当在本设备上配置IP地址、优先级和带宽之间的对应关系时,获得本设备连接服务器的IP地址,通过获得的IP地址获得本设备连接服务器的MAC地址,并根据获得的MAC地址和本设备的配置信息获得本设备连接服务器对应的优先级、带宽和MAC地址。
用于通知服务器对应的优先级、带宽和MAC地址的报文包括EVI-中间系统到中间系统ISIS报文;其中,所述EVI-ISIS报文中携带有类型TYPE字段、长度LENGTH字段和值VALUE字段,所述TYPE字段表示所述EVI-ISIS报文用于传输服务器对应的优先级和带宽,所述LENGTH字段表示所述EVI-ISIS报文长度,所述VALUE字段用于携带服务器对应的优先级、带宽和MAC地址。
所述发送模块,还用于当所述获得的使用带宽不小于所述获得的带宽时,在封装所述数据的IP报文头中设置优先级为指定优先级,并发送封装后数据。
所述发送模块,具体用于在IP报文头的服务类型TOS字段中设置优先级。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,通过为服务器设置优先级和带宽,使得ED能够利用服务器的优先级和其优先使用的带宽来动态调整IP报文头的TOS(Type of Service,服务类型)字段,并使得数据经过的网络设备能够根据TOS字段中的优先级来转发数据,从而保障重要服务器的流量得到及时转发,保证数据中心工作稳定。
具体实施方式
针对现有技术中存在的问题,本发明实施例提出一种基于优先级的数据传输方法,应用于包括多个ED的EVI网络中,且各ED下可以连接有服务器;以图2为本发明实施例应用场景示意图,该EVI网络包括3个ED,分别为DUT-1,DUT-2和DUT-3,DUT-1下连接有服务器HOST1(MAC地址为MAC1,IP地址为192.168.23.20)和服务器HOST4(MAC地址为MAC4,IP地址为192.168.23.21),DUT-2下连接有服务器HOST2(MAC地址为MAC2,IP地址为192.168.23.22),DUT-3下连接有服务器HOST3(MAC地址为MAC3,IP地址为192.168.23.23)。
本发明实施例中,各ED(DUT-1,DUT-2和DUT-3)上需要维护优先级信息表,该优先级信息表用于记录服务器的MAC地址、对应的优先级、对应的带宽、对应的使用带宽之间的对应关系;且各ED上维护的优先级信息表初始为空,后续根据收到信息进行更新,如表1所示,为初始的优先级信息表。
表1
基于维护的优先级信息表,如图3所示,该数据传输方法包括以下步骤:
步骤301,ED获得其它ED连接服务器所对应的优先级、带宽以及MAC地址。
ED获得其它ED连接服务器对应的优先级、带宽以及MAC地址,具体包括:当在ED上配置自身连接服务器对应的优先级、带宽以及MAC地址时,ED获得自身连接服务器对应的优先级、带宽以及MAC地址,并通知给其它ED,以及接收其它ED通知的其它ED连接服务器对应的优先级、带宽以及MAC地址;或者,当在ED上配置其它ED连接服务器对应的优先级、带宽以及MAC地址时,ED根据自身的配置信息获得其它ED连接服务器对应的优先级、带宽以及MAC地址,并通知给EVI网络中其它ED。
进一步的,针对ED获得自身连接服务器对应的优先级、带宽以及MAC地址,并通知给其它ED,以及接收其它ED通知的其它ED连接服务器对应的优先级、带宽以及MAC地址的过程;在图2所示的应用场景下,DUT-1需要获得自身连接服务器对应的优先级和带宽,并将自身连接服务器对应的优先级、带宽和自身连接服务器的MAC地址通知给DUT-2和DUT-3;DUT-2需要获得自身连接服务器对应的优先级和带宽,并将自身连接服务器对应的优先级、带宽和自身连接服务器的MAC地址通知给DUT-1和DUT-3;DUT-3需要获得自身连接服务器对应的优先级和带宽,并将自身连接服务器对应的优先级、带宽和自身连接服务器的MAC地址通知给DUT-1和DUT-2;其中,DUT-1,DUT-2和DUT-3的处理相同,为了方便描述,以ED为DUT-3,其它ED为DUT-1和DUT-2为例进行说明。
本发明实施例中,DUT-3获得自身连接服务器(即HOST3)对应的优先级、带宽和MAC地址,具体包括但不限于如下方式:
方式一、当在ED上配置服务器的MAC地址、服务器对应的优先级和带宽之间的对应关系时,ED可以在获得自身连接服务器的MAC地址之后,直接根据该获得的MAC地址以及自身的配置信息获得自身连接服务器对应的优先级、带宽和MAC地址。
例如,当在DUT-3上配置MAC3、优先级6和带宽80M之间的对应关系时,DUT-3可以在获得自身连接服务器的MAC地址为MAC3之后,获得自身连接服务器对应的优先级为6,带宽为80M,MAC地址为MAC3。
方式二、当在ED上配置服务器的IP地址、服务器对应的优先级和带宽之间的对应关系(由于IP地址容易了解,因此可以配置IP地址、优先级和带宽之间的对应关系)时,ED可以在获得自身连接服务器的IP地址后,通过该获得的IP地址获得自身连接服务器的MAC地址,根据获得的MAC地址以及自身的配置信息获得自身连接服务器对应的优先级、带宽和MAC地址。
例如,当在DUT-3上配置192.168.23.23、优先级6和带宽80M之间的对应关系时,DUT-3可以在获得自身连接服务器的IP地址为192.168.23.23后,通过ARP(Address Resolution Protocol,地址解析协议)功能获知MAC3与192.168.23.23相对应(通过ARP解析功能直接解析到IP地址为192.168.23.23的MAC地址为MAC3;或者,当DUT-3本地的ARP表项中没有192.168.23.23对应的MAC地址时,DUT-3通过主动发送ARP请求报文,并等待接收ARP响应报文,以解析到IP地址为192.168.23.23的MAC地址为MAC3),继而可获得自身连接服务器对应的优先级为6,带宽为80M,MAC地址为MAC3。
基于DUT-3获得自身连接服务器对应的优先级、带宽和MAC地址的方式,DUT-1和DUT-2也可以按照该方式获得自身连接服务器对应的优先级、带宽和MAC地址;其中,DUT-1获得自身连接服务器HOST1(MAC地址为MAC1)对应的优先级为7,对应的带宽为100M,并获得自身连接服务器HOST4(MAC地址为MAC4)对应的优先级为5,对应的带宽为50M;DUT-2获得自身连接服务器HOST2(MAC地址为MAC2)对应的优先级为6,对应的带宽为80M。
进一步的,ED还需要将自身连接服务器对应的优先级、带宽和自身连接服务器的MAC地址通知给其它ED,并接收其它ED通知的其它ED连接服务器对应的优先级、带宽和其它ED连接服务器的MAC地址;即DUT-3需要将HOST3对应的优先级、带宽和MAC地址通知给DUT-1和DUT-2,并接收DUT-1通知的HOST1和HOST4所分别对应的优先级、带宽和MAC地址,以及接收DUT-2通知的HOST2对应的优先级、带宽和MAC地址。
在DUT-1、DUT-2和DUT-3通知MAC地址、优先级和带宽的过程中,本发明实施例中构造一种用于通知服务器对应的优先级、带宽和服务器的MAC地址的EVI-ISIS报文,该EVI-ISIS报文中携带了TLV(TYPE LENGTH
VALUE,字段长度值)字段(如在EVI-ISIS报文的LSP(Link State
Packet,链路状态包)中携带该TLV字段),且该TLV字段中包括TYPE(类型)字段、LENGTH(长度)字段和VALUE(值)字段。
其中,TYPE字段:通过选用一个未定义的值来表示这个自定义的TYPE,并用来表示携带该TYPE的EVI-ISIS报文用于传输服务器对应的优先级和带宽;LENGTH字段,用来表示EVI-ISIS报文长度;VALUE字段,用于携带服务器对应的优先级、带宽和服务器的MAC地址。
在图2所示的应用场景下,DUT-3通过EVI-ISIS报文将MAC3、优先级6和带宽80M之间的对应关系分别通知给DUT-1和DUT-2;接收DUT-1通过EVI-ISIS报文通知的MAC1、优先级7和带宽100M之间的对应关系,MAC4、优先级5和带宽50M之间的对应关系;以及接收DUT-2通过EVI-ISIS报文通知的MAC2、优先级6和带宽80M之间的对应关系。
步骤302,ED在优先级信息表中记录其它ED连接服务器的MAC地址、对应的优先级和带宽之间的对应关系,并在对应关系中记录其它ED连接服务器对应的使用带宽为指定数值(优选为0)。
在图2所示的应用场景下,当DUT-3接收到DUT-1通过EVI-ISIS报文通知的MAC1、优先级7和带宽100M的对应关系,MAC4、优先级5和带宽50M的对应关系,以及接收到DUT-2通过EVI-ISIS报文通知的MAC2、优先级6和带宽80M的对应关系之后,则优先级信息表的记录情况如表2所示。
表2
在一种具体的实现中,优先级信息表还可以按照优先级从高到低(或从低到高)的顺序对各记录进行排序,且优先级信息表中还可以记录MAC地址对应的ED信息,为此优先级信息表的记录情况还可以如表3所示。
表3
基于上述维护的优先级信息表,则在数据转发的过程中,该数据传输方法进一步包括如下步骤:
步骤303,当ED需要向其它ED连接服务器发送数据时,ED获得数据的目的MAC地址,并通过目的MAC地址匹配优先级信息表中记录的MAC地址,获得对应的优先级、带宽和使用带宽。
在图2所示的应用场景下,当数据的目的MAC地址为MAC1时,DUT-3通过MAC1匹配优先级信息表中记录的MAC地址,获得对应的优先级为7,带宽为100M,使用带宽为0;当数据的目的MAC地址为MAC2时,DUT-3通过MAC2匹配优先级信息表中记录的MAC地址,获得对应的优先级为6,带宽为80M,使用带宽为0;当数据的目的MAC地址为MAC4时,DUT-3通过MAC4匹配优先级信息表中记录的MAC地址,获得对应的优先级为5,带宽为50M,使用带宽为0。
本发明实施例中,当获得的使用带宽小于获得的带宽时,执行步骤304;当获得的使用带宽不小于获得的带宽时,执行步骤305。
步骤304,ED在封装数据的IP报文头中设置优先级为获得的优先级,并发送该封装后的数据,以及利用该数据所使用的带宽更新优先级信息表中对应的使用带宽。
步骤305,ED在封装数据的IP报文头中设置优先级为指定优先级(即默认优先级,优选为0),并发送该封装后的数据。
ED在发送数据之前,需要对数据进行GRE封装,添加IP报文头、链路层头以及校验和等内容,本发明实施例中需要在封装的IP报文头中设置优先级为获得的优先级或者指定优先级;且在一种优选的实施方式中,ED可以在IP报文头的TOS(服务类型)字段中设置优先级为获得的优先级或者指定优先级,如图4所示,为TOS字段在IP报文头中的位置示意图。
在图2所示的应用场景下,基于表3中记录的信息,对于发送至MAC1的数据,由于获得的使用带宽0小于获得的带宽100M,因此DUT-3在IP报文头中设置优先级为7;对于发送至MAC2的数据,由于获得的使用带宽0小于获得的带宽80M,因此DUT-3在IP报文头中设置优先级为6;对于发送至MAC4的数据,由于获得的使用带宽0小于获得的带宽50M,因此DUT-3在IP报文头中设置优先级为5。
通过上述处理后,在发送封装后的数据时,由于IP报文头中设置有不同优先级,因此数据在公网上转发时,公网上的各设备会按照IP报文头的优先级高低,优先对高优先级的数据进行转发,从而保证重要服务器的数据可以优先得到转发,不会被攻击流量打断,保证了数据中心工作稳定。
进一步的,本发明实施例中,在发送封装后的数据之后,还需要利用该数据所使用的带宽更新优先级信息表中对应的使用带宽。在图2所示的应用场景下,如果发送至MAC1的数据所使用的带宽为60M,发送至MAC2的数据所使用的带宽为60M,发送至MAC4的数据所使用的带宽为60M,则更新后的优先级信息表可以如表4所示。
表4
在之后的数据发送过程中,基于表4中记录的信息,对于发送至MAC1的数据,由于获得的使用带宽60M小于获得的带宽100M,因此DUT-3在IP报文头中设置优先级为7;对于发送至MAC2的数据,由于获得的使用带宽60M小于获得的带宽80M,因此DUT-3在IP报文头中设置优先级为6;对于发送至MAC4的数据,由于获得的使用带宽60M大于获得的带宽50M,因此DUT-3在IP报文头中设置优先级为0(即默认优先级)。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种边缘设备ED,应用于包括多个ED的以太网虚拟化互联EVI网络中,所述EVI网络中包括与ED连接的服务器,如图5所示,所述ED包括:
第一获得模块11,用于获得其它ED连接服务器对应的优先级、带宽以及介质访问控制MAC地址;
记录模块12,用于在优先级信息表中记录所述其它ED连接服务器的MAC地址、对应的优先级和带宽之间的对应关系,以及在所述对应关系中记录所述其它ED连接服务器对应的使用带宽为指定数值;
第二获得模块13,用于当本设备需要向其它ED连接服务器发送数据时,获得所述数据的目的MAC地址,并通过所述目的MAC地址匹配所述优先级信息表中记录的MAC地址,获得对应的优先级、带宽和使用带宽;
发送模块14,用于当所述获得的使用带宽小于所述获得的带宽时,在封装所述数据的IP报文头中设置优先级为所述获得的优先级,并发送封装后的数据,利用所述数据使用的带宽更新所述优先级信息表中对应的使用带宽。
所述第一获得模块11,具体用于当在ED上配置本设备连接服务器对应的优先级、带宽以及MAC地址时,获得本设备连接服务器对应的优先级、带宽以及MAC地址,并通知给其它ED,以及接收其它ED通知的所述其它ED连接服务器对应的优先级、带宽以及MAC地址;或者,
当在本设备上配置其它ED连接服务器对应的优先级、带宽以及MAC地址时,根据本设备的配置信息获得所述其它ED连接服务器对应的优先级、带宽以及MAC地址,并通知给所述EVI网络中其它ED。
所述第一获得模块11,进一步用于当在本设备上配置MAC地址、优先级和带宽之间的对应关系时,获得本设备连接服务器的MAC地址,根据获得的MAC地址和本设备的配置信息获得本设备连接服务器对应的优先级、带宽和MAC地址;或者,当在本设备上配置IP地址、优先级和带宽之间的对应关系时,获得本设备连接服务器的IP地址,通过获得的IP地址获得本设备连接服务器的MAC地址,并根据获得的MAC地址和本设备的配置信息获得本设备连接服务器对应的优先级、带宽和MAC地址。
本发明实施例中,用于通知服务器对应的优先级、带宽和MAC地址的报文包括EVI-中间系统到中间系统ISIS报文;其中,所述EVI-ISIS报文中携带有类型TYPE字段、长度LENGTH字段和值VALUE字段,所述TYPE字段表示所述EVI-ISIS报文用于传输服务器对应的优先级和带宽,所述LENGTH字段表示所述EVI-ISIS报文长度,所述VALUE字段用于携带服务器对应的优先级、带宽和MAC地址。
所述发送模块14,还用于当获得的使用带宽不小于所述获得的带宽时,在封装所述数据的IP报文头中设置优先级为指定优先级,并发送封装后数据。
所述发送模块14,具体用于在IP报文头的TOS字段中设置优先级。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。