本发明属于数据通信领域,尤其涉及一种报文转发方法和网络设备。
背景技术:
随着网络规模的增大以及无线网络的普及,对无线控制器(Access Controller,AC)设备的转发性能要求越来越高,现有的AC设备使用纯CPU软件或者使用CPU加交换芯片的方式来完成数据转发,交换芯片转发为硬件转发,通常能够做到在其带宽内线速转发报文,传统的AC设备使用CPU加交换芯片的方式完成的数据转发,其交换芯片只是用来增加AC设备对外提供的端口密度以及端口类型,达到扩展端口的作用,并未充分利用其线速转发特性,使得报文的转发工作仍然只在CPU上进行,交换芯片的加入并未对整机转发性能的提高做出贡献。
技术实现要素:
本发明提供一种报文转发方法,用以解决现有技术中,网络设备中加入交换芯片只是用于扩展端口,并未充分利用交换芯片的转发功能及线速转发特性,来提高网络设备整机转发性能的问题。
基于上述目的,第一方面,本发明实施例提供了一种报文转发方法,应用于包含CPU和交换芯片的网络设备中,所述交换芯片与所述CPU通过HiGig口进行连接,所述方法包括:
交换芯片接收来自所述网络设备面板口的第一报文;
当判断所述第一报文携带CAPWAP头部时,将所述第一报文进行HiGig头部封装后生成第二报文转发至CPU,由CPU对所述第二报文进行处理;
当判断所述第一报文未携带CAPWAP头部时,在交换芯片中查二层/三层转发表项进行报文转发。
本发明提供的一种报文转发方法,充分利用交换芯片的转发功能以及线速转发特性,在网络设备中通过交换芯片完成二层/三层转发,减小CPU负担;通过在HiGig头部中携带自定义信息的方式解决报文经过交换芯片转发后再次回到CPU时无法得到报文原始信息的问题,提高了网络设备的整机转发性能。
第二方面,本发明实施例还提供了一种网络设备,包括CPU处理模块和交换芯片模块,所述交换芯片模块与所述CPU处理模块通过HiGig口进行连接,
所述交换芯片模块,用于接收来自所述网络设备面板口的第一报文;
所述交换芯片模块,还用于当判断所述第一报文携带CAPWAP头部时,将所述第一报文进行HiGig头部封装后生成第二报文转发至CPU处理模块;
所述CPU处理模块,用于对所述第二报文进行处理;
所述交换芯片模块,还用于当判断所述第一报文未携带CAPWAP头部时,在交换芯片中查二层/三层转发表项进行报文转发。
本发明的有益效果为:在本发明中充分利用交换芯片的转发功能以及线速转发特性,在网络设备中通过交换芯片完成二层/三层转发,减小CPU负担;通过在HiGig头部中携带自定义信息的方式解决报文经过交换芯片转发后再次回到CPU时无法得到报文原始信息的问题,提高了网络设备的整机转发性能。
附图说明
图1是本发明实施例提供的一种报文转发方法的方法流程图;
图2是本发明实施例提供的一种报文转发方法的方法流程图;
图3是本发明实施例提供的一种报文转发方法的方法流程图;
图4是本发明实施例提供的一种报文转发方法的方法流程图;
图5是本发明实施例提供的一种报文转发方法的方法流程图;
图6是本发明实施例提供的一种报文转发方法的方法流程图;
图7是本发明实施例提供的一种网络设备的结构示意图。
具体实施方式
为使本发明的技术方案更加清楚明白,现结合附图对本发明做进一步详细说明:
本发明实施例提供一种报文转发方法及一种网络设备,用以解决现有技术中,网络设备中加入交换芯片只是用于扩展端口,并未充分利用交换芯片的线速转发特征,来提高网络设备整机转发性能的问题。
为了达到以上目的,本发明实施例提供了一种报文转发方法,应用于包含CPU和交换芯片的网络设备中,所述交换芯片与所述CPU通过HiGig口进行连接,如图1所示,所述方法包括:
步骤101、交换芯片接收来自所述网络设备面板口的第一报文;
步骤102、当判断所述第一报文携带CAPWAP头部时,将所述第一报文进行HiGig头部封装后生成第二报文转发至CPU,由CPU对所述第二报文进行处理;
在本发明实施例中,如果报文的源地址为终端,则该报文在进入网络设备之前会先进行CAPWAP头部封装,因此来自终端的报文会携带CAPWAP头部。如来自STATION的报文在通过无线接入点AP进入无线控制器AC时,在AP上会进行CAPWAP头部封装,因此最终到达AC的来自终端的报文会携带CAPWAP头部。
由于交换芯片与CPU相连的端口为HiGig口,经过HiGig口的报文都会进行HiGig头部封装,因此在本发明实施例中,不管是从交换芯片转发至CPU的报文还是从CPU转发至交换芯片的报文,都会在HiGig口进行加解HiGig头部封装后再进行报文的后续处理动作。
在本发明实施例中,如果报文从终端发出并经过三层转发再次转发至终端时,报文的转发路径是交换芯片->CPU->交换芯片->CPU->交换芯片,报文两次经过交换芯片后被转发至CPU,后一次被转发至CPU时可能已经无法得知该报文的原始来源了,因此在本发明实施例中可以利用HiGig头部中二层/三层转发不使用的位域(如HiGig头部的VC_LABEL域等)作为HiGig头部的自定义信息字段,自定义信息字段中可以携带包括报文的CAPWAP信息、物理入口信息、VLAN信息等报文的原始来源信息,这部分信息可以让技术人员了解该报文是否来自终端等,以使报文不管经过多少次转发都始终能够使CPU知道该报文的原始来源信息。
在步骤102之后,还包括CPU对所述第二报文进行处理步骤,如图2所示,所述由CPU对所述第二报文进行处理具体包括:
步骤201、CPU解析所述第二报文的HiGig头部得出所述第二报文的源端口为面板口之后,进行CAPWAP解封装并获取内层报文,
步骤202、当判断所述内层报文的目的MAC地址为终端的MAC地址时,将所述内层报文重新进行CAPWAP头部封装后生成第三报文发送至交换芯片,由交换芯片查二层/三层转发表项后将所述第三报文转发至去往所述终端所经过的网络设备的相应面板口;在本发明实施例中,终端首次上线时,CPU会记录包括MAC地址在内的终端的相关信息。
步骤203、当判断所述内层报文的目的MAC地址不是终端的MAC地址时,将所述内层报文解封装前对应的CAPWAP信息封装在所述内层报文的HiGig头部的自定义信息字段中后生成第四报文转发至交换芯片。
如图3所示,在步骤203的将所述内层报文解封装前对应的CAPWAP信息封装在所述内层报文的HiGig头部的自定义信息字段中后生成第四报文转发至交换芯片之后,所述方法还包括:
步骤301、交换芯片接收所述第四报文,对去掉所述HiGig头部后的第四报文进行判断,
步骤302、当判断所述去掉所述HiGig头部后的第四报文的目的IP地址不是终端的IP地址,根据查二层/三层转发表项得出所述去掉所述HiGig头部后的第四报文的目的出端口为网络设备的面板口时,将所述去掉所述HiGig头部后的第四报文转发至所述网络设备的面板口;
步骤303、当判断所述去掉所述HiGig头部后的第四报文的目的IP地址为终端的IP地址,根据查二层/三层转发表项得出所述去掉所述HiGig头部后的第四报文的目的出端口为HiGig口时,将所述去掉所述HiGig头部后的第四报文的目的MAC地址修改为终端的MAC地址并重新进行HiGig头部封装后生成第五报文转发至CPU。
如图4所示,在步骤303的将所述去掉所述HiGig头部后的第四报文的目的MAC地址修改为终端的MAC地址并重新进行HiGig头部封装后生成第五报文转发至CPU后,所述方法还包括:
步骤401、CPU接收所述第五报文,解析所述第五报文的HiGig头部得出所述第五报文的源端口为HiGig口之后,对所述第五报文的HiGig头部的自定义信息字段中携带的CAPWAP信息进行解析后根据MAC地址判断所述第五报文的目的MAC地为终端的MAC时,对所述第五报文重新进行CAPWAP头部封装后生成第六报文转发至交换芯片,由交换芯片查二层/三层转发表项将所述第六报文转发至去往所述终端所经过的网络设备的相应面板口。
在本发明实施例中,在交换芯片中查二层/三层转发表项得出如果报文的目的出端口为网络设备的面板口时,则无需对报文做任何修改,如果报文的目的出端口是HiGig口,则可以通过在HiGig头部的自定义信息字段中携带自定义信息的方式,将我们需要关心的自定义信息包括物理入口信息、VLAN信息以及CAPWAP信息等封装在HiGig头部中发送至CPU,使得CPU拿到报文的原始信息。
步骤103、当判断所述第一报文未携带CAPWAP头部时,在交换芯片中查二层/三层转发表项进行报文转发。在本步骤中,如果接收到的第一报文未携带CAPWAP头部,则该第一报文的源端设备可以是PC以及其他通过网线/光纤等方式连接的有线网络设备。在本步骤中,如何查二层/三层转发表项进行报文转发是已有技术,此处不再赘述。
如图5所示,在步骤103的当判断接所述第一报文未携带CAPWAP头部时,在交换芯片中查二层/三层转发表项进行报文转发之后,所述方法还包括:
步骤501、当判断所述第一报文的目的IP地址不是终端的IP地址,根据查二层/三层转发表项得出所述第一报文的目的出端口为网络设备的面板口时,将所述第一报文转发至所述网络设备的面板口;
步骤502、当判断所述第一报文的目的IP地址为终端的IP地址,根据查二层/三层转发表项得出所述第一报文的目的出端口为HiGig口时,将所述第一报文的目的MAC地址修改为终端的MAC地址生成第七报文后转发至CPU。
如图6所示,在步骤502的将所述第一报文的目的MAC地址修改为终端的MAC地址生成第七报文后转发至CPU之后,所述方法还包括:
步骤601、CPU接收所述第七报文,根据MAC地址判断所述第七报文的目的MAC地为终端的MAC时,对所述第七报文重新进行CAPWAP头部封装后生成第八报文转发至交换芯片,由交换芯片查二层/三层转发表项将所述第八报文转发至去往所述终端所经过的网络设备的相应面板口。
本发明实施例提供的一种报文转发方法,该方法充分利用交换芯片的转发功能以及线速转发特性,在网络设备中通过交换芯片完成二层/三层转发,减小CPU负担;通过在HiGig头部中携带自定义信息的方式解决报文经过交换芯片转发后再次回到CPU时无法得到报文原始信息的问题,提高了网络设备的整机转发性能。
基于上述实施例所述的一种报文转发方法,本发明实施例还提供了一种网络设备,如图7所示,该网络设备包括CPU处理模块701和交换芯片模块702,所述交换芯片模块702与所述CPU处理模块701通过HiGig口进行连接,
所述交换芯片模块702,用于接收来自所述网络设备面板口的第一报文;
所述交换芯片模块702,还用于当判断所述第一报文携带CAPWAP头部时,将所述第一报文进行HiGig头部封装后生成第二报文转发至CPU处理模块701;
所述CPU处理模块701,用于对所述第二报文进行处理;
所述交换芯片模块702,还用于当判断所述第一报文未携带CAPWAP头部时,在交换芯片中查二层/三层转发表项进行报文转发。
所述CPU处理模块701,还用于解析所述第二报文的HiGig头部得出所述第二报文的源端口为面板口之后,进行CAPWAP解封装并获取内层报文,当判断所述内层报文的目的MAC地址为终端的MAC地址时,将所述内层报文重新进行CAPWAP头部封装后生成第三报文发送至交换芯片模块702;
所述交换芯片模块702,还用于接收所述第三报文,查二层/三层转发表项后将所述第三报文转发至去往所述终端所经过的网络设备的相应面板口;
所述CPU处理模块701,还用于当判断所述内层报文的目的MAC地址不是终端的MAC地址时,将所述内层报文解封装前对应的CAPWAP信息封装在所述内层报文的HiGig头部的自定义信息字段中后生成第四报文转发至交换芯片模块702。
所述交换芯片模块702,还用于接收所述第四报文,对去掉所述HiGig头部后的第四报文进行判断,当判断所述去掉所述HiGig头部后的第四报文的目的IP地址不是终端的IP地址,根据查二层/三层转发表项得出所述去掉所述HiGig头部后的第四报文的目的出端口为网络设备的面板口时,将所述去掉所述HiGig头部后的第四报文转发至所述网络设备的面板口;
所述交换芯片模块702,还用于当判断所述去掉所述HiGig头部后的第四报文的目的IP地址为终端的IP地址,根据查二层/三层转发表项得出所述去掉所述HiGig头部后的第四报文的目的出端口为HiGig口时,将所述去掉所述HiGig头部后的第四报文的目的MAC地址修改为终端的MAC地址并重新进行HiGig头部封装后生成第五报文转发至CPU处理模块701。
所述CPU处理模块701,还用于接收所述第五报文,解析所述第五报文的HiGig头部得出所述第五报文的源端口为HiGig口之后,对所述第五报文的HiGig头部的自定义信息字段中携带的CAPWAP信息进行解析后根据MAC地址判断所述第五报文的目的MAC地为终端的MAC时,对所述第五报文重新进行CAPWAP头部封装后生成第六报文转发至交换芯片模块702;
所述交换芯片模块702,还用于接收所述第六报文,查二层/三层转发表项将所述第六报文转发至去往所述终端所经过的网络设备的相应面板口。
所述交换芯片模块702,还用于当判断所述第一报文的目的IP地址不是终端的IP地址,根据查二层/三层转发表项得出所述第一报文的目的出端口为网络设备的面板口时,将所述第一报文转发至所述网络设备的面板口;
所述交换芯片模块702,还用于当判断所述第一报文的目的IP地址为终端的IP地址,根据查二层/三层转发表项得出所述第一报文的目的出端口为HiGig口时,将所述第一报文的目的MAC地址修改为终端的MAC地址生成第七报文后转发至CPU处理模块701。
所述CPU处理模块701,还用于接收所述第七报文,根据MAC地址判断所述第七报文的目的MAC地为终端的MAC时,对所述第七报文重新进行CAPWAP头部封装后生成第八报文转发至交换芯片模块702;
所述交换芯片模块702,还用于接收所述第八报文,查二层/三层转发表项将所述第八报文转发至去往所述终端所经过的网络设备的相应面板口。
本发明实施例提供的一种网络设备充分利用交换芯片模块的转发功能及线速转发特性,在网络设备中通过交换芯片模块完成二层/三层转发,减小CPU负担;通过在HiGig头部中携带自定义信息的方式解决报文经过交换芯片模块转发后再次回到CPU处理模块时无法得到报文原始信息的问题,提高了网络设备的整机转发性能。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。