CN113114574B - 一种报文转发方法及装置 - Google Patents
一种报文转发方法及装置 Download PDFInfo
- Publication number
- CN113114574B CN113114574B CN202110341229.1A CN202110341229A CN113114574B CN 113114574 B CN113114574 B CN 113114574B CN 202110341229 A CN202110341229 A CN 202110341229A CN 113114574 B CN113114574 B CN 113114574B
- Authority
- CN
- China
- Prior art keywords
- index table
- hash
- hash index
- session
- segment
- 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
Links
Images
Classifications
-
- 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
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种报文转发方法及装置,应用于交换设备,所述交换设备维护有会话表和hash索引表;其中,会话表中的会话表项包括会话的五元组信息;hash索引表中的hash索引表项包括与会话表项对应的hash索引;hash索引包括从与会话的五元组信息对应的hash值中提取到的至少一个hash片段;所述方法包括:计算与接收到的报文的五元组信息对应的hash值,并从hash值中提取出至少一个hash片段;在hash索引表中,查找与所述至少一个hash片段匹配的hash索引表项;如果查找到与至少一个hash片段匹配的hash索引表项,则进一步基于与所述hash索引表项对应的会话表项,转发报文。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种报文转发方法、装置、电子设备及机器可读存储介质。
背景技术
为了防止用户的计算机被攻击,通常可以在具有交换功能的网络设备上部署防火墙,还可以预先为防火墙配置安全策略,以使防火墙可以过滤经过网络设备转发的报文。
在实际应用中,交换设备可以利用其维护的会话表,先对该交换设备接收到的报文进行安全策略匹配;交换设备允许符合安全策略的报文通过,将不符合安全策略的报文直接丢弃。
例如,交换设备在接收到某一会话的首个报文时,可以先检测该报文是否符合预设的安全策略;如果符合,则转发该报文,并在会话表中创建记录有该报文的五元组信息的会话表项,上述会话表项包括与该报文对应的会话的五元组信息;如果不符合,则丢弃该报文;后续,如果在会话表中可以查找到与接收到的报文的五元组信息匹配的会话表项,则交换设备无需再对接收到的报文进行安全策略匹配,可以直接转发该报文。
发明内容
本申请提供一种报文转发方法,应用于交换设备,所述交换设备维护有会话表和hash索引表;其中,所述会话表中的会话表项包括会话的五元组信息;所述hash索引表中的hash索引表项包括与所述会话表项对应的hash索引;所述hash索引包括从与所述会话的五元组信息对应的hash值中提取到的至少一个hash片段;所述方法包括:
计算与接收到的报文的五元组信息对应的hash值,并从所述hash值中提取出至少一个hash片段;
在所述hash索引表中,查找与所述至少一个hash片段匹配的hash索引表项;
如果查找到与所述至少一个hash片段匹配的hash索引表项,则进一步基于与所述hash索引表项对应的会话表项,转发所述报文。
可选的,所述从所述hash值中提取出至少一个hash片段,包括:
从所述hash值的预设比特位区间中,提取出至少一个hash片段。
可选的,所述基于与所述hash索引表项对应的会话表项,转发所述报文,包括:
在所述会话表中,查找与所述hash索引表项对应的会话表项;
比较所述会话表项中的五元组信息与所述报文的五元组信息是否匹配;
如果所述会话表项中的五元组信息与所述报文的五元组信息匹配,则基于所述会话表项,转发所述报文。
可选的,所述hash索引表项还包括与所述会话表项对应的会话标识;
所述查找与所述hash索引表项对应的会话表项,包括:
获取所述hash索引表项中的会话标识;
在所述会话表中,查找与所述会话标识对应的会话表项。
可选的,还包括:
如果所述会话表项中的五元组信息与所述报文的五元组信息不匹配,或者未查找到与所述至少一个hash片段匹配的hash索引表项,则在所述会话表中创建与所述报文的五元组信息对应的会话表项;以及,在所述hash索引表中创建与所述至少一个hash片段对应的hash索引表项。
可选的,所述在所述hash索引表中创建与所述至少一个hash片段对应的hash索引表项,包括:
检测所述hash索引表中的hash索引表项的数量是否小于所述hash索引表支持的hash索引表项的最大数量;
如果检测到所述hash索引表中的hash索引表项的数量小于所述hash索引表支持的hash索引表项的最大数量,则在所述hash索引表中创建与所述至少一个hash片段对应的hash索引表项;
如果检测到所述hash索引表中的hash索引表项的数量不小于所述hash索引表支持的hash索引表项的最大数量,则创建与所述hash索引表对应的附属hash索引表,并在所述附属hash索引表中创建与所述至少一个hash片段对应的附属hash索引表项。
可选的,所述hash索引表项还包括状态字段,所述状态字段用于指示所述hash索引表项为可用状态或不可用状态;
所述创建与所述hash索引表对应的附属hash索引表,并在所述附属hash索引表中创建与所述至少一个hash片段对应的附属hash索引表项,包括:
在所述hash索引表中,查找所述状态字段为可用状态的hash索引表项;
如果查找到所述状态字段为可用状态的hash索引表项,则将任一所述hash索引表项中的hash索引,更新为从与所述报文的五元组信息对应的hash值中提取出的至少一个hash片段;以及,将所述hash索引表项中的状态字段更新为不可用状态;
如果未查找到所述状态字段为可用状态的hash索引表项,则创建与所述hash索引表对应的附属hash索引表,并在所述附属hash索引表中创建与所述至少一个hash片段对应的附属hash索引表项。
可选的,所述在所述hash索引表中,查找与所述至少一个hash片段匹配的hash索引表项,包括:
在所述hash索引表中,查找与所述至少一个hash片段匹配的hash索引表项;
如果在所述hash索引表中未查找到与所述至少一个hash片段匹配的hash索引表项,则进一步在与所述hash索引表对应的附属hash索引表中,查找与所述至少一个hash片段匹配的附属hash索引表项。
本申请还提供一种报文转发装置,应用于交换设备,所述交换设备维护有会话表和hash索引表;其中,所述会话表中的会话表项包括会话的五元组信息;所述hash索引表中的hash索引表项包括与所述会话表项对应的hash索引;所述hash索引包括从与所述会话的五元组信息对应的hash值中提取到的至少一个hash片段;所述装置包括:
提取单元,用于计算与接收到的报文的五元组信息对应的hash值,并从所述hash值中提取出至少一个hash片段;
查找单元,用于在所述hash索引表中,查找与所述至少一个hash片段匹配的hash索引表项;
转发单元,用于如果查找到与所述至少一个hash片段匹配的hash索引表项,则进一步基于与所述hash索引表项对应的会话表项,转发所述报文。
可选的,所述提取单元,具体用于:
从所述hash值的预设比特位区间中,提取出至少一个hash片段。
可选的,所述转发单元,具体用于:
在所述会话表中,查找与所述hash索引表项对应的会话表项;
比较所述会话表项中的五元组信息与所述报文的五元组信息是否匹配;
如果所述会话表项中的五元组信息与所述报文的五元组信息匹配,则基于所述会话表项,转发所述报文。
可选的,所述hash索引表项还包括与所述会话表项对应的会话标识;
所述转发单元,具体用于:
获取所述hash索引表项中的会话标识;
在所述会话表中,查找与所述会话标识对应的会话表项。
可选的,所述装置还包括:
创建单元,用于如果所述会话表项中的五元组信息与所述报文的五元组信息不匹配,或者未查找到与所述至少一个hash片段匹配的hash索引表项,则在所述会话表中创建与所述报文的五元组信息对应的会话表项;以及,在所述hash索引表中创建与所述至少一个hash片段对应的hash索引表项。
可选的,所述创建单元,具体用于:
检测所述hash索引表中的hash索引表项的数量是否小于所述hash索引表支持的hash索引表项的最大数量;
如果检测到所述hash索引表中的hash索引表项的数量小于所述hash索引表支持的hash索引表项的最大数量,则在所述hash索引表中创建与所述至少一个hash片段对应的hash索引表项;
如果检测到所述hash索引表中的hash索引表项的数量不小于所述hash索引表支持的hash索引表项的最大数量,则创建与所述hash索引表对应的附属hash索引表,并在所述附属hash索引表中创建与所述至少一个hash片段对应的附属hash索引表项。
可选的,所述hash索引表项还包括状态字段,所述状态字段用于指示所述hash索引表项为可用状态或不可用状态;
所述创建单元,具体用于:
在所述hash索引表中,查找所述状态字段为可用状态的hash索引表项;
如果查找到所述状态字段为可用状态的hash索引表项,则将任一所述hash索引表项中的hash索引,更新为从与所述报文的五元组信息对应的hash值中提取出的至少一个hash片段;以及,将所述hash索引表项中的状态字段更新为不可用状态;
如果未查找到所述状态字段为可用状态的hash索引表项,则创建与所述hash索引表对应的附属hash索引表,并在所述附属hash索引表中创建与所述至少一个hash片段对应的附属hash索引表项。
可选的,所述查找单元,具体用于:
在所述hash索引表中,查找与所述至少一个hash片段匹配的hash索引表项;
如果在所述hash索引表中未查找到与所述至少一个hash片段匹配的hash索引表项,则进一步在与所述hash索引表对应的附属hash索引表中,查找与所述至少一个hash片段匹配的附属hash索引表项。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上实施例,一方面,由于在hash索引表中的hash索引表项包括与会话表中的会话表项对应的hash索引,所述hash索引包括从与会话的五元组信息对应的hash值中提取到的至少一个hash片段,因此交换设备维护hash索引表所占用的内存小,并且维护hash索引表的操作简单;另一方面,如果交换设备查找到与提取出的至少一个hash片段匹配的hash索引表项,则可以基于与匹配的hash索引表项对应的会话表项,转发接收到的报文,从而通过hash索引表,快速地查找与接收到的报文匹配的会话表项,提高交换设备的处理性能。
附图说明
图1是一示例性的实施例示出的一种报文转发方法的流程图;
图2是一示例性的实施例示出的一种报文转发装置所在电子设备的硬件结构图;
图3是一示例性的实施例示出的一种报文转发装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面先对本说明书实施例涉及的报文转发的相关技术,进行简要说明。
为了防止用户的计算机被攻击,通常可以在具有交换功能的网络设备上部署防火墙,还可以预先为防火墙配置安全策略,以使防火墙可以过滤经过网络设备转发的报文。
上述防火墙的工作原理,可以包括:在交换设备所维护的会话表中,查找与接收到的报文匹配的会话表项;如果查找到匹配的会话表项,则可以基于匹配的会话表项转发该报文;如果未查找到匹配的会话表项,则进一步对该报文进行安全策略匹配,如果安全策略允许该报文通过并且该报文是会话的首个报文,则可以在会话表中创建与该报文对应的会话表项,否则直接丢弃该报文。
在实际应用中,在交换设备所维护的会话表中,会话表项通常可以包括会话的五元组信息;上述会话表项还可以包括会话ID,用于标识唯一的会话;上述会话表项还可以包括正向流量统计、反向流量统计、老化时间、会话剩余时间等。
网络设备可以利用上述会话表中记录的各项信息,实现不同的业务功能;例如,路由转发、连接数统计、负载均衡、NAT(Network Address Translation,网络地址转换)等功能。关于基于会话表中记录的信息实现不同业务功能的具体过程,请参见相关技术,在此不再赘述。
在实际应用中,由于通过接收到的报文的五元组信息来匹配会话表项时,需要对每条会话表项中会话的五元组信息逐个匹配,交换设备无法实现快速地查找到与接收到的报文匹配的会话表项;因此,交换设备还可以创建并维护一张会话索引表,上述会话索引表中的索引表项包括与会话表中的会话表项对应的会话索引;其中,上述会话索引可以包括会话ID,还可以包括利用会话的五元组信息计算得出的hash值。
其中,上述交换设备在会话表中,查找与接收到的报文匹配的会话表项的过程,具体可以包括:计算与接收到的报文的五元组信息对应的hash值;在上述会话索引表中,查找与上述hash值匹配的会话索引;进一步在会话表中,查找与上述匹配的会话索引对应的会话表项。
在以上示出的实施例中,虽然利用会话索引表中的hash值,可以实现快速地查找到与接收到的报文匹配的会话表项,但是,当上述交换设备管理的会话数量增加时,为了保证用于查找会话表项的会话索引能够唯一标识会话,上述会话索引所占用的比特位数量也会随之增加,导致交换设备维护上述会话索引表所占用的内存也随之增加。
由此可见,在交换设备需要管理大量会话的场景中,需要一种既可以快速地查找到与接收到的报文匹配的会话表项,又不需要占用过多内存的技术方案。
有鉴于此,本说明书旨在提出一种将从与会话的五元组信息对应的hash值中提取到的至少一个hash片段作为hash索引,并基于hash索引表和会话表查找到的与接收到的报文匹配的会话表项,来转发报文的技术方案。
在实现时,交换设备维护有会话表和hash索引表;其中,上述会话表中的会话表项包括会话的五元组信息;上述hash索引表中的hash索引表项包括与上述会话表项对应的hash索引;上述hash索引包括从与上述会话的五元组信息对应的hash值中提取到的至少一个hash片段;
交换设备计算与接收到的报文的五元组信息对应的hash值,并从上述hash值中提取出至少一个hash片段;
进一步地,在上述hash索引表中,查找与上述至少一个hash片段匹配的hash索引表项;
进一步地,如果查找到与上述至少一个hash片段匹配的hash索引表项,则基于与上述hash索引表项对应的会话表项,转发上述报文。
由此可见,在本说明书中的技术方案中,一方面,由于在hash索引表中的hash索引表项包括与会话表中的会话表项对应的hash索引,上述hash索引包括从与会话的五元组信息对应的hash值中提取到的至少一个hash片段,因此交换设备维护hash索引表所占用的内存小,并且维护hash索引表的操作简单;另一方面,如果交换设备查找到与提取出的至少一个hash片段匹配的hash索引表项,则可以基于与匹配的hash索引表项对应的会话表项,转发接收到的报文,从而通过hash索引表,快速地查找与接收到的报文匹配的会话表项,提高交换设备的处理性能。
下面通过具体实施例,并结合具体的应用场景对本申请进行描述。
请参见图1,图1是一示例性的实施例示出的一种报文转发方法的流程图,上述方法应用于交换设备,上述交换设备维护有会话表和hash索引表;其中,上述会话表中的会话表项包括会话的五元组信息;上述hash索引表中的hash索引表项包括与上述会话表项对应的hash索引;上述hash索引包括从与上述会话的五元组信息对应的hash值中提取到的至少一个hash片段;上述报文转发方法执行以下步骤:
步骤102:计算与接收到的报文的五元组信息对应的hash值,并从上述hash值中提取出至少一个hash片段;
步骤104:在交换设备所维护的hash索引表中,查找与上述至少一个hash片段匹配的hash索引表项;
步骤106:如果查找到与上述至少一个hash片段匹配的hash索引表项,则进一步基于与上述hash索引表项对应的会话表项,转发上述报文。
在本说明书中,上述交换设备,通常为具有交换功能的网络设备;上述交换设备,具体可以包括但不限于负载均衡设备、接入设备、交换机、路由器等。
在实际应用中,上述交换设备可以搭载有具有防火墙功能的软件,以使上述交换设备在接收到报文时,可以先基于防火墙所配置的安全策略对上述报文进行过滤,再进一步地转发符合上述安全策略的报文。
在本说明书中,上述交换设备维护有会话表和hash索引表;其中,上述会话表中的会话表项包括会话的五元组信息;上述hash索引表中的hash索引表项包括与上述会话表项对应的hash索引;其中,上述hash索引包括从与上述会话的五元组信息对应的hash值中提取到的至少一个hash片段。
在实际应用中,上述会话表可以包括与不同会话分别对应的会话表项,上述会话表项用于记录与会话对应的会话信息,上述会话表项中至少可以包括会话的五元组信息。上述交换设备所维护的会话表的结构请参见表1所示例。
会话标识 | 源IP | 目的IP | 源端口 | 目的端口 | 传输协议 |
ID1 | SIP1 | DIP1 | SPORT1 | DPORT1 | P1 |
ID2 | SIP2 | DIP2 | SPORT2 | DPORT2 | P2 |
… | … | … | … | … | … |
表1
例如,如表1所示,上述会话表项可以包括会话的五元组信息(即源IP地址、目的IP地址、源端口、目的端口和传输协议);上述会话表项还可以包括会话标识,上述会话标识可以用于唯一标识与上述会话表项对应的会话。
需要说明的是,在以上示出的实施方式中,仅仅是示例性地在如表1所示的会话表中示出了两条会话表项,并且上述会话表项中包括会话标识和会话的五元组信息,并不对本说明书做限制;在实际应用中,上述会话表中可以包括一条或多条会话表项;用户可以根据需求,灵活地配置会话表项中可以记录的会话信息。
另外,在实际应用中,上述hash索引表可以包括与不同会话表项对应的hash索引表项,上述hash索引表项用于记录与会话表项对应的会话索引,至少可以包括会话表项的hash索引。上述交换设备所维护的hash索引表的结构请参见表2所示例。
例如,根据会话标识为ID1的会话表项1中的五元组信息SIP1、DIP1、SPORT1、DPORT1和P1,可以计算出与上述会话的五元组信息对应的hash值为hash1;进一步地,可以从hash1中提取出至少一个hash片段,分别为hash1_1和hash1_2;类似地,根据会话标识为ID2的会话表项2中的五元组信息,可以计算得出对应的hash值为hash2,并且可以hash2中提取出至少一个hash片段,分别为hash2_1和hash2_2。
hash1_1 | hash1_2 | … | ID1 |
hash2_1 | hash2_2 | … | ID2 |
表2
如表2所示的hash索引表中,可以包括一条或多条hash索引表项;其中,上述hash索引表项1中,可以包括与会话标识为ID1的会话表项1对应的hash1_1和hash1_2;上述hash索引表项2中,可以包括与会话标识为ID2的会话表项2对应的hash2_1和hash2_2。
需要说明的是,在以上示出的实施方式中,仅仅是示例性地在如表2所示的hash索引表中示出了两条hash索引表项,并且每条hash索引表项中示出了两个hash片段,并不对本说明书做限制;在实际应用中,上述hash索引表中可以包括一条或多条hash索引表项,每条hash索引表项可以包括至少一个hash片段;上述hash索引表项还可以包括与会话表项对应的其他信息,如会话方向、状态字段等,本说明书不做限制。
相较于相关技术中,会话索引表项包括与会话的五元组信息对应的完整hash值的技术方案,本说明书的技术方案中,hash索引表项可以包括至少一个hash片段,从而可以更快地在hash索引表中查找与接收到的报文匹配的hash索引表项,并且交换设备维护hash索引表所占用的内存更小。
在本说明书中,上述交换设备计算与接收到的报文的五元组信息对应的hash值,并从上述hash值中提取出至少一个hash片段。
在实际应用中,上述交换设备接收报文后,可以获取该报文的五元组信息,并通过预设的hash算法,计算出与该报文的五元组信息对应的hash值;进一步的,可以从上述计算出的hash值中提取出至少一个hash片段。
例如,交换设备接收报文后,可以获取到上述报文的五元组信息分别为SIP1、DIP1、SPORT1、DPORT1和P1;交换设备通过CRC(Cyclic Redundancy Check,循环冗余校验),可以计算出与上述报文的五元组信息对应的hash值为hash1;进一步地,交换设备可以从hash1中提取出两个hash片段,分别为hash1_1和hash1_2。
需要说明的是,在以上示出的实施方式中,上述交换设备可以通过CRC或者其他预设的hash算法,计算与接收到的报文的五元组信息对应的hash值,或者计算与会话的五元组信息对应的hash值,本说明书不做限制;关于通过CRC或者其他预设的hash算法计算与五元组信息对应的hash值的具体实现方式,请参见相关技术,在此不再赘述。
另外,需要说明的是,在以上示出的实施方式中,关于从计算的hash值中提取出的hash片段的数量,以及每个hash片段所占用的比特位数量,用户可以根据需求,灵活配置,以上仅仅是示例性的描述,并不对本说明书作限制;其中,提取出的hash片段的数量越多,后续在hash索引表中查找与上述至少一个hash片段匹配的hash索引表项的误判率就越低;每个hash片段所占用的比特位数量越少,每条hash索引表项所占用的内存就越小。
在示出的一种实施方式中,上述交换设备从上述hash值中提取出至少一个hash片段的过程,可以包括:从上述hash值的预设比特位区间中,提取出至少一个hash片段。
在实际应用中,用户可以根据需求,预先设置可以从hash值的所有比特位中提取hash片段的比特位区间,具体可以包括:假设根据五元组信息计算出的hash值共占N个比特位,预先设置可以提取hash值中的第0-N1个比特位作为第一hash片段,可以提取hash值中的第N2-N3个比特位作为第二hash片段;其中,上述N、N1、N2和N3为非零正整数,并且N大于N1、N2和N3。以此类推,还可以预先设置提取其他hash片段的比特位区间。
例如,预设比特位区间为hash值中的第0-16个比特位和第17-44个比特位;当上述交换设备计算出与接收到的报文的五元组信息对应的hash值,为hash1之后,可以提取上述hash1中的第0-16个比特位作为第一hash片段,即hash1_1,还可以提取上述hash1中的第17-44个比特位作为第二hash片段,即hash1_2。
需要说明的是,在以上示出的实施方式中,用户可以根据需求,灵活配置可以从计算的hash值中提取出至少一个hash片段的预设比特位区间的位置以及区间大小,以上仅仅是示例性的描述,并不对本说明书作限制。
另外,需要说明的是,在以上示出的实施方式中,与上述至少一个hash片段对应的预设比特位区间之间,可以存在互相重叠的情况,也可以存在互不相邻的情况,以上仅仅是示例性的描述,并不对本说明书作限制。
在本说明书中,上述交换设备在上述hash索引表中,查找与上述至少一个hash片段匹配的hash索引表项。
在实际应用中,上述交换设备从计算出的hash值中提取出至少一个hash片段后,可以在交换设备在所维护的hash索引表中,查找是否存在hash索引表项中的hash索引与上述提取出的至少一个hash片段均匹配;如果存在,则可以认为上述交换设备所维护的会话表中存在与接收到的报文对应的会话表项;如果不存在,则可以认为上述会话表中不存在与接收到的报文对应的会话表项。
例如,交换设备计算出与接收到的报文的五元组信息对应的hash值为hash1,从hash1中提取出的hash片段分别为hash1_1和hash1_2;进一步的,上述交换设备可以在hash索引表中,查找与hash1_1和hash1_2均匹配的hash索引表项。
在示出的一种实施方式中,上述交换设备在上述hash索引表中,查找与上述至少一个hash片段匹配的hash索引表项的过程,还可以包括:如果在上述hash索引表中未查找到与上述至少一个hash片段匹配的hash索引表项,则进一步在与上述hash索引表对应的附属hash索引表中,查找与上述至少一个hash片段匹配的附属hash索引表项。
在实际应用中,由于在上述hash索引表中当前hash索引表项的数量超过了上述hash索引表所支持的最大表项数量时,上述交换设备可以在与上述hash索引表对应的附属hash索引表中,创建与会话表项对应的附属hash索引表项;因此,如果在上述hash索引表中未查找到与上述至少一个hash片段匹配的hash索引表项,可以进一步在与上述hash索引表对应的附属hash索引表中,查找与上述至少一个hash片段匹配的附属hash索引表项。上述交换设备所维护的附属hash索引表的结构请参见表3所示例。
表3
其中,上述附属hash索引表中的最后一个表项用于标识下一个附属hash索引表的地址,从而在hash索引表所支持的最大表项数量有限时,通过创建一个或多个与上述hash索引表对应的附属hash索引表,实现对上述hash索引表进行扩展,满足交换设备的性能需求。
例如,如表3所示,上述附属hash索引表项1中,可以包括与会话标识为ID3的会话表项3对应的hash3_1和hash3_2。当hash1_1、hash2_1和hash3_1相同时,如表3所示的附属hash索引表可以是与如表2所示的hash索引表对应的附属hash索引表。关于上述附属hash索引表的表结构,与上述hash索引表的表结构类似,在此不再赘述。
接着上述实施例继续举例,上述交换设备可以先在如表2所示的hash索引表中,查找与上述至少一个hash片段匹配的hash索引表项;如果未查找到匹配的hash索引表项,可以在如表3所示的附属hash索引表中,查找与上述至少一个hash片段匹配的附属hash索引表项;如果查找到匹配的附属hash索引表项,则可以基于与上述匹配的附属hash索引表项对应的会话表项,转发报文;如果未查找到匹配的附属hash索引表项,则可以根据附属hash索引表中的“Next Address”,在下一个附属hash索引表中,继续查找与上述至少一个hash片段匹配的附属hash索引表项,从而在合理利用交换设备的内存的同时,实现减少误判率。
应当理解的是,虽然hash1、hash2和hash3互不相同,但是由于hash1_1、hash2_1和hash3_1是分别从完整的hash值中提取出来的hash片段,因此hash1_1、hash2_1和hash3_1可能存在相同的情况。
在本说明书中,如果上述交换设备查找到与上述至少一个hash片段匹配的hash索引表项,则进一步基于与上述hash索引表项对应的会话表项,转发上述报文。
在实际应用中,如果上述交换设备查找到与上述至少一个hash片段匹配的hash索引表项,可以认为与上述匹配的hash索引表项对应的会话表项就是与接收到的报文对应的会话对应的会话表项;因此,上述交换设备可以基于与上述匹配的hash索引表项对应的会话表项,转发上述报文。
例如,交换设备可以在如表2所示的hash索引表中,查找与hash1_1和hash1_2均匹配的hash索引表项;交换设备可以查找到与hash1_1和hash1_2均匹配的hash索引表项为hash索引表项1;交换设备可以进一步基于与hash索引表项1对应的会话表项1,转发接收到的报文。
在示出的一种实施方式中,上述交换设备基于与上述hash索引表项对应的会话表项,转发上述报文的过程,可以包括:在上述会话表中,查找与上述hash索引表项对应的会话表项;比较上述会话表项中的五元组信息与上述报文的五元组信息是否匹配;如果上述会话表项中的五元组信息与上述报文的五元组信息匹配,则基于上述会话表项,转发上述报文。
在实际应用中,虽然计算出的与接收到的报文的五元组信息对应的hash值,可以用于唯一标识会话,但是由于提取出的hash片段可能只是计算出的完整的hash值中的一部分,因此,可能存在不同会话的五元组信息不同、且提取出的至少一个hash片段相同的情况。
例如,如果交换设备在hash索引表中,查找到与hash1_1和hash1_2均匹配的hash索引表项为hash索引表项1;交换设备可以在会话表中,查找与hash索引表项1对应的会话表项为会话表项1;然后,交换设备可以比较会话表项1中的五元组信息与接收到的报文的五元组信息是否匹配;如果匹配,可以确定会话表项1为与接收到的报文对应的会话表项,则基于会话表项1,转发上述报文;如果不匹配,可以确定会话表项1并非与接收到的报文对应的会话表项,可以对接收到的报文进一步处理。
需要说明的是,在以上示出的实施方式中,通过比较与hash索引表项对应的会话表项中的五元组信息与报文的五元组信息是否匹配,可以进一步地确定与匹配的hash索引表项对应的会话表项是否为与接收到的报文对应的会话表项,从而减少误判率。
在示出的一种实施方式中,上述hash索引表项还包括与上述会话表项对应的会话标识;上述交换设备查找与上述hash索引表项对应的会话表项的过程,可以包括:获取上述hash索引表项中的会话标识;在上述会话表中,查找与上述会话标识对应的会话表项。
例如,如果上述交换设备可以查找到与hash1_1和hash1_2均匹配的hash索引表项为hash索引表项1;可以获取hash索引表项1中的会话标识为ID1,并在如表1所示的会话表1中,查找与会话标识ID1对应的会话表项,为会话表项1。
在示出的一种实施方式中,上述交换设备在上述hash索引表中,查找与上述至少一个hash片段匹配的hash索引表项之后,还可以包括:如果未查找到与上述至少一个hash片段匹配的hash索引表项,则在上述会话表中创建与上述报文的五元组信息对应的会话表项;以及,在上述hash索引表中创建与上述至少一个hash片段对应的hash索引表项。
在实际应用中,如果上述交换设备未查找到与上述至少一个hash片段匹配的hash索引表项,可以认为会话表中并没有与接收到的报文对应的会话表项;如果确定上述报文是某一会话的首个报文,可以在会话表中创建与上述报文的五元组信息对应的会话表项,并且在hash索引表中创建与上述会话表项对应的hash索引表项。
例如,交换设备在如表2所示的hash索引表中,查找与hash4_1和hash4_2匹配的hash索引表项;如果未查找到与hash4_1和hash4_2匹配的hash索引表项,可以在会话表中创建与接收到的报文的五元组信息对应的会话表项4,以及在hash索引表中创建与会话表项4对应的hash索引表项4。
在示出的另一种实施方式中,上述交换设备比较上述会话表项中的五元组信息与上述报文的五元组信息是否匹配之后,还可以包括:如果上述会话表项中的五元组信息与上述报文的五元组信息不匹配,则在上述会话表中创建与上述报文的五元组信息对应的会话表项;以及,在上述hash索引表中创建与上述至少一个hash片段对应的hash索引表项。
在实际应用中,如果上述交换设备比较出会话表项中的五元组信息与上述报文的五元组信息不匹配,可以认为会话表中并没有与接收到的报文对应的会话表项,可以在会话表中创建与上述报文的五元组信息对应的会话表项,并且在hash索引表中创建与上述会话表项对应的hash索引表项。
例如,交换设备在hash索引表中,可以查找到与hash1_1和hash1_2均匹配的hash索引表项为hash索引表项1;交换设备可以在会话表中,查找与hash索引表项1对应的会话表项1;然后可以比较会话表项1中的五元组信息与接收到的报文的五元组信息是否匹配,如果不匹配,可以在会话表中创建与接收到的报文的五元组信息对应的会话表项,以及在hash索引表中创建与创建的会话表项对应的hash索引表项。
在示出的一种实施方式中,上述交换设备在上述hash索引表中创建与上述至少一个hash片段对应的hash索引表项的过程,可以包括:检测上述hash索引表中的hash索引表项的数量是否小于上述hash索引表支持的hash索引表项的最大数量;如果小于,则在上述hash索引表中创建与上述至少一个hash片段对应的hash索引表项;如果不小于,则创建与上述hash索引表对应的附属hash索引表,并在上述附属hash索引表中创建与上述至少一个hash片段对应的附属hash索引表项。
在实际应用中,用户可以根据上述交换设备需要管理的会话数量,利用统计得到的经验值,设置hash索引表支持的hash索引表项的最大数量。当交换设备需要在hash索引表中创建hash索引表项时,如果上述hash索引表中存在可以用于创建hash索引表项的可用表项,则在上述hash索引表中创建与创建的会话表项对应的hash索引表项;如果hash索引表中不存在可以用于创建hash索引表项的可用表项,则可以在与上述hash索引表对应的附属hash索引表中创建与创建的会话表项对应的附属hash索引表项。
例如,用户预先设置hash索引表支持的hash索引表项的最大数量为8;当交换设备需要创建hash索引表项时,可以先检测hash索引表中的hash索引表项的数量是否小于上述hash索引表支持的hash索引表项的最大数量;如果检测到当前的hash索引表项数量小于8,可以在上述hash索引表中创建与提取出的至少一个hash片段对应的hash索引表项;否则,可以在与上述hash索引表对应的附属hash索引表中,创建与提取出的至少一个hash片段对应的附属hash索引表项。
需要说明的是,在以上示出的实施方式中,通过为hash索引表设置支持的hash索引表项的最大数量,并且在检测到hash索引表中的hash索引表项的数量不小于hash索引表支持的hash索引表项的最大数量时,可以创建与hash索引表对应的附属hash索引表,从而不仅可以合理地利用内存资源,还可以通过hash索引表项和附属hash索引表项,保证交换设备能够正常记录并保存与会话表项对应的hash索引。
在示出的另一种实施方式中,上述hash索引表项还包括状态字段,上述状态字段用于指示上述hash索引表项为可用状态或不可用状态;上述交换设备创建与上述hash索引表对应的附属hash索引表,并在上述附属hash索引表中创建与上述至少一个hash片段对应的附属hash索引表项的过程,可以包括:在上述hash索引表中,查找上述状态字段为可用状态的hash索引表项;如果查找到上述状态字段为可用状态的hash索引表项,则将任一上述hash索引表项中的hash索引,更新为从与上述报文的五元组信息对应的hash值中提取出的至少一个hash片段;以及,将上述hash索引表项中的状态字段更新为不可用状态;如果未查找到,则创建与上述hash索引表对应的附属hash索引表,并在上述附属hash索引表中创建与上述至少一个hash片段对应的附属hash索引表项。
在实际应用中,当会话表中的会话表项老化时,可以直接删除对应的hash索引表项或者附属hash索引表项,也可以将对应的hash索引表项中的状态字段由不可用状态更新为可用状态;其中,当hash索引表项中的状态字段为不可用状态时,可以表示上述hash索引表项是一条有用的hash索引表项;当hash索引表项中的状态字段为可用状态时,可以表示上述hash索引表项是一条已经老化的hash索引表项,可以被复用。
例如,如果交换设备检测到hash索引表中当前的hash索引表项数量不小于hash索引表支持的hash索引表项的最大数量,可以再查找状态字段为可用状态的hash索引表项,即可以检测是否存在已被老化hash索引表项;如果存在,则无需创建附属hash索引表项,可以直接在上述状态字段为可用状态的hash索引表项的基础上,将上述hash索引表项中的hash索引,更新为提取出的至少一个hash片段。
需要说明的是,在以上示出的实施方式中,由于交换设备所维护的hash索引表中与所有hash索引表项对应的会话表项都被老化时,才会删除该hash索引表,因此,可以利用hash索引表项中的状态字段,对可用状态的hash索引表项进行复用,从而减少交换设备针对hash索引表进行分配内存、释放内存等操作的次数,提高交换设备的处理性能。
另外,需要说明的是,关于会话表项老化的具体实现方式,请参见相关技术,在此不再赘述。
通过以上技术方案可知,一方面,由于在hash索引表中的hash索引表项包括与会话表中的会话表项对应的hash索引,上述hash索引包括从与会话的五元组信息对应的hash值中提取到的至少一个hash片段,因此交换设备维护hash索引表所占用的内存小,并且维护hash索引表的操作简单;另一方面,如果交换设备查找到与提取出的至少一个hash片段匹配的hash索引表项,则可以基于与匹配的hash索引表项对应的会话表项,转发接收到的报文,从而通过hash索引表,快速地查找与接收到的报文匹配的会话表项,提高交换设备的处理性能。
与上述报文转发方法的实施例对应的,本说明书还提供了一种报文转发装置的实施例。
本说明书的报文转发装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器,将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,请参见图2,图2是一示例性的实施例示出的一种报文转发装置所在电子设备的硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
请参见图3,图3是一示例性的实施例示出的一种报文转发装置的框图。该报文转发装置可以应用于图2所示的电子设备;上述交换设备维护有会话表和hash索引表;其中,上述会话表中的会话表项包括会话的五元组信息;上述hash索引表中的hash索引表项包括与上述会话表项对应的hash索引;上述hash索引包括从与上述会话的五元组信息对应的hash值中提取到的至少一个hash片段;
上述报文转发装置可以包括:
提取单元301,用于计算与接收到的报文的五元组信息对应的hash值,并从上述hash值中提取出至少一个hash片段;
查找单元302,用于在上述hash索引表中,查找与上述至少一个hash片段匹配的hash索引表项;
转发单元303,用于如果查找到与上述至少一个hash片段匹配的hash索引表项,则进一步基于与上述hash索引表项对应的会话表项,转发上述报文。
在本实施例中,上述提取单元301,具体用于:
从上述hash值的预设比特位区间中,提取出至少一个hash片段。
在本实施例中,上述转发单元303,具体用于:
在上述会话表中,查找与上述hash索引表项对应的会话表项;
比较上述会话表项中的五元组信息与上述报文的五元组信息是否匹配;
如果上述会话表项中的五元组信息与上述报文的五元组信息匹配,则基于上述会话表项,转发上述报文。
在本实施例中,上述hash索引表项还包括与上述会话表项对应的会话标识;
上述转发单元303,具体用于:
获取上述hash索引表项中的会话标识;
在上述会话表中,查找与上述会话标识对应的会话表项。
在本实施例中,上述装置还包括:
创建单元,用于如果上述会话表项中的五元组信息与上述报文的五元组信息不匹配,或者未查找到与上述至少一个hash片段匹配的hash索引表项,则在上述会话表中创建与上述报文的五元组信息对应的会话表项;以及,在上述hash索引表中创建与上述至少一个hash片段对应的hash索引表项。
在本实施例中,上述创建单元,具体用于:
检测上述hash索引表中的hash索引表项的数量是否小于上述hash索引表支持的hash索引表项的最大数量;
如果检测到上述hash索引表中的hash索引表项的数量小于上述hash索引表支持的hash索引表项的最大数量,则在上述hash索引表中创建与上述至少一个hash片段对应的hash索引表项;
如果检测到上述hash索引表中的hash索引表项的数量不小于上述hash索引表支持的hash索引表项的最大数量,则创建与上述hash索引表对应的附属hash索引表,并在上述附属hash索引表中创建与上述至少一个hash片段对应的附属hash索引表项。
在本实施例中,上述hash索引表项还包括状态字段,上述状态字段用于指示上述hash索引表项为可用状态或不可用状态;
上述创建单元,具体用于:
在上述hash索引表中,查找上述状态字段为可用状态的hash索引表项;
如果查找到上述状态字段为可用状态的hash索引表项,则将任一上述hash索引表项中的hash索引,更新为从与上述报文的五元组信息对应的hash值中提取出的至少一个hash片段;以及,将上述hash索引表项中的状态字段更新为不可用状态;
如果未查找到上述状态字段为可用状态的hash索引表项,则创建与上述hash索引表对应的附属hash索引表,并在上述附属hash索引表中创建与上述至少一个hash片段对应的附属hash索引表项。
在本实施例中,上述查找单元302,具体用于:
在上述hash索引表中,查找与上述至少一个hash片段匹配的hash索引表项;
如果在上述hash索引表中未查找到与上述至少一个hash片段匹配的hash索引表项,则进一步在与上述hash索引表对应的附属hash索引表中,查找与上述至少一个hash片段匹配的附属hash索引表项。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (7)
1.一种报文转发方法,其特征在于,应用于交换设备,所述交换设备维护有会话表和hash索引表;其中,所述会话表中的会话表项包括会话的五元组信息;所述hash索引表中的hash索引表项包括与所述会话表项对应的hash索引;所述hash索引包括从与所述会话的五元组信息对应的hash值中提取到的至少一个hash片段;所述方法包括:
计算与接收到的报文的五元组信息对应的hash值,并从所述hash值中提取出至少一个hash片段;
在所述hash索引表中,查找与所述至少一个hash片段匹配的hash索引表项;
如果在所述hash索引表中未查找到与所述至少一个hash片段匹配的hash索引表项,则进一步在与所述hash索引表对应的附属hash索引表中,查找与所述至少一个hash片段匹配的附属hash索引表项;其中,所述附属hash索引表中的最后一个表项用于标识下一个附属hash索引表的地址;如果未查找到匹配的附属hash索引表项,则根据附属hash索引表中的所述最后一个表项在所述下一个附属hash索引表中继续查找与所述至少一个hash片段匹配的附属hash索引表项;
如果查找到与所述至少一个hash片段匹配的hash索引表项,则进一步在所述会话表中,查找与所述hash索引表项对应的会话表项;比较所述会话表项中的五元组信息与所述报文的五元组信息是否匹配;如果所述会话表项中的五元组信息与所述报文的五元组信息匹配,则基于所述会话表项,转发所述报文;
如果未查找到与所述至少一个hash片段匹配的hash索引表项,则在所述会话表中创建与所述报文的五元组信息对应的会话表项,并且,检测所述hash索引表中的hash索引表项的数量是否小于所述hash索引表支持的hash索引表项的最大数量;
如果检测到所述hash索引表中的hash索引表项的数量小于所述hash索引表支持的hash索引表项的最大数量,则在所述hash索引表中创建与所述至少一个hash片段对应的hash索引表项;
如果检测到所述hash索引表中的hash索引表项的数量不小于所述hash索引表支持的hash索引表项的最大数量,则创建与所述hash索引表对应的附属hash索引表,并在所述附属hash索引表中创建与所述至少一个hash片段对应的附属hash索引表项。
2.根据权利要求1所述的方法,其特征在于,所述hash索引表项还包括与所述会话表项对应的会话标识;
所述查找与所述hash索引表项对应的会话表项,包括:
获取所述hash索引表项中的会话标识;
在所述会话表中,查找与所述会话标识对应的会话表项。
3.根据权利要求1所述的方法,其特征在于,还包括:
如果所述会话表项中的五元组信息与所述报文的五元组信息不匹配,则在所述会话表中创建与所述报文的五元组信息对应的会话表项;以及,在所述hash索引表中创建与所述至少一个hash片段对应的hash索引表项。
4.根据权利要求1所述的方法,其特征在于,所述hash索引表项还包括状态字段,所述状态字段用于指示所述hash索引表项为可用状态或不可用状态;
所述创建与所述hash索引表对应的附属hash索引表,并在所述附属hash索引表中创建与所述至少一个hash片段对应的附属hash索引表项,包括:
在所述hash索引表中,查找所述状态字段为可用状态的hash索引表项;
如果查找到所述状态字段为可用状态的hash索引表项,则将任一所述hash索引表项中的hash索引,更新为从与所述报文的五元组信息对应的hash值中提取出的至少一个hash片段;以及,将所述hash索引表项中的状态字段更新为不可用状态;
如果未查找到所述状态字段为可用状态的hash索引表项,则创建与所述hash索引表对应的附属hash索引表,并在所述附属hash索引表中创建与所述至少一个hash片段对应的附属hash索引表项。
5.一种报文转发装置,其特征在于,应用于交换设备,所述交换设备维护有会话表和hash索引表;其中,所述会话表中的会话表项包括会话的五元组信息;所述hash索引表中的hash索引表项包括与所述会话表项对应的hash索引;所述hash索引包括从与所述会话的五元组信息对应的hash值中提取到的至少一个hash片段;所述装置包括:
提取单元,用于计算与接收到的报文的五元组信息对应的hash值,并从所述hash值中提取出至少一个hash片段;
查找单元,用于在所述hash索引表中,查找与所述至少一个hash片段匹配的hash索引表项;如果在所述hash索引表中未查找到与所述至少一个hash片段匹配的hash索引表项,则进一步在与所述hash索引表对应的附属hash索引表中,查找与所述至少一个hash片段匹配的附属hash索引表项;其中,所述附属hash索引表中的最后一个表项用于标识下一个附属hash索引表的地址;如果未查找到匹配的附属hash索引表项,则根据附属hash索引表中的所述最后一个表项在所述下一个附属hash索引表中继续查找与所述至少一个hash片段匹配的附属hash索引表项;
转发单元,用于如果查找到与所述至少一个hash片段匹配的hash索引表项,则进一步在所述会话表中,查找与所述hash索引表项对应的会话表项;比较所述会话表项中的五元组信息与所述报文的五元组信息是否匹配;如果所述会话表项中的五元组信息与所述报文的五元组信息匹配,则基于所述会话表项,转发所述报文;
如果未查找到与所述至少一个hash片段匹配的hash索引表项,则在所述会话表中创建与所述报文的五元组信息对应的会话表项,并且,
检测所述hash索引表中的hash索引表项的数量是否小于所述hash索引表支持的hash索引表项的最大数量;
如果检测到所述hash索引表中的hash索引表项的数量小于所述hash索引表支持的hash索引表项的最大数量,则在所述hash索引表中创建与所述至少一个hash片段对应的hash索引表项;
如果检测到所述hash索引表中的hash索引表项的数量不小于所述hash索引表支持的hash索引表项的最大数量,则创建与所述hash索引表对应的附属hash索引表,并在所述附属hash索引表中创建与所述至少一个hash片段对应的附属hash索引表项。
6.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1至4任一项所述的方法。
7.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110341229.1A CN113114574B (zh) | 2021-03-30 | 2021-03-30 | 一种报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110341229.1A CN113114574B (zh) | 2021-03-30 | 2021-03-30 | 一种报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113114574A CN113114574A (zh) | 2021-07-13 |
CN113114574B true CN113114574B (zh) | 2023-04-25 |
Family
ID=76713142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110341229.1A Active CN113114574B (zh) | 2021-03-30 | 2021-03-30 | 一种报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113114574B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244625B (zh) * | 2021-12-30 | 2024-07-23 | 山东安控信息科技有限公司 | 一种物理隔离设备的报文快速转发方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058639B1 (en) * | 2002-04-08 | 2006-06-06 | Oracle International Corporation | Use of dynamic multi-level hash table for managing hierarchically structured information |
CN101136851A (zh) * | 2007-09-29 | 2008-03-05 | 华为技术有限公司 | 一种流转发方法及设备 |
CN102195887A (zh) * | 2011-05-31 | 2011-09-21 | 北京星网锐捷网络技术有限公司 | 报文处理方法、装置和网络安全设备 |
CN105391629A (zh) * | 2014-09-05 | 2016-03-09 | 杭州迪普科技有限公司 | 一种资源备份的方法及装置 |
CN106302179A (zh) * | 2016-07-29 | 2017-01-04 | 杭州迪普科技有限公司 | 一种管理索引表的方法及装置 |
CN106533947A (zh) * | 2015-09-11 | 2017-03-22 | 杭州华三通信技术有限公司 | 报文处理方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9053032B2 (en) * | 2010-05-05 | 2015-06-09 | Microsoft Technology Licensing, Llc | Fast and low-RAM-footprint indexing for data deduplication |
CN102882810B (zh) * | 2012-10-26 | 2016-02-10 | 杭州迪普科技有限公司 | 一种报文快速转发方法及装置 |
US9270592B1 (en) * | 2014-01-24 | 2016-02-23 | Google Inc. | Hash collision avoidance in network routing |
CN105095212B (zh) * | 2014-04-22 | 2018-10-09 | 华为技术有限公司 | 创建哈希表的方法和设备 |
CN109326325B (zh) * | 2018-07-25 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种基因序列比对的方法、系统及相关组件 |
CN112131218B (zh) * | 2020-09-04 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种基因对比的哈希查表方法、装置、设备及存储介质 |
-
2021
- 2021-03-30 CN CN202110341229.1A patent/CN113114574B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058639B1 (en) * | 2002-04-08 | 2006-06-06 | Oracle International Corporation | Use of dynamic multi-level hash table for managing hierarchically structured information |
CN101136851A (zh) * | 2007-09-29 | 2008-03-05 | 华为技术有限公司 | 一种流转发方法及设备 |
CN102195887A (zh) * | 2011-05-31 | 2011-09-21 | 北京星网锐捷网络技术有限公司 | 报文处理方法、装置和网络安全设备 |
CN105391629A (zh) * | 2014-09-05 | 2016-03-09 | 杭州迪普科技有限公司 | 一种资源备份的方法及装置 |
CN106533947A (zh) * | 2015-09-11 | 2017-03-22 | 杭州华三通信技术有限公司 | 报文处理方法及装置 |
CN106302179A (zh) * | 2016-07-29 | 2017-01-04 | 杭州迪普科技有限公司 | 一种管理索引表的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113114574A (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11296889B2 (en) | Secret sharing via blockchains | |
CN110166570B (zh) | 业务会话管理方法、装置、电子设备 | |
CN102549988B (zh) | 路由器和由路由器执行的方法 | |
CN107547391B (zh) | 一种报文传输方法和装置 | |
CN106878194B (zh) | 一种报文处理方法和装置 | |
US20190182160A1 (en) | Packet classification using fingerprint hash table | |
WO2012071992A1 (en) | Method and apparatus for high performance, updatable, and deterministic hash table for network equipment | |
CN108259328B (zh) | 报文转发方法及装置 | |
US20220045950A1 (en) | Single lookup entry for symmetric flows | |
CN110417683B (zh) | 报文处理方法、装置及服务器 | |
CN109032533B (zh) | 一种数据存储方法、装置和设备 | |
CN108718278A (zh) | 一种报文传输方法和装置 | |
CN113114574B (zh) | 一种报文转发方法及装置 | |
CN108259348B (zh) | 一种报文传输方法和装置 | |
CN107046503B (zh) | 一种报文传输方法、系统及其装置 | |
CN108111422B (zh) | 一种基于dpdk的数据高速多路转发方法及装置 | |
CN116527559B (zh) | 网络切片的报文转发处理及发送方法、装置、设备和介质 | |
US8924640B2 (en) | Dynamic allocation of records to clusters in a ternary content addressable memory | |
CN116055446B (zh) | 跨网络的报文转发方法、电子设备及机器可读存储介质 | |
CN111131048A (zh) | 网络流量转发方法、装置、电子设备及机器可读存储介质 | |
CN107566302B (zh) | 报文转发方法和装置 | |
CN110704419A (zh) | 数据结构、数据索引方法、装置及设备、存储介质 | |
EP3301872B1 (en) | Traffic control method and apparatus | |
CN112532610B (zh) | 一种基于tcp分段的入侵防御检测方法及装置 | |
CN108990126A (zh) | 报文转发方法和装置 |
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 |