处理数据包的方法、交换机、装置及计算机可读存储介质制造方法及图纸

技术编号:21146049 阅读:28 留言:0更新日期:2019-05-18 06:39
本发明专利技术公开了一种处理数据包的方法,包括:提取数据包的包头域信息;在所述数据包与第一流表项匹配失败时,将包头域信息和匹配失败信息封装成packet_in消息,将packet_in消息发送至控制器,并将数据包存入缓存;接收控制器发送的packet_out消息,并提取packet_out消息中携带的包头域信息对应的第二流表项;按照第二流表项,将缓存中的数据包重新进入流表项匹配流程。本发明专利技术还同时公开了一种处理数据包的交换机、装置及计算机可读存储介质。

Method, Switch, Device and Computer Readable Storage Media for Data Packet Processing

【技术实现步骤摘要】
处理数据包的方法、交换机、装置及计算机可读存储介质
本专利技术涉及软件定义网络(SoftwareDefinedNetwork,SDN)中的开放流(OpenFlow)
,尤其涉及一种处理数据包的方法、交换机、装置及计算机可读存储介质。
技术介绍
随着互联网规模的不断壮大,传统的网络架构已无法很好的满足人们的需要;目前,SDN逐渐受到人们的重视,SDN作为一种新型网络创新架构,是网络虚拟化的一种实现方式,其中核心技术OpenFlow将网络设备(通常是支持OpenFlow协议的交换机)的控制层面和数据层面分离,开发人员可以根据实际的需要设计控制层的业务逻辑,使流量控制变得更加灵活、更加可控;同时,由于网络设备只负责数据层面,这使得转发效率也有了大幅提升。在交换机的运行过程中,其数据包转发的依据就是流表;所谓流表,其实可被视作是OpenFlow对网络设备的数据转发功能的一种抽象,在传统网络设备中,交换机和路由器的数据包转发需要依赖设备中保存的二层介质访问控制(MediaAccessControl,MAC)地址转发表或者三层网络之间互连的协议(InternetProtocol,IP)地址路由表,而交换机中使用的流表也是如此,不过在它的流表项中整合了网络中各个层次的网络配置信息,从而在进行数据转发时可以使用更丰富的规则。但是,在数据包转发的过程中,如果数据包与流表项匹配失败的话,交换机会将数据包先转发至控制器,控制器在完成路由重计算后再将该数据包以及新的流表项发回到交换机,由交换机重新进行数据包与新的流标项匹配;这样一来,数据包在交换机和控制器之间需要频繁交换,不仅提高了丢包率,还会占用过多的带宽资源,降低了服务质量。
技术实现思路
有鉴于此,本专利技术实施例期望提供一种处理数据包的方法、交换机、装置及计算机可读存储介质,以提高交换机和控制器之间的通信效率、降低丢包率,节省带宽资源,提高服务质量。为达到上述目的,本专利技术的技术方案是这样实现的:本专利技术提供一种处理数据包的方法,所述方法包括:提取数据包的包头域信息;在所述数据包与第一流表项匹配失败时,将所述包头域信息和匹配失败信息封装成packet_in消息,将所述packet_in消息发送至控制器,并将所述数据包存入缓存;接收所述控制器发送的packet_out消息,并提取所述packet_out消息中携带的所述包头域信息对应的第二流表项;按照所述第二流表项,将所述缓存中的所述数据包重新进入流表项匹配流程。上述方案中,所述将所述缓存中的所述数据包重新进入流表项匹配流程,包括:在所述缓存中存在有两个或两个以上数据包时,将所述缓存中的每个数据包按照预设调度规则依次重新进入流表项匹配流程;所述预设调度规则包括:所述每个数据包进入所述缓存的等待时间由长到短的顺序依次排队的规则、所述每个数据包本身的优先级由高到低的顺序依次排队的规则,或所述数据包的综合调度等级由高到低的顺序依次排队的规则。上述方案中,所述数据包进入所述缓存的等待时间为T,所述数据包本身的优先级为P,所述数据包的综合调度等级为Q,其中,所述Q=PT2。上述方案中,在所述提取所述packet_out消息中携带的所述包头域信息对应的第二流表项之后,在所述按照所述更新后的流表项及预设调度规则,将所述缓存中的所述数据包重新进入流表项匹配流程之前,所述方法还包括:根据所述第二流表项更新本地的流表。上述方案中,所述包头域信息对应的第二流表项,是由所述控制器根据所述匹配失败信息路由重计算后得到的。本专利技术还提供一种处理数据包的交换机,所述交换机包括:接口,总线,存储器,与处理器,所述接口、所述存储器与所述处理器通过所述总线相连接,所述存储器用于存储计算机程序,所述处理器读取所述计算机程序用于:提取数据包的包头域信息;在所述数据包与第一流表项匹配失败时,将所述包头域信息和匹配失败信息封装成packet_in消息,将所述packet_in消息发送至控制器,并将所述数据包存入缓存;接收所述控制器发送的packet_out消息,并提取所述packet_out消息中携带的所述包头域信息对应的第二流表项;按照所述第二流表项,将所述缓存中的所述数据包重新进入流表项匹配流程。上述方案中,所述处理器读取所述计算机程序具体用于:在所述缓存中存在有两个或两个以上数据包时,将所述缓存中的每个数据包按照预设调度规则依次重新进入流表项匹配流程;所述预设调度规则包括:所述每个数据包进入所述缓存的等待时间由长到短的顺序依次排队的规则、所述每个数据包本身的优先级由高到低的顺序依次排队的规则,或所述数据包的综合调度等级由高到低的顺序依次排队的规则。上述方案中,所述数据包进入所述缓存的等待时间为T,所述数据包本身的优先级为P,所述数据包的综合调度等级为Q,其中,所述Q=PT2。上述方案中,所述处理器读取所述计算机程序还用于:根据所述第二流表项更新本地的流表。上述方案中,所述包头域信息对应的第二流表项,是由所述控制器根据所述匹配失败信息路由重计算后得到的。本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的处理数据包的步骤。本专利技术还提供一种处理数据包的装置,所述处理数据包的装置包括:提取模块,用于提取数据包的包头域信息;封装模块,用于在所述数据包与第一流表项匹配失败时,将所述包头域信息和匹配失败信息封装成packet_in消息,将所述packet_in消息发送至控制器,并将所述数据包存入缓存;管理模块,用于接收所述控制器发送的packet_out消息,并提取所述packet_out消息中携带的所述包头域信息对应的第二流表项;调度模块,用于按照所述第二流表项,将所述缓存中的所述数据包重新进入流表项匹配流程。本专利技术提供的处理数据包的方法、交换机、装置及计算机可读存储介质,通过提取数据包的包头域信息;在数据包与第一流表项匹配失败时,将包头域信息和匹配失败信息封装成packet_in消息,将packet_in消息发送至控制器,并将数据包存入缓存;接收控制器发送的packet_out消息,并提取packet_out消息中携带的包头域信息对应的第二流表项;按照第二流表项,将缓存中的数据包重新进入流表项匹配流程;通过将数据包的包头域信息和匹配失败信息封装成packet_in消息与控制器进行交换,以及在交换机中增设缓存区专门保存配置失败的数据包,避免了数据包在交换机与控制器之间的交换,由于包头域信息和匹配失败信息占用的字节大小很小,不仅提高了交换机和控制器之间的通信效率、降低了丢包率,而且不会占用过多的带宽资源,能够有效的提高服务质量。附图说明图1为本专利技术处理数据包的方法实施例一的流程图;图2为本专利技术处理数据包的方法实施例二的流程图;图3为本专利技术处理数据包的装置实施例的结构示意图;图4为本专利技术处理数据包的交换机实施例的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。图1为本专利技术处理数据包的方法实施例一的流程图,如图1所示,本专利技术实施例提供的处理数据包的方法应用在交换机上,该方法可以包括如下步骤:步骤101、提取数据包的包头域信息。交换机在接收到新的数本文档来自技高网
...

【技术保护点】
1.一种处理数据包的方法,其特征在于,所述方法包括:提取数据包的包头域信息;在所述数据包与第一流表项匹配失败时,将所述包头域信息和匹配失败信息封装成packet_in消息,将所述packet_in消息发送至控制器,并将所述数据包存入缓存;接收所述控制器发送的packet_out消息,并提取所述packet_out消息中携带的所述包头域信息对应的第二流表项;按照所述第二流表项,将所述缓存中的所述数据包重新进入流表项匹配流程。

【技术特征摘要】
1.一种处理数据包的方法,其特征在于,所述方法包括:提取数据包的包头域信息;在所述数据包与第一流表项匹配失败时,将所述包头域信息和匹配失败信息封装成packet_in消息,将所述packet_in消息发送至控制器,并将所述数据包存入缓存;接收所述控制器发送的packet_out消息,并提取所述packet_out消息中携带的所述包头域信息对应的第二流表项;按照所述第二流表项,将所述缓存中的所述数据包重新进入流表项匹配流程。2.根据权利要求1所述的方法,其特征在于,所述将所述缓存中的所述数据包重新进入流表项匹配流程,包括:在所述缓存中存在有两个或两个以上数据包时,将所述缓存中的每个数据包按照预设调度规则依次重新进入流表项匹配流程;所述预设调度规则包括:所述每个数据包进入所述缓存的等待时间由长到短的顺序依次排队的规则、所述每个数据包本身的优先级由高到低的顺序依次排队的规则,或所述数据包的综合调度等级由高到低的顺序依次排队的规则。3.根据权利要求2所述的方法,其特征在于,所述数据包进入所述缓存的等待时间为T,所述数据包本身的优先级为P,所述数据包的综合调度等级为Q,其中,所述Q=PT2。4.根据权利要求1所述的方法,其特征在于,在所述提取所述packet_out消息中携带的所述包头域信息对应的第二流表项之后,在所述按照所述更新后的流表项及预设调度规则,将所述缓存中的所述数据包重新进入流表项匹配流程之前,所述方法还包括:根据所述第二流表项更新本地的流表。5.根据权利要求1所述的方法,其特征在于,所述包头域信息对应的第二流表项,是由所述控制器根据所述匹配失败信息路由重计算后得到的。6.一种处理数据包的交换机,其特征在于,所述交换机包括:接口,总线,存储器,与处理器,所述接口、所述存储器与所述处理器通过所述总线相连接,所述存储器用于存储计算机程序,所述处理器读取所述计算机程序用于:提取数据包的包头域信息;在所述数据包与第一流表项匹配失败时,将所述包头域信息和匹配失败信息封装成packet_in消息...

【专利技术属性】
技术研发人员:魏冰李小文孔令军韩波杨帅李明星
申请(专利权)人:中国移动通信集团公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1