一种报文发送的方法和装置的制作方法

文档序号:7651855阅读:113来源:国知局
专利名称:一种报文发送的方法和装置的制作方法
技术领域
本发明涉及网络安全领域,特别涉及一种报文发送的方法和装置。
背景技术
目前互联网交换设备路由器的安全和性能越来越重要,使之成为影响路由器应用的主要因素。在通过互联网传送语音、数据、视频等信息时,网络运营商需要提供不同类型业务的QoS(Quality of Service-服务质量)。对于最普通的报文来说,其在路由器上的优先级最低,如果路由器发生拥塞,那么普通报文很有可能被丢弃,而对于一些协议报文来说,需要采取较高的优先级,以防止被丢弃。但是有些协议报文需要通过多台路由器转发到对端,在中间路由器上过路的时候,必须使用特殊的端口或者特殊的VLAN_ID(Virtual LANIDentification-虚拟局域网编号),对于这类协议报文需要识别,以提高其优先级或进行上送转发等特殊动作处理。
现有路由器的控制平面和转发平面通常是分离的,控制平面处理协议报文,转发平面转发数据报文,而识别这些路由器本地接收或转发协议报文的任务一般是由转发平面来执行。对于每个路由节点需要识别的协议报文,转发平面根据协议报文中的特征字段或特殊信息来进行识别,例如IP(Internet Protocol-因特网协议)层的协议字段,或UDP(User DatagramProtocol-用户数据报协议)报文的UDP头的协议字段、VLAN_ID或协议报文进来的端口号等,如果是特殊协议报文,则进行特殊处理,或者提高报文转发的QoS优先级,或者上送到控制平面进行处理。发明人在实现本发明的过程中发现如果攻击报文利用特殊VLAN ID或从特殊端口进来,模仿协议报文,提高报文转发优先级,那么一旦路由器拥塞,相同优先级的其他协议报文有可能会被丢弃,造成拒绝服务式的攻击。

发明内容
为了克服报文在经过路由器发送的过程中,由于路由器拥塞可能被丢弃的问题,本发明实施例提供了一种报文发送的方法,所述方法包括收到报文后,提取所述报文中的信息,将所述信息进行逻辑运算,组合成关键字,并将该关键字与预先设置的关键字进行匹配;匹配成功后,查找到与所述逻辑运算组合成的关键字对应的动作字段,所述动作字段与所述预先设置的关键字建立了对应关系,并根据所述查找到的动作字段发送所述报文。
本发明实施例提供了一种识别协议报文的方法,所述方法包括收到报文后,提取所述报文中的信息,将所述信息进行逻辑运算,组合成关键字,并将该关键字与预先设置的协议报文的关键字进行匹配;如果匹配成功,则所述报文为协议报文。
本发明实施例提供了一种报文发送的装置,所述装置包括保存模块用于保存设置好的关键字和动作字段的对应关系;包接收模块用于接收报文,提取报文中的信息,并将提取出的信息发送出去;包发送模块用于接收所述包接收模块发送的信息,对该信息进行逻辑运算,组合成关键字,将该关键字与预先设置的关键字进行匹配,匹配成功后,根据所述保存模块保存的对应关系查找到与所述逻辑运算组合成的关键字对应的动作字段,并根据所述查找到的动作字段发送所述报文。
本发明实施例提供了一种识别协议报文的装置,所述装置包括保存模块用于保存协议报文的关键字;识别模块用于收到报文后,提取所述报文中的信息,将所述信息进行逻辑运算,组合成关键字,并将该关键字与所述保存模块保存的关键字进行匹配,如果匹配成功,则所述报文为协议报文。
本发明实施例提供了一种路由器,所述路由器包括转发引擎、控制引擎和协处理器;所述转发引擎用于接收报文,提取出报文中的信息,并对信息进行逻辑运算,组合成关键字,将该关键字发送出去;所述控制引擎用于下发含有关键字和与关键字对应的动作字段的协议报文转发表项;所述协处理器用于接收所述控制引擎下发的协议报文转发表项,以及所述转发引擎发送的关键字,并将收到的关键字与所述协议报文转发表项中的关键字进行匹配。
本发明实施例提供的技术方案的有益效果通过关键字的匹配,克服了报文在经过路由器发送的过程中,由于路由器拥塞可能被丢弃的问题;通过协议报文关键字的匹配,可以辨别出真假协议报文,有效地防止了黑客的攻击。另外,当传输协议变化的时候,可以通过修改关键字,来实现报文的快速发送,而不需要修改代码,增加了报文发送的灵活性。


图1是本发明实施例提供的报文发送的方法流程图;图2是本发明实施例提供的识别协议报文的方法流程图;图3是本发明实施例提供的报文发送的装置的结构图;图4是本发明实施例提供的识别协议报文的装置的结构图;图5是本发明实施例提供的路由器的结构框图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例在收到报文后,提取报文中的信息,将信息进行逻辑运算,组合成关键字,并将该关键字与预先设置的关键字进行匹配;匹配成功后,查找到与逻辑运算组合成的关键字对应的动作字段,动作字段与预先设置的关键字建立了对应关系,并根据查找到的动作字段发送报文。下面以路由器为例,但不仅限于此,还可以是三层交换机等其他网络设备,来阐述本发明实施例提供的报文发送的方法,具体包括以下步骤,参见图1步骤101向路由器的协处理器或内存下发含有关键字和与关键字对应的动作字段的协议报文转发表项。
协议报文转发表项中的关键字为协议报文进来的源端口号、VLAN_ID、协议报文的MAC地址(Media Access Control-媒体接入控制)、协议报文源IP地址、协议报文目的IP地址和协议报文进来的TCP(Transmission Control Protocol-传输控制协议)/UDP端口号等信息中的一种或几种的逻辑运算组合。
与关键字对应的动作字段可以为01、02或03,但不限于这些字段,其中动作字段01表示正常转发,即根据报文的目的IP地址查找路由表,根据路由表中的报文出口信息将报文发送出去;动作字段02表示上送,即将报文发送到路由器的控制平面进行处理;动作字段03表示上送加正常转发,即需要复制一份报文,变成两份,一份发送到路由器的控制平面进行处理,另一份根据报文的目的IP地址查找路由表,根据路由表中的报文出口信息将报文发送出去。
步骤102路由器将收到的报文存储到路由器的数据存储器中,提取出报文中的信息。
报文中的信息包括报文进来的源端口号、VLAN_ID、报文的MAC地址、报文源IP地址、报文目的IP地址和报文进来的TCP/UDP端口号等信息中的一种或几种。
步骤103路由器将提取出的报文中的信息进行逻辑运算,组合成关键字,并将该关键字发送到路由器的协处理器或内存中。
例如1.路由器将报文进来的源端口号、VLAN_ID和报文的MAC地址逻辑运算组合成关键字,其中VLAN_ID为0x64(十进制数100),报文进来的源端口号为5,报文的MAC地址为0x00af11223344,它们各自占用的宽度如下表1所示

表1那么逻辑运算组合成的关键字为0000 0110 0100 00 0101 0000 0000 1010 1111 0001 00010010 0010 0011 0011 0100 0100,一共66bit。如果路由器的协处理器要求72bit,可以在后面补6个零。
2.路由器将报文进来的源端口号、VLAN_ID、报文的MAC地址和报文的TCP端口号逻辑运算组合成关键字,其中VLAN_ID为0x64(十进制数100),报文进来的源端口号为5,报文的MAC地址为0x00af11223344,报文的TCP端口号为5,它们各自占用的宽度如下表2所示

表2那么逻辑运算组合成的关键字为0000 0110 0100 00 0101 0000 0000 1010 1111 0001 00010010 0010 0011 0011 0100 0100 0000 0000 0000 0101,一共82bit。如果路由器的协处理器要求72bit,那么可以写两行,即144bit,多余的比特位写零。
3.路由器将报文进来的源端口号、VLAN_ID、报文的MAC地址、报文目的IP地址和报文的TCP端口号逻辑运算组合成关键字,其中VLAN ID为0x64(十进制数100),报文进来的源端口号为5,报文的MAC地址为0x00af11223344,报文目的IP地址为0xC0A80002,报文的TCP端口号为5,它们各自占用的宽度如下表3所示

表3那么逻辑运算组合成的关键字为0000 0110 0100 00 0101 0000 0000 1010 1111 0001 00010010 0010 1100 0000 1010 1000 0000 0000 0000 0010 0011 0011 0100 0100 0000 0000 00000101,一共114bit。如果路由器的协处理器要求72bit,那么可以写两行,即144bit,多余的比特位写零。
步骤104路由器的协处理器或内存将收到的关键字与协议报文转发表项中的关键字进行匹配,如果匹配成功,则执行步骤105,如果匹配不成功,则执行步骤106。
如果路由器的协处理器或内存收到的关键字与协议报文转发表项中的关键字相同,则匹配成功;如果路由器的协处理器或内存收到的关键字与协议报文转发表项中的关键字不相同,则匹配不成功。
步骤105路由器根据协议报文转发表项中与逻辑运算组合成的关键字对应的动作字段所表示的处理动作对路由器的数据存储器中存储的报文进行发送。
例如针对步骤103中的关键字0000 0110 0100 00 0101 0000 0000 1010 1111 0001 00010010 0010 0011 0011 0100 0100和步骤101中协议报文转发表项中的动作字段,如果协议报文转发表项中与该关键字对应的动作字段为01,则路由器将数据存储器中存储的报文发送出去,即根据报文的目的IP地址查找路由表,根据路由表中的报文出口信息将报文发送出去。
步骤106路由器根据路由表中的报文出口信息将路由器的数据存储器中存储的报文发送出去。
路由器根据路由表中的报文出口信息将路由器的数据存储器中存储的报文发送出去具体包括路由器根据报文进来的源端口号、VLAN_ID、报文的MAC地址、报文源IP地址、报文目的IP地址、报文进来的TCP/UDP端口号等信息去查找路由表,查找到报文的出口信息;路由器从其数据存储器中读取出报文,并根据报文出口信息将报文通过出端口发送出去。报文的出口信息包括报文出端口号、下一跳IP地址和封装报文头等信息。
本实施例通过协议报文转发表项来进行关键字的匹配,进而决定对报文如何进行发送处理,从而克服了报文在经过路由器发送的过程中,由于路由器拥塞可能被丢弃的问题,而且还解决了仅由路由器的转发平面单独来进行报文的发送处理问题。
在实际的应用中,在路由器进行关键字匹配之前,还可以通过查看收到的报文中的特征字段(例如IP层的协议字段、UDP报文头的协议字段等)来判断报文的类型,如果通过报文中的特征字段可以判断报文为协议报文,则路由器将报文按照协议报文进行发送,否则路由器进行关键字的匹配,这样可以提高报文的发送速度。
本发明实施例提供了一种识别协议报文的方法,方法具体包括收到报文后,提取报文中的信息,将信息进行逻辑运算,组合成关键字,并将该关键字与预先设置的协议报文的关键字进行匹配;如果匹配成功,则报文为协议报文。下面以路由器为例,但不仅限于此,还可以是三层交换机等其他网络设备,来阐述本发明实施例提供的识别协议报文的方法,具体包括以下步骤,参见图2步骤201向路由器的协处理器或内存下发协议报文的关键字。
协议报文的关键字为协议报文进来的源端口号、VLAN_ID、协议报文的MAC地址、协议报文源IP地址、协议报文目的IP地址和协议报文进来的TCP/UDP端口号等信息中的一种或几种的逻辑运算组合。
步骤202路由器将收到的报文存储到路由器的数据存储器中,提取出报文中的信息。
报文中的信息包括报文进来的源端口号、VLAN_ID、报文的MAC地址、报文源IP地址、报文目的IP地址和报文进来的TCP/UDP端口号等信息中的一种或几种。
步骤203路由器将提取出的报文中的信息进行逻辑运算,组合成关键字,并将该关键字发送到路由器的协处理器或内存中。
步骤204路由器的协处理器或内存将收到的关键字与协议报文的关键字进行匹配,如果匹配成功,则报文为协议报文,否则为非协议报文。
本实施例通过协议报文关键字的匹配,可以有效地识别真伪协议报文,提高了网络的安全性。
参见图3,本发明实施例提供了一种报文发送的装置,该装置包括保存模块用于保存设置好的关键字和动作字段的对应关系;包接收模块用于接收报文,提取报文中的信息,并将提取出的信息发送出去;
包发送模块用于接收包接收模块发送的信息,对该信息进行逻辑运算,组合成关键字,将该关键字与预先设置的关键字进行匹配,匹配成功后,根据保存模块保存的对应关系查找到与逻辑运算组合成的关键字对应的动作字段,并根据查找到的动作字段发送报文。
包发送模块包括匹配单元用于接收包接收模块发送的信息,对该信息进行逻辑运算,组合成关键字,将该关键字与预先设置的关键字进行匹配,匹配成功后,发送关键字匹配成功的消息;上送单元用于接收到匹配单元发送的关键字匹配成功的消息后,本地接收报文。
或者,包发送模块包括匹配单元用于接收包接收模块发送的信息,对该信息进行逻辑运算,组合成关键字,将该关键字与预先设置的关键字进行匹配,匹配成功后,发送关键字匹配成功的消息;正常转发单元用于接收到匹配单元发送的关键字匹配成功的消息后,根据报文的出口信息将报文发送出去。
或者,包发送模块包括匹配单元用于接收包接收模块发送的信息,对该信息进行逻辑运算,组合成关键字,将该关键字与预先设置的关键字进行匹配,匹配成功后,发送关键字匹配成功的消息;上送加正常转发单元用于接收到匹配单元发送的关键字匹配成功的消息后,将报文复制一份,并将一份报文本地接收,将另一份报文根据报文的出口信息发送出去。
报文中的信息包括报文进来的源端口号、虚拟局域网编号VLAN_ID、报文的媒体接入控制MAC地址、报文源IP地址、报文目的IP地址和报文进来的传输控制协议/用户数据报协议TCP/UDP端口号中的一种或几种。
本实施例通过包发送模块将逻辑运算组合成的关键字与预先设置的关键字进行匹配,进而决定对报文如何进行发送处理,从而克服了报文在经过路由器发送的过程中,由于路由器拥塞可能被丢弃的问题。
参见图4,本发明实施例提供了一种识别协议报文的装置,该装置包括保存模块用于保存协议报文的关键字;识别模块用于收到报文后,提取报文中的信息,将信息进行逻辑运算,组合成关键字,并将该关键字与保存模块保存的关键字进行匹配,如果匹配成功,则报文为协议报文。
本实施例通过识别模块进行协议报文关键字的匹配,可以有效地识别真伪协议报文,提高了网络的安全性。
参见图5,本发明实施例提供了一种路由器,该路由器包括转发引擎、控制引擎和协处理器;转发引擎用于接收报文,提取出报文中的信息,并对信息进行逻辑运算,组合成关键字,将该关键字发送出去;控制引擎用于下发含有关键字和与关键字对应的动作字段的协议报文转发表项;协处理器用于接收控制引擎下发的协议报文转发表项,以及转发引擎发送的关键字,并将收到的关键字与协议报文转发表项中的关键字进行匹配。
转发引擎包括包接收模块和包转发模块;包接收模块用于接收报文,提取出报文中的信息,并将信息发送出去;包转发模块用于接收包接收模块发送的信息,对信息进行逻辑运算,组合成关键字,并将该关键字发送至协处理器。
本路由器有效地克服了报文发送过程中,由于自身拥塞而导致的丢弃报文的问题。
本发明实施例通过关键字的匹配,进而决定对报文如何进行发送处理,从而克服了报文在经过路由器发送的过程中,由于路由器拥塞可能被丢弃的问题,而且还解决了仅由路由器的转发平面单独来进行报文的发送处理问题;同时还可以避免判断报文的各种特殊字段,节省了路由器转发平面的代码。另外,如果传输协议有所改动,那么不用修改路由器转发平面的代码,减少了出错几率;如果不想做特殊协议报文的发送处理,那么可以从上层通过命令把协议报文转发表项删除,增加了协议报文发送的灵活性。
本发明实施例可以利用软件实现,例如利用C语言、汇编语言实现,相应的软件可以存储在可读取的存储介质中,例如计算机的硬盘、内存中。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种报文发送的方法,其特征在于,所述方法包括收到报文后,提取所述报文中的信息,将所述信息进行逻辑运算,组合成关键字,并将该关键字与预先设置的关键字进行匹配;匹配成功后,查找到与所述逻辑运算组合成的关键字对应的动作字段,所述动作字段与所述预先设置的关键字建立了对应关系,并根据所述查找到的动作字段发送所述报文。
2.如权利要求1所述的报文发送的方法,其特征在于,所述根据所述查找到的动作字段发送所述报文具体为所述查找到的动作字段为表示上送的字段,则本地接收所述报文。
3.如权利要求1所述的报文发送的方法,其特征在于,所述根据所述查找到的动作字段发送所述报文具体为所述查找到的动作字段为表示正常转发的字段,则根据所述报文的出口信息将所述报文发送出去。
4.如权利要求1所述的报文发送的方法,其特征在于,所述根据所述查找到的动作字段发送所述报文具体为所述查找到的动作字段为表示上送加正常转发的字段,则将所述报文复制一份,并将一份报文本地接收,将另一份报文根据所述报文的出口信息发送出去。
5.如权利要求1-4中任一权利要求所述的报文发送的方法,其特征在于,所述报文中的信息包括报文进来的源端口号、虚拟局域网编号VLAN_ID、报文的媒体接入控制MAC地址、报文源IP地址、报文目的IP地址和报文进来的传输控制协议/用户数据报协议TCP/UDP端口号中的一种或几种。
6.一种识别协议报文的方法,其特征在于,所述方法包括收到报文后,提取所述报文中的信息,将所述信息进行逻辑运算,组合成关键字,并将该关键字与预先设置的协议报文的关键字进行匹配;如果匹配成功,则所述报文为协议报文。
7.一种报文发送的装置,其特征在于,包括保存模块用于保存设置好的关键字和动作字段的对应关系;包接收模块用于接收报文,提取报文中的信息,并将提取出的信息发送出去;包发送模块用于接收所述包接收模块发送的信息,对该信息进行逻辑运算,组合成关键字,将该关键字与预先设置的关键字进行匹配,匹配成功后,根据所述保存模块保存的对应关系查找到与所述逻辑运算组合成的关键字对应的动作字段,并根据所述查找到的动作字段发送所述报文。
8.如权利要求7所述的报文发送的装置,其特征在于,所述包发送模块包括匹配单元用于接收所述包接收模块发送的信息,对该信息进行逻辑运算,组合成关键字,将该关键字与预先设置的关键字进行匹配,匹配成功后,发送关键字匹配成功的消息;上送单元用于接收到所述匹配单元发送的关键字匹配成功的消息后,本地接收所述报文。
9.如权利要求7所述的报文发送的装置,其特征在于,所述包发送模块包括匹配单元用于接收所述包接收模块发送的信息,对该信息进行逻辑运算,组合成关键字,将该关键字与预先设置的关键字进行匹配,匹配成功后,发送关键字匹配成功的消息;正常转发单元用于接收到所述匹配单元发送的关键字匹配成功的消息后,根据所述报文的出口信息将所述报文发送出去。
10.如权利要求7所述的报文发送的装置,其特征在于,所述包发送模块包括匹配单元用于接收所述包接收模块发送的信息,对该信息进行逻辑运算,组合成关键字,将该关键字与预先设置的关键字进行匹配,匹配成功后,发送关键字匹配成功的消息;上送加正常转发单元用于接收到所述匹配单元发送的关键字匹配成功的消息后,将所述报文复制一份,并将一份报文本地接收,将另一份报文根据所述报文的出口信息发送出去。
11.如权利要求7-10中任一权利要求所述的报文发送的装置,其特征在于,所述报文中的信息包括报文进来的源端口号、虚拟局域网编号VLAN_ID、报文的媒体接入控制MAC地址、报文源IP地址、报文目的IP地址和报文进来的传输控制协议/用户数据报协议TCP/UDP端口号中的一种或几种。
12.一种识别协议报文的装置,其特征在于,包括保存模块用于保存协议报文的关键字;识别模块用于收到报文后,提取所述报文中的信息,将所述信息进行逻辑运算,组合成关键字,并将该关键字与所述保存模块保存的关键字进行匹配,如果匹配成功,则所述报文为协议报文。
13.一种路由器,其特征在于,包括转发引擎、控制引擎和协处理器;所述转发引擎用于接收报文,提取出报文中的信息,并对信息进行逻辑运算,组合成关键字,将该关键字发送出去;所述控制引擎用于下发含有关键字和与关键字对应的动作字段的协议报文转发表项;所述协处理器用于接收所述控制引擎下发的协议报文转发表项,以及所述转发引擎发送的关键字,并将收到的关键字与所述协议报文转发表项中的关键字进行匹配。
14.如权利要求13所述的路由器,其特征在于,所述转发引擎包括包接收模块和包转发模块;所述包接收模块用于接收报文,提取出报文中的信息,并将信息发送出去;所述包转发模块用于接收所述包接收模块发送的信息,对信息进行逻辑运算,组合成关键字,并将该关键字发送至所述协处理器。
全文摘要
本发明公开了一种报文发送的方法和装置,属于网络安全领域。所述方法包括收到报文后,提取报文中的信息,将信息进行逻辑运算,组合成关键字,并将该关键字与预先设置的关键字进行匹配;匹配成功后,查找到与逻辑运算组合成的关键字对应的动作字段,动作字段与预先设置的关键字建立了对应关系,并根据查找到的动作字段发送报文。所述装置包括保存模块、包接收模块和包发送模块。本发明还提供了一种路由器,它包括转发引擎、控制引擎和协处理器。本发明通过关键字的匹配,具有了防止报文在路由器拥塞时被丢弃的效果。
文档编号H04L29/06GK101030947SQ20071009727
公开日2007年9月5日 申请日期2007年4月29日 优先权日2007年4月29日
发明者杨志岗, 游南林 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1