CN107749826A - 一种数据包转发方法及系统 - Google Patents
一种数据包转发方法及系统 Download PDFInfo
- Publication number
- CN107749826A CN107749826A CN201710835427.7A CN201710835427A CN107749826A CN 107749826 A CN107749826 A CN 107749826A CN 201710835427 A CN201710835427 A CN 201710835427A CN 107749826 A CN107749826 A CN 107749826A
- Authority
- CN
- China
- Prior art keywords
- packet
- routing
- examined
- address
- node
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/20—Hop count for routing purposes, e.g. TTL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种数据包转发方法及系统,方法包括:通过数据包收发引擎接收经第一网络接口输入的数据包并对数据包进行完整性检测;以负载均衡模式将数据包传输至相应的处理器;通过处理器对数据包进行包头检验;对数据包进行解封装处理和合法性检验,合法性检验成功后,根据数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息;根据路由信息中包括的下一跳IP地址信息从随机存储器中的下一跳表中查询得到下一跳MAC地址,根据下一跳MAC地址对数据包进行封装处理,经数据包收发引擎发送至第二网络接口。上述实施例的有益效果:提高数据包转发效率,提高用户的网络使用体验。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据包转发方法及系统。
背景技术
已有的研究表明,随着网络规模的不断扩展,网络流量不断增加且流量大小分布不均匀。目前,数据包的处理速度和路由表的查找速度均不能满足现有网络流量的需求,进而直接影响数据包的转发效率,影响用户的网络使用体验。
发明内容
为解决上述技术问题,本发明提供了一种数据包转发方法及系统。
第一方面,本发明提供了一种数据包转发方法,包括:
通过数据包收发引擎接收经第一网络接口输入的数据包并对所述数据包进行完整性检测;
在完整性检测成功后,以负载均衡模式将所述数据包传输至相应的处理器;
通过所述处理器对所述数据包进行包头检验;
在包头检验成功后,对所述数据包进行解封装处理和合法性检验,合法性检验成功后,根据所述数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息,如查询得到所述路由信息,则根据所述路由信息更新所述数据包中的包头信息和检验和;
根据所述路由信息中包括的下一跳IP地址信息从随机存储器中的下一跳表中查询得到下一跳MAC地址,根据所述下一跳MAC地址对所述数据包进行封装处理,将封装处理后的所述数据包经所述数据包收发引擎发送至第二网络接口。
上述实施例的有益效果:以负载均衡模式将数据包分发给相应处理器,提高数据包处理效率,以目的IP地址为关键字从路由表中查询得到路由信息,从而进一步根据路由信息从下一跳表中查询得到下一跳MAC地址,将数据包转发出去,提高数据包转发效率,提高用户的网络使用体验。
进一步,当所述负载均衡模式为静态流绑定模式时,以静态流绑定模式将所述数据包传输至相应的处理器的方法包括:
选取所述数据包中的目的IP地址中的字段进行哈希运算,将所述数据包传输至与所述数据包具有相同哈希值的数据包对应的处理器;
当所述处理器的缓冲队列为已满状态时,丢弃所述数据包。
上述实施例的有益效果:在当前流量不大的情况下,可以采用静态流绑定模式,来调度处理器,将哈希值相同的数据包分发给同一处理器进行处理,如果该处理器的缓冲队列已满,则直接丢弃该数据包,保证数据包的处理效率。
第二方面,本发明提供了一种数据包转发系统,包括:
接收模块,用于通过数据包收发引擎接收经第一网络接口输入的数据包并对所述数据包进行完整性检测;
传输模块,用于在完整性检测成功后,以负载均衡模式将所述数据包传输至相应的处理器;
检验模块,用于通过所述处理器对所述数据包进行包头检验;
解封装模块,用于在包头检验成功后,对所述数据包进行解封装处理和合法性验证,合法性检验成功后,根据所述数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息,如查询得到所述路由信息,则根据所述路由信息更新所述数据包中的包头信息和检验和;
发送模块,用于根据所述路由信息中包括的下一跳IP地址信息从随机存储器中的下一跳表中查询得到下一跳MAC地址,根据所述下一跳MAC地址对所述数据包进行封装处理,将封装处理后的所述数据包经所述数据包收发引擎发送至第二网络接口。
上述实施例的有益效果:以负载均衡模式将数据包分发给相应处理器,提高数据包处理效率,以目的IP地址为关键字从路由表中查询得到路由信息,从而进一步根据路由信息从下一跳表中查询得到下一跳MAC地址,将数据包转发出去,提高数据包转发效率,提高用户的网络使用体验。
进一步,当所述负载均衡模式为静态流绑定模式时,所述传输模块具体用于:
选取所述数据包中的目的IP地址中的字段进行哈希运算,将所述数据包传输至与所述数据包具有相同哈希值的数据包对应的处理器;
当所述处理器的缓冲队列为已满状态时,丢弃所述数据包。
上述实施例的有益效果:在当前流量不大的情况下,可以采用静态流绑定模式,来调度处理器,将哈希值相同的数据包分发给同一处理器进行处理,如果该处理器的缓冲队列已满,则直接丢弃该数据包,保证数据包的处理效率。
附图说明
图1为本发明实施例提供的一种数据包转发方法的流程示意图;
图2为本发明另一实施例提供的一种数据包转发方法的流程示意图;
图3为本发明另一实施例提供的一种数据包转发方法的流程示意图;
图4为本发明另一实施例提供的一种数据包转发方法的流程示意图;
图5为本发明另一实施例提供的一种数据包转发系统的结构示意图;
图6为本发明另一实施例提供的一种数据包转发系统的结构示意图;
图7为本发明另一实施例提供的一种数据包转发方法的信令图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透切理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
图1为本发明实施例提供的一种数据包转发方法的流程示意图。
具体如图1所示,具体包括:
S110、通过数据包收发引擎接收经第一网络接口输入的数据包并对数据包进行完整性检测;
S120、在完整性检测成功后,以负载均衡模式将数据包传输至相应的处理器;
S130、通过处理器对数据包进行包头检验;
S140、在包头检验成功后,对数据包进行解封装处理和合法性检验,合法性检验成功后,根据数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息,如查询得到路由信息,则根据路由信息更新数据包中的包头信息和检验和;
S150、根据路由信息中包括的下一跳IP地址信息从随机存储器中的下一跳表中查询得到下一跳MAC地址,根据下一跳MAC地址对数据包进行封装处理,将封装处理后的数据包经数据包收发引擎发送至第二网络接口。
第一网络接口和第二网络接口均为万兆网络接口,它们是数据包和物理链路连接的接口,满足10Gbps的收发能力。数据包收发引擎用于接收经第一网络接口输入的数据包,然后根据负载均衡模式转发至相应处理器,负载均衡模式可以为:轮询调度模式、动态流绑定模式或静态流绑定模式。
具体地,当负载均衡模式为轮询调度模式时,直接将数据包交给处理器组中负载最少的处理器进行处理,通过该处理器对数据包进行包头检验。在包头检验成功后,对数据包进行解封装处理和合法性检验,合法性检验成功后,根据数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息。
根据路由表查找的路由信息查找下一跳表,得到发送端口和下一跳IP地址对应的MAC地址,根据下一跳表的查询结果对报文进行重新封装,再通过数据包收发引擎将封装后的数据包发送到第二网络接口。
上述实施例的有益效果:以负载均衡模式将数据包分发给相应处理器,提高数据包处理效率,以目的IP地址为关键字从路由表中查询得到路由信息,从而进一步根据路由信息从下一跳表中查询得到下一跳MAC地址,根据下一跳MAC地址将数据包转发出去,提高数据包转发效率,对数据包进行包头检验、解封装处理和合法性检验,保证数据包的正确性。
图2为本发明实施例提供的一种数据包转发方法的流程示意图。
具体如图2所示,具体包括:
S210、通过数据包收发引擎接收经第一网络接口输入的数据包并对数据包进行完整性检测;
S220、选取数据包中的目的IP地址中的字段进行哈希运算,将数据包传输至与数据包具有相同哈希值的数据包对应的处理器组;
S230、当从处理器组中随机分配给数据包的处理器的缓冲队列为已满状态时,将数据包传输至处理器组中缓冲队列最空闲的处理器;
S240、通过处理器对数据包进行包头检验;
S250、在包头检验成功后,对数据包进行解封装处理和合法性检验,合法性检验成功后,根据数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息,如查询得到路由信息,则根据路由信息更新数据包中的包头信息和检验和;
S260、根据路由信息中包括的下一跳IP地址信息从随机存储器中的下一跳表中查询得到下一跳MAC地址,根据下一跳MAC地址对数据包进行封装处理,经数据包收发引擎发送至第二网络接口。
第一网络接口和第二网络接口均为万兆网络接口,它们是数据包和物理链路连接的接口,满足10Gbps的收发能力。数据包收发引擎用于接收经第一网络接口输入的数据包,然后根据负载均衡模式转发至相应处理器,负载均衡模式可以为:轮询调度模式、动态流绑定模式或静态流绑定模式。
具体地,当负载均衡模式为动态流绑定模式时,选取源IP地址、目的IP地址、源端口、目的端口以及协议类型中的字段进行哈希运算,具有相同哈希值的数据包将送往与之对应的一组处理器,为每个数据包随机指定一个处理器进行处理。如果该数据包被指定的处理器的缓冲队列已满,则将数据包交给该组处理器中负载最少的处理器,即缓冲队列最空闲的处理器进行处理。如果该组处理器中所有处理器的缓冲队列均已满,则丢弃该数据包。保证了其他数据包的处理效率,防止发生堵塞。
处理器接收到数据包后,对输入的数据包的包头进行检验,检测该数据包是否为正确的报文,如果数据包包头信息不正确,则丢弃数据包,否则交给处理器的下一模块进行处理。下一模块对数据包进行解封装,即将数据包的二层头去掉,然后对数据包进行合法性检验,如果数据包正确,则根据数据包的目的IP地址查找路由表,得到此目的IP地址的路由信息,否则丢弃数据包,如果在路由表中没有查询到此目的IP地址的路由信息,则丢弃数据包。根据路由表查找的路由信息查找下一跳表,得到发送端口和下一跳IP地址对应的MAC地址,根据下一跳表的查询结果对报文进行重新封装,再通过数据包收发引擎将封装后的数据包发送到第二网络接口。
上述实施例的有益效果:在一组处理器中所有处理器的缓冲队列均已满时,则说明当前处理器为饱和状态,不能强行分配处理任务,应该直接丢弃该数据包,防止不正确的报文占用资源,从而提高资源利用率;通过对数据包解封装、合法性检验以及后续的重新封装并发送出去,不仅保证了数据包的正确性,而且提高了数据包的转发效率。
图3为本发明实施例提供的一种数据包转发方法的流程示意图。
具体如图3所示,具体包括:
S310、通过数据包收发引擎接收经第一网络接口输入的数据包并对数据包进行完整性检测;
S320、选取数据包中的目的IP地址中的字段进行哈希运算,将数据包传输至与数据包具有相同哈希值的数据包对应的处理器;
S330、当处理器的缓冲队列为已满状态时,丢弃数据包。
第一网络接口和第二网络接口均为万兆网络接口,它们是数据包和物理链路连接的接口,满足10Gbps的收发能力。数据包收发引擎用于接收经第一网络接口输入的数据包,然后根据负载均衡模式转发至相应处理器,负载均衡模式可以为:轮询调度模式、动态流绑定模式或静态流绑定模式。
具体地,当负载均衡模式为静态流绑定模式时,选取源IP地址、目的IP地址、源端口、目的端口以及协议类型中的字段进行哈希运算,具有相同哈希值的数据包将送往与之对应的一组处理器,为每个数据包随机指定一个处理器进行处理。如果该数据包被指定的处理器的缓冲队列已满,则将数据包交给该组处理器中负载最少的处理器,即缓冲队列最空闲的处理器进行处理。如果该组处理器中所有处理器的缓冲队列均已满,则丢弃该数据包。保证了其他数据包的处理效率,防止发生堵塞。
上述实施例的有益效果:在所分配的处理器的缓冲队列已满时,则说明当前该处理器为饱和状态,不能强行分配处理任务,应该直接丢弃该数据包,防止不正确的报文占用资源,从而提高资源利用率。
图4为本发明实施例提供的一种数据包转发方法的流程示意图。
具体如图4所示,具体包括:
S410、通过数据包收发引擎接收经第一网络接口输入的数据包并对数据包进行完整性检测;
S420、在完整性检测成功后,以负载均衡模式将数据包传输至相应的处理器;
S430、通过处理器对数据包进行包头检验;
S440、在包头检验成功后,对数据包进行解封装处理和合法性检验,合法性检验成功后,根据数据包中包括的目的IP地址对应的索引表的索引号从随机存储器中的路由表中的索引表中获取对应的路由查找节点;
S450、如果路由查找节点为有效的路由查找节点,则根据路由查找节点的查询结果字段,获取查询结果字段所指向的哈希表中的对应的路由节点;
S460、如果路由节点为有效的路由节点,则查询得到路由节点中的路由信息,根据路由信息更新数据包中的包头信息和检验和;
S470、根据路由信息中包括的下一跳IP地址信息从随机存储器中的下一跳表中查询得到下一跳MAC地址,根据下一跳MAC地址对数据包进行封装处理,将封装处理后的数据包经数据包收发引擎发送至第二网络接口。
第一网络接口和第二网络接口均为万兆网络接口,它们是数据包和物理链路连接的接口,满足10Gbps的收发能力。数据包收发引擎用于接收经第一网络接口输入的数据包,然后根据负载均衡模式转发至相应处理器,负载均衡模式可以为:轮询调度模式、动态流绑定模式或静态流绑定模式。处理器对输入的数据包的包头进行检验,检测该数据包是否为正确的报文,如果数据包包头信息不正确,则丢弃数据包,否则交给处理器的下一模块进行处理。下一模块对数据包进行解封装,即将数据包的二层头去掉,然后对数据包进行合法性检验,如果数据包正确,则根据数据包的目的IP地址查找路由表。
路由表包括:基于哈希函数的哈希表和基于最长前缀匹配算法和多分支字典树的索引表,哈希表用于存放所有路由节点,每个路由节点具有完整的路由信息,索引表包含若干路由查找节点,每个路由查找节点的查询结果字段指向哈希表中对应的路由节点。
具体地,对于一个给定的目的IP地址,使用最长前缀匹配算法,通过查询索引表,逐层判断路由前缀相对路由表每层的偏移的表项,找到叶子节点,从而得到此目的IP地址的路由信息。路由查找算法步骤如下:
第一步:根据目的IP地址和一级索引表、二级索引表、三级索引表分别对应的掩码得到目标IP地址对应的一级、二级和三级索引表中对应的索引号。
第二步:根据目标IP地址对应的一级索引表的索引号,得到路由表项实例,检验此实例是否有效、正确。如果正确有效则直接返回查找结果,否则执行第三步。
第三步:根据目标IP地址对应的二级索引表的索引号,得到路由表项实例,检验此实例是否有效、正确。如果正确有效则直接返回查找结果,否则执行第四步。
第四步:根据目标IP地址对应的三级索引表的索引号,得到路由表项实例,检验此实例是否有效、正确。如果正确有效则直接返回查找结果,否则返回错误信息。
采用基于前缀长度和多分支字典树相结合的路由查找算法,有效增加了每次访问存储器所获取节点的信息数,即每次查找检查的比特数,从而降低字典树的深度,减少了存储器的访问次数,大幅度提高路由表的查找性能。
根据路由表查找的路由信息查找下一跳表,得到发送端口和下一跳IP地址对应的MAC地址,根据下一跳表的查询结果对报文(该数据包)进行重新封装,再通过数据包收发引擎将封装后的数据包发送到第二网络接口。
上述实施例的有益效果:采用基于前缀长度和多分支字典树相结合的路由查找算法,保证了查找算法的高效性,大幅度提高路由表的查找性能;通过对数据包解封装、合法性检验以及后续的重新封装并发送出去,不仅保证了数据包的正确性,而且提高了数据包的转发效率。
图5为本发明实施例提供的一种数据包转发系统的结构示意图。
具体如图5所示,具体包括:
接收模块510,用于通过数据包收发引擎接收经第一网络接口输入的数据包并对数据包进行完整性检测;
传输模块520,用于在完整性检测成功后,以负载均衡模式将数据包传输至相应的处理器;
检验模块530,用于通过处理器对数据包进行包头检验;
解封装模块540,用于在包头检验成功后,对数据包进行解封装处理和合法性检验,合法性检验成功后,根据数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息,如查询得到路由信息,则根据路由信息更新数据包中的包头信息和检验和;
发送模块550,用于根据路由信息中包括的下一跳IP地址信息从随机存储器中的下一跳表中查询得到下一跳MAC地址,根据下一跳MAC地址对数据包进行封装处理,将封装处理后的数据包经数据包收发引擎发送至第二网络接口。
第一网络接口和第二网络接口均为万兆网络接口,它们是数据包和物理链路连接的接口,满足10Gbps的收发能力。数据包收发引擎用于接收经第一网络接口输入的数据包,然后根据负载均衡模式转发至相应处理器,负载均衡模式可以为:轮询调度模式、动态流绑定模式或静态流绑定模式。
具体地,当负载均衡模式为轮询调度模式时,直接将数据包交给处理器组中负载最少的处理器进行处理,通过该处理器对数据包进行包头检验。在包头检验成功后,对数据包进行解封装处理和合法性检验,合法性检验成功后,根据数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息。
根据路由表查找的路由信息查找下一跳表,得到发送端口和下一跳IP地址对应的MAC地址,根据下一跳表的查询结果对报文进行重新封装,再通过数据包收发引擎将封装后的数据包发送到第二网络接口。
上述实施例的有益效果:以负载均衡模式将数据包分发给相应处理器,提高数据包处理效率,以目的IP地址为关键字从路由表中查询得到路由信息,从而进一步根据路由信息从下一跳表中查询得到下一跳MAC地址,根据下一跳MAC地址将数据包转发出去,提高数据包转发效率,对数据包进行包头检验、解封装处理和合法性检验,保证数据包的正确性。
图6为本发明实施例提供的一种数据包转发系统的结构示意图。
具体如图6所示,具体包括:
接收模块610,用于通过数据包收发引擎接收经第一网络接口输入的数据包并对数据包进行完整性检测;
检验模块630,用于通过处理器对数据包进行包头检验;
解封装模块640,用于在包头检验成功后,对数据包进行解封装处理和合法性检验,合法性检验成功后,根据数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息,如查询得到路由信息,则根据路由信息更新数据包中的包头信息和检验和;
发送模块650,用于根据路由信息中包括的下一跳IP地址信息从随机存储器中的下一跳表中查询得到下一跳MAC地址,根据下一跳MAC地址对数据包进行封装处理,将封装处理后的数据包经数据包收发引擎发送至第二网络接口。
丢弃模块660,用于通过处理器对数据包进行包头检验,当包头检验失败时,或
在包头检验成功后,对数据包进行解封装处理和合法性检验,当合法性检验失败时,或
在包头检验成功后,对数据包进行解封装处理和合法性检验,合法性检验成功后,根据数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息,当查询不到路由信息时,丢弃数据包。
第一网络接口和第二网络接口均为万兆网络接口,它们是数据包和物理链路连接的接口,满足10Gbps的收发能力。数据包收发引擎用于接收经第一网络接口输入的数据包,然后根据负载均衡模式转发至相应处理器,负载均衡模式可以为:轮询调度模式、动态流绑定模式或静态流绑定模式。
具体地,当负载均衡模式为动态流绑定模式时,选取源IP地址、目的IP地址、源端口、目的端口以及协议类型中的字段进行哈希运算,具有相同哈希值的数据包将送往与之对应的一组处理器,为每个数据包随机指定一个处理器进行处理。如果该数据包被指定的处理器的缓冲队列已满,则将数据包交给该组处理器中负载最少的处理器,即缓冲队列最空闲的处理器进行处理。如果该组处理器中所有处理器的缓冲队列均已满,则丢弃该数据包。保证了其他数据包的处理效率,防止发生堵塞。
处理器接收到数据包后,对输入的数据包的包头进行检验,检测该数据包是否为正确的报文,如果数据包包头信息不正确,则丢弃数据包,否则交给处理器的下一模块进行处理。下一模块对数据包进行解封装,即将数据包的二层头去掉,然后对数据包进行合法性检验,如果数据包正确,则根据数据包的目的IP地址查找路由表,得到此目的IP地址的路由信息,否则丢弃数据包,如果在路由表中没有查询到此目的IP地址的路由信息,则丢弃数据包。根据路由表查找的路由信息查找下一跳表,得到发送端口和下一跳IP地址对应的MAC地址,根据下一跳表的查询结果对报文进行重新封装,再通过数据包收发引擎将封装后的数据包发送到第二网络接口。
上述实施例的有益效果:在一组处理器中所有处理器的缓冲队列均已满时,则说明当前处理器为饱和状态,不能强行分配处理任务,应该直接丢弃该数据包,防止不正确的报文占用资源,从而提高资源利用率;通过对数据包解封装、合法性检验以及后续的重新封装并发送出去,不仅保证了数据包的正确性,而且提高了数据包的转发效率。
图7为本发明实施例提供的一种数据包转发方法的信令图。
具体如图7所示,具体包括:
S710、接收模块通过数据包收发引擎接收经第一网络接口输入的数据包并对数据包进行完整性检测;
S720、传输模块在完整性检测成功后,选取数据包中的目的IP地址中的字段进行哈希运算,将数据包传输至与数据包具有相同哈希值的数据包对应的处理器组;
S730、传输模块当处理器组中随机分配给数据包的处理器的缓冲队列为已满状态时,将数据包传输至处理器组中缓冲队列最空闲的处理器;
S740、检验模块通过处理器对数据包进行包头检验;
S750、解封装模块在包头检验成功后,对数据包进行解封装处理和合法性检验,合法性检验成功后,根据数据包中包括的目的IP地址对应的索引表的索引号从随机存储器中的路由表中的索引表中获取对应的路由查找节点;
S760、如果路由查找节点为有效的路由查找节点,则根据路由查找节点的查询结果字段,获取查询结果字段所指向的哈希表中的对应的路由节点;
S770、如果路由节点为有效的路由节点,则查询得到路由节点中的路由信息,根据路由信息更新数据包中的包头信息和检验和;
S780、发送模块根据路由信息中包括的下一跳IP地址信息从下一跳表中查询得到下一跳MAC地址,根据下一跳MAC地址对数据包进行封装处理,经数据包收发引擎发送至第二网络接口。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存储存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据包转发方法,其特征在于,包括:
通过数据包收发引擎接收经第一网络接口输入的数据包并对所述数据包进行完整性检测;
在完整性检测成功后,以负载均衡模式将所述数据包传输至相应的处理器;
通过所述处理器对所述数据包进行包头检验;
在包头检验成功后,对所述数据包进行解封装处理和合法性检验,合法性检验成功后,根据所述数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息,如查询得到所述路由信息,则根据所述路由信息更新所述数据包中的包头信息和检验和;
根据所述路由信息中包括的下一跳IP地址信息从随机存储器中的下一跳表中查询得到下一跳MAC地址,根据所述下一跳MAC地址对所述数据包进行封装处理,将封装处理后的所述数据包经所述数据包收发引擎发送至第二网络接口。
2.根据权利要求1所述一种数据包转发方法,其特征在于,所述负载均衡模式为:轮询调度模式、动态流绑定模式或静态流绑定模式。
3.根据权利要求2所述一种数据包转发方法,其特征在于,所述路由表包括:基于哈希函数的哈希表和基于最长前缀匹配算法和多分支字典树的索引表,所述哈希表用于存放所有路由节点,每个路由节点具有完整的路由信息,所述索引表包含若干路由查找节点,每个路由查找节点的查询结果字段指向所述哈希表中对应的路由节点。
4.根据权利要求3所述一种数据包转发方法,其特征在于,所述根据所述数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息,如查询得到所述路由信息,则根据所述路由信息更新所述数据包中的包头信息和检验和,包括:
根据所述数据包中包括的目的IP地址对应的索引表的索引号从随机存储器中的路由表中的索引表中获取对应的路由查找节点;
如果所述路由查找节点为有效的路由查找节点,则根据所述路由查找节点的查询结果字段,获取所述查询结果字段所指向的哈希表中的对应的路由节点;
如果所述路由节点为有效的路由节点,则查询得到所述路由节点中的路由信息,根据所述路由信息更新所述数据包中的包头信息和检验和。
5.根据权利要求1-4任一项所述一种数据包转发方法,其特征在于,还包括:
通过所述处理器对所述数据包进行包头检验,当包头检验失败时,或
在包头检验成功后,对所述数据包进行解封装处理和合法性检验,当合法性检验失败时,或
在包头检验成功后,对所述数据包进行解封装处理和合法性检验,合法性检验成功后,根据所述数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息,当查询不到所述路由信息时,丢弃所述数据包。
6.一种数据包转发系统,其特征在于,包括:
接收模块,用于通过数据包收发引擎接收经第一网络接口输入的数据包并对所述数据包进行完整性检测;
传输模块,用于在完整性检测成功后,以负载均衡模式将所述数据包传输至相应的处理器;
检验模块,用于通过所述处理器对所述数据包进行包头检验;
解封装模块,用于在包头检验成功后,对所述数据包进行解封装处理和合法性验证,合法性检验成功后,根据所述数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息,如查询得到所述路由信息,则根据所述路由信息更新所述数据包中的包头信息和检验和;
发送模块,用于根据所述路由信息中包括的下一跳IP地址信息从随机存储器中的下一跳表中查询得到下一跳MAC地址,根据所述下一跳MAC地址对所述数据包进行封装处理,将封装处理后的所述数据包经所述数据包收发引擎发送至第二网络接口。
7.根据权利要求6所述一种数据包转发系统,其特征在于,所述负载均衡模式为:轮询调度模式、动态流绑定模式或静态流绑定模式。
8.根据权利要求7所述一种数据包转发系统,其特征在于,所述路由表包括:基于哈希函数的哈希表和基于最长前缀匹配算法和多分支字典树的索引表,所述哈希表用于存放所有路由节点,每个路由节点具有完整的路由信息,所述索引表包含若干路由查找节点,每个路由查找节点的查询结果字段指向所述哈希表中对应的路由节点。
9.根据权利要求8所述一种数据包转发系统,其特征在于,所述解封装模块具体用于:
根据所述数据包中包括的目的IP地址对应的索引表的索引号从随机存储器中的路由表中的索引表中获取对应的路由查找节点;
如果所述路由查找节点为有效的路由查找节点,则根据所述路由查找节点的查询结果字段,获取所述查询结果字段所指向的哈希表中的对应的路由节点;
如果所述路由节点为有效的路由节点,则查询得到所述路由节点中的路由信息,根据所述路由信息更新所述数据包中的包头信息和检验和。
10.根据权利要求6-9任一项所述一种数据包转发系统,其特征在于,所述系统还包括:
丢弃模块,用于通过所述处理器对所述数据包进行包头检验,当包头检验失败时,或
在包头检验成功后,对所述数据包进行解封装处理和合法性检验,当合法性检验失败时,或
在包头检验成功后,对所述数据包进行解封装处理和合法性检验,合法性检验成功后,根据所述数据包中包括的目的IP地址从随机存储器中的路由表中查询相应的路由信息,当查询不到所述路由信息时,丢弃所述数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710835427.7A CN107749826B (zh) | 2017-09-15 | 2017-09-15 | 一种数据包转发方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710835427.7A CN107749826B (zh) | 2017-09-15 | 2017-09-15 | 一种数据包转发方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107749826A true CN107749826A (zh) | 2018-03-02 |
CN107749826B CN107749826B (zh) | 2021-10-08 |
Family
ID=61255805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710835427.7A Active CN107749826B (zh) | 2017-09-15 | 2017-09-15 | 一种数据包转发方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107749826B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110278177A (zh) * | 2018-03-15 | 2019-09-24 | 武汉芯泰科技有限公司 | 一种ip包包头检测方法及装置 |
CN110830995A (zh) * | 2019-11-14 | 2020-02-21 | 桂林电子科技大学 | 能使无线传感器网络源位置安全的多分支路由设计方法 |
CN115391429A (zh) * | 2022-09-14 | 2022-11-25 | 武汉奋进智能机器有限公司 | 基于大数据云计算的时序数据处理方法及装置 |
CN115658575A (zh) * | 2022-12-13 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 一种数据串口通信系统及方法、电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1610335A (zh) * | 2004-11-25 | 2005-04-27 | 上海复旦光华信息科技股份有限公司 | 基于网络处理器和cpu阵列的交换架构的安全过滤分流器 |
CN101217455A (zh) * | 2007-01-05 | 2008-07-09 | 上海复旦光华信息科技股份有限公司 | 基于有用连接数据完整的安全内容过滤分流器 |
US20090043631A1 (en) * | 2007-08-07 | 2009-02-12 | Finlayson Ronald D | Dynamic Routing and Load Balancing Packet Distribution with a Software Factory |
CN101631086A (zh) * | 2009-08-10 | 2010-01-20 | 武汉烽火网络有限责任公司 | 并行ip路由查找的路由表分区和放置方法 |
CN106341404A (zh) * | 2016-09-09 | 2017-01-18 | 西安工程大学 | 基于众核处理器的IPSec VPN系统及加解密处理方法 |
-
2017
- 2017-09-15 CN CN201710835427.7A patent/CN107749826B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1610335A (zh) * | 2004-11-25 | 2005-04-27 | 上海复旦光华信息科技股份有限公司 | 基于网络处理器和cpu阵列的交换架构的安全过滤分流器 |
CN101217455A (zh) * | 2007-01-05 | 2008-07-09 | 上海复旦光华信息科技股份有限公司 | 基于有用连接数据完整的安全内容过滤分流器 |
US20090043631A1 (en) * | 2007-08-07 | 2009-02-12 | Finlayson Ronald D | Dynamic Routing and Load Balancing Packet Distribution with a Software Factory |
CN101631086A (zh) * | 2009-08-10 | 2010-01-20 | 武汉烽火网络有限责任公司 | 并行ip路由查找的路由表分区和放置方法 |
CN106341404A (zh) * | 2016-09-09 | 2017-01-18 | 西安工程大学 | 基于众核处理器的IPSec VPN系统及加解密处理方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110278177A (zh) * | 2018-03-15 | 2019-09-24 | 武汉芯泰科技有限公司 | 一种ip包包头检测方法及装置 |
CN110278177B (zh) * | 2018-03-15 | 2022-04-12 | 武汉芯泰科技有限公司 | 一种ip包包头检测方法及装置 |
CN110830995A (zh) * | 2019-11-14 | 2020-02-21 | 桂林电子科技大学 | 能使无线传感器网络源位置安全的多分支路由设计方法 |
CN110830995B (zh) * | 2019-11-14 | 2022-04-05 | 桂林电子科技大学 | 能使无线传感器网络源位置安全的多分支路由设计方法 |
CN115391429A (zh) * | 2022-09-14 | 2022-11-25 | 武汉奋进智能机器有限公司 | 基于大数据云计算的时序数据处理方法及装置 |
CN115658575A (zh) * | 2022-12-13 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 一种数据串口通信系统及方法、电子设备 |
CN115658575B (zh) * | 2022-12-13 | 2023-03-10 | 摩尔线程智能科技(北京)有限责任公司 | 一种数据串口通信系统及方法、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107749826B (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107749826A (zh) | 一种数据包转发方法及系统 | |
CN102857414B (zh) | 一种转发表写入、报文转发方法及装置 | |
CN106664261A (zh) | 一种配置流表项的方法、装置和系统 | |
CN109495320B (zh) | 一种数据报文的传输方法和装置 | |
CN106878194B (zh) | 一种报文处理方法和装置 | |
CN106341338B (zh) | 一种报文的转发方法及装置 | |
CN105591974A (zh) | 报文处理方法、装置及系统 | |
CN102447638A (zh) | 负载均衡的方法及转发设备 | |
CN108206785A (zh) | 针对多播流量优化与路由和/或下一跳相关的信息 | |
CN106685826A (zh) | 交换机堆叠系统、从设备、交换芯片及处理协议报文方法 | |
CN109873766B (zh) | 报文传输方法和装置 | |
CN104601467A (zh) | 一种发送报文的方法和装置 | |
CN107040393A (zh) | 一种路由管理方法和设备 | |
CN102891787B (zh) | 基于共享路径的环网隧道配置方法、业务切换方法及系统 | |
CN108718276B (zh) | 一种报文转发方法和装置 | |
CN114430394A (zh) | 报文处理方法、装置、电子设备及可读存储介质 | |
CN104009918B (zh) | 一种业务报文处理方法、装置及系统 | |
CN102158422B (zh) | 一种用于二层环网中的报文转发的方法和设备 | |
CN106789387A (zh) | 一种用于sdn的链路检测方法及装置 | |
CN106209554B (zh) | 跨虚拟可扩展局域网的报文转发方法和设备 | |
CN107086960B (zh) | 一种报文传输方法和装置 | |
CN116074253B (zh) | 一种报文链式转发方法及装置 | |
CN107682257A (zh) | 数据传输方法和系统 | |
CN107809387B (zh) | 一种报文传输的方法、设备及网络系统 | |
US10284426B2 (en) | Method and apparatus for processing service node ability, service classifier and service controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |