一种转发数据报文的方法及装置的制作方法

文档序号:7894881阅读:145来源:国知局
专利名称:一种转发数据报文的方法及装置的制作方法
技术领域
本发明涉及网络通信中的报文转发技术,尤其涉及ー种OpenFlow网络中转发数据报文的方法及装置。
背景技术
随着网络的发展和使用越来越普及,网络暴露出越来越多的弊病;并且,网络用户对网络性能的需求也在不断提高;于是,研究人员不得不把很多复杂功能加入到路由器的体系结构当中,例如开放式最短路径优先(OSPF, Open Shortest Path First)、边界网关协议(BGP,Border Gateway Protocol)、组播、区分服务、流量工程、网络地址转换(NAT,Network Address Translation)、防火墙、多协议标签交换(MPLS, Multi-Protocol Label Switching)等等,这就使路由器等交换设备越来越臃肿且性能提升的空间越来越小,无法满足日益增长的新业务需求。2008年,美国斯坦福大学提出OpenFlow网络的概念,基本的OpenFlow网络包括控制面的网络控制器(Controller)和转发面的交换机(Switch)。OpenFlow网络中转发数据报文的方法为利用流表进行数据报文转发,具体为=ContiOller通过标准化的OpenFlow协议控制多个Switch并下发流表给Switch ;Switch接收并保存流表;当Switch收到网络发来的数据报文后,查看流表中是否有匹配的流表项,若有,则按照流表项中的动作转发数据报文;若没有查找到匹配的流表项,则将数据报文的头信息封装为Packet-in消息发给Controller !Controller接收到Packet-in消息后,根据自身保存的拓扑信息计算路径,利用得到的路径生成Packet-out消息和Flow-mod消息,将Packet-out消息和Flow-mod消息发给Switch ;Switch根据Packet-out消息转发数据报文,并根据Flow-mod消息建立流表项。但是,上述方法中,在Switch为接收到的数据报文新建流表项之前,Switch接收到的同一条数据流中的后续数据报文均处于没有匹配的流表项的状态,这样,会导致Switch将大量相同的Packet-in消息发送给Controller,如此,就会浪费Switch和Controller之间的链路带宽,以及使Controller重复处理大量相同的Packet-in消息,进而影响Controller的处理性能。可见,现有的OpenFlow网络中转发数据报文的方法,由于无法避免短时间内重复传送没有匹配流表项的数据报文大量重复的传送到Controller,从而无法节省OpenFlow网络中的带宽,并影响Controller的处理性能。

发明内容
有鉴于此,本发明的目的在于提供一种转发数据报文的方法及装置,能避免短时间内Switch将没有流表项匹配的数据报文大量重复的传送到Controller,从而节省OpenFlow网络中的带宽以及Controller中的处理资源。为达到上述目的,本发明的技术方案是这样实现的
本发明提供了一种转发数据报文的方法,该方法包括Switch没有查找到数据报文匹配的流表项、且没有查找到所述数据报文匹配的假表项吋,将所述数据报文匹配到缺省流表项,根据缺省流表项将所述数据报文发送给Controller,并生成假表项,再根据Controller发来的路径信息转发数据报文。上述方案中,所述Switch没有查找到数据报文匹配的流表项之前,该方法还包括Switch接收并保存Controller下发的流表、缺省流表项以及生成假表项的规则。 上述方案中,所述缺省流表项包括缺省协议流表项和缺省数据流表项。上述方案中,所述生成假表项的规则为提取的数据报文中的字段组成假表项的索引、建立假表项的同时开启计时器、以及采用缓存报文或丢弃报文作为假表项的执行行动〈actions)。上述方案中,所述没有查找到所述数据报文匹配的假表项之前,该方法还包括提取数据报文的头部数据,逐个查看该提取的头部数据是否与自身保存的假表项的索引相匹配。上述方案中,所述将所述数据报文匹配到缺省流表项,根据缺省流表项将所述数据报文发送给Controller,并生成假表项,包括=Switch判断数据报文是否匹配缺省协议流表项,若是,则将与缺省协议流表项匹配的数据报文上报给Controller ;若不是,则数据报文匹配缺省数据流表项,根据缺省数据流表项设定的actions,Switch将完整的数据报文或者数据报文的头部信息上报给Controller并根据生成假表项的规则生成假表项。上述方案中,所述根据ContiOller发来的路径信息转发数据报文,包括=Switch收到Controller发来的Flow-mod消息和Packet-out消息后,根据Flow-mod消息建立新的流表项,井根据Packet-out消息中的路径信息转发对应的数据报文。上述方案中,所述Switch收到Controller发来的Flow-mod消息和Packet-out消息之后,该方法还包括=Switch实时对自身保存的假表项进行主动清除和/或被动清除。本发明还提供了一种转发数据报文的装置,该装置包括数据报文处理模块、缺省流表项模块和路径分配模块;其中,数据报文处理模块,用于当没有查找到数据报文匹配的流表项、且没有查找到所述数据报文匹配的假表项时,将数据报文匹配到缺省流表项模块缺省流表项模块中的缺省流表项,根据缺省流表项将数据报文上报给路径分配模块并生成假表项,根据路径分配模块发来的路径信息转发数据报文;缺省流表项模块,用于为数据报文处理模块提供缺省流表项;路径分配模块,用于接收数据报文处理模块发来的数据报文,并给数据报文处理模块发送路径信息。上述方案中,所述装置还包括管理模块、管理信息接收模块和流表项模块;其中,管理模块,用于向管理信息接收模块发送流表、缺省流表项以及生成假表项的规则;管理信息接收模块,用于接收管理模块发来的流表、缺省流表项以及生成假表项的规则,将流表项模块发送给流表项模块,将缺省流表项发送给缺省流表项模块,将生成假表项的规则发送给数据报文处理模块;、
流表项模块,用于接收并保存根据表项接收发来的流表;相应的,所述缺省流表项模块,还用于接收并保存管理信息接收模块发来的缺省流表项;所述数据报文处理模块,还用于接收并保存管理信息接收模块发来的生成假表项的规则。上述方案中,所述装置还包括假表项模块,用于为数据报文处理模块提供假表项; 相应的,所述数据报文处理模块,具体用于提取数据报文的头部数据,逐个查看该提取的头部数据是否与假表项模块中保存的假表项的索引相匹配。上述方案中,所述数据报文处理模块,具体用于判断数据报文是否匹配缺省流表项模块中的缺省协议流表项,若是,则将与缺省协议流表项匹配的数据报文上报给路径分配模块,若不是,则数据报文匹配缺省流表项模块中的缺省数据流表项,根据缺省数据流表项设定的actions,将完整的数据报文或者数据报文的头部信息上报给路径分配模块并根据生成假表项的规则生成假表项。上述方案中,所述路径分配模块,具体用于向数据报文处理模块发送Flow-mod消息和Packet-out消息;相应的,所述数据报文处理模块,具体用于收到路径分配模块发来的Flow-mod消息和Packet-out消息后,根据Flow-mod消息建立新的流表项,将新的流表项发送给流表项模块,井根据Packet-out消息中的路径信息转发对应的假表项中的数据报文;所述流表项模块,还用于接收并保存数据报文处理模块发来的新的流表项。上述方案中,所述数据报文处理模块,还用于实时对假表项模块中保存的假表项进行主动清除;和/或,所述假表项模块,还用于对自身保存的假表项进行被动清除。上述方案中,所述数据报文处理模块、所述缺省流表项模块、所述假表项模块、所述流表项模块和所述管理信息接收模块安装于Switch中;所述路径分配模块和所述管理模块安装于Controller中。本发明所提供的转发数据报文的方法及装置,在OpenFlow网络中,当Switch没有查找到数据报文匹配的流表项时,根据匹配的假表项处理该数据报文,若没有匹配的假表项,则将该数据报文匹配到缺省流表项,根据缺省流表项将该数据报文发送给Controller,并生成假表项;如此,可以通过统ー处理没有匹配的流表项的数据报文,避免对没有流表项的数据报文的重复传送,从而节省OpenFlow网络中的带宽以及Controller中的处理资源。


图I为本发明转发数据报文的方法流程示意图;图2为本发明转发数据报文的装置组成结构示意图。
具体实施例方式本发明的基本思想是=Switch没有查找到数据报文匹配的流表项、且没有查找到所述数据报文匹配的假表项吋,将所述数据报文匹配到缺省流表项,根据缺省流表项将所述数据报文发送给Controller,并生成假表项,再根据Controller发来的路径信息转发数据报文。下面结合附图及具体实施例对本发明再作进ー步详细的说明。本发明提供的一种转发数据报文的方法,如图I所示,包括以下步骤步骤101 Switch接收并保存Controller下发的流表、缺省流表项以及生成假表项的规则。

这里,所述流表为Controller根据实际情况为Switch设置并发送给Switch的数据报文的转发策略,具体生成及发送方式均为现有技木,这里不做赘述;所述流表中的流表项按照现有技术的规定,包括匹配域(match fields)、活动计数器(counters)和执行指令(instruction);其中,所述match fields包括进入接ロ、以太网(Ethernet)源地址、以太网目标地址、以太网类型、虚拟局域网(VLAN, Virtual Local Area Network)标识(ID)、VLAN优先级,互联网协议(IP, Internet Protocol)源地址、IP目的地址、IP协议、IP 业务类型(ToS, Type of Service)位、传输控制协议(TCP, Transmission ControlProtocol)/用户数据包协议(UDP,User Datagram Protocol)目标端口和 TCP/UDP源端ロ ;所述counters为针对每张表、每个数据流、每个端ロ以及每个队列分别保存的计数器;所述instruction为Controller向Switch设置的匹配的数据报文的处理方式。所述缺省流表项包括缺省协议流表项和缺省数据流表项;其中,所述缺省协议流表项为Controller根据实际情况向Switch下发的、对符合一种或多种协议类型的数据报文的处理方式;所述协议类型可以包括地址解析协议(ARP, Address Resolution Protocol)、链路层发现协议(LLDP, Link Layer DiscoveryProtocol)、动态主机设置协议(DHCP, Dynamic Host Configuration Protocol)和域名系统(DNS, Domain Name System)协议等;所述缺省协议流表项的组成格式可以如下所示ARP:match:{eth-type = 0x0806}instruction:{apply actionl action:output=to controller};其中,“match: {eth-type = 0x0806} ”表示数据报文中的以太网类型字段为0x0806的数据报文为ARP类型的协议报文,instruction: {apply actionlaction:output = to controller} ”表示将符合匹配条件的协议报文上交给Controller。所述缺省数据流表项为ContiOller根据实际情况向Switch下发的对没有正常流表项匹配的数据报文、以及不符合缺省协议流表项定义的数据报文的处理方式;所述缺省数据流表项的组成格式可以如下所示match:{*}instruction:{apply actionl action:output = to controller,creat fake entry};其中,“match: ”表示对数据报文没有匹配条件的限定,
instruction:{apply actionl action:output = to controller,creat fake entry}示执行行动(actions)为将数据报文上发Controller并建立假表项。所述生成假表项的规则包括提取的数据报文中的字段产生假表项的索引、建立假表项的同时开启计时器、以及采用缓存报文或丢弃报文作为假表项的actions ;所述假表项的组成结构包括索引、计时器和actions ;其中,所述索引可以包含以下ー个或多个字段进入接ロ、Ethernet源地址、以太网目标地址、以太网类型、VLAN ID、VLAN优先级、IP源地址、IP目的地址、IP协议、IP ToS位、TCP/UDP目标端口和TCP/UDP源端ロ。执行上述步骤101之前,Switch还按照现有技术开机后与Controller建立连接,并向Controller提交自身的处理能力对应的參数;ControIIer根据Switch提交的处理能カ对应的參数,为该Switch生成井下发对应的流表、缺省流表项以及生成假表项的规则,执行步骤101 ;其中,所述向Controller提交自身的处理能力对应的參数,为该Switch生成并下发对应的流表、缺省流表项以及生成假表项的规则为=Switch向Controller发送自身是否具有对表项的创建和删除能力;若Switch具有对表项的创建和删除能力,则Controller为该Switch生成并下发对应的流表、缺省流表项以及生成假表项的规则,否则,Controller不为该Switch生成对应的缺省流表项以及生成假表项的规则,按照现有技术为该Switch 生成并下发流表,这里不做赘述。步骤102 =Switch收到数据报文后,在流表中查找是否有匹配的流表项,若有,则根据流表项处理数据报文,结束处理流程;若没有,则执行步骤103。这里,所述查找是否有匹配的流表项为现有技术,可以包括提取数据报文的头部数据,逐个查看是否与流表中任意一个流表项的包头域中定义的值相匹配;所述按照流表项处理数据报文为根据查找到的匹配的流表项中的instruction处理数据报文。步骤103 :查找是否有匹配的假表项,若有,则根据假表项处理数据报文,结束处理流程;若没有,则执行步骤104。这里,所述查找是否有匹配的假表项为提取数据报文的头部数据,逐个查看该提取的头部数据中的字段是否与自身保存的任意ー个假表项的索引相匹配;所述根据假表项处理数据报文为根据假表项中的actions处理数据报文,可以为将数据报文缓存到假表项对应的缓存队列中,将假表项的索引作为该缓存队列的索引;也可以为将数据报文直接丢弃。步骤104 =Switch将数据报文匹配到缺省流表项,将数据报文封装为Packet_in消息上报给Controller,并生成假表项。具体的,Switch判断数据报文是否匹配缺省协议流表项,若是,则将与缺省协议流表项匹配的数据报文上报给Controller ;若不是,则数据报文匹配缺省数据流表项,根据缺省数据流表项设定的actions,Switch将完整的数据报文或数据报文的头部信息封装为Packet-in消息上报给Controller并根据生成假表项的规则生成假表项。这里,所述Packet-in消息的生成与发送均为现有技木,这里不做赘述。步骤105 Switch根据Controller发来的路径信息转发数据报文。具体为Switch接收到Controller发来的Flow-mod消息和Packet-out消息后,根据Flow-mod消息建立新的流表项,并根据Packet-out消息中的路径信息转发对应的数据报文。其中,所述建立新的流表项为现有技木,这里不做赘述;所述Flow-mod消息为Controller通知Switch建立新流表项的消息,包括流表ID、actions、match-field字段等,其生成及发送均为现有技术;所述Packet-out消息为Controller通知Switch给生成Packet-in消息的数据报文所分配的路径,其生成及发送均为现有技术,可以包括数据报文的标识和路径信息,其中数据报文的标识可以为缓存该数据报文的顺序、或者由进入接ロ、Ethernet源地址、以太网目标地址、以太网类型、VLAN ID、VLAN优先级、IP源地址、IP目的地址、IP协议、IP ToS位、TCP/UDP目标端ロ和TCP/UDP源端ロ中的ー个或多个字段组成;所述根据Packet-out消息转发对应的假表项中的数据报文为根据Packet-out消息中的数据报文的标识找到对应的缓存队列后,按照Packet-out消息中的路径信息转发对应的缓存队列中的所有数据报文。另外,在执行上述步骤101至步骤105的同时,Switch还会实时对自身保存的假表项进行主动清除和/或被动清除;其中,所述主动清除为Switch若收到Packet-out消息,则根据Packet-out消息中的数据报文的标识查到匹配的假表项,将假表项中的所有数据报文进行转发后,删除该假表项; 所述被动清除为Switch实时判断自身保存的假表项中的计时器是否超过清除时限,若超过,则清除该假表项;否则,继续判断自身保存的假表项中的计时器是否超过清除时限;其中,所述清除时限为根据实际情况预置的时长,比如,可以预置该时长为I分钟。上述步骤104完成之后,Controller会根据Switch发来的Packet-in消息获取路径,并将获取的路径下发给Switch,执行步骤105,具体为步骤a Controller接收到Switch发来的Packet-in消息后,查找自身是否存有该Packet-in消息对应的路径,若有,则执行步骤b ;若没有,则利用Packet-in消息计算路径,若可以计算得到路径,则执行步骤b,若无法计算得到路径,则不做操作,结束处理流程。这里,所述查找路径以及计算路径的方法均为现有技木,这里不做赘述。步骤b =Controller利用计算或查找得到的路径生成修改流表(Flow-mod)消息和Packet-out 消息,将 Flow-mod 消息和 Packet-out 消息发送给 Switch。本发明提出一种转发数据报文的装置,如图2所示,包括数据报文处理模块21、缺省流表项模块22和路径分配模块27 ;其中,数据报文处理模块21,用于当没有查找到数据报文匹配的流表项、且没有查找到所述数据报文匹配的假表项时,将数据报文匹配到缺省流表项模块22中的缺省流表项,根据缺省流表项将数据报文上报给路径分配模块27并生成假表项,根据路径分配模块27发来的路径信息转发数据报文;缺省流表项模块22,用于为数据报文处理模块21提供缺省流表项;路径分配模块27,用于接收数据报文处理模块21发来的数据报文,并给数据报文处理模块21发送路径信息。所述装置还包括管理模块25和管理信息接收模块26 ;其中,管理模块25,用于向管理信息接收模块26发送流表、缺省流表项以及生成假表项的规则;管理信息接收模块26,用于接收管理模块25发来的流表、缺省流表项以及生成假表项的规则。所述装置还包括流表项模块24,用于接收并保存管理信息接收模块26发来的流表;相应的,所述管理信息接收模块26,还用于将流表发送给流表项模块24,将缺省流表项发送给缺省流表项模块22,将生成假表项的规则发送给数据报文处理模块21 ;所述缺省流表项模块22,还用于接收并保存管理信息接收模块26发来的缺省流表项;所述数据报文处理模块21,还用于接收并保存管理信息接收模块26发来的生成假表项的规则。所述管理信息接收模块26,还用于当所在Switch开启后,向管理模块25提交所在Switch是否具有对表项的创建和删除能力,接收管理模块25发来的流表、缺省流表项及生成假表项的规则,或仅接收管理模块25发来的流表;相应的,所述管理模块25,具体用于接收管理信息接收模块26发来的Switch是否具有对表项的创建和删除能力,若Switch具有对表项的创建和删除能力,则为该Switch生成井向管理信息接收模块26发送对应的流表、缺省流表项以及生成假表项的规则,否则,不为该Switch生成对应的缺省流表项以及生成假表项的规则,按照现有技术为该Switch生成井向管理信息接收模块26发送流表。所述数据报文处理模块21,还用于实时接收数据报文。所述数据报文处理模块21,具体用于提取接收到的数据报文的头部数据,逐个查看是否与流表项模块24中的流表中任意一个流表项的包头域中定义的值相匹配,若有匹配的流表项,则根据查找到的匹配的流表项中的instruction处理数据报文,若没有匹配的流表项,则查找假表项模块23中是否有匹配的假表项。
·
所述装置还包括假表项模块23,用于为数据报文处理模块21提供假表项;相应的,所述数据报文处理模块21,具体用于提取数据报文的头部数据,逐个查看该提取的头部数据中的字段是否与假表项模块23中保存的任意ー个假表项的索引相匹配,若有匹配的假表项,则根据查找到的匹配的假表项中的actions处理数据报文,若没有匹配的假表项,则将数据报文匹配到缺省流表项模块22中的缺省流表项。所述数据报文处理模块21,具体用于根据假表项处理数据报文吋,当假表项中的actions为缓存数据报文吋,将数据报文缓存到假表项对应的缓存队列中,将假表项的索引作为该缓存队列的索引;当假表项中的actions为丢弃数据报文时,将数据报文直接丢弃。所述数据报文处理模块21,具体用于先判断数据报文是否匹配缺省流表项模块22中的缺省协议流表项,若是,则将与缺省协议流表项匹配的数据报文上报给路径分配模块27,若不是,则数据报文匹配到缺省流表项模块22中的缺省数据流表项,根据缺省数据流表项设定的actions,将数据报文上报给路径分配模块27并根据生成假表项的规则生成假表项;所述缺省流表项模块22,具体用于为数据报文处理模块21提供自身保存的缺省协议流表项和缺省数据流表项。所述数据报文处理模块21,还用于将生成的假表项发送给假表项模块23 ;相应的,所述假表项模块23,还用于接收并保存数据报文处理模块21发来的假表项。所述数据报文处理模块21,具体用于根据生成假表项的规则从数据报文中提取建立假表项的索引对应的值,建立活动计数器,并设定actions。所述数据报文处理模块21,具体用于将数据报文的头部数据封装为Packet-in消息上报给Controller,也可以为将数据报文封装为Packet-in消息上报给Controller。所述路径分配模块27,还用于将路径信息发送给数据报文处理模块21 ;相应的,所述数据报文处理模块21,还用于根据路径分配模块27发来的路径信息转发对应的假表项中的数据报文。所述路径分配模块27,具体用于将Flow-mod消息和Packet-out消息发送给数据报文处理模块21 ;相应的,所述数据报文处理模块21,具体用于根据路径信息中的Flow-mod消息建立新的流表项,将新的流表项发送给流表项模块24,并根据Packet-out消息中的路径信息转发对应的假表项中的数据报文;所述流表项模块24,还用于接收并保存数据报文处理模块21发来的新的流表项。所述数据报文处理模块21,具体用于根据Packet-out消息中的数据报文的标识找到对应的缓存队列后,按照Packet-out消息中的路径信息转发对应的缓存队列中的所有数据报文。所述数据报文处理模块21,还用于实时对假表项模块23中保存的假表项进行主动清除;相应的,所述假表项模块23,还用于接收数据报文处理模块21的操作,删除自身保存的假表项,以及还对自身保存的假表项进行被动清除。所述数据报文处理模块21,具体用于根据Packet-out消息中的数据报文的标识查到假表项模块23中匹配的假表项,将假表项中的所有数据报文进行转发后,删除该假表 项模块23中的假表项。所述假表项模块23,具体用于实时判断自身保存的假表项中的计时器是否超过清除时限,若超过,则清除该假表项,否则,继续判断自身保存的假表项中的计时器是否超过清除时限。所述路径分配模块27,具体用于接收到Packet-in消息后,查找自身是否存有该Packet-in消息对应的路径,若有,则利用查找得到的路径生成Flow-mod消息和Packet-out消息,若没有,则利用Packet-in消息计算路径,若可以计算得到路径,则利用计算或查找得到的路径生成Flow-mod消息和Packet-out消息,若无法计算得到路径,则不做操作。上述数据报文处理模块、缺省流表项模块、假表项模块、流表项模块和管理信息接收模块安装于Switch中;路径分配模块和管理模块安装于ContiOller中。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种转发数据报文的方法,其特征在于,该方法包括 交換机Switch没有查找到数据报文匹配的流表项、且没有查找到所述数据报文匹配的假表项吋,将所述数据报文匹配到缺省流表项,根据缺省流表项将所述数据报文发送给网络控制器Controller,并生成假表项,再根据Contooller发来的路径信息转发数据报文。
2.根据权利要求I所述的方法,其特征在于,所述Switch没有查找到数据报文匹配的流表项之前,该方法还包括=Switch接收并保存Controller下发的流表、缺省流表项以及生成假表项的规则。
3.根据权利要求I或2所述的方法,其特征在于,所述缺省流表项包括缺省协议流表项和缺省数据流表项。
4.根据权利要求2所述的方法,其特征在于,所述生成假表项的规则为提取的数据报文中的字段组成假表项的索引、建立假表项的同时开启计时器、以及采用缓存报文或丢弃报文作为假表项的执行行动actions。
5.根据权利要求I所述的方法,其特征在于,所述没有查找到所述数据报文匹配的假表项之前,该方法还包括提取数据报文的头部数据,逐个查看该提取的头部数据是否与自身保存的假表项的索引相匹配。
6.根据权利要求I所述的方法,其特征在于,所述将所述数据报文匹配到缺省流表项,根据缺省流表项将所述数据报文发送给Controller,并生成假表项,包括=Switch判断数据报文是否匹配缺省协议流表项,若是,则将与缺省协议流表项匹配的数据报文上报给Controller ;若不是,则数据报文匹配缺省数据流表项,根据缺省数据流表项设定的actions,Switch将完整的数据报文或者数据报文的头部信息上报给Controller并根据生成假表项的规则生成假表项。
7.根据权利要求I所述的方法,其特征在于,所述根据Controller发来的路径信息转发数据报文,包括Switch收到Controller发来的Flow-mod消息和Packet-out消息后,根据Flow-mod消息建立新的流表项,并根据Packet-out消息中的路径信息转发对应的数据报文。
8.根据权利要求7所述的方法,其特征在于,所述Switch收到Controller发来的Flow-mod消息和Packet-out消息之后,该方法还包括Switch实时对自身保存的假表项进行主动清除和/或被动清除。
9.一种转发数据报文的装置,其特征在于,该装置包括数据报文处理模块、缺省流表项模块和路径分配模块;其中, 数据报文处理模块,用于当没有查找到数据报文匹配的流表项、且没有查找到所述数据报文匹配的假表项时,将数据报文匹配到缺省流表项模块缺省流表项模块中的缺省流表项,根据缺省流表项将数据报文上报给路径分配模块并生成假表项,根据路径分配模块发来的路径信息转发数据报文; 缺省流表项模块,用于为数据报文处理模块提供缺省流表项; 路径分配模块,用于接收数据报文处理模块发来的数据报文,并给数据报文处理模块发送路径信息。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括管理模块、管理信息接收模块和流表项模块;其中, 管理模块,用于向管理信息接收模块发送流表、缺省流表项以及生成假表项的规则;管理信息接收模块,用于接收管理模块发来的流表、缺省流表项以及生成假表项的规贝1J,将流表项模块发送给流表项模块,将缺省流表项发送给缺省流表项模块,将生成假表项的规则发送给数据报文处理模块; 流表项模块,用于接收并保存根据表项接收发来的流表; 相应的,所述缺省流表项模块,还用于接收并保存管理信息接收模块发来的缺省流表项; 所述数据报文处理模块,还用于接收并保存管理信息接收模块发来的生成假表项的规则
11.根据权利要求10所述的装置,其特征在于,所述装置还包括假表项模块,用于为数据报文处理模块提供假表项; 相应的,所述数据报文处理模块,具体用于提取数据报文的头部数据,逐个查看该提取的头部数据是否与假表项模块中保存的假表项的索引相匹配。
12.根据权利要求10所述的装置,其特征在干, 所述数据报文处理模块,具体用于判断数据报文是否匹配缺省流表项模块中的缺省协议流表项,若是,则将与缺省协议流表项匹配的数据报文上报给路径分配模块,若不是,则数据报文匹配缺省流表项模块中的缺省数据流表项,根据缺省数据流表项设定的actions,将完整的数据报文或者数据报文的头部信息上报给路径分配模块并根据生成假表项的规则生成假表项。
13.根据权利要求10所述的装置,其特征在干, 所述路径分配模块,具体用于向数据报文处理模块发送Flow-mod消息和Packet-out消息; 相应的,所述数据报文处理模块,具体用于收到路径分配模块发来的Flow-mod消息和Packet-out消息后,根据Flow-mod消息建立新的流表项,将新的流表项发送给流表项模块,井根据Packet-out消息中的路径信息转发对应的假表项中的数据报文; 所述流表项模块,还用于接收并保存数据报文处理模块发来的新的流表项。
14.根据权利要求11所述的装置,其特征在干, 所述数据报文处理模块,还用于实时对假表项模块中保存的假表项进行主动清除; 和/或,所述假表项模块,还用于对自身保存的假表项进行被动清除。
15.根据权利要求9至14任一项所述的装置,其特征在干,所述数据报文处理模块、所述缺省流表项模块、所述假表项模块、所述流表项模块和所述管理信息接收模块安装于Switch中;所述路径分配模块和所述管理模块安装于Controller中。
全文摘要
本发明公开了一种转发数据报文的方法,包括当交换机(Switch)没有查找到数据报文匹配的流表项时、且没有查找到所述数据报文匹配的假表项时,将所述数据报文匹配到缺省流表项,根据缺省流表项将所述数据报文发送给网络控制器(Controller),并生成假表项,再根据Controller发来的路径信息转发数据报文。本发明还同时公开了一种转发数据报文的装置,采用本发明能避免短时间内Switch将没有流表项匹配的数据报文大量重复的传送到Controller,从而节省OpenFlow网络中的带宽以及Controller中的处理资源。
文档编号H04L12/56GK102685006SQ20121013464
公开日2012年9月19日 申请日期2012年5月3日 优先权日2012年5月3日
发明者孙凌 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1