一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

报文转发方法,报文转发系统以及相关设备与流程

2021-11-09 21:50:00 来源:中国专利 TAG:


1.本技术涉及网络通信领域,尤其涉及报文转发方法,报文转发系统以及相关设备。


背景技术:

2.软件定义网络(software defined network,sdn)是一种新型网络创新架构,是网络虚拟化的一种实现方式,通过其核心技术openflow将sdn的控制面与数据面分离开来,从而实现了网络流量的灵活控制。
3.sdn一般包括主机,sdn控制器和交换机。sdn控制器为sdn的大脑和中枢,掌管交换机的转发路径,直接决定了网络的流量分布。交换机通过数据链路接收到主机发送的数据报文后,先查询本地是否有与数据报文匹配的流表。若交换机有与数据报文匹配的流表,则执行动作,然后转发;若交换机没有与数据报文匹配的流表,则缓存该数据报文,并根据该数据报文的头部构造packet_in控制报文。通过控制链路向sdn控制器发送packet_in控制报文。sdn控制器根据其掌握的全局网络信息生成决策结果,并将决策结果通过控制链路返回给交换机。交换机利用决策结果创建本地的流表,根据该流表转发该数据报文。
4.随着sdn应用范围不断扩大,交换机应用场景、转发吞吐量不断增加,现有交换机无法支持高新建的网络应用需求;同时,现有方案需要缓存大量没有与流表匹配的数据报文,导致缓存溢出,数据报文丢失。


技术实现要素:

5.本技术提供了一种报文转发方法,报文转发系统以及相关设备,可以解决现有sdn架构中交换机控制链路带宽受限、配置下发慢、交换机缓存溢出而导致的数据丢失等问题。
6.本技术第一方面提供了一种报文转发方法,包括:
7.交换机与主机,第一sdn控制器相连,根据第一sdn控制器提供的决策结果转发主机的第一数据报文。首先,交换机接收主机发送的第一数据报文。然后,交换机可以查询是否有与第一数据报文匹配的流表。若没有与第一数据报文匹配的流表,则交换机通过数据链路向第一sdn控制器发送第一数据报文。交换机接收第一数据报文和决策结果,决策结果由第一sdn控制器根据第一数据报文得到。第一sdn控制器根据第一数据报文得到决策结果的方式可以有多种。例如,交换机还根据第一数据报文生成packet_in控制报文,向第一sdn控制器发送packet_in控制报文,第一sdn控制器根据packet_in控制报文生成决策结果。或者第一sdn控制器直接根据第一数据报文的头部生成决策结果。在交换机通过数据链路接收到决策结果后,交换机根据决策结果转发第一数据报文。若有与第一数据报文匹配的流表,则交换机可以根据相匹配的流表转发第一数据报文。
8.其中,交换机先向第一sdn控制器发送第一数据报文,再接收第一数据报文和决策结果。因此即使期间交换机的缓存溢出,也不会导致第一数据报文丢失。第一数据报文相比于packet_in控制报文,一般会有更大的体积,交换机通过数据链路发送和接收第一数据报文与决策结果,可以提升传输速度与处理能力,提升控制器下发决策结果的速率。且在交换
机不根据第一数据报文生成packet_in控制报文的情况下,还可以减少交换机对第一数据报文的数据处理量。
9.基于本技术第一方面,在本技术第一方面的第一种实施方式中,交换机通过数据链路接收第二数据报文,第二数据报文包括第一数据报文和决策结果,决策结果携带于第二数据报文的控制协议字段。其中,第二数据报文包括第一数据报文和决策结果,决策结果与第一数据报文可以同时到达交换机,使sdn控制器与交换机之间的状态同步时序简单化,缓解乱序问题。
10.基于本技术第一方面的第一种实施方式,在本技术第一方面的第二种实施方式中,在交换机通过数据链路接收到第二数据报文后,交换机可以读取第二数据报文中的第一数据报文和决策结果,根据决策结果进行相应操作,包含但不限于生成、删除、修改流表。然后根据流表转发第一数据报文。其中,决策结果是控制交换机的指令信息,可与流表相关,如决策结果是直接操作流表的信息,如直接生成流表、或对决策结果进行解密或格式转换等后生成流表,然后再将流表存储于本地存储空间;决策结果可与流表无关,如决策结果是命令交换机上报统计信息等。其中,交换机可以直接在第二数据报文中获得第一数据报文和决策结果,因此可以及时根据决策结果转发第一数据报文。相比于交换机先接收第一数据报文,再接收决策结果,可以减少第一数据报文在交换机中的缓存时间,减少因为时间的累积而导致交换机缓存溢出的情况。
11.基于本技术第一方面,或本技术第一方面的第一种实施方式至第二种实施方式中的任意一种实施方式,在本技术第一方面的第三种实施方式中,交换机通过数据链路接收第二sdn控制器发送的第一数据报文和决策结果,第一数据报文和决策结果由第二sdn控制器从第一sdn控制器得到。其中,第一数据报文和决策结果从第一sdn控制器到了第二sdn控制器,交换机通过数据链路从第二sdn控制器接收第一数据报文和决策结果。因此,第二sdn控制器有机会对决策结果进行确认和备份。因此,可以增加决策结果的准确性和稳定性。
12.基于本技术第一方面,或本技术第一方面的第一种实施方式至第三种实施方式中的任意一种实施方式,在本技术第一方面的第四种实施方式中,在交换机向第一sdn控制器发送第一数据报文之前,交换机先向第一sdn控制器发送请求信息,请求信息用于向第一sdn控制器请求第一数据报文的决策结果。其中,通过提前通知第一sdn控制器,可以让第一sdn控制器做好接收第一数据报文的准备,有利于第一sdn控制器合理安排存储资源或处理资源。
13.本技术第二方面提供了一种报文转发方法,包括:
14.第一sdn控制器与交换机相连,用于向交换机提供决策结果。第一sdn控制器通过数据链路接收交换机发送的第一数据报文,根据第一数据报文得到决策结果。第一sdn控制器根据第一数据报文得到决策结果的方式可以有多种。例如,交换机还根据第一数据报文生成packet_in控制报文,向第一sdn控制器发送packet_in控制报文,第一sdn控制器根据packet_in控制报文生成决策结果。或者第一sdn控制器直接根据第一数据报文的头部生成决策结果。在第一sdn控制器得到决策结果后,第一sdn控制器向交换机发送第一数据报文和决策结果,用于让交换机根据决策结果转发第一数据报文。
15.其中,第一sdn控制器可以接收交换机发送的第一数据报文。根据第一数据报文获得决策结果后,向控制器发送第一数据报文和决策结果。因此,即使期间交换机的缓存溢
出,也不会导致第一数据报文丢失。第一数据报文相比于packet_in控制报文,一般会有更大的体积,交换机通过数据链路发送和接收第一数据报文与决策结果,可以提升传输速度与处理能力,提升控制器下发决策结果的速率。在交换机不根据第一数据报文生成packet_in控制报文的情况下,还可以减少交换机对第一数据报文的数据处理量。
16.基于本技术第二方面,在本技术第二方面的第一种实施方式中,第一sdn控制器向交换机发送第二数据报文,第二数据报文包括第一数据报文和决策结果,决策结果携带于第二数据报文的控制协议字段。其中,第二数据报文包括第一数据报文和决策结果,决策结果与第一数据报文可以同时到达交换机,使sdn控制器与交换机之间的状态同步时序简单化,缓解乱序问题。
17.基于本技术第二方面,或本技术第二方面的第一种实施方式,在本技术第二方面的第二种实施方式中,第一sdn控制器向第二sdn控制器发送第一数据报文和决策结果,用于让第二sdn控制器保存决策结果,通过数据链路向交换机发送第一数据报文和决策结果。其中,第一sdn控制器向第二sdn控制器发送第一数据报文和决策结果,交换机可以从第二sdn控制器接收第一数据报文和决策结果。因此,第二sdn控制器有机会对决策结果进行确认(如重新决策)和备份。因此,可以增加决策结果的准确性和稳定性。
18.基于本技术第二方面,或本技术第二方面的第一种实施方式至第二种实施方式中的任意一种实施方式,在本技术第一方面的第三种实施方式中,在第一sdn控制器接收交换机发送的第一数据报文之前,第一sdn控制器接收交换机发送的请求信息。其中,第一sdn控制器可以根据请求信息做好接收第一数据报文的准备,有利于第一sdn控制器合理安排存储资源或处理资源。
19.本技术第三方面提供了一种报文转发系统,包括:
20.主机,交换机和第一sdn控制器;
21.其中,主机用于向交换机发送第一数据报文;交换机用于接收主机发送的第一数据报文,查询是否有与第一数据报文匹配的流表,若否,则交换机还用于通过数据链路向第一sdn控制器发送第一数据报文。第一sdn控制器用于通过数据链路接收交换机发送的第一数据报文,根据第一数据报文得到决策结果,向交换机发送第一数据报文和决策结果;交换机还用于通过数据链路接收第一数据报文和决策结果,根据决策结果转发第一数据报文。
22.基于本技术第三方面,在本技术第三方面的第一种实施方式中,第一sdn控制器具体用于通过数据链路向交换机发送第二数据报文,第二数据报文包括第一数据报文和决策结果,决策结果携带于第二数据报文的控制协议字段。
23.基于本技术第三方面的第一种实施方式,在本技术第三方面的第二种实施方式中,交换机具体用于获取第二数据报文中的决策结果,根据决策结果生成流表,根据流表转发第一数据报文。
24.基于本技术第三方面,或本技术第三方面的第一种实施方式至第二种实施方式中的任意一种实施方式,在本技术第三方面的第三种实施方式中,所述系统还包括:
25.第二sdn控制器;第一sdn控制器具体用于向第二sdn控制器发送的第一数据报文和决策结果;第二sdn控制器用于接收第一sdn控制器发送的第一数据报文和决策结果,保存决策结果,通过数据链路向交换机发送第一数据报文和决策结果;交换机具体用于通过数据链路接收第二sdn控制器发送的第一数据报文和决策结果。
26.基于本技术第三方面,或本技术第三方面的第一种实施方式至第三种实施方式中的任意一种实施方式,在本技术第三方面的第四种实施方式中,交换机还用于向第一sdn控制器发送请求信息;第一sdn控制器具体用于若接收到交换机发送的请求信息,则根据第一数据报文得到决策结果。
27.关于本技术第三方面中报文转发系统的有益效果的描述,可以参考前述第一方面,或第二方面对报文转发方法的描述。
28.本技术第四方面提供了一种交换机,包括:
29.第一接收单元,用于接收主机发送的第一数据报文;
30.查询单元,用于查询是否有与第一数据报文匹配的流表;
31.发送单元,用于若否,则通过数据链路向第一sdn控制器发送第一数据报文;
32.第二接收单元,用于通过数据链路接收第一数据报文和决策结果,决策结果由第一sdn控制器根据第一数据报文得到;
33.转发单元,用于根据决策结果转发第一数据报文。
34.基于本技术第四方面,在本技术第四方面的第一种实施方式中,第二接收单元具体用于通过数据链路接收第二数据报文,第二数据报文包括第一数据报文和决策结果,决策结果携带于第二数据报文的控制协议字段。
35.基于本技术第四方面的第一种实施方式,在本技术第四方面的第二种实施方式中,
36.转发单元具体用于获取第二数据报文中的决策结果;
37.转发单元具体用于根据决策结果生成流表;
38.转发单元具体用于根据流表转发第一数据报文。
39.基于本技术第四方面,或本技术第四方面的第一种实施方式至第二种实施方式中的任意一种实施方式,在本技术第四方面的第三种实施方式中,第二接收单元具体用于通过数据链路接收第二sdn控制器发送的第一数据报文和决策结果,第一数据报文和决策结果由第二sdn控制器从第一sdn控制器得到。
40.基于本技术第四方面,或本技术第四方面的第一种实施方式至第三种实施方式中的任意一种实施方式,在本技术第四方面的第四种实施方式中,发送单元还用于向第一sdn控制器发送请求信息,请求信息用于向第一sdn控制器请求第一数据报文的决策结果。
41.关于本技术第四方面中报文转发系统的有益效果的描述,可以参考前述第一方面对报文转发方法的描述。
42.本技术第五方面提供了一种sdn控制器,包括:
43.接收单元,用于通过数据链路接收交换机发送的第一数据报文;
44.处理单元,用于根据所述第一数据报文得到决策结果;
45.发送单元,用于向所述交换机发送所述第一数据报文和所述决策结果,用于让所述交换机根据所述决策结果转发所述第一数据报文。
46.基于本技术第五方面,在本技术第五方面的第一种实施方式中,发送单元具体用于向交换机发送第二数据报文,第二数据报文包括第一数据报文和决策结果,决策结果携带于第二数据报文的控制协议字段。
47.基于本技术第五方面,或本技术第五方面的第一种实施方式,在本技术第五方面
的第二种实施方式中,发送单元具体用于向第二sdn控制器发送第一数据报文和决策结果,用于让第二sdn控制器保存决策结果,通过数据链路向交换机发送第一数据报文和决策结果。
48.基于本技术第五方面,或本技术第五方面的第一种实施方式至第三种实施方式中的任意一种实施方式,在本技术第五方面的第四种实施方式中,处理单元具体用于若sdn控制器接收到交换机发送的请求信息,则根据第一数据报文得到决策结果的步骤。
49.关于本技术第五方面中sdn控制器的有益效果的描述,可以参考前述第二方面对报文转发方法的描述。
50.本技术第六方面提供了一种交换机,包括:
51.存储器和处理器;
52.其中,存储器用于存储程序;
53.处理器用于执行存储器中的程序,包括执行如上述第一方面或第一方面任意一种实施方式所述的方法。
54.本技术第七方面提供了一种交换机,包括:
55.存储器和处理器;
56.其中,存储器用于存储程序;
57.处理器用于执行存储器中的程序,包括执行如上述第二方面或第二方面任意一种实施方式所述的方法。
58.本技术第八方面提供了一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如第一方面或第一方面任意一种实施方式所述的方法;或执行如第二方面或第二方面任意一种实施方式所述的方法。
59.本技术第九方面提供了一种计算机程序产品,其特征在于,所述计算机程序产品在计算机上执行时,使得所述计算机执行如第一方面或第一方面任意一种实施方式所述的方法;或执行如第二方面或第二方面任意一种实施方式所述的方法。
附图说明
60.图1为本技术实施例中网络框架的示意图;
61.图2为本技术实施例中报文转发方法的一个流程示意图;
62.图3为本技术实施例中数据链路和控制链路的组网示意图;
63.图4为本技术实施例中第二数据报文的结构示意图;
64.图5为本技术实施例中报文转发方法的另一个流程示意图;
65.图6为本技术实施例中交换机的一个结构示意图;
66.图7为本技术实施例中sdn控制器的一个结构示意图;
67.图8为本技术实施例中交换机或sdn控制器的另一个结构示意图。
具体实施方式
68.本技术实施例提供了一种报文转发方法,报文转发系统以及相关设备,应用于网络通信领域,可以解决现有sdn架构中交换机控制链路带宽受限、配置下发慢,交换机缓存
溢出而导致的数据丢失等问题。
69.sdn采用数据与控制分离的思想,将控制功能从转发设备中剥离:交换机只负责高速数据转发,无复杂状态控制信号。sdn控制器实现网络功能的复杂状态管理与逻辑实现,把控全网资源视图,优化资源利用,提升网络管控效率与网络配置的灵活性。为实现sdn,目前将交换机的物理链路分为两类:数据链路与控制链路。控制链路的带宽一般远小于数据链路的带宽。sdn控制器与交换机通过控制端口相连,形成控制链路,交换机通过控制链路向sdn控制器发送统计、请求消息,sdn控制器通过控制链路向交换机发送决策结果。交换机与主机通过数据端口相连,形成数据链路,主机通过数据链路向交换机发送数据报文。为了防止数据报文抢占控制链路的带宽,影响决策结果的收发性能,交换机的控制端口与数据端口物理上分离,使用不同的物理通道。控制报文与数据报文相互独立,互不干扰。
70.sdn控制器对交换机的控制是通过决策结果下发机制完成的。本技术所描述的决策结果可以是流表,或者是多个流表组成的表组,或者其他控制交换机行为的信息。流表可以包括多个流表项,例如匹配域,控制域和计数器等。匹配域又称包头域,用于对交换机接收到的数据报文的包头内容进行匹配。数据报文的包头内容可以是源,mac(media access control)地址、目的mac地址、源ip(internet protocol)地址、目的ip地址等。流表的控制域用于指示交换机,在收到匹配的数据报文后应该如何对其进行处理。例如丢弃(drop),转发到交换机的指定端口,修改数据报文,其中,修改数据报文包括添加/删除虚拟局域网标识(virtual local area network identity,vlan id),push/pop标签,递增/递减ip生存时间(time to live,ttl)等,转发到特殊端口的序列等。
71.交换机在接收到主机的数据报文后,需要查询是否有与数据报文的包头内容相匹配的流表。若没有与数据报文的包头内容相匹配的流表,则交换机缓存数据报文,生成packet_in控制报文,向sdn控制器发送packet_in控制报文,等待sdn控制器下发流表。由于交换机的缓存队列空间有限,在交换机的数据报文吞吐量较大、短连接较多时,需要缓冲大量的数据报文。且单个数据报文需要缓冲的时间取决于控制器下发流表的速度,若控制器下发流表的速度较长,则会导致缓冲量进一步增加。交换机缓存队列溢出的风险增加,导致数据报文丢失。
72.本技术实施例中,交换机先向sdn控制器发送第一数据报文,再接收第一数据报文和决策结果。即使期间交换机的缓存溢出,也不会导致第一数据报文丢失。在交换机不根据第一数据报文生成packet_in控制报文的情况下,还可以减少交换机对第一数据报文的数据处理量。第一数据报文相比packet_in控制报文,一般会有更大的体积,交换机通过数据链路发送和接收第一数据报文与决策结果,可以提升交换机传输速度与处理能力,提升控制器下发决策结果的速率。在交换机不缓存第一数据报文的情况下,还可以减小交换机缓存的数据量,为交换机节约缓存资源。
73.下面对本技术实施例的网络框架进行描述。示例性的,本技术实施例所涉及附图中以虚线标识的特征或内容可理解为实施例可选地操作或者可选地结构。
74.请参阅图1,图1为本技术实施例中网络框架的示意图。
75.图1包括:主机101,交换机102,第一sdn控制器103。
76.主机101与路由器102相连,连接方式可以是无线连接,也可以是有线连接。主机101可以是手机,平板电脑,物联网终端设备,车载设备,可穿戴设备,计算设备等。主机101
主要的功能是向交换机102发送第一数据报文,试图通过交换机102的转发功能将第一数据报文发送到目的地。
77.交换机102是一种用于电或光信号转发的网络设备。交换机102可以为接入交换机102的任意两个网络节点提供独享的电或光信号通路。常见的交换机102包括以太网交换机、电话语音交换机、光纤交换机等。交换机102与第一sdn控制器103相连,交换机102主要的功能是接收主机101发送的第一数据报文,查询是否有与第一数据报文相匹配的流表,若否,则通过数据链路向第一sdn控制器103发送第一数据报文,通过数据链路接收第一数据报文和决策结果。在接收到第一数据报文和决策结果后,根据决策结果转发第一数据报文。
78.第一sdn控制器103可以是硬件,可以是应用程序。当第一sdn控制器103是应用程序时,第一sdn控制器103运行于某台设备,该设备不是交换机102。第一sdn控制器103可以基于如openflow等协议与交换机102相连。第一sdn控制器103主要的功能是通过数据链路接收交换机102发送的第一数据报文,然后根据掌握的全局网络信息进行决策,以得到决策结果,并向交换机102发送决策结果和第一数据报文。
79.可选地,图1还包括第二sdn控制器104,第二sdn控制器104与第一sdn控制器103,交换机102相连。在包括第二sdn控制器104的情况下,第一sdn控制器103通过第二sdn控制器104向交换机102发送第一数据报文和决策结果。第二sdn控制器104主要的功能是接收第一sdn控制器103发送的第一数据报文和决策结果,备份该决策结果,通过数据链路向交换机102发送第一数据报文和决策结果。
80.根据前面的描述可知,本技术实施例可以包括第二sdn控制器,也可以不包括第二sdn控制,下面将分开进行描述。
81.请参阅图2,图2为本技术实施例中报文转发方法的一个流程示意图图。
82.在步骤201中,主机向交换机发送第一数据报文。
83.主机通过接入认证,免认证等方式与交换机建立通信连接。在建立通信连接后,主机可以试图向交换机发送第一数据报文。
84.在步骤202中,交换机查询是否有与第一数据报文相匹配的流表。
85.在步骤203中,若否,则交换机向第一sdn控制器发送请求信息。
86.在交换机向第一sdn控制器发送第一数据报文之前,交换机先向第一sdn控制器发送请求信息,请求信息用于向第一sdn控制器请求第一数据报文的决策结果。其中,通过提前通知第一sdn控制器,可以让第一sdn控制器做好接收第一数据报文的准备,有利于第一sdn控制器合理安排存储资源或处理资源。
87.可选地,交换机通过数据链路向第一sdn控制器发送请求信息,该数据链路与传输第一数据报文的数据链路相同。请求信息用于通知第一sdn控制器,让第一sdn控制器做好接收第一数据报文的准备,有利于第一sdn控制器合理安排存储资源或处理资源。第一数据报文将会通过数据链路传输,若请求信息也通过数据链路传输,通过第一sdn控制器与交换机的约定,可以简化请求信息的内容。例如,请求信息可以无需包含第一数据报文将会从哪个端口传输的信息。
88.可选地,步骤203可以不执行。交换机和第一sdn控制器可以事先约定,第一sdn控制接收到第一数据报文后,根据第一数据报文得到决策结果,向交换机发送第一数据报文和决策结果。
89.在步骤204中,交换机通过数据链路向第一sdn控制器发送第一数据报文。
90.如图3所示,图3为本技术实施例中数据链路和控制链路的组网示意图。交换机通过数据端口301与主机建立连接,因此,交换机可以通过数据链路接收主机发送的第一数据报文。交换机还通过数据端口303与第一sdn控制器建立连接,若没有与第一数据报文相匹配的流表,则交换机通过数据链路向第一sdn控制器发送第一数据报文。确定是数据链路还是控制链路需要通过交换机上的端口来判断。相比于控制端口,数据端口拥有更大的带宽,可以在相同时间内传输更大的数据量。本技术实施例中,通过向第一sdn控制器发送第一数据报文,可以使得第一数据报文不丢失。同时,交换机和第一sdn控制之间的数据传输量会稍微增加,但由于只有每个流的首个数据包需要发送给控制器进行决策请求,流的后续报文会根据交换机中缓存的决策结果直接转发,所以发送数据报文给控制器的带宽消耗在可接受范围内。另外,交换机通过数据端口与第一sdn控制器相连,可以增大交换机与第一sdn控制器之间的传输带宽,提升对第一数据报文、第二数据报文的传输速度与处理性能。
91.可选地,交换机不根据第一数据报文生成packet_in控制报文。packet_in控制报文是根据第一数据报文得到的,在第一sdn控制器可以接收到第一数据报文的情况下,交换机可以不根据第一数据报文生成packet_in控制报文。其中,原来的决策结果需要经过2个步骤才能得到,2个步骤分别是交换机根据第一数据报文得到packet_in控制报文,第一sdn控制器根据packet_in控制报文得到决策结果。本技术实施例中的决策结果可以是第一sdn控制器直接根据第一数据报文得到,没有获得packet_in控制报文的步骤,因此可以简化处理流程。
92.在步骤205中,第一sdn控制器根据第一数据报文得到决策结果。
93.第一sdn控制器根据第一数据报文得到决策结果的方式可以有多种。例如,交换机还根据第一数据报文生成packet_in控制报文,然后向第一sdn控制器发送第一数据报文和packet_in控制报文,第一sdn控制器根据接收到的packet_in控制报文生成决策结果。或者,若第一sdn控制器没有接收到packet_in控制报文,第一sdn控制器可以根据第一数据报文的头部信息生成决策结果。第一数据报文的头部信息包括源ip地址,源mac地址,vlan id等。在第一sdn控制器根据第一数据报文得到决策结果后,第一sdn控制器可以保存决策结果。
94.在步骤206中,第一sdn控制器通过数据链路向交换机发送决策结果和第一数据报文。
95.可选地,第一sdn控制通过数据链路向交换机发送第二数据报文,第二数据报文包括决策结果和第一数据报文。如图4所示,图4为本技术实施例中第二数据报文的结构示意图。第二数据报文可以是不同的格式。第二数据报文401为以太报文,包括外层以太头,决策结果以及ip载荷。第二数据报文402为vxlan数据报文,包括外层以太头,vxlan头,内层以太头,802.1q,决策结果以及ip载荷。第二数据报文403为vxlan-gpe数据报文,包括外层以太头,vxlan-gpe头,决策结果,内层以太头,802.1q协议以及ip载荷。第二数据报文404为vlan数据报文,包括外层以太头,802.1qet=0x
×
894f协议,决策结果以及ip载荷。通过将第一数据报文和决策结果携带与第二数据报文,使得控制信号与数据信号同时到达,使得第一sdn控制器与交换机之间的状态同步时序简单化。特别地,第一sdn控制器是大规模分布式的网关。对于大规模分布式的网关,更需要控制信号与数据信号同时到达,缓解时序问题。
96.可选地,交换机不通过控制链路与第一sdn控制器建立连接,交换机和第一sdn控制器只通过数据链路建立连接。原来交换机通过控制端口302与第一sdn控制器建立连接,是因为只需要传输控制信号,例如决策结果。本技术实施例中,交换机与第一sdn控制器之间不仅需要控制信号,还需要传输数据信号。在交换机与第一sdn控制器建立数据链路连接的情况下,可以无需再建立控制链路连接。但是为保证控制信号可以优先传输,可以通过优先级的方式来传输数据。例如:交换机通过数据链路向第一sdn控制器发送控制信号和第一数据报文,第一数据报文为数据信号,控制信号的优先级高于第一数据报文。例如:第一sdn控制器通过数据链路向交换机发送控制信号和第二数据报文,第二数据报文包括控制信号和数据信号,控制信号的优先级高于第二数据报文。若第一sdn控制器与交换机的数据传输包括三种类型,分别是控制信号,数据信号和第二数据报文,则三种类型的优先级关系为:控制信号优先级高于第二数据报文,第二数据报文优先级高于数据信号。
97.在步骤207中,交换机根据决策结果转发第一数据报文。
98.根据前面的描述,决策结果可以是流表,或是多个流表组成的表组,或其他控制交换机的信息。流表携带有匹配域和控制域的信息,交换机在接收到决策结果后,交换机根据控制域中的信息,执行对第一数据报文的动作,例如转发第一数据报文。
99.可选地,若交换机接收到第二数据报文,则交换机获取第二数据报文中的决策结果,根据决策结果进行相应操作。其中,决策结果一般是与流表相关,交换机根据决策结果直接操作流表,如生成流表、或对决策结果进行解密或格式转换等后生成流表,然后再将流表存储于本地存储空间;决策结果也可与流表无关,如是命令交换机上报统计信息等。
100.上面对不包括第二sdn控制器的报文转发方法进行了描述,下面对包括第二sdn控制器的报文转发方法进行描述。
101.请参阅图5,图5为本技术实施例中报文转发方法的另一个流程示意图。
102.在步骤501中,主机向交换机发送第一数据报文。
103.在步骤502中,交换机查询是否有与第一数据报文相匹配的流表。
104.在步骤503中,若否,则交换机向第一sdn控制器发送请求信息。
105.在步骤504中,交换机通过数据链路向第一sdn控制器发送第一数据报文。
106.在步骤505中,第一sdn控制器根据第一数据报文得到决策结果。
107.步骤501至步骤505的描述与前述图2中步骤201至步骤205的描述类似。
108.在步骤506中,第一sdn控制器向第二sdn控制器发送决策结果和第一数据报文。
109.可选地,第一sdn控制通向交换机发送第二数据报文,第二数据报文包括决策结果和第一数据报文。
110.在步骤507中,第二sdn控制器保存决策结果。
111.可选地,在第二sdn控制器保存决策结果前,第二sdn控制器可以先确定接收的决策结果是否正确。第二sdn控制器确定决策结果是否正确的方式包括:第二sdn控制器获取第一数据报文的头部信息,根据第二sdn控制掌握的全局信息,获得新的决策结果。在获得新的决策结果后,第二sdn控制器对比新的决策结果和从第一sdn控制器接收的决策结果。若两个决策结果相同,则第二sdn控制器确定接收的决策结果正确,保存决策结果。若两个决策结果不相同,则第二sdn控制器保存新的决策结果,并向第一sdn控制器发送新的决策结果,或向第一sdn控制器发送新的决策结果与第一数据报文。两个决策结果是否相同应当
考虑决策结果的匹配域和控制域都否相同,若两者中有一个不同,则认为两个决策结果不相同。导致两个决策结果不同的原理可能是:第一sdn控制器和第二sdn控制器掌握的全局信息不同,或第一sdn控制器和第二sdn控制器掌握的全局信息相同,在第一sdn控制器生成决策结果后,第一sdn控制器和第二sdn控制器更新了掌握的全局信息。
112.若第二sdn控制器向第一sdn控制器发送新的决策结果与第一数据报文,则第二sdn控制器无需向交换机发送新的决策结果与第一数据报文。第一sdn控制器接收到新的决策结果与第一数据报文后,第一sdn控制器保存新的决策结果,通过数据链路向交换机发送新的决策结果与第一数据报文。
113.在步骤508中,第二sdn控制器向交换机发送决策结果和第一数据报文。
114.若两个决策结果相同,第二sdn控制器保存决策结果,则第二sdn控制器通过数据链路向交换机发送决策结果和第一数据报文。第二sdn控制器与交换机的连接方式如图3所示。交换机通过数据端口305与第二sdn控制器相连,形成数据链路。可选地,交换机不通过控制链路与第二sdn控制器建立连接,交换机和第一sdn控制器只通过数据链路建立连接。
115.在步骤509中,交换机根据决策结果转发第一数据报文。
116.步骤509的描述与前述图2中步骤207的描述类似。
117.上面对报文转发方法进行了描述,下面对本技术中的交换机进行描述。
118.请参阅图6,图6为本技术实施例中交换机的一个结构示意图。
119.本技术实施中的交换机包括:
120.第一接收单元601,用于接收主机发送的第一数据报文;
121.查询单元602,用于查询是否有与第一数据报文匹配的流表;
122.发送单元603,用于若否,则通过数据链路向第一sdn控制器发送第一数据报文;
123.第二接收单元604,用于通过数据链路接收第一数据报文和决策结果,决策结果由第一sdn控制器根据第一数据报文得到;
124.转发单元605,用于根据决策结果转发第一数据报文。
125.在图6的基础上,本技术实施例中的交换机还可以包括以下内容:
126.第二接收单元604具体用于通过数据链路接收第二数据报文,第二数据报文包括第一数据报文和决策结果,决策结果携带于第二数据报文的控制协议字段。
127.转发单元605具体用于获取第二数据报文中的决策结果;
128.转发单元605具体用于根据决策结果生成流表;
129.转发单元605具体用于根据流表转发第一数据报文。
130.第二接收单元604具体用于通过数据链路接收第二sdn控制器发送的第一数据报文和决策结果,第一数据报文和决策结果由第二sdn控制器从第一sdn控制器得到。
131.发送单元603还用于向第一sdn控制器发送请求信息,请求信息用于向第一sdn控制器请求第一数据报文的决策结果。
132.上面对交换机进行了描述,下面对本技术中的sdn控制器进行描述。
133.请参阅图7,图7为本技术实施例中sdn控制器的一个结构示意图。
134.本技术实施中的sdn控制器包括:
135.接收单元701,用于通过数据链路接收交换机发送的第一数据报文;
136.处理单元702,用于根据所述第一数据报文得到决策结果;
137.发送单元703,用于向所述交换机发送所述第一数据报文和所述决策结果,用于让所述交换机根据所述决策结果转发所述第一数据报文。
138.在图7的基础上,本技术实施例中的交换机还可以包括以下内容:
139.发送单元703具体用于向交换机发送第二数据报文,第二数据报文包括第一数据报文和决策结果,决策结果携带于第二数据报文的控制协议字段。
140.发送单元703具体用于向第二sdn控制器发送第一数据报文和决策结果,用于让第二sdn控制器保存决策结果,通过数据链路向交换机发送第一数据报文和决策结果。
141.接收单元701具体用于通过数据链路接收交换机发送的第一数据报文;发送单元具体用于通过数据链路向交换机发送第一数据报文和决策结果。
142.处理单元702具体用于若sdn控制器接收到交换机发送的请求信息,则根据第一数据报文得到决策结果的步骤。
143.请参阅图8,图8为本技术实施例中交换机的另一个结构示意图。
144.如图8所示,交换机800包括处理器810,与所述处理器810耦接的收发器820,存储器830。交换机800可以是图2、图3和图5中的交换机。处理器810可以是中央处理器(central processing unit,cpu),网络处理器(network processor,np)或者cpu和np的组合。处理器还可以是专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。处理器810可以是指一个处理器,也可以包括多个处理器。处理器810用于查询是否有与第一数据报文匹配的流表。
145.存储器830可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);存储器830也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);存储器830还可以包括上述种类的存储器的组合。
146.收发器820是用于在设备间接收和/或发送电信号的硬件电子器件。收发器820包括光纤收发器,射频收发器和can收发器以及宽带通信收发器等。收发器820用于接收主机发送的第一数据报文;收发器820还用于通过数据链路接收第一数据报文和决策结果,决策结果由第一sdn控制器根据第一数据报文得到;收发器820还用于根据决策结果转发第一数据报文。
147.此外,处理器810执行存储器中的计算机可读指令后,可以按照所述计算机可读指令的指示,执行交换机可以执行的全部操作,例如交换机在与图2,图5对应的实施例中执行的操作。
148.请参阅图8,图8还可以为本技术实施例中sdn控制器的另一个结构示意图。
149.如图8所示,sdn控制器800包括处理器810,与所述处理器810耦接的收发器820,存储器830。sdn控制器800可以是图2、图3和图5中的第一sdn控制器。sdn控制器800中的处理器,收发器和存储器的描述可以参考前述交换机800的描述。
150.处理器810用于根据第一数据报文得到决策结果。收发器820用于通过数据链路接
收交换机发送的第一数据报文;收发器820还用于向交换机发送第一数据报文和决策结果,用于让交换机根据决策结果转发第一数据报文。此外,处理器810执行存储器中的计算机可读指令后,可以按照所述计算机可读指令的指示,执行第一sdn控制器可以执行的全部操作,例如第一sdn控制器在与图2,图5对应的实施例中执行的操作。
151.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
152.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
153.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
154.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:闪存盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献