一种sdn流表下发方法和装置制造方法

文档序号:7816749阅读:195来源:国知局
一种sdn流表下发方法和装置制造方法
【专利摘要】本发明提供一种SDN流表下发方法和装置。所述方法包括:从SDN设备发送的packet-in报文中获取所述packet-in报文的请求优先级,所述packet-in报文的请求优先级由所述SDN设备根据所述packet-in报文对应的未匹配到流表的数据报文的报文优先级进行封装;按照请求优先级从高到低的顺序,确定所述数据报文的转发路径;向所述SDN设备下发针对所述SDN设备的用于在所述转发路径上转发所述数据报文的流表。通过本发明的技术方案,可以减少高优先级的数据报文的转发时延,提升用户体验。
【专利说明】一种SDN流表下发方法和装置

【技术领域】
[0001] 本发明涉及通信【技术领域】,尤其涉及一种SDN流表下发方法和装置。

【背景技术】
[0002] 随着互联网业务的不断发展,互联网业务对于在互联网上部署的时间要求越来越 短,比如几年前一个业务部署往往需要几个月的时间,而且还要花费大量的人力。而现在一 个互联网业务可能会要求在投入少量人力的情况下,在几天内完成部署。如何快速部署一 个互联网业务,这就涉及到一些新的技术,比如SDN(Software Defined Network,软件定义 网络)技术,在SDN定义的模型下,可以通过软件的方式实现对业务的部署,从而减少人力 投入,缩短工期。
[0003] SDN改变了现有网络的架构,采用全新的设计理念,将控制平面和数据平面分离, 并把以前固化在网络设备中的控制平面转移到可访问的计算设备中,从而实现了对网络流 量的灵活控制,为核心网络及应用的创新提供了良好的平台。


【发明内容】

[0004] 有鉴于此,本发明提供一种SDN流表下发方法和装置。
[0005] 具体地,本发明是通过如下技术方案实现的:
[0006] 一种SDN流表下发方法,应用在SDN控制器上,所述方法包括:
[0007] 从SDN设备发送的packet-in报文中获取所述packet-in报文的请求优先级,所 述packet-in报文的请求优先级由所述SDN设备根据所述packet-in报文对应的未匹配到 流表的数据报文的报文优先级进行封装;
[0008] 按照请求优先级从高到低的顺序,确定所述数据报文的转发路径;
[0009] 向所述SDN设备下发针对所述SDN设备的用于在所述转发路径上转发所述数据报 文的流表。
[0010] 进一步地,所述按照请求优先级从高到低的顺序,确定所述数据报文的转发路径 包括:
[0011] 根据所述请求优先级将所述packet-in报文加入对应的缓存队列;
[0012] 按照所述缓存队列的队列优先级从高到低的顺序,获取所述缓存队列中缓存的 packet-in报文,并确定所述packet-in报文对应的数据报文的转发路径。
[0013] 进一步地,所述方法还包括:
[0014] 向所述转发路径上除所述SDN设备之外的其它各SDN设备下发针对该SDN设备的 用于在所述转发路径上转发所述数据报文的流表。
[0015] 进一步地,所述向所述转发路径上除所述SDN设备之外的其它各SDN设备下发针 对该SDN设备的用于在所述转发路径上转发所述数据报文的流表包括:
[0016] 判断所述packet-in报文的请求优先级是否不小于阈值;
[0017] 如果所述packet-in报文的请求优先级不小于所述阈值,则向所述转发路径上除 所述SDN设备之外的其它各SDN设备下发针对该SDN设备的用于在所述转发路径上转发所 述数据报文的流表。
[0018] 进一步地,所述从SDN设备发送的packet-in报文中获取所述packet-in报文的 请求优先级包括:
[0019] 从所述packet-in报文的DSCP字段中获取所述packet-in报文的请求优先级。
[0020] 一种SDN流表下发装置,应用在SDN控制器上,所述装置包括:
[0021] 优先级获取单元,用于从SDN设备发送的packet-in报文中获取所述packet-in 报文的请求优先级,所述packet-in报文的请求优先级由所述SDN设备根据所述packet-in 报文对应的未匹配到流表的数据报文的报文优先级进行封装;
[0022] 路径确定单元,用于按照请求优先级从高到低的顺序,确定所述数据报文的转发 路径;
[0023] 第一下发单元,用于向所述SDN设备下发针对所述SDN设备的用于在所述转发路 径上转发所述数据报文的流表。
[0024] 进一步地,所述路径确定单元,具体用于根据所述请求优先级将所述packet-in 报文加入对应的缓存队列;按照所述缓存队列的队列优先级从高到低的顺序,获取所述缓 存队列中缓存的packet-in报文,并确定所述packet-in报文对应的数据报文的转发路径。
[0025] 进一步地,所述装置还包括:
[0026] 第二下发单元,用于向所述转发路径上除所述SDN设备之外的其它各SDN设备下 发针对该SDN设备的用于在所述转发路径上转发所述数据报文的流表。
[0027] 进一步地,所述第二下发单元,具体用于判断所述packet-in报文的请求优先级 是否不小于阈值;在所述packet-in报文的请求优先级不小雨所述阈值时,向所述转发路 径上除所述SDN设备之外的其它各SDN设备下发针对该SDN设备的用于在所述转发路径上 转发所述数据报文的流表。
[0028] 进一步地,所述优先级获取单元,具体用于从所述packet-in报文的DSCP字段中 获取所述packet-in报文的请求优先级。
[0029] 由以上描述可以看出,本发明在SDN设备发送的packet-in报文中携带优先级信 息,从而使得SDN控制器可以根据所述优先级信息优先确定高优先级的数据报文的转发路 径,从而减少高优先级的数据报文的转发时延,提升用户体验。

【专利附图】

【附图说明】
[0030] 图1是本发明一种实施方式中SDN组网结构示意图。
[0031] 图2是本发明一种实施方式中SDN流表下发方法的流程示意图。
[0032] 图3是本发明一种实施方式中SDN流表下发装置的结构示意图。

【具体实施方式】
[0033] 典型的SDN网络架构中包含有SDN设备和SDN控制器。SDN控制器可以通过专有 协议,比如:〇pen Flow协议,直接访问并操控转发平面的SDN设备。SDN设备除了彼此之间 存在SDN数据通道用于转发数据报文外,还通过一条独立的SDN管理通道和SDN控制器建 立连接。具体地,SDN设备上存有一张或者多张流表(Flow Table),流表里每个表项都会与 一个动作关联来告诉SDN设备来如何处理命中这个表项的数据报文。SDN设备根据流表处 理收到的数据报文。如果该数据报文在流表里没有找到匹配的表项,SDN设备根据流表的 配置,默认情况下会将该数据报文通过packet-in报文上报给SDN控制器处理,由SDN控制 器决定该数据报文的处理方式,比如:根据该数据报文的报文特征确认其转发路径,然后通 过packet-out报文将所述转发路径对应的流表下发给所述SDN设备。
[0034] 这样的实现方案存在一些难以避免的问题。首先,SDN控制器在接收到大量 packet-in报文时,通常需要进行缓存,然后按照接收到packet-in报文的先后顺序进行处 理,无法为高优先级的数据报文优先确认转发路径,比如:对于VOIP (Voice over IP)语音 通话数据报文而言,时延较为严重。
[0035] 其次,请参考图1,在图1所示的SDN组网示意图中,假设PC1要和PC2通信,PC1发 送数据报文到SDN设备A,SDN设备A在流表中没有查找到匹配的表项,于是通过packet-in 报文将该数据报文上送到SDN控制器处理,SDN控制器进而为所述数据报文生成转发路 径,并向SDN设备A下发所述转发路径对应的流表。SDN设备A根据所述流表将所述数据 报文转发给SDN设备B,SDN设备B在接收到该数据报文后,重复SDN设备A的动作,通过 packet-in报文将该数据报文上送到SDN控制器以请求流表。当PC1和PC2之间存在庞大 的SDN网络时,由于其转发路径上的每个SDN设备都要和SDN控制器交互以生成流程,所以 两者之间通信的首包报文会有很大的时延,影响用户体验。同时,该SDN网络中会出现大量 的packet-in报文和packet-out报文,极易造成管理网络拥塞。
[0036] 针对上述问题,本发明提供一种SDN流表下发方案,以减少数据报文的时延。
[0037] 请参考图2,本发明提供一种SDN流表下发方法,应用在SDN控制器上,所述方法包 括以下步骤:
[0038] 步骤201,从SDN设备发送的packet-in报文中获取所述packet-in报文的请求优 先级,所述packet-in报文的请求优先级由所述SDN设备根据所述packet-in报文对应的 未匹配到流表的数据报文的报文优先级进行封装。
[0039] 为实现本发明,SDN设备为发送给SDN控制器的packet-in报文添加不同的请求 优先级,以便SDN控制器可以根据所述请求优先级为高优先级的数据报文优先确定转发路 径。
[0040] 具体地,如果SDN设备接收到未匹配到流表的数据报文,则可以获取所述数据报 文的报文优先级,然后将报文优先级封装到packet-in报文中,以作为所述packet-in报文 的请求优先级。其中,所述数据报文的报文优先级包括:802. 1P优先级、DSCP优先级、IP优 先级以及EXP优先级等,本发明对此不作限制。以DSCP优先级为例,SDN设备可以获取所 述数据报文头部的DSCP (Differentiated Services Code Point,差分服务代码点)值,所 述DSCP值占8个比特位,DSCP值可以为0至63,因此通过DSCP值可以表示64种请求优先 级。在本发明一种优选的实施方式中,SDN设备可以直接将所述DSCP值封装到packet-in 报文头部的DSCP字段。所述SDN设备也可以根据预先保存的映射关系将所述数据报文头 部的DSCP值映射后的值封装到packet-in报文头部的DSCP字段。比如:将DSCP值0-7映 射为〇,将DSCP值8-15映射为1等。当然,SDN设备也可以根据数据报文的特征为所述数 据报文生成对应的请求优先级,然后将所述请求优先级封装到packet-in报文中,本发明 对此不作限制。
[0041] 在本步骤中,SDN控制器在接收到packet-in报文后,先获取所述packet-in报文 的请求优先级,以前面描述为例,SDN控制器可以从所述packet-in报文的DSCP字段获取 所述packet-in报文的请求优先级。
[0042] 步骤202,按照请求优先级从高到低的顺序,确定所述数据报文的转发路径。
[0043] 基于前述步骤201,SDN控制器在获取到所述packet-in报文的请求优先级后,按 照请求优先级从高到底的顺序,确定所述packet-in报文对应的未匹配到流表的数据报文 的转发路径。
[0044] 具体地,在实际实现的时候,鉴于SDN控制器可能会接收到大量的packet-in报 文,可以在SDN控制器上建立多个缓存队列。如:可以根据packet-in报文的请求优 先级将packet-in报文加入对应的缓存队列,然后按照缓存队列的队列优先级从高到底 的顺序,获取缓存的packet-in报文,并确定所述packet-in报文对应的未匹配到流表的 数据报文的转发路径。举例来说,假设SDN设备将未匹配到流表的数据报文的DSCP值封 装到packet-in报文的DSCP字段,则SDN控制器最多可以收到64种请求优先级不同的 packet-in报文,如果SDN控制器上有8个缓存队列,则可以建立表1所示的请求优先级和 缓存队列的对应关系。
[0045]
[0046] 表 1

【权利要求】
1. 一种软件定义网络SDN流表下发方法,应用在SDN控制器上,其特征在于,所述方法 包括: 从SDN设备发送的packet-in报文中获取所述packet-in报文的请求优先级,所述 packet-in报文的请求优先级由所述SDN设备根据所述packet-in报文对应的未匹配到流 表的数据报文的报文优先级进行封装; 按照请求优先级从高到低的顺序,确定所述数据报文的转发路径; 向所述SDN设备下发针对所述SDN设备的用于在所述转发路径上转发所述数据报文的 流表。
2. 根据权利要求1所述的方法,其特征在于, 所述按照请求优先级从高到低的顺序,确定所述数据报文的转发路径包括: 根据所述请求优先级将所述packet-in报文加入对应的缓存队列; 按照所述缓存队列的队列优先级从高到低的顺序,获取所述缓存队列中缓存的 packet-in报文,并确定所述packet-in报文对应的数据报文的转发路径。
3. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 向所述转发路径上除所述SDN设备之外的其它各SDN设备下发针对该SDN设备的用于 在所述转发路径上转发所述数据报文的流表。
4. 根据权利要求3所述的方法,其特征在于, 所述向所述转发路径上除所述SDN设备之外的其它各SDN设备下发针对该SDN设备的 用于在所述转发路径上转发所述数据报文的流表包括: 判断所述packet-in报文的请求优先级是否不小于阈值; 如果所述packet-in报文的请求优先级不小于所述阈值,则向所述转发路径上除所述 SDN设备之外的其它各SDN设备下发针对该SDN设备的用于在所述转发路径上转发所述数 据报文的流表。
5. 根据权利要求1所述的方法,其特征在于, 所述从SDN设备发送的packet-in报文中获取所述packet-in报文的请求优先级包 括: 从所述packet-in报文的DSCP字段中获取所述packet-in报文的请求优先级。
6. -种SDN流表下发装置,应用在SDN控制器上,其特征在于,所述装置包括: 优先级获取单元,用于从SDN设备发送的packet-in报文中获取所述packet-in报文 的请求优先级,所述packet-in报文的请求优先级由所述SDN设备根据所述packet-in报 文对应的未匹配到流表的数据报文的报文优先级进行封装; 路径确定单元,用于按照请求优先级从高到低的顺序,确定所述数据报文的转发路 径; 第一下发单元,用于向所述SDN设备下发针对所述SDN设备的用于在所述转发路径上 转发所述数据报文的流表。
7. 根据权利要求6所述的装置,其特征在于, 所述路径确定单元,具体用于根据所述请求优先级将所述packet-in报文加入对应的 缓存队列;按照所述缓存队列的队列优先级从高到低的顺序,获取所述缓存队列中缓存的 packet-in报文,并确定所述packet-in报文对应的数据报文的转发路径。
8. 根据权利要求6所述的装置,其特征在于,所述装置还包括: 第二下发单元,用于向所述转发路径上除所述SDN设备之外的其它各SDN设备下发针 对该SDN设备的用于在所述转发路径上转发所述数据报文的流表。
9. 根据权利要求8所述的装置,其特征在于, 所述第二下发单元,具体用于判断所述packet-in报文的请求优先级是否不小于阈 值;在所述packet-in报文的请求优先级不小于所述阈值时,向所述转发路径上除所述SDN 设备之外的其它各SDN设备下发针对该SDN设备的用于在所述转发路径上转发所述数据报 文的流表。
10. 根据权利要求6所述的装置,其特征在于, 所述优先级获取单元,具体用于从所述packet-in报文的DSCP字段中获取所述 packet-in报文的请求优先级。
【文档编号】H04L12/813GK104301249SQ201410542599
【公开日】2015年1月21日 申请日期:2014年10月14日 优先权日:2014年10月14日
【发明者】林鹏程 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1