一种网络设备及其共享发送和接收缓存的方法技术

技术编号:29293675 阅读:19 留言:0更新日期:2021-07-17 00:41
本申请公开了一种网络设备中共享发送和接收缓存的方法,在接收方向包括如下步骤。网络设备中设置接收五元组表、接收快表、发送快表。当网络设备收到接收方向的IPv4网络数据包时,计算哈希值h_rx,查询接收快表。如果该接收数据包的五元组信息存储在接收五元组表中,从接收五元组表的相应位置读取网络数据包的五元组信息;随后进行匹配。当两者完全匹配,在接收五元组表中查询该接收数据包是否需要转发。如果是,使用接收五元组表中记录的该接收数据包的NAT信息替换接收原始数据包的五元组信息,就得到了接收转发数据包的五元组信息;将接收转发数据包进行特殊处理。上述方法节省了硬件设备缓存网络数据包的五元组信息所需空间。间。间。

【技术实现步骤摘要】
一种网络设备及其共享发送和接收缓存的方法


[0001]本申请涉及一种网络设备中减少对网络数据包的缓存需求的方法。

技术介绍

[0002]路由器、手机等网络设备既可以直接访问网络,也可以充当接入点(access point,AP)给其他设备提供上网服务。当网络设备作为接入点通过IPv4协议提供上网服务时,需要提供网络数据包的转发服务,更改网络数据包的五元组信息中的IP地址、端口信息,然后再将网络数据包转发出去。网络数据包的五元组信息是指网络数据包的源IP地址、目的IP地址、源端口、目的端口、协议。
[0003]例如手机A直接访问网络。手机A的IP地址为IP_A,互联网服务器S的IP地址为IP_S,手机A通过端口Port_A访问互联网服务器S的端口Port_S。在接收方向上,有接收数据包;这是指服务器S发给手机A的网络数据包,五元组信息为(IP_S,IP_A,Port_S,Port_A,6),其中6表示TCP协议号。在发送方向上,有发送数据包;这是指手机A发给服务器S的网络数据包,五元组信息为(IP_A,IP_S,Port_A,Port_S,6)。
[0004]又如手机A一方面通过移动通讯网络访问互联网,另一方面作为WiFi热点;手机B通过连接手机A的WiFi热点来访问互联网。手机A的IP地址为IP_A,手机B的IP地址为IP_B,互联网服务器S的IP地址为IP_S。手机B通过端口Port_B连接手机A的端口Port_A,手机A通过端口Port_A访问互联网服务器S的端口Port_S。
[0005]在接收方向上,有接收原始数据包和接收转发数据包。接收原始数据包是服务器S发给手机A的网络数据包,五元组信息为(IP_S,IP_A,Port_S,Port_A,6)。接收转发数据包是手机A转发给手机B的网络数据包,五元组信息为(IP_S,IP_B,Port_S,Port_B,6)。手机A将接收原始数据包中的目的IP地址和目的端口做了网络地址转换(network address translation,NAT)得到接收转发数据包。
[0006]在发送方向上,有发送原始数据包和发送转发数据包。发送原始数据包是手机B发给手机A的网络数据包,五元组信息为(IP_B,IP_S,Port_B,Port_S,6)。发送转发数据包是手机A转发给服务器S的网络数据包,五元组信息为(IP_A,IP_S,Port_A,Port_S,6)。手机A将发送原始数据包中的源IP地址和源端口做了网络地址转换得到发送转发数据包。
[0007]当手机A作为转发设备时,手机A中仅保存有接收原始数据包的五元组信息、发送原始数据包的五元组信息以及NAT信息(IP_A与IP_B转换,Port_A与Port_B转换)。使用NAT信息替换前面两个网络数据包的五元组信息就分别得到接收转发数据包的五元组信息、发送转发数据包的五元组信息。现有技术中,当存在转发场景时,在网络设备的硬件缓存中需要存储转发场景下的两个不同的网络数据包的五元组信息以及NAT信息。如何在满足网络性能要求的前提下减少网络设备中的硬件缓存需求,或者在同样大小的硬件缓存下提供更好的网络性能,就成为一个亟待解决的技术问题。

技术实现思路

[0008]本申请所要解决的技术问题是提供一种网络设备在转发场景下可以减少缓存需求的方法。
[0009]为解决上述技术问题,本申请提出了一种网络设备中共享发送和接收缓存的方法,在接收方向包括如下步骤。步骤S10:网络设备中设置接收五元组表、接收快表、发送快表。所述接收五元组表记录网络设备接收的一个或多个需要进行特殊处理的IPv4网络数据包的五元组信息以及NAT信息;直接收发场景下仅保存接收数据包的五元组信息以及NAT信息;转发场景下仅保存接收原始数据包的五元组信息以及NAT信息;所述NAT信息包括转换IP地址、转换端口、以及每一个网络数据包是否需要转发。所述接收快表中的每一表项是以网络设备收到的接收方向的IPv4网络数据包的五元组信息的哈希值h_rx为索引,记录该哈希值h_rx对应的IPv4网络数据包的五元组信息是否存在于接收五元组表中;如果存在于接收五元组表中,记录在接收五元组表中的位置。所述发送快表中的每一表项是以网络设备收到的来自发送方向的IPv4网络数据包的五元组信息的哈希值h_tx为索引,记录该哈希值h_tx对应的IPv4网络数据包是否有表项存在于接收快表中;如果存在于接收快表中,记录在接收快表中的位置。步骤S20:当网络设备收到接收方向的IPv4网络数据包时,以下称接收数据包,计算该接收数据包的五元组信息的哈希值h_rx,以该哈希值h_rx为索引查询接收快表,获取该接收数据包的五元组信息是否存储在接收五元组表中;如果是,进入步骤S25;如果否,进入步骤S70。步骤S25:从接收快表中获取该接收数据包的五元组信息存储在接收五元组表中的位置,并从接收五元组表的相应位置读取网络数据包的五元组信息;随后将该接收数据包的五元组信息与接收五元组表中读取的网络数据包的五元组信息进行匹配;当两者完全匹配,进入步骤S30;否则进入步骤S70。步骤S30:在接收五元组表中查询该接收数据包是否需要转发。如果是,使用接收五元组表中记录的该接收数据包的NAT信息替换接收原始数据包的五元组信息,就得到了接收转发数据包的五元组信息;将接收转发数据包送往步骤S60。如果否,将该接收数据包送往步骤S60。步骤S60:对送来的网络数据包进行特殊处理。步骤S70:对该网络数据包进行常规处理。上述方法节省了硬件设备缓存网络数据包的五元组信息所需空间。
[0010]进一步地,所述步骤S10中,当所述接收五元组表记录了转发场景下的接收原始数据包的五元组信息以及NAT信息,使用NAT信息替换接收原始数据包的五元组信息,就得到了接收转发数据包的五元组信息;将接收原始数据包的五元组信息中的源IP地址和目的IP地址交换、源端口和目的端口交换,就得到了发送转发数据包的五元组信息;将接收转发数据包的五元组信息中的源IP地址和目的IP地址交换、源端口和目的端口交换,就得到了发送原始数据包的五元组信息;或者,使用NAT信息替换发送转发数据包的五元组信息,就得到了发送原始数据包的五元组信息。这是转发场景下的一种网络数据包的五元组信息和NAT信息如何还原出四种网络数据包的五元组信息的示例性说明。
[0011]进一步地,所述步骤S10中,当所述接收五元组表记录了直接收发场景下的接收数据包的五元组信息以及NAT信息,将接收数据包的五元组信息中的源IP地址和目的IP地址交换、源端口和目的端口交换,就得到了发送数据包的五元组信息。这是直接收发场景下的一种网络数据包的五元组信息和NAT信息如何还原出两种网络数据包的五元组信息的示例性说明。
[0012]进一步地,所述接收方向是指从服务器发给该网络设备的方向。这是对接收方向的具体说明。
[0013]进一步地,所述发送方向是指从被转发设备发给该网络设备的方向。这是对发送方向的具体说明。
[0014]进一步地,在转发场景下,有服本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络设备中共享发送和接收缓存的方法,其特征是,在接收方向包括如下步骤;步骤S10:网络设备中设置接收五元组表、接收快表、发送快表;所述接收五元组表记录网络设备接收的一个或多个需要进行特殊处理的IPv4网络数据包的五元组信息以及NAT信息;直接收发场景下仅保存接收数据包的五元组信息以及NAT信息;转发场景下仅保存接收原始数据包的五元组信息以及NAT信息;所述NAT信息包括转换IP地址、转换端口、以及每一个网络数据包是否需要转发;所述接收快表中的每一表项是以网络设备收到的接收方向的IPv4网络数据包的五元组信息的哈希值h_rx为索引,记录该哈希值h_rx对应的IPv4网络数据包的五元组信息是否存在于接收五元组表中;如果存在于接收五元组表中,记录在接收五元组表中的位置;所述发送快表中的每一表项是以网络设备收到的来自发送方向的IPv4网络数据包的五元组信息的哈希值h_tx为索引,记录该哈希值h_tx对应的IPv4网络数据包是否有表项存在于接收快表中;如果存在于接收快表中,记录在接收快表中的位置;步骤S20:当网络设备收到接收方向的IPv4网络数据包时,以下称接收数据包,计算该接收数据包的五元组信息的哈希值h_rx,以该哈希值h_rx为索引查询接收快表,获取该接收数据包的五元组信息是否存储在接收五元组表中;如果是,进入步骤S25;如果否,进入步骤S70;步骤S25:从接收快表中获取该接收数据包的五元组信息存储在接收五元组表中的位置,并从接收五元组表的相应位置读取网络数据包的五元组信息;随后将该接收数据包的五元组信息与接收五元组表中读取的网络数据包的五元组信息进行匹配;当两者完全匹配,进入步骤S30;否则进入步骤S70;步骤S30:在接收五元组表中查询该接收数据包是否需要转发;如果是,使用接收五元组表中记录的该接收数据包的NAT信息替换接收原始数据包的五元组信息,就得到了接收转发数据包的五元组信息;将接收转发数据包送往步骤S60;如果否,将该接收数据包送往步骤S60;步骤S60:对送来的网络数据包进行特殊处理;步骤S70:对该网络数据包进行常规处理。2.根据权利要求1所述的网络设备中共享发送和接收缓存的方法,其特征是,所述步骤S10中,当所述接收五元组表记录了转发场景下的接收原始数据包的五元组信息以及NAT信息,使用NAT信息替换接收原始数据包的五元组信息,就得到了接收转发数据包的五元组信息;将接收原始数据包的五元组信息中的源IP地址和目的IP地址交换、源端口和目的端口交换,就得到了发送转发数据包的五元组信息;将接收转发数据包的五元组信息中的源IP地址和目的IP地址交换、源端口和目的端口交换,就得到了发送原始数据包的五元组信息;或者,使用NAT信息替换发送转发数据包的五元组信息,就得到了发送原始数据包的五元组信息。3.根据权利要求1所述的网络设备中共享发送和接收缓存的方法,其特征是,所述步骤S10中,当所述接收五元组表记录了直接收发场景下的接收数据包的五元组信息以及NAT信息,将接收数据包的五元组信息中的源IP地址和目的IP地址交换、源端口和目的端口交换,就得到了发送数据包的五元组信息。4.根据权利要求1所述的网络设备中共享发送和接收缓存的方法,其特征是,所述接收
方向是指从服务器发给该网络设备的方向。5.根据权利要求1所述的网络设备中共享发送和接收缓存的方法,其特征是,所述发送方向是指从被转发设备发给该网络设备的方向。6.根据权利要求1所述的网络设备中共享发送和接收缓存的方法,其特征是,在转发场景下,有服务器、该网络设备、被转发设备三方;接收原始数据包是服务器发给该网络设备的网络数据包,接收转发数据包是该网络设备转发给被转发设备的网络数据包。7.根据权利要求1所述的网络设备中共享发送和接收缓存的方法,其特征是,在发送方向包括如下步骤;步骤S10:网络设备中设置接收五元组表、接收快表、发送快表;步骤S40:当网络设备收到发送方向的IPv4网络数据包时,以下称发送数据包,计算该发送数据包的五元组信息的哈希值h_tx,以该哈希值h_tx为索引查询发送快表,获取该发送数据包的五元组信息是否存储在接收快表中;如果是,进入步骤S41;如果否,进入步骤S70;步骤S41:从发送快表中获取该发送数据包的五元组信息存储在接收快表中的位置,并从接收快表的相应位置查询该发送数据包的五元组信息是否存储在接收五元组表中;如果是,进入步骤S42;如果否,进入步骤S70;步骤S42:从接收快表中获取该发送数据包的五元组信息存储在接收五元组表中的位置,并从接收五元组表的相应位置读取网络数据包的五元组信息和NAT信息;判断该发送数据包与从接收五元组表的相应位置读取的网络数据包的五元组信息和NAT信息是否匹配,具体匹配规则如下;当接收五元组表中的记录表明该发送数据包需要转发,说明该发送数据包是转发场景下的发送原始数据包,如果该发送数据包的源IP地址与接收五元组表中读取的NAT信息中的转换IP地址相同、且该发送数据包的目的IP地址与接收五元组表中读取的五元组信息中的源IP地址相同、且该发送数据包的源端口与接收五元组表中读取的NAT信息中的转换端口相同、且该发送数据包的目的端口与接收五元组表中读取的五元组信息中的源端口相同、且该发送数据包的协议类型与接收五元组表中读取的五元组信息中的协议类型相同,则认为匹配成功,进入步骤S50;否则进入步骤S70;当接收五元组表中的记录表明该发送数据包不需要转发,说明该发送数据包是直接收发场景下的发送数据包,如果该发送数据包的源IP地址与接收五元组表中读取的五元组信息中的目的IP地址相同、且该发送数据包的目的IP地址与接收五元组表中读取的五元组信息中的源IP地址相同、且该发送数据包的源端口与接收五元组表中读取的五元组信息中的目的端口相同、且该发送数据包的目的端口与接收五元组表中读取的五元组信息中的源端口相同、且该发送数据包的协议类型与接收五元组表中读取的五元组信息中的协议类型相同,则认为匹配成功,进入步骤S50;否则进入步骤S70;步骤S50:在接收五元组表中查询该发送数据包是否需要转发,查询时也采用步骤S42的匹配规则;如果是,使用接收五元组表中记录的该发送数据包所匹配的网络数...

【专利技术属性】
技术研发人员:周侨高玫涛薄一帆
申请(专利权)人:翱捷科技股份有限公司
类型:发明
国别省市:

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

1