一种报文分流处理方法及装置制造方法及图纸

技术编号:4142648 阅读:201 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种报文分流处理方法,应用于包括多核网络设备的报文分流处理系统中,所述方法包括以下步骤:所述多核网络设备提取报文的五元组信息;所述多核网络设备根据所述报文的分片信息,判断所述报文是否为分片报文,如果所述报文为分片报文,则根据所述报文的源IP地址、目的IP地址和协议内容进行哈希Hash运算,获取所述报文对应的虚拟中央处理单元VCPU;如果所述报文不是分片报文,则根据所述报文的源端口、目的端口、源IP地址、目的IP地址和协议内容进行Hash运算,获取所述报文对应的VCPU;所述多核网络设备通过所述获取的VCPU处理所述报文。本发明专利技术提高了多核网络设备处理报文的速度和效率。本发明专利技术同样公开了一种应用上述方法的装置。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种报文分流处理方法及装置
技术介绍
随着现代网络技术的发展和网络影响的扩大,越来越多的网络设备,如 安全网关、边缘路由器和核心路由器,需要支持快速准确的报文分流。未来 网络的发展趋势需要为用户提供更好的服务质量,而诸如防火墙、区分服务、 虚拟专网、基于策略的路由和高层交换等提高服务质量的机制都是基于高效 报文分流技术的。使用报文分流技术,可有效才企测并实时阻断隐藏在海量网 络流量中的病毒、攻击与滥用行为,也可以对分布在网络中的各种流量进行 有效管理,从而实现对网络应用、网络基础设施和网络性能的保护。现有技术中,通常采用多核CPU ( Central Processing Unit,中央处理单元) 进行业务报文处理,每个CPU核由四个石更线程VCPU (Virtual Central Processing Unit,虚拟中央处理单元)构成,为了使多个VCPU在相互配合下 达到最大报文处理速度,需要使用流分类算法使所有VCPU的报文分发负载 平衡。流分类算法采用一定规则识别符合某类特征的报文,是有区别地对报 文进行服务的前提和基础。具体地,流分类算法可以使用IP( Internet Protocol, 因特网协议)报文头的ToS (Type of Service,服务类型)字段的优先级位, 识别出有不同优先级特征的流量;也可以由网络管理者设置流分类的策略。 报文的分类依据一般都局限在封装报文的头部信息,很少使用报文的内容作 为分流的标准。报文分流的结果没有范围限制,可以是一个由三元组(包括 源地址、协议号和目的地址)确定的狭小范围,也可以是到某网段的所有报 文。在网络环境中,当需要传输的IP报文大小超过MTU (Maximum Transmission Unit,最大传输单位)时,会产生IP分片情况。例如,在以太网环境中可传输最大IP报文(MTU)为1500字节,而传输的IP报文大于1500字节时,需要使用分片技术将IP报文分片后,才能传输。由于TCP ( TransferControl Protocol,传输控制协议)面向连接,对数据包的到达顺序以及数据包传输中是否发生错误有严格的要求,因此,应使同组分片报文尽量在同一VCPU上处理。为满足上述要求,现有技术提出了三元组流分类及分片报文处理方案和五元组流分类及分片报文处理方案,其中,三元组流分类方案通过提取报文IP头部的源IP、目的IP和协议三部分的内容进行Hash (哈希)运算,得到进行报文处理的目的VCPU,并对分片报文进行进一步分析。当IP数据报文被分片后,每一分片都成为一个分组,具有自己的IP首部,并在选择路由时与其他分组独立。当数据报文的分片到达目的端时有可能会失序,但是在IP首部中有足够的信息使接收端正确组装上述数据报文的分片,因此,分片报文采用三元组流分类算法,仍能使同组分片报文在同一 VCPU上处理,且对分片报文不作特殊处理。五元组流分类方案在三元组流分类的基础上添加源端口和目的端口两部分信息,通过Hash运算得到目的VCPU。由于分片报文只有首片具有源/目端口,其他分片都仅有源/目IP地址没有端口,因此,分片报文应进行特殊处理,即对分片报文采用Hash链表緩存,在一组报文接收完毕后,对分片报文进行统一分发处理。具体地,Hash链表用于将所有关键字为同一词的记录存储在同一线性链表中,假设某哈希函数产生的哈希地址在区间[O, m-l]上,则设立一个指针型向量Chain chainhash[m],该向量的每个分量的初始状态都是空指针,凡哈希地址为i的记录都插入到头指针为chainhash[i]的链表中,在链表中的插入位置可以在表头或表尾,也可以在中间,以保持同一词在同一线性链表中按关键字排列。同一组分片报文的标识字相同,因此可将标识字相同的分片报文挂接在同一 Hash链表中,链中每个结点存放报文相关信息,包括标识符、MF ( More Fragment,更多分片)值、DF ( Don't Fragment,不允许分片)值和偏移量等信息。对分片报文的处理流程包括,才艮据报文的标准偏移和MF值来判断是否为分片报文,如果不是分片报文,则直接按照五元组进行流分类;如果是分片报文,则读取IP头中的协议信息,如果IP头中没有协议信息,则判断该分片报文不是首片报文;如果IP头中有协议信息,则判断该分片报文是首片报文,并提取该分片报文的源/目的IP地址、源/目的端口和标识等信息,对标识相同的分片报文悬挂于同一Hash链表中。随后,继续接收分片报文直到分片报文的MF值为0,表示该报文包结束。当一组报文接收完毕后,查找该链表中所有标识相同的才艮文进行流分类处理。然而,对于三元组流分类及分片报文处理方案,由于目前很多局域网采用NAT (Network Address Translation,网络地址转换)技术以解决全球IP地址不足的现状,存在大量IP相同但端口不同的网络数据报文,而IP地址相同而端口不同的报文要在同一个VCPU上处理,因此,会造成报文分发不平衡的现象,即某些VCPU因阻塞而丟包,而另一些VCPU却处于空闲状态。对于五元组流分类及分片报文处理方案,对分片报文的緩存处理会占用内存空间并降低分类速度,查找Hash链表会给系统带来很大开销,同时,网络中存在分片风暴攻击,即故意发送部分IP分片而不是全部的IP分片,会使目标主机总是处于等待分片报文的状态,消耗并占用了系统资源。
技术实现思路
本专利技术提供了 一种报文分流处理方法及装置,用于提高多核网络设备处理报文的速度和效率。本专利技术提供了 一种报文分流处理方法,应用于包括多核网络设备的报文分流处理系统中,所述方法包括以下步骤所述多核网络i殳备提耳又才艮文的五元组信息,所述五元组信息包括源端口 、目的端口、源因特网协议IP地址、目的IP地址和协议内容;所述多核网络设备根据所述报文的分片信息,判断所述报文是否为分片报文,如果所述报文为分片报文,则根据所述报文的源IP地址、目的IP地址和协议内容进行哈希Hash运算,获取所述报文对应的虚拟中央处理单元VCPU;如果所述报文不是分片报文,则根据所述报文的源端口、目的端口、源IP地址、目的IP地址和协议内容进行Hash运算,获耳又所述才艮文对应的VCPU;所述多核网络i殳备通过所述获取的VCPU处理所述导艮文。所述报文的分片信息为所述报文包含的标志字段和标准偏移字段。所述多核网络设备根据所述报文的分片信息,判断所述报文是否为分片报文,具体为如果所述标志字段的最后一位为O且标准偏移字段为0,则所述多核网络设备判断所述报文不是分片报文;如果所述标志字段的最后一位为O且标准偏移字段不为0,或所述标志字段的最后一位为1,则所述多核网络设备判断所述报文是分片报文。当所述报文为分片报文时,所述多核网络设备通过所述获取的VCPU处理所述报文,具体为所述多核网络设备通过同一 VCPU处理同一分组中的所有分片报文。当所述报文为分片报文时,所述多核网络设备通过所述获取的VCPU处理所述报文之后,还包括所述多核网络设备根据所述分片报文中的标识字段和标准偏移字段,对同 一分组中的分片报文进行组装。本专利技术还提供了 一种报文分流处理装置,应用于报文分本文档来自技高网
...

【技术保护点】
一种报文分流处理方法,应用于包括多核网络设备的报文分流处理系统中,其特征在于,所述方法包括以下步骤: 所述多核网络设备提取报文的五元组信息,所述五元组信息包括源端口、目的端口、源因特网协议IP地址、目的IP地址和协议内容; 所述 多核网络设备根据所述报文的分片信息,判断所述报文是否为分片报文,如果所述报文为分片报文,则根据所述报文的源IP地址、目的IP地址和协议内容进行哈希Hash运算,获取所述报文对应的虚拟中央处理单元VCPU;如果所述报文不是分片报文,则根据所述报文的源端口、目的端口、源IP地址、目的IP地址和协议内容进行Hash运算,获取所述报文对应的VCPU; 所述多核网络设备通过所述获取的VCPU处理所述报文。

【技术特征摘要】
1、一种报文分流处理方法,应用于包括多核网络设备的报文分流处理系统中,其特征在于,所述方法包括以下步骤所述多核网络设备提取报文的五元组信息,所述五元组信息包括源端口、目的端口、源因特网协议IP地址、目的IP地址和协议内容;所述多核网络设备根据所述报文的分片信息,判断所述报文是否为分片报文,如果所述报文为分片报文,则根据所述报文的源IP地址、目的IP地址和协议内容进行哈希Hash运算,获取所述报文对应的虚拟中央处理单元VCPU;如果所述报文不是分片报文,则根据所述报文的源端口、目的端口、源IP地址、目的IP地址和协议内容进行Hash运算,获取所述报文对应的VCPU;所述多核网络设备通过所述获取的VCPU处理所述报文。2、 如权利要求l所述的方法,其特征在于,所述报文的分片信息为所述报 文包含的标志字段和标准偏移字段。3、 如权利要求2所述的方法,其特征在于,所述多核网络设备根据所述报 文的分片信息,判断所述报文是否为分片报文,具体为如果所述标志字段的最后一位为0且所述标准偏移字段为0,则所述多核网 络设备判断所述净艮文不是分片报文;如果所述标志字段的最后一位为0且所述 标准偏移字段不为O,或所述标志字段的最后一位为1,则所述多核网络设备判 断所述报文是分片报文。4、 如权利要求l所述的方法,其特征在于,当所述报文为分片报文时,所 述多核网络设备通过所述获取的VCPU处理所述报文,具体为所述多核网络设备通过同一 VCPU处理同 一分组中的所有分片报文。5、 如权利要求l所述的方法,其特征在于,当所述报文为分片报文时, 所述多核网络设备通过所述获取的VCPU处理所述报文之后,还包括所述多核网络设备根据所述分片报文中的标识字...

【专利技术属性】
技术研发人员:叶燕王涛
申请(专利权)人:杭州迪普科技有限公司
类型:发明
国别省市:86[]

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

1