CN102624611B - 报文分流方法、装置、处理器和网络设备 - Google Patents

报文分流方法、装置、处理器和网络设备 Download PDF

Info

Publication number
CN102624611B
CN102624611B CN201210049845.0A CN201210049845A CN102624611B CN 102624611 B CN102624611 B CN 102624611B CN 201210049845 A CN201210049845 A CN 201210049845A CN 102624611 B CN102624611 B CN 102624611B
Authority
CN
China
Prior art keywords
message
tunnel
processor
slicing
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210049845.0A
Other languages
English (en)
Other versions
CN102624611A (zh
Inventor
闫婷
于锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Symantec Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN201210049845.0A priority Critical patent/CN102624611B/zh
Publication of CN102624611A publication Critical patent/CN102624611A/zh
Application granted granted Critical
Publication of CN102624611B publication Critical patent/CN102624611B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种报文分流方法、装置、处理器和网络设备,该报文分流方法包括:接收并解析隧道报文,根据该隧道报文的报文头中的分片信息确定隧道报文是否为隧道分片报文;当该隧道报文为隧道分片报文时,在保存的分片信息表中查找与隧道分片报文的外层IP地址和该隧道分片报文的标识对应的处理器编号;当在分片信息表中查找到与上述隧道分片报文的外层IP地址和隧道分片报文的标识对应的处理器编号时,将隧道分片报文发送给相应的处理器。该方法可以实现对隧道报文进行均匀分流,并可以确保隧道分片报文的首分片和后续分片转发到同一处理器上,且无需在发送侧对隧道报文做任何修改。

Description

报文分流方法、装置、处理器和网络设备
技术领域
本发明涉及通信技术,尤其涉及一种报文分流方法、装置、处理器和网络设备。
背景技术
随着网络流量的不断提高,单一处理器系统越来越不能满足高速业务数据处理的要求,因此分布式系统在高端数据处理中获得了越来越广泛的应用。在分布式系统中,数据报文需要转发给多个处理器进行处理,为了保证处理器对数据报文的正确处理,需要将同一条流的报文转发给同一个处理器。因此分流技术是分布式系统中重要的数据转发方式。
普通的因特网协议(Internet Protocol;以下简称:IP)报文可根据报文的IP地址信息进行哈希(Hash)或通过访问控制列表(Access ControlList;以下简称:ACL)规则进行分流保证同一条流的流量都交给同一处理器处理。
但网络中还存在一种报文:隧道报文。隧道报文是对某些网络层协议的数据报文进行封装,使这些被封装的数据报文可以在另一种网络层协议中传输,如通用路由封装(Generic Routing Encapsulation;以下简称:GRE)报文等。如果与普通数据报文一样,针对隧道报文也采用外层IP进行分流,则由于隧道报文的外层IP可能都相同,简单的Hash运算或ACL规则匹配会造成隧道报文的流量全部交给同一个处理器处理,而其他处理器相对空闲的情况,浪费了系统资源。
现有技术提供的一种方案中,针对隧道报文根据该隧道报文内层封装的IP地址信息进行分流,以解决外层IP相同导致的分流不均问题。
但是对于根据外层IP进行分片的隧道分片报文,由于后续分片中不再包含内层IP信息,因此该方案会导致报文的首分片和后续分片分流到不同的处理器上,致使处理器无法正确处理这部分报文。
发明内容
本发明提供一种报文分流方法、装置、处理器和网络设备,以实现对隧道报文进行均匀分流,并可以保证隧道分片报文的首分片和后续分片转发到同一处理器上。
根据本发明实施例的一个方面,提供一种报文分流方法,包括:
接收并解析隧道报文,获取所述隧道报文的外层因特网协议IP地址、内层IP地址和所述隧道报文的标识;
根据所述隧道报文的报文头中的分片信息确定所述隧道报文是否为隧道分片报文;
当所述隧道报文为隧道分片报文时,在预存的分片信息表中查找与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的处理器编号,其中,所述分片信息表中的处理器编号根据隧道分片报文的内层IP地址或者根据隧道分片报文的外层IP地址和隧道分片报文的标识获得;
当在所述分片信息表中查找到与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的处理器编号时,将所述隧道分片报文发送给相应的处理器。
根据本发明实施例的另一方面,提供一种报文分流方法,包括:
第一处理器接收报文分流装置发送的隧道分片报文,获得所述隧道分片报文的外层因特网协议IP地址、内层IP地址和所述隧道分片报文的标识;
在预存的分片信息表中查找与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的第二处理器编号,其中,所述分片信息表中的第二处理器编号是根据隧道分片报文的内层IP地址获得;
当在所述分片信息表中查找到与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的第二处理器编号时,若第二处理器编号与所述第一处理器的编号不同,则将所述隧道分片报文发送给所述第二处理器编号对应的第二处理器;若所述第二处理器编号与所述第一处理器的编号相同,由所述第一处理器处理所述隧道分片报文。
根据本发明实施例的再一方面,提供一种报文分流装置,包括:
获取模块,用于接收并解析隧道报文,获取所述隧道报文的外层因特网协议IP地址、内层IP地址和所述隧道报文的标识;
确定模块,用于根据所述隧道报文的报文头中的分片信息确定所述隧道报文是否为隧道分片报文;
查找模块,用于当所述确定模块确定所述隧道报文为隧道分片报文时,在所述报文分流装置预存的分片信息表中查找与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的处理器编号,其中,所述分片信息表中的处理器编号根据隧道分片报文的内层IP地址或者根据隧道分片报文的外层IP地址和隧道分片报文的标识获得;
发送模块,用于当所述查找模块在所述分片信息表中查找到与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的处理器编号时,将所述隧道分片报文发送给相应的处理器。
根据本发明实施例的再一方面,提供一种处理器,所述处理器为第一处理器,所述处理器包括:
报文接收模块,用于接收报文分流装置发送的隧道分片报文,获得所述隧道分片报文的外层因特网协议IP地址、内层IP地址和所述隧道分片报文的标识;
编号查找模块,用于在预存的分片信息表中查找与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的第二处理器编号,其中,所述分片信息表中的第二处理器编号是根据隧道分片报文的内层IP地址获得;
报文发送模块,用于当所述编号查找模块在所述分片信息表中查找到与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的第二处理器编号时,若第二处理器编号与所述第一处理器的编号不同,则将所述隧道分片报文发送给所述第二处理器编号对应的第二处理器;
报文处理模块,用于当所述第二处理器编号与所述第一处理器的编号相同时,处理所述隧道分片报文。
根据本发明实施例的又一方面,提供一种网络设备,包括如上所述的报文分流装置和至少两个如上所述的处理器。
使用本发明实施例提供的技术方案,可以根据分片信息表对接收到的隧道报文进行分流,由于分片信息表中的处理器编号是根据隧道报文的内层IP地址获得或者根据所述隧道分片报文的外层IP地址和隧道分片报文的标识获得,从而可以实现对隧道报文进行均匀分流,并可以确保隧道分片报文的首分片和后续分片转发到同一处理器上。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明报文分流方法一个实施例的流程图;
图2为本发明报文分流方法另一个实施例的流程图;
图3为本发明报文分流方法再一个实施例的流程图;
图4为本发明报文分流方法再一个实施例的流程图;
图5为本发明报文分流方法再一个实施例的流程图;
图6为本发明报文分流装置一个实施例的结构示意图;
图7为本发明报文分流装置另一个实施例的结构示意图;
图8为本发明报文分流装置再一个实施例的结构示意图;
图9为本发明处理器一个实施例的结构示意图;
图10为本发明处理器另一个实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明报文分流方法一个实施例的流程图,如图1所示,该报文分流方法可以包括:
步骤101,接收并解析隧道报文,获取该隧道报文的外层IP地址、内层IP地址和该隧道报文的标识。
本实施例中,上述外层IP地址是指封装的网络层协议地址,内层IP地址是指被封装的网络层协议地址,且外层IP地址可以为外层源IP地址和/或外层目的IP地址,同样上述内层IP地址也可以为内层源IP地址和/或内层目的IP地址,本实施例对此不作限定。
上述隧道报文的标识为报文头中报文标识字段的值,属于同一个报文的分片报文均具有相同的标识。例如:对隧道报文进行分片后获得的首分片和后续分片具有相同的标识。
步骤102,根据上述隧道报文的报文头中的分片信息判断该隧道报文是否为隧道分片报文。
本实施例中,上述分片信息用于指示该隧道报文是否为分片报文。当该隧道报文为隧道分片报文时,通过解析该隧道分片报文,报文分流装置还可以获得隧道分片报文的报文头中偏移字段的值。其中,上述偏移字段的值用于确定该隧道分片报文是第几分片,例如:当隧道分片报文的报文头中偏移字段的值为“0”时,可以确定该隧道分片报文为首分片;当隧道分片报文的报文头中偏移字段的值为“100”时,可以确定该隧道分片报文不是首分片,而是第二个分片,以此类推。
步骤103,当上述隧道报文为隧道分片报文时,在预存的分片信息表中查找与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的处理器编号。
其中,上述分片信息表中的处理器编号根据隧道分片报文的内层IP地址获得或者根据隧道分片报文的外层IP地址和隧道分片报文的标识获得。
步骤104,当在上述分片信息表中查找到与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的处理器编号时,将上述隧道分片报文发送给相应的处理器。
上述实施例中,接收并解析隧道报文之后,当该隧道报文为隧道分片报文时,在保存的分片信息表中查找与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的处理器编号,当在分片信息表中查找到与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的处理器编号时,将上述隧道分片报文发送给相应的处理器。本实施例根据分片信息表对接收到的隧道报文进行分流,从而可以实现对隧道报文进行均匀分流,并可以确保隧道分片报文的首分片和后续分片转发到同一处理器上。
图2为本发明报文分流方法另一个实施例的流程图,如图2所示,该报文分流方法可以包括:
步骤201,报文分流装置接收并解析隧道报文,获取该隧道报文的外层IP地址、内层IP地址和该隧道报文的标识。
本实施例中,上述外层IP地址是指封装的网络层协议地址,内层IP地址是指被封装的网络层协议地址,且外层IP地址可以为外层源IP地址和/或外层目的IP地址,同样上述内层IP地址也可以为内层源IP地址和/或内层目的IP地址,本实施例对此不作限定。
上述隧道报文的标识为报文头中报文标识字段的值,属于同一个报文的分片报文均具有相同的标识。例如:对隧道报文进行分片后获得的首分片和后续分片具有相同的标识。
步骤202,报文分流装置根据上述隧道报文的报文头中的分片信息判断该隧道报文是否为隧道分片报文;如果判断该隧道报文是隧道分片报文,则执行步骤203;如果判断该隧道报文不是隧道分片报文,则执行步骤210。
本实施例中,上述分片信息用于指示该隧道报文是否为分片报文。当该隧道报文为隧道分片报文时,通过解析该隧道分片报文,报文分流装置还可以获得隧道分片报文的报文头中偏移字段的值。其中,上述偏移字段的值用于确定该隧道分片报文是第几分片,例如:当隧道分片报文的报文头中偏移字段的值为“0”时,可以确定该隧道分片报文为首分片;当隧道分片报文的报文头中偏移字段的值为“100”时,可以确定该隧道分片报文不是首分片,而是第二个分片,以此类推。
步骤203,判断在预存的分片信息表中是否查找到与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的处理器编号;如果是,则执行步骤204,如果未查找到,则执行步骤205。
其中,上述分片信息表中的处理器编号根据隧道分片报文的内层IP地址或者根据隧道分片报文的外层IP地址和隧道分片报文的标识获得。
步骤204,报文分流装置将上述隧道分片报文发送给相应的处理器。
本步骤中,相应的处理器即为步骤203中在分片信息表中查找到的处理器编号对应的处理器。
步骤205,报文分流装置确定上述隧道分片报文是否为首分片;如果是,则执行步骤206;如果上述隧道分片报文不是首分片,则执行步骤207。
步骤206,报文分流装置根据上述隧道分片报文的内层IP地址获得处理该隧道分片报文的处理器编号,然后执行步骤208~步骤209。
其中,根据该隧道分片报文的内层IP地址获得处理该隧道分片报文的处理器编号可以为:对该隧道分片报文的内层IP地址进行Hash获得处理该隧道分片报文的处理器编号,或对该隧道分片报文的内层IP地址按照ACL规则进行匹配获得处理该隧道分片报文的处理器编号,本实施例对根据该隧道分片报文的内层IP地址获得处理该隧道分片报文的处理器编号的方式不作限定。
步骤207,报文分流装置根据上述隧道分片报文的外层IP地址和上述隧道分片报文的标识获得处理上述隧道分片报文的处理器编号,然后执行步骤208~步骤209。
其中,根据上述隧道分片报文的外层IP地址和上述隧道分片报文的标识获得处理该隧道分片报文的处理器编号可以为:对上述隧道分片报文的外层IP地址和上述隧道分片报文的标识进行Hash获得处理上述隧道分片报文的处理器编号,或对上述隧道分片报文的外层IP地址和上述隧道分片报文的标识按照ACL规则进行匹配获得处理该隧道分片报文的处理器编号,本实施例对根据上述隧道分片报文的外层IP地址和上述隧道分片报文的标识获得处理该隧道分片报文的处理器编号的方式不作限定。
步骤208,报文分流装置将上述隧道分片报文发送给相应的处理器。
本步骤中,相应的处理器即为步骤206或步骤207中获得的处理器编号对应的处理器。
步骤209,报文分流装置在分片信息表中创建与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的表项,并在该表项中记录上述处理器编号。
本实施例中,步骤208与步骤209可以并行执行,也可以先后执行,本实施例对步骤208与步骤209的执行顺序不作限定,但图2中以步骤208与步骤209先后执行为例示出。
步骤210,报文分流装置根据隧道报文的内层IP地址获得处理该隧道报文的处理器编号,并将上述隧道报文发送给相应的处理器。
上述实施例根据分片信息表对接收到的隧道报文进行分流,从而可以实现对隧道报文进行均匀分流;另外,对于接收到的隧道分片报文不是首分片而是后续分片的情形,即步骤207对应的情形,由于后续分片不包含内层IP地址的信息,因此报文分流装置直接根据该隧道分片报文的外层IP地址和该隧道分片报文的标识获得处理该隧道分片报文的处理器编号,将上述隧道分片报文发送给相应的处理器,并在分片信息表中创建与该隧道分片报文的外层IP地址和该隧道分片报文的标识对应的表项,在该表项中记录上述处理器编号。这样,当首分片到来时,报文分流装置可以根据该首分片的外层IP地址和该首分片的标识进行查表,按照命中的处理器编号将首分片转发到上述处理器编号对应的处理器上,从而可以保证属于同一隧道报文的首分片和后续分片均被转发给同一处理器上;并且无需在发送侧对隧道报文做任何修改。
本发明图2所示实施例中,如果根据隧道分片报文的外层IP地址和该隧道分片报文的标识获得处理器编号,并将上述隧道分片报文转发给上述处理器编号对应的处理器,则与属于同一条流的其他报文相比,该隧道分片报文可能会被分到不同的处理器上,其中,属于同一条流的报文是指具有相同内层IP地址的报文。这时,需要处理器对接收到的隧道分片报文再次进行分流,以使属于同一条流的报文被转发给同一处理器处理。
本发明中,“第一”和“第二”仅为描述方便,不代表性能的优劣和顺序的先后,下同。
图3为本发明报文分流方法再一个实施例的流程图,如图3所示,该报文分流方法可以包括:
步骤301,第一处理器接收报文分流装置发送的隧道分片报文,获得该隧道分片报文的外层IP地址、内层IP地址和上述隧道分片报文的标识。
其中,该隧道分片报文是报文分流装置根据隧道分片报文的外层IP地址和该隧道分片报文的标识获得上述第一处理器的编号之后,发送给上述第一处理器的。
本实施例中,上述外层IP地址是指封装的网络层协议地址,内层IP地址是指被封装的网络层协议地址,且外层IP地址可以为外层源IP地址和/或外层目的IP地址,同样上述内层IP地址也可以为内层源IP地址和/或内层目的IP地址,本实施例对此不作限定。
上述隧道报文的标识为报文头中报文标识字段的值,属于同一个报文的分片报文均具有相同的标识。例如:对隧道报文进行分片后获得的首分片和后续分片具有相同的标识。
步骤302,在第一处理器预存的分片信息表中查找与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的第二处理器编号。
其中,上述分片信息表中的第二处理器编号是根据隧道分片报文的内层IP地址获得的。
步骤303,当在分片信息表中查找到与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的第二处理器编号时,若第二处理器编号与上述第一处理器的编号不同,则将上述隧道分片报文发送给第二处理器编号对应的第二处理器;若第二处理器编号与第一处理器的编号相同,则第一处理器处理上述隧道分片报文。
本实施例根据分片信息表对接收到的隧道报文进行分流,且由于分片信息表中第二处理器编号是根据报文的内层IP获得,从而可以实现对隧道报文进行均匀分流,确保隧道分片报文的首分片和后续分片转发到同一处理器上,保证同一条流的报文被转发到同一个处理器上进行处理。
图4为本发明报文分流方法再一个实施例的流程图,如图4所示,该报文分流方法可以包括:
步骤401,第一处理器接收报文分流装置发送的隧道分片报文,获得该隧道分片报文的外层IP地址、内层IP地址和上述隧道分片报文的标识。
其中,该隧道分片报文是报文分流装置根据隧道分片报文的外层IP地址和该隧道分片报文的标识获得上述第一处理器的编号之后,发送给上述第一处理器的。
本实施例中,上述外层IP地址是指封装的网络层协议地址,内层IP地址是指被封装的网络层协议地址,且外层IP地址可以为外层源IP地址和/或外层目的IP地址,同样上述内层IP地址也可以为内层源IP地址和/或内层目的IP地址,本实施例对此不作限定。
上述隧道报文的标识为报文头中报文标识字段的值,属于同一个报文的分片报文均具有相同的标识。例如:对隧道报文进行分片后获得的首分片和后续分片具有相同的标识。
步骤402,判断在第一处理器预存的分片信息表中是否查找到与隧道分片报文的外层IP地址和该隧道分片报文的标识对应的第二处理器编号;如果查找到,则执行步骤403;如果未查找到与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的第二处理器编号,则执行步骤406。
其中,上述分片信息表中的第二处理器编号是根据隧道分片报文的内层IP地址获得的。
步骤403,判断第二处理器编号与上述第一处理器的编号是否相同;如果否,则执行步骤404;如果第二处理器编号与上述第一处理器的编号相同,则执行步骤405。
步骤404,第一处理器将上述隧道分片报文发送给第二处理器编号对应的第二处理器。
步骤405,第一处理器处理上述隧道分片报文。
具体地,第一处理器接收到属于同一个报文的所有隧道分片报文之后,对接收到的隧道分片报文进行重组,然后对重组后的报文进行分析处理,例如对该报文的上层协议进行分析处理等等。
步骤406,判断上述隧道分片报文是否为首分片。如果是,则执行步骤407;如果上述隧道分片报文不是首分片,则执行步骤409。
具体地,通过解析该隧道分片报文,第一处理器还可以获得隧道分片报文的报文头中偏移字段的值。其中,上述偏移字段的值用于确定该隧道分片报文是第几分片,例如:当隧道分片报文的报文头中偏移字段的值为“0”时,可以确定该隧道分片报文为首分片;当隧道分片报文的报文头中偏移字段的值为“100”时,可以确定该隧道分片报文不是首分片,而是第二个分片,以此类推。
步骤407,第一处理器根据隧道分片报文的内层IP地址获得处理该隧道分片报文的第二处理器编号,然后执行步骤408和步骤403。
其中,根据该隧道分片报文的内层IP地址获得处理该隧道分片报文的第二处理器编号可以为:对该隧道分片报文的内层IP地址进行Hash获得处理该隧道分片报文的第二处理器编号,或对该隧道分片报文的内层IP地址按照ACL规则进行匹配获得处理该隧道分片报文的第二处理器编号,本实施例对根据该隧道分片报文的内层IP地址获得处理该隧道分片报文的第二处理器编号的方式不作限定。
步骤408,第一处理器在所述分片信息表中创建与上述隧道分片报文的外层IP地址和该隧道分片报文的标识对应的表项,并在上述表项中记录第二处理器编号。
步骤409,第一处理器缓存上述隧道分片报文,然后执行步骤402。
本实施例根据分片信息表对接收到的隧道报文进行分流,且由于分片信息表中第二处理器编号是根据报文的内层IP获得,从而可以实现对隧道报文进行均匀分流,确保隧道分片报文的首分片和后续分片转发到同一处理器上,保证同一条流的报文被转发到同一个处理器上进行处理,且无需在发送侧对隧道报文做任何修改。此外,由于本发明实施例中当没有接收到首分片而先接收到后续分片时,可以先将后续分片进行缓存,待首分片到达后,根据首分片的内层IP获得处理该报文的第二处理器编号,并保存在分片信息表中,再将缓存的后续分片根据该分片信息表发送到相应的第二处理器,从而可以使乱序的报文顺序发送到相应的处理器中进行处理。
本发明以下实施例的描述中,将隧道分片报文的外层IP地址和该隧道分片报文的标识(Identifier;以下简称:ID)简写为外层IP地址+ID。
图5为本发明报文分流方法再一个实施例的流程图,如图5所示,该报文分流方法可以包括:
步骤501,报文分流装置初始化分片信息表,将该分片信息表中的所有表项设为无效状态。
步骤502,报文分流装置接收并解析隧道报文,获得该隧道报文的外层IP地址、内层IP地址和该隧道报文的标识。
本实施例中,上述外层IP地址是指封装的网络层协议地址,内层IP地址是指被封装的网络层协议地址,且外层IP地址可以为外层源IP地址和/或外层目的IP地址,同样上述内层IP地址也可以为内层源IP地址和/或内层目的IP地址,本实施例对此不作限定。
上述隧道报文的标识为报文头中报文标识字段的值,属于同一个报文的分片报文均具有相同的标识。例如:对隧道报文进行分片后获得的首分片和后续分片具有相同的标识。
进一步地,通过解析上述隧道报文,报文分流装置还可以获得该隧道报文的报文头中的分片信息,该分片信息用于指示该隧道报文是否为分片报文。
步骤503,报文分流装置判断上述隧道报文是否为隧道分片报文。如果是,则执行步骤504;如果确定该隧道报文不是隧道分片报文,则执行步骤510。
具体地,报文分流装置可以根据步骤502中获得的分片信息,确定该隧道报文是否为隧道分片报文。
步骤504,报文分流装置在分片信息表中查找与上述隧道分片报文的外层IP地址+ID对应的表项。
其中,上述分片信息表中的处理器编号可以根据隧道分片报文的内层IP地址或者根据隧道分片报文的外层IP地址和隧道分片报文的标识获得。
本实施例中,分片信息表保存隧道分片报文分流的处理器编号,在分片信息表中处理器编号的索引可以为隧道分片报文的外层IP地址+ID;或者外层IP地址+ID的其他转化形式,本实施例对处理器编号的索引的形式不作限定。当上述处理器编号的索引为外层IP地址+ID的其他转化形式时,上述分片信息表中还应该包含与上述处理器编号的索引对应的外层IP地址+ID的信息。
另外,分片信息表中还可以包含老化信息,以供报文分流装置对表项进行老化。
步骤505,报文分流装置判断在分片信息表中是否查找到与上述隧道分片报文的外层IP地址+ID对应的表项。如果否,则执行步骤506;如果在分片信息表中查找到与上述隧道分片报文的外层IP地址+ID对应的表项,则执行步骤509。
步骤506,报文分流装置判断上述隧道分片报文是否为首分片。如果是,则执行步骤507;如果上述隧道分片报文不是首分片,则执行步骤508。
具体地,当该隧道报文为分片报文时,报文分流装置还可以根据隧道分片报文的报文头中偏移字段的值确定该隧道分片报文是第几分片,例如:当隧道分片报文的报文头中偏移字段的值为“0”时,报文分流装置可以确定该隧道分片报文为首分片;当隧道分片报文的报文头中偏移字段的值为“100”时,报文分流装置可以确定该隧道分片报文不是首分片,而是第二个分片,以此类推。
步骤507,报文分流装置根据该首分片的内层IP地址获得处理该首分片的处理器编号,将该首分片转发给该处理器编号对应的第一处理器,并在上述分片信息表中创建与上述首分片的外层IP地址+ID对应的表项,在该表项中记录上述处理器编号;然后返回执行步骤502。
其中,根据该首分片的内层IP地址获得处理该首分片的处理器编号可以为:对该首分片的内层IP地址进行Hash获得处理该首分片的处理器编号,或对该首分片的内层IP地址按照ACL规则进行匹配获得处理该首分片的处理器编号,本实施例对根据该首分片的内层IP地址获得处理该首分片的处理器编号的方式不作限定。
步骤508,报文分流装置根据上述隧道分片报文的外层IP地址+ID获得处理该隧道分片报文的处理器编号,将该隧道分片报文转发给该处理器编号对应的第一处理器,并在上述分片信息表中创建与该隧道分片报文的外层IP地址+ID对应的表项,在该表项中记录上述处理器编号。然后返回执行步骤502。
其中,根据上述隧道分片报文的外层IP地址+ID获得处理该隧道分片报文的处理器编号可以为:对上述隧道分片报文的外层IP地址+ID进行Hash获得处理上述隧道分片报文的处理器编号,或对上述隧道分片报文的外层IP地址+ID按照ACL规则进行匹配获得处理该隧道分片报文的处理器编号,本实施例对根据上述隧道分片报文的外层IP地址+ID获得处理该隧道分片报文的处理器编号的方式不作限定。
步骤509,报文分流装置获得表项中记录的处理器编号,将上述隧道分片报文转发给该处理器编号对应的第一处理器。然后返回执行步骤502。
本实施例中,如果在分片信息表中查找到与上述隧道分片报文的外层IP地址+ID对应的表项,且该隧道分片报文为最后到达的一个分片,则在获得该表项中记录的处理器编号之后,删除该表项。
步骤510,报文分流装置根据上述隧道报文的内层IP地址获得处理该隧道报文的处理器编号,将该隧道报文转发给该处理器编号对应的第一处理器。然后返回执行步骤502。
其中,根据上述隧道报文的内层IP地址获得处理该隧道报文的处理器编号可以为:对上述隧道报文的内层IP地址进行Hash获得处理该隧道报文的处理器编号,或对该隧道报文的内层IP地址按照ACL规则进行匹配获得处理该隧道报文的处理器编号,本实施例对根据上述隧道报文的内层IP地址获得处理该隧道报文的处理器编号的方式不作限定。
本实施例根据分片信息表对接收到的隧道报文进行分流,从而可以实现对隧道报文进行均匀分流;另外,对于接收到的隧道分片报文不是首分片而是后续分片的情形,即步骤508所对应的情形。这种情形下,由于后续分片报文中不包含内层IP地址的信息,因此步骤508中直接根据该隧道分片报文的外层IP地址+ID获得处理该隧道分片报文的处理器编号,并在分片信息表中创建与该隧道分片报文的外层IP地址+ID对应的表项,在该表项中记录上述处理器编号。这样,当与上述隧道分片报文属于同一隧道报文的首分片到来时,报文分流装置将根据该首分片的外层IP地址+ID进行查表,按照命中的处理器编号将首分片转发到上述处理器编号对应的第一处理器上,从而可以保证属于同一隧道报文的首分片和后续分片均被转发给第一处理器。
本发明提供的报文分流方法可以实现对隧道报文进行均匀分流,对于外层IP地址相同或比较集中的场景通过采用内层IP地址实现了比较均匀的分流。并且本发明针对隧道分片报文建立了分片信息表,报文分流装置根据该分片信息表中记录的处理器编号进行转发,从而可以保证属于同一隧道分片报文的首分片和后续分片被转发给上述网络设备中的同一处理器进行处理。并且本发明只在接收侧对报文进行处理,不需要在发送侧修改报文,对应用场景没有限制。
本发明图5所示实施例中,由于属于同一条流的不同报文具有不同的报文ID,因此,如果根据隧道分片报文的外层IP地址+ID获得处理该隧道分片报文的处理器编号,并将上述隧道分片报文转发给上述处理器编号对应的第一处理器,则与属于同一条流的其他报文相比,该隧道分片报文可能会被分到不同的处理器上,其中,属于同一条流的报文是指具有相同内层IP地址的报文。这时,需要第一处理器对接收到的隧道分片报文再次进行分流,以使属于同一条流的报文能够被转发给同一处理器处理。其中,第一处理器对接收到的隧道分片报文再次进行分流的流程可以参见本发明图4所示实施例提供的流程,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图6为本发明报文分流装置一个实施例的结构示意图,本实施例提供的报文分流装置可以实现本发明图1所示实施例的流程。如图6所示,该报文分流装置可以包括:获取模块61、确定模块62、查找模块63和发送模块64。
其中,获取模块61,用于接收并解析隧道报文,获取隧道报文的外层IP地址、内层IP地址和该隧道报文的标识;
确定模块62,用于根据上述隧道报文的报文头中的分片信息确定上述隧道报文是否为隧道分片报文;
查找模块63,用于当确定模块62确定上述隧道报文为隧道分片报文时,在报文分流装置保存的分片信息表中查找与上述隧道分片报文的外层IP地址和该隧道分片报文的标识对应的处理器编号,其中,该分片信息表中的处理器编号根据隧道分片报文的内层IP地址或者根据隧道分片报文的外层IP地址和隧道分片报文的标识获得;
发送模块64,用于当查找模块63在分片信息表中查找到与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的处理器编号时,将该隧道分片报文发送给相应的处理器。
上述实施例中,接收并解析隧道报文之后,当该隧道报文为隧道分片报文时,查找模块63在保存的分片信息表中查找与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的处理器编号,当在分片信息表中查找到与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的处理器编号时,发送模块64将上述隧道分片报文发送给相应的处理器。本实施例根据分片信息表对接收到的隧道报文进行分流,从而可以实现对隧道报文进行均匀分流,并可以确保隧道分片报文的首分片和后续分片转发到同一处理器上。
图7为本发明报文分流装置另一个实施例的结构示意图,本实施例提供的报文分流装置可以实现本发明图1和图2所示实施例的流程。与图6所示的报文分流装置相比,不同之处在于,图7所示的报文分流装置还可以包括:第一获得模块65;
本实施例中,确定模块62,还用于当查找模块63在上述分片信息表中没有查找到与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的处理器编号时,确定该隧道分片报文是否为首分片;
第一获得模块65,用于当确定模块62确定上述隧道分片报文为首分片时,根据该隧道分片报文的内层IP地址获得处理该隧道分片报文的处理器编号;以及当确定模块62确定上述隧道分片报文不是首分片时,根据该隧道分片报文的外层IP地址和上述隧道分片报文的标识获得处理该隧道分片报文的处理器编号。
进一步地,上述报文分流装置还可以包括:
创建模块66,用于在第一获得模块65获得处理上述隧道分片报文的处理器编号之后,在分片信息表中创建与上述隧道分片报文的外层IP地址和该隧道分片报文的标识对应的表项,并在上述表项中记录上述处理器编号。
第二获得模块67,用于当确定模块62确定上述隧道报文不是隧道分片报文时,根据所述隧道报文的内层IP地址获得处理上述隧道报文的处理器编号。
上述报文分流装置根据分片信息表对接收到的隧道报文进行分流,从而可以实现对隧道报文进行均匀分流;另外,对于接收到的隧道分片报文不是首分片而是后续分片的情形,由于后续分片不包含内层IP地址的信息,因此第一获得模块65直接根据该隧道分片报文的外层IP地址和该隧道分片报文的标识获得处理该隧道分片报文的处理器编号,由发送模块64将上述隧道分片报文发送给相应的处理器,并由创建模块66在分片信息表中创建与该隧道分片报文的外层IP地址和该隧道分片报文的标识对应的表项,在该表项中记录上述处理器编号。这样,当首分片到来时,查找模块63可以根据该首分片的外层IP地址和该首分片的标识进行查表,再由发送模块64按照命中的处理器编号将首分片转发到上述处理器编号对应的处理器上,从而可以保证属于同一隧道报文的首分片和后续分片均被转发给同一处理器上;并且无需在发送侧对隧道报文做任何修改。
图8为本发明报文分流装置再一个实施例的结构示意图,如图8所示,该报文分流装置可以包括:解析模块81、表项查找模块82、分流模块83和表项管理模块84;其中,解析模块81负责解析接收到的隧道报文,获得该隧道报文的外层IP地址、内层IP地址和该隧道报文的ID。
进一步地,通过解析上述隧道报文,解析模块81还可以获得该隧道报文的报文头中的分片信息,该分片信息用于指示该隧道报文是否为分片报文。
当该隧道报文为分片报文时,解析模块81还可以获取隧道分片报文的报文头中偏移字段的值。其中,上述偏移字段的值用于确定该隧道分片报文是第几分片,例如:当隧道分片报文的报文头中偏移字段的值为“0”时,可以确定该隧道分片报文为首分片;当隧道分片报文的报文头中偏移字段的值为“1”时,可以确定该隧道分片报文不是首分片,而是第二个分片,以此类推。
本实施例中的解析模块81可以实现本发明图6和图7所示实施例中获取模块61和确定模块62的功能。
分流模块83负责对报文进行转发。对于非分片报文,分流模块83直接根据解析模块81获得的内层IP地址获得处理该非分片报文的处理器编号,将该非分片报文转发给上述处理器编号对应的处理器;对于分片报文,分流模块83需等待表项查找模块82返回查表结果,若查表命中,则分流模块83直接将上述分片报文转发给表项查找模块82提供的处理器编号所对应的处理器;若查表不命中,则分流模块83根据解析模块81提供的是否首分片信息,对于首分片根据内层IP地址获得处理该首分片的处理器编号,并将该首分片转发给上述处理器编号对应的处理器,同时将获得的处理器编号返回给表项查找模块82;对于后续分片根据外层IP地址+ID获得处理该后续分片的处理器编号,并将该后续分片转发给上述处理器编号对应的处理器,同时将获得的处理器编号返回给表项查找模块82。
本实施例中的分流模块83可以实现本发明图6和图7所示实施例中发送模块64的功能,以及本发明图7所示实施例中第一获得模块65和第二获得模块67的功能。
表项查找模块82负责根据解析模块81提供的外层IP地址+ID查找分片信息表85并返回结果。如果查表命中,则从该分片信息表85中获取处理器编号给分流模块83;若查表不命中,则将不命中信息给分流模块83。同时在查找不命中时,将报文的外层IP地址+ID以及分流模块83获得的处理器编号转发给表项管理模块84,以供表项管理模块84建立新的表项添加到分片信息表中;若查表命中且当前报文是最后一个分片,则将查表命中信息及外层IP地址+ID提供给表项管理模块84实现对相应表项的删除。
本实施例中的表项查找模块82可以实现本发明图6所示实施例中查找模块63的功能。
表项管理模块84负责对分片信息表85进行管理,包括表项的建立、老化和删除操作。表项管理模块84负责在设备上电后初始化分片信息表85,将分片信息表85中的所有表项置为无效状态。待开始接收报文后,表项管理模块84根据解析模块81提供的外层IP地址+ID及分流模块83返回的处理器编号在分片信息表85中建立新的表项;根据表项查找模块82提供的最后一个分片查表命中的信息删除对应的表项;同时不断轮询表项,对于超时的表项进行删除操作,保证表项及时得到老化。
本实施例中的表项管理模块84可以实现本发明图7所示实施例中创建模块66的功能。
分片信息表85保存隧道分片报文分流的处理器编号,在分片信息表85中处理器编号的索引可以为隧道分片报文的外层IP地址+ID;或者外层IP地址+ID的其他转化形式,本实施例对处理器编号的索引的形式不作限定。当上述处理器编号的索引为外层IP地址+ID的其他转化形式时,上述分片信息表85中还应该包含与上述处理器编号的索引对应的外层IP地址+ID的信息。
另外,分片信息表85中还可以包含老化信息,以供表项管理模块84对表项进行老化。
本发明提供的报文分流装置可以实现对隧道报文进行均匀分流,对于外层IP地址相同或比较集中的场景通过采用内层IP地址实现了比较均匀的分流。并且本发明针对隧道分片报文建立了分片信息表,报文分流装置根据该分片信息表中记录的处理器编号进行转发,从而可以保证属于同一隧道分片报文的首分片和后续分片被转发给同一处理器进行处理。本发明在各种情况下实现了隧道报文的均匀分流,达到了较好的分流效果。并且本发明只在接收侧对报文进行处理,不需要在发送侧修改报文,对应用场景没有限制。
图9为本发明处理器一个实施例的结构示意图,本实施例提供的处理器可以实现本发明图3所示实施例的流程,本实施例中的处理器可以为第一处理器,如图9所示,该处理器可以包括:报文接收模块91、编号查找模块92、报文发送模块93和报文处理模块98;
其中,报文接收模块91,用于接收报文分流装置发送的隧道分片报文,获得该隧道分片报文的外层IP地址、内层IP地址和该隧道分片报文的标识;其中,该报文接收模块91接收的隧道分片报文是报文分流装置根据上述隧道分片报文的外层IP地址和上述隧道分片报文的标识获得第一处理器的编号之后,发送给上述第一处理器的。
编号查找模块92,用于在第一处理器保存的分片信息表中查找与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的第二处理器编号,其中,该分片信息表中的第二处理器编号是根据隧道分片报文的内层IP地址获得。
报文发送模块93,用于当编号查找模块92在分片信息表中查找到与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的第二处理器编号时,若第二处理器编号与上述第一处理器的编号不同,则将隧道分片报文发送给第二处理器编号对应的第二处理器;
报文处理模块98,用于当所述第二处理器编号与所述第一处理器的编号相同时,处理所述隧道分片报文。
本实施例提供的处理器根据分片信息表对接收到的隧道报文进行分流,从而可以实现对隧道报文进行均匀分流,并可以确保隧道分片报文的首分片和后续分片转发到同一处理器上,且由于分片信息表中第二处理器编号是根据报文的内层IP获得,因此可以保证同一条流的报文被转发到同一个处理器上进行处理。
图10为本发明处理器另一个实施例的结构示意图,本实施例提供的处理器可以实现本发明图3和图4所示实施例的流程,与图9所示的处理器相比,不同之处在于,图10所示的处理器,还可以包括:报文确定模块94、编号获得模块95和报文缓存模块96;
其中,报文确定模块94,用于当编号查找模块92在上述分片信息表中没有查找到与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的第二处理器编号时,确定上述隧道分片报文是否为首分片;
编号获得模块95,用于当报文确定模块94确定上述隧道分片报文为首分片时,根据上述隧道分片报文的内层IP地址获得处理该隧道分片报文的第二处理器编号;
报文缓存模块96,用于当报文确定模块94确定上述隧道分片报文不是首分片时,缓存上述隧道分片报文。
本实施例中,报文发送模块93,还可以当编号获得模块95获得的第二处理器编号与第一处理器的编号不同时,将该隧道分片报文发送给第二处理器编号对应的第二处理器。
本实施例中,编号查找模块92,还用于在分片信息表中查找与缓存的隧道分片报文的外层IP地址和缓存的隧道分片报文的标识对应的第二处理器编号;
报文发送模块93,还用于当编号查找模块92在上述分片信息表中查找到与缓存的隧道分片报文的外层IP地址和缓存的隧道分片报文的标识对应的第二处理器编号时,若第二处理器编号与所述第一处理器的编号不同,则将缓存的隧道分片报文发送给第二处理器编号对应的第二处理器。
进一步地,本实施例中的处理器还可以包括:
表项创建模块97,用于在编号获得模块95获得处理上述隧道分片报文的第二处理器编号之后,在分片信息表中创建与上述隧道分片报文的外层IP地址和上述隧道分片报文的标识对应的表项,并在该表项中记录第二处理器编号。
本实施例提供的处理器根据分片信息表对接收到的隧道报文进行分流,且由于分片信息表中第二处理器编号是根据报文的内层IP获得,从而可以实现对隧道报文进行均匀分流,可以确保隧道分片报文的首分片和后续分片转发到同一处理器上,并保证同一条流的报文被转发到同一个处理器上进行处理且无需在发送侧对隧道报文做任何修改。此外,由于本发明实施例中当没有接收到首分片而先接收到后续分片时,可以先将后续分片进行缓存,待首分片到达后,根据首分片的内层IP获得处理该报文的第二处理器编号,并保存在分片信息表中,再将缓存的后续分片根据该分片信息表发送到相应的第二处理器,从而可以使乱序的报文被顺序发送到相应的处理器中进行处理。
本发明还提供一种网络设备,该网络设备可以包括报文分流装置和至少两个处理器;其中该报文分流装置可以通过本发明图6、图7或图8所示的报文分流装置实现,该处理器可以通过本发明图9或图10所示的处理器实现。该网络设备可以为网络监控设备等设备,本发明对该网络设备的具体形式不作限定。
上述网络设备可以实现对隧道报文进行均匀分流,对于外层IP地址相同或比较集中的场景通过采用内层IP地址实现了比较均匀的分流。并且本发明针对隧道分片报文建立了分片信息表,网络设备根据该分片信息表中记录的处理器编号进行转发,从而可以保证属于同一隧道分片报文的首分片和后续分片被转发给同一处理器进行处理。本发明在各种情况下实现了隧道报文的均匀分流,达到了较好的分流效果。并且本发明只在接收侧对报文进行处理,不需要在发送侧修改报文,对应用场景没有限制。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (19)

1.一种报文分流方法,其特征在于,包括:
接收并解析隧道报文,获取所述隧道报文的外层因特网协议IP地址、内层IP地址和所述隧道报文的标识;
根据所述隧道报文的报文头中的分片信息,判断所述隧道报文是否为隧道分片报文;
当所述隧道报文为隧道分片报文时,在预存的分片信息表中,查找与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的处理器编号,其中,所述分片信息表包含所述隧道分片报文的外层IP地址、所述隧道分片报文的标识与所述处理器编号三者的对应关系,所述分片信息表中的所述处理器编号根据所述隧道分片报文的内层IP地址获得或者根据所述隧道分片报文的外层IP地址和所述隧道分片报文的标识获得;
当在所述分片信息表中查找到与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的处理器编号时,将所述隧道分片报文发送给所述处理器编号对应的处理器。
2.根据权利要求1所述的方法,其特征在于,还包括:
当在所述分片信息表中没有查找到与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的处理器编号时,判断所述隧道分片报文是否为首分片;
当所述隧道分片报文为首分片时,根据所述隧道分片报文的内层IP地址获得处理所述隧道分片报文的处理器编号,将所述隧道分片报文发送给相应的处理器;
当所述隧道分片报文不是首分片时,根据所述隧道分片报文的外层IP地址和所述隧道分片报文的标识获得处理所述隧道分片报文的处理器编号,将所述隧道分片报文发送给所述处理所述隧道分片报文的处理器编号对应的处理器。
3.根据权利要求2所述的方法,其特征在于,所述获得处理所述隧道分片报文的处理器编号之后,还包括:
在所述分片信息表中创建与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的表项,并在所述表项中记录所述处理所述隧道分片报文的处理器编号。
4.根据权利要求1-3任意一项所述的方法,其特征在于,还包括:
当所述隧道报文不是隧道分片报文时,根据所述隧道报文的内层IP地址获得处理所述隧道报文的处理器编号,并将所述隧道报文发送给所述处理所述隧道报文的处理器编号对应的处理器。
5.一种报文分流方法,其特征在于,包括:
第一处理器接收报文分流装置发送的隧道分片报文,获得所述隧道分片报文的外层因特网协议IP地址、内层IP地址和所述隧道分片报文的标识;
在预存的分片信息表中,查找与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的第二处理器编号,其中,所述分片信息表包含所述隧道分片报文的外层IP地址、所述隧道分片报文的标识与所述第二处理器编号三者的对应关系,所述分片信息表中的所述第二处理器编号是根据所述隧道分片报文的内层IP地址获得;
当在所述分片信息表中,查找到与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的第二处理器编号时,若所述第二处理器编号与所述第一处理器的编号不同,则将所述隧道分片报文发送给所述第二处理器编号对应的第二处理器;若所述第二处理器编号与所述第一处理器的编号相同,由所述第一处理器处理所述隧道分片报文。
6.根据权利要求5所述的方法,其特征在于,
所述隧道分片报文是报文分流装置根据所述隧道分片报文的外层IP地址和所述隧道分片报文的标识获得所述第一处理器的编号之后,发送给所述第一处理器的。
7.根据权利要求6所述的方法,其特征在于,还包括:
当在所述分片信息表中没有查找到与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的第二处理器编号时,判断所述隧道分片报文是否为首分片;
当所述隧道分片报文为首分片时,根据所述隧道分片报文的内层IP地址获得处理所述隧道分片报文的第二处理器编号,若第二处理器编号与所述第一处理器的编号不同,则将所述隧道分片报文发送给所述第二处理器编号对应的第二处理器;
当所述隧道分片报文不是首分片时,缓存所述隧道分片报文。
8.根据权利要求7所述的方法,其特征在于,还包括:
在所述分片信息表中,查找与缓存的隧道分片报文的外层IP地址和缓存的隧道分片报文的标识对应的第二处理器编号;
当在所述分片信息表中,查找到与所述缓存的隧道分片报文的外层IP地址和所述缓存的隧道分片报文的标识对应的第二处理器编号时,若第二处理器编号与所述第一处理器的编号不同,则将所述缓存的隧道分片报文发送给所述第二处理器编号对应的第二处理器。
9.根据权利要求7所述的方法,其特征在于,所述根据所述隧道分片报文的内层IP地址获得处理所述隧道分片报文的第二处理器编号之后,还包括:
在所述分片信息表中创建与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的表项,并在所述表项中记录所述第二处理器编号。
10.一种报文分流装置,其特征在于,包括:
获取模块,用于接收并解析隧道报文,获取所述隧道报文的外层因特网协议IP地址、内层IP地址和所述隧道报文的标识;
确定模块,用于根据所述隧道报文的报文头中的分片信息,判断所述隧道报文是否为隧道分片报文;
查找模块,用于当所述确定模块确定所述隧道报文为隧道分片报文时,在所述报文分流装置预存的分片信息表中查找与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的处理器编号,其中,所述分片信息表包含所述隧道分片报文的外层IP地址、所述隧道分片报文的标识与所述处理器编号三者的对应关系,所述分片信息表中的所述处理器编号根据所述隧道分片报文的内层IP地址获得或者根据所述隧道分片报文的外层IP地址和所述隧道分片报文的标识获得;
发送模块,用于当所述查找模块在所述分片信息表中查找到与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的处理器编号时,将所述隧道分片报文发送给所述处理器编号对应的处理器。
11.根据权利要求10所述的装置,其特征在于,还包括:第一获得模块;
所述确定模块,还用于当所述查找模块在所述分片信息表中没有查找到与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的处理器编号时,判断所述隧道分片报文是否为首分片;
所述第一获得模块,用于当所述确定模块确定所述隧道分片报文为首分片时,根据所述隧道分片报文的内层IP地址获得处理所述隧道分片报文的处理器编号;以及当所述确定模块确定所述隧道分片报文不是首分片时,根据所述隧道分片报文的外层IP地址和所述隧道分片报文的标识获得处理所述隧道分片报文的处理器编号。
12.根据权利要求11所述的装置,其特征在于,还包括:
创建模块,用于在所述第一获得模块获得处理所述隧道分片报文的处理器编号之后,在所述分片信息表中创建与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的表项,并在所述表项中记录所述处理器编号。
13.根据权利要求10-12任意一项所述的装置,其特征在于,还包括:
第二获得模块,用于当所述确定模块确定所述隧道报文不是隧道分片报文时,根据所述隧道报文的内层IP地址获得处理所述隧道报文的处理器编号;
所述发送模块,还用于根据所述第二获得模块获得的处理器编号将所述隧道报文发送给所述处理器编号对应的处理器。
14.一种处理器,其特征在于,所述处理器为第一处理器,所述处理器包括:
报文接收模块,用于接收报文分流装置发送的隧道分片报文,获得所述隧道分片报文的外层因特网协议IP地址、内层IP地址和所述隧道分片报文的标识;
编号查找模块,用于在预存的分片信息表中查找与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的第二处理器编号,其中,所述分片信息表包含所述隧道分片报文的外层IP地址、所述隧道分片报文的标识与所述第二处理器编号三者的对应关系,所述分片信息表中的所述第二处理器编号是根据所述隧道分片报文的内层IP地址获得;
报文发送模块,用于当所述编号查找模块在所述分片信息表中查找到与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的第二处理器编号时,若第二处理器编号与所述第一处理器的编号不同,则将所述隧道分片报文发送给所述第二处理器编号对应的第二处理器;
报文处理模块,用于当所述第二处理器编号与所述第一处理器的编号相同时,处理所述隧道分片报文。
15.根据权利要求14所述的处理器,其特征在于,所述报文接收模块接收的所述隧道分片报文是所述报文分流装置根据所述隧道分片报文的外层IP地址和所述隧道分片报文的标识获得所述第一处理器的编号之后,发送给所述第一处理器的。
16.根据权利要求15所述的处理器,其特征在于,还包括:
报文确定模块,用于当所述编号查找模块在所述分片信息表中没有查找到与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的第二处理器编号时,判断所述隧道分片报文是否为首分片;
编号获得模块,用于当所述报文确定模块确定所述隧道分片报文为首分片时,根据所述隧道分片报文的内层IP地址获得处理所述隧道分片报文的第二处理器编号;
报文缓存模块,用于当所述报文确定模块确定所述隧道分片报文不是首分片时,缓存所述隧道分片报文;
所述报文发送模块,还用于当所述编号获得模块获得的第二处理器编号与所述第一处理器的编号不同时,将所述隧道分片报文发送给所述第二处理器编号对应的第二处理器。
17.根据权利要求16所述的处理器,其特征在于,
所述编号查找模块,还用于在所述分片信息表中查找与缓存的隧道分片报文的外层IP地址和缓存的隧道分片报文的标识对应的第二处理器编号;
所述报文发送模块,还用于当所述编号查找模块在所述分片信息表中查找到与所述缓存的隧道分片报文的外层IP地址和所述缓存的隧道分片报文的标识对应的第二处理器编号时,若第二处理器编号与所述第一处理器的编号不同,则将所述缓存的隧道分片报文发送给所述第二处理器编号对应的第二处理器。
18.根据权利要求16所述的处理器,其特征在于,还包括:
表项创建模块,用于在所述编号获得模块获得处理所述隧道分片报文的第二处理器编号之后,在所述分片信息表中创建与所述隧道分片报文的外层IP地址和所述隧道分片报文的标识对应的表项,并在所述表项中记录所述第二处理器编号。
19.一种网络设备,其特征在于,包括如权利要求10-13任意一项所述的报文分流装置和至少两个如权利要求14-18任意一项所述的处理器。
CN201210049845.0A 2011-12-31 2012-02-29 报文分流方法、装置、处理器和网络设备 Active CN102624611B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210049845.0A CN102624611B (zh) 2011-12-31 2012-02-29 报文分流方法、装置、处理器和网络设备

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201110459577 2011-12-31
CN201110459577.5 2011-12-31
CN201210049845.0A CN102624611B (zh) 2011-12-31 2012-02-29 报文分流方法、装置、处理器和网络设备

Publications (2)

Publication Number Publication Date
CN102624611A CN102624611A (zh) 2012-08-01
CN102624611B true CN102624611B (zh) 2015-01-21

Family

ID=46564302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210049845.0A Active CN102624611B (zh) 2011-12-31 2012-02-29 报文分流方法、装置、处理器和网络设备

Country Status (1)

Country Link
CN (1) CN102624611B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888364A (zh) * 2012-12-24 2014-06-25 华为技术有限公司 报文分流方法及设备
CN106464605B (zh) 2014-07-14 2019-11-29 华为技术有限公司 应用于网络设备的处理报文的方法和相关设备
CN106559838B (zh) * 2015-09-24 2019-12-06 大唐移动通信设备有限公司 业务处理优化方法及装置
CN107547426A (zh) * 2016-06-27 2018-01-05 中兴通讯股份有限公司 Gtpu报文的分布式处理方法、装置及基站
CN107846364A (zh) * 2016-09-19 2018-03-27 阿里巴巴集团控股有限公司 一种报文的处理方法和装置
CN107547508B (zh) * 2017-06-29 2021-07-30 新华三信息安全技术有限公司 一种报文发送、接收方法、装置及网络设备
CN109286584B (zh) * 2017-07-21 2021-07-13 东软集团股份有限公司 一种多核系统中的分片重组方法、装置及设备
CN107508827B (zh) * 2017-09-15 2021-01-26 通鼎互联信息股份有限公司 一种报文解析方法及装置
CN107888710A (zh) * 2017-12-26 2018-04-06 新华三信息安全技术有限公司 一种报文转发方法及装置
CN109067935A (zh) * 2018-08-16 2018-12-21 深圳市风云实业有限公司 分片报文处理方法及多核处理器系统
CN115174482B (zh) * 2019-05-21 2023-06-02 超聚变数字技术有限公司 网络设备的报文分流方法和装置
CN111711577B (zh) * 2020-07-24 2022-07-22 杭州迪普信息技术有限公司 流控设备的报文转发方法及装置
CN112202670B (zh) * 2020-09-04 2022-08-30 烽火通信科技股份有限公司 一种SRv6段路由转发方法及装置
CN115103038B (zh) * 2021-12-29 2023-02-03 武汉绿色网络信息服务有限责任公司 一种基于隧道报文的匹配方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1531281A (zh) * 2003-03-12 2004-09-22 ���ǵ�����ʽ���� 无需ip重组分发分组的装置和方法
CN1592215A (zh) * 2003-08-27 2005-03-09 中兴通讯股份有限公司 一种对分片式报文重组和业务分配的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1531281A (zh) * 2003-03-12 2004-09-22 ���ǵ�����ʽ���� 无需ip重组分发分组的装置和方法
CN1592215A (zh) * 2003-08-27 2005-03-09 中兴通讯股份有限公司 一种对分片式报文重组和业务分配的方法

Also Published As

Publication number Publication date
CN102624611A (zh) 2012-08-01

Similar Documents

Publication Publication Date Title
CN102624611B (zh) 报文分流方法、装置、处理器和网络设备
US11374848B2 (en) Explicit routing with network function encoding
CN109391560B (zh) 网络拥塞的通告方法、代理节点及计算机设备
CN106992915B (zh) 一种报文解封装处理、数据写入方法及装置
US10148573B2 (en) Packet processing method, node, and system
US20190379601A1 (en) Communication between distinct network domains
CN108259347B (zh) 一种报文传输方法和装置
CN102136989B (zh) 报文传输的方法、系统和设备
CN104618900A (zh) 一种智能设备的网络接入方法、智能设备和移动终端
US11012258B2 (en) Packet transmission
CN107547391B (zh) 一种报文传输方法和装置
CN107580079B (zh) 一种报文传输方法和装置
CN101764752A (zh) 远程集中镜像管理的方法和系统
US20150049640A1 (en) Data transmission controlling device and method for controlling data transmission
US11405307B2 (en) Information transfer method and device
CN101616094B (zh) 报文转发路径的获取方法和设备
US20180302323A1 (en) System and method to bypass the forwarding information base (fib) for interest packet forwarding in an information-centric networking (icn) environment
CN110290044B (zh) 一种vpn网络和主干网络的分流方法、装置及存储介质
CN112422438A (zh) 一种处理组播报文的方法及装置
CN111132170A (zh) 虚拟防火墙的通信方法和装置、虚拟防火墙及拓扑结构
CN108259348B (zh) 一种报文传输方法和装置
CN111711555B (zh) 一种报文处理方法及装置
CN112583736A (zh) 一种信令报文分流方法、装置、设备及介质
CN111464443B (zh) 基于服务功能链的报文转发方法、装置、设备及存储介质
CN106230730B (zh) 一种组播传输方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Applicant after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Applicant before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD. TO: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220905

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 611731 Qingshui River District, Chengdu hi tech Zone, Sichuan, China

Patentee before: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

TR01 Transfer of patent right