一种流量转发方法及装置与流程

文档序号:20203423发布日期:2020-03-27 20:52阅读:210来源:国知局
一种流量转发方法及装置与流程

本发明涉及软件定义网络技术领域,特别涉及一种流量转发方法及装置。



背景技术:

软件定义网络是一种新兴的网络架构。在如今大部分大规模网络场景下,软件定义网络还是依赖传统的转发方法,包括:

1.逐跳转发方法

该转发方案原理是每当新流到达网络的入口交换机时,交换机就会向控制器发送新流建立请求,然后在控制器规划制定的转发路径上的每一个交换机放置流条目。这样的方案因为要求大量的控制流量和流表空间过度消耗,使得转发性能大幅下降,导致流表空间冗余。

2.基于多协议标签交换(mpls)标签的任意转跳转发方法

如果是仅仅在合适的流条目上封装一定长度的有序的多协议标签交换(mpls)标签列表,表示数据流中的转发路径每一跳的路由信息,这种转发方法在数据包数目较多以及转发跳数较多的数据流环境中带来的带宽开销还是很严重,原因是其数据包报头依旧会增加上额外的mpls标签,引起多余的转发流量开销。

3.基于vlan标记中的数据字段标识符(vid字段)的转发方法

通过在数据包报头中未被利用的vid字段来传输路由信息,这样的转发方法在软件定义网络框架中,交换机的不少端口不支持读取编码在vid字段的路由信息。在大数据包以及较多跳数的数据流中,基于vid标签的转发方案也不一定可以支持整个长路径的数据包转发。这样的转发方案对于控制器规划大数据流的转发路径增加了操作难度和复杂性。

综上所述,以上几个常用的转发方法都不适用软件定义网络中数据包数目较多和转发跳数较多的数据流的场景,其转发方案要么效率极低,要么流量开销太大,还存在转发过程中流表空间使用过多的问题。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提供一种流量转发方法及装置,此方法及装置可实现节省流表空间,降低带宽开销。

本发明的目的通过以下的技术方案实现:一种流量转发方法,包括步骤:

向控制器发送链路建立请求,在控制器收到并接受请求后,由控制器规划数据包转发路径,转发路径上的交换机配置流条目的路由信息;

通过交换机识别第一数据包路由信息,若该数据包的路由信息与流条目的路由信息不匹配或该交换机不存在流条目的路由信息,则向控制器发送转发请求;

将第一数据包发送到编码设备,进行路由信息的封装,根据转发路径中交换机端口读取功能的不同配置不同的路由信息;

将带有封装好路由信息的第一数据包发回到原交换机处;

根据封装好的路由信息,将第一数据包转发到目的地址;

因为在传输过程中存在丢包的情况,有一部分数据包无法正确地转发到目的地址,其余数据包到达目的地址后,判断目的地址和转发的目标地址是否相同;若相同则继续向控制器请求下一数据包的转发,若不同则继续向控制器发送转发请求;

若第一数据包的路由信息与流条目的路由信息存在对应转发端口,则通过交换机转发该数据包;待所有数据包转发完成后,结束流量转发过程。

一种流量转发装置,包括:

控制器,用于:

接收链路建立请求,规划数据包的转发路径;

接收转发请求;

识别并统计交换机端口的读取功能;

控制编码设备封装路由信息,所述控制器与数据包分离,不在同一平面(即sdn中控制平面和数据平面分离);

若干交换机,用于接收、转发传输数据包、向控制器发送转发请求,位于转发路径上的交换机内置流条目;

编码设备,用于封装路由信息至数据包,根据转发路径中交换机端口读取功能的不同配置不同的路由信息。

本发明与现有技术相比,具有如下优点和有益效果:

本发明通过对不同的交换机读取功能规划不同的数据包转发路径,将路径中交换机的路由信息封装到数据包上,节省流表空间的使用并降低带宽开销。

附图说明

图1是本发明实施例一个新数据流进入入口交换机后,第一数据包在转发路径的转发过程示意图;

图2是本发明实施例一种流量转发方法整体流程图;

图3是本发明实施例接下来的同一个数据流的其余数据包的整体转发过程示意图。

具体实施方式

为了更好的理解本发明的技术方案,下面结合附图详细描述本发明提供的实施例,但本发明的实施方式不限于此。

本申请实施例通过提供一种流量转发方法及装置,解决了现有技术中在数据包数目较多和转发跳数较多的数据流的场景的转发方案要么效率极低,要么流量开销太大,还存在转发过程中流表空间使用过多的问题。

本申请实施例中的技术方案为解决上述串扰的问题,总体思路如下:

该转发方法的核心思路基于一个动态规划的方法,当控制器无法使用基于vid字段转发方法之后,控制器再切换到基于mpls的转发方法。将数据包数目和转发跳数的复杂性转换成控制器指令的多样性,既能在数据包较大,跳数较多的流中,极大程度地减少带宽的浪费,还能实现低流表空间的使用。

结合了传统的多协议标签交换(mpls)标签转发方法和基于vlan标记中的数据字段标识符(vid字段)转发方法两者的优点。包括在数据包转发过程前,控制器首先先判断转发路径中的交换机能否读取编写在数据包报头vid字段上的路由信息,不能读取的交换机选择用基于mpls标签的转发方案。控制器在接受新数据包建立链路的请求后,在存在多个转发端口的交换机处(可以理解成十字路口)放置流条目:其作用是用于指示数据包向控制器发送转发请求,完成正常转发。当控制器收到数据包的路由请求后,下发到特定编码设备,编码设备完成对数据包的编码工作。在编码工作完成后,编码设备再把数据包转发回交换机,数据包带着封装好的路由信息,继续正常转发到目的地址。

这个转发方案更加适用在数据包数目较大,转发距离较长的数据流传输环境中。

首先需要说明的是,在本发明各个实施例中,所提及的术语为:

带宽开销:转发通信中的有用信息的开销;

路由信息:指示数据包转发到目的地址的必要信息,是基于路由协议的编码,本实施例中包含数据包转发路径的信息;

目的地址:数据包想要到达的最终地址;

目标地址:数据包根据封装的路由信息最终到达的地址;

流条目:即流表条目,在sdn架构中类似于传统网络路由器中的路由表;

流表空间:储存流表花费的内存空间;

路由表:存储着指定特定网络地址的路径。含有网络周边的拓扑信息,主要目的是wile实现路由协议和静态路由选择。

本实施例中,路由信息封装与数据包包头,流条目则存储于交换机内部;在转发中,交换机根据流条目信息匹配数据包的路由信息后,转发数据包。

实施例1

如图1-3所示,一种流量转发方法,包括步骤:

步骤101:在向控制器发送转发请求前加入预处理机制,通过控制器识别并统计全局交换机端口能和不能读取vid字段中的路由信息的情况;

步骤102:源主机向控制器发送链路建立请求,请求发送第一数据包,在控制器收到并接受请求后,由控制器规划数据包转发路径,转发路径上的交换机配置流条目的路由信息;

步骤103:通过交换机识别第一数据包路由信息,若该数据包的路由信息与流条目的路由信息不匹配或该交换机不存在流条目的路由信息,则向控制器发送转发请求;

步骤104:根据转发路径中交换机端口读取功能的不同对数据包封装不同的路由信息;通过控制器识别转发路径中的交换机的端口是否支持读取vid字段中的路由信息,并发送封装指令至编码设备,若支持读取,封装内容为该交换机的路由信息,通过编码设备将路由信息封装至数据包vid字段;若不支持读取,封装内容为该交换机路由信息的mpls标签;通过编码设备将mpls标签插入第一数据包的包头前;

步骤105:将带有封装好路由信息的第一数据包发回到原交换机处;

步骤106:根据封装好的路由信息,将第一数据包转发到目的地址;

步骤107:第一数据包到达目的地址后,由于存在丢包的情况,需判断目的地址和转发的目标地址是否相同;若相同则继续向控制器请求下一数据包的转发,若不同则继续向控制器发送转发请求;

步骤108:若第一数据包的路由信息与流条目的路由信息匹配,则通过交换机转发该数据包;

步骤109:待所有数据包转发完成后,结束流量转发过程。

进一步的,在控制器规划转发路径时,在存在多个转发端口的交换机上放置流条目的路由信息,用于指示数据包向控制器发送转发请求,则指示数据包从一个放置有流条目的路由信息的交换机转发到下一个放置流条目的路由信息的交换机上。

数据包转发过程中,控制器工作流程如下:

步骤201:控制器在网络初始化阶段,首先对全局交换机进行一次统计预处理,这个预处理目的是计算所有的交换机的信息,统计端口是否能读取vid字段中的路由信息。

步骤202:控制器接受到新数据包的链路建立请求,然后规划转发路径。

步骤203:控制器规划转发路径,并且在交换机上放置流条目的路由信息。

步骤204:控制器识别接下来的转发路径中是否存在交换机的端口支持读取vid字段中的路由信息。是则转到步骤205,否则转到步骤206。

步骤205:控制器下发指令到专用编码设备,并由编码设备对数据包进行路由信息的封装(编码设备会在数据包的vid字段进行路由信息的封装)。

步骤206:控制器下发指令到专用编码设备,并由编码设备对数据包进行路由信息的封装(编码设备会在数据包的包头前插入编码路由信息的mpls标签)。

步骤207:控制器等待数据包发出的下一次转发请求。收到则转到步骤208,未收到则转到步骤210。

步骤208:控制器收到数据包发出的下一次请求。

步骤209:控制器为数据包规划接下来的转发路径。转到步骤304。

步骤210:控制器没有收到数据包再上发的转发请求,默认数据包已经到达目标地址。

如图3所示,当第一个数据包到达目标地址后,其余数据包就是根据交换机中保存的路由表进行转发,不再需要一一向控制器询问转发路径,减少控制器工作负载。

图1内容:

一、典型转发方案:数据包在开始转发前,向控制器询问转发路径,控制器正常工作,下发指令到专用编码设备,设备根据控制器的转发方案,封装好路由信息到数据包上。数据包根据报头的路由信息,到达目的地址。

二、经交换机转发方案:数据包根据封装好的路由信息转发到达目标地址后,发现还没到达目的主机地址,通过其所在交换机继续向控制器请求转发信息。控制器继续根据要求,封装路由信息到数据包报头,直到数据包完全完成转发过程。

实施例2

一种流量转发装置,包括:

控制器,用于:

接收链路建立请求,规划数据包的转发路径;

接收转发请求;

识别并统计交换机端口能和不能读取vid字段中的路由信息的情况、控制数据包的转发路径、控制编码设备封装路由信息,所述控制器与数据包分离,不在同一平面(即sdn中控制平面和数据平面分离);

若干交换机,用于接收、转发数据包、向控制器发送转发请求,位于转发路径上的交换机内置流条目的路由信息,包括存在多个转发端口的交换机和只有一个转发端口的交换机;

编码设备,用于封装路由信息至数据包。

上述实施例由数据包进入入口交换机发送链路建立请求后,控制器根据请求规划转发路径,控制器根据交换机本身读取路由信息的功能,选择合适的转发方案,把一部分的路由信息封装到数据包上,这样数据包可以顺利地转发到下一个放置流条目的路由信息的交换机上。由于交换机有众多转发端口,若没有具体指示而随意地把数据包由某个端口转发,不易转发到正确的目的地址,通过在适当的交换机上放置流条目的路由信息,并且结合传统的mpls标签转发方案和基于vid字段的转发方案,可以很大程度上节省流表空间,控制器选择不同的转发方案来使得该环境下数据流的转发满足低流表空间的使用和带宽开销降低的平衡。并且这样还可以避免mpls标签太长导致的流量浪费,另外,两种转发方案的结合,同时还可以避免vid字段无法支持在长的转发路径上编码路由信息的缺点。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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