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

技术编号:36378614 阅读:22 留言:0更新日期:2023-01-18 09:39
本申请提供了一种报文处理方法及装置,应用于网络设备中的FPGA中,该网络设备内部设置有第一缓存区和第二缓存区。FPGA在本次接收到若干拍的报文后,将若干拍的报文中相同用户的报文的报文信息进行累加处理,得到本次的报文统计信息;根据本次的报文统计信息,确定本次发送用户的报文所需的目标令牌数量;从第一缓存区获取用户当前的令牌余量;从第二缓存区获取记录的用户的上一次最后一拍的报文到达时的到达时间;根据到达时间和当前的系统时间,确定本次接收到用户的最后一拍的报文时用户的令牌的令牌增量;根据令牌余量和令牌增量,确定用户的令牌总量;若令牌总量不低于目标令牌数量,则根据目标令牌数量转发用户的报文。则根据目标令牌数量转发用户的报文。则根据目标令牌数量转发用户的报文。

【技术实现步骤摘要】
一种报文处理方法及装置


[0001]本申请涉及数据处理
,尤其涉及一种报文处理方法及装置。

技术介绍

[0002]在互联网日益发达的今天,随着网络用户的增加,互联网的负担也越来越重,网络变得更加拥挤,严重时会出现网络拥塞,甚至造成业务出现异常,同时也会造成网络资源的浪费。因此就需要有一种机制可以在网络上通过监督进入网络的流量速率,以达到限制流量、提高网络资源使用效率的目的,进而保证有限的网络资源提供更好的网络服务。为了达到上述目的,需要对进入网络的流量进行监督,以实现限速。
[0003]此外,不同用户接入网络的需求不同,因此要对接入网络的不同的用户进行单独限速,目前采用的限速方式是基于令牌桶的限速方法,即,为每个用户配置一个令牌桶。当用户不断来回变化时,就需要不断地读、写存储器来获取不同用户的令牌余量以及时间值,每个用户只有在令牌余量足够时才能进行转发,从而实现所有用户的速率稳定和受控。但是不断地读、写存储器需要消耗多个时间拍,如果报文要等到读、写存储器计算令牌完成才能进行下一步转发,就会浪费很多时间拍,从而导致网络严重堵塞。因此,就需要有一种方法在不影响网络用户本身速率的情况下,对网络进行监控。
[0004]目前提供的方案是,将同一用户需要取得的令牌数进行预累加,从而保证对存储器的读、写不那么频繁,且避免了同一用户反复读、写造成的拥堵,使得在下一次读取令牌余量和时间值时有足够的时间,以计算完当前报文的令牌消耗。但是目前的网络用户是极多的,而且用来存放用户的令牌余量和时间值的存储器一般为外置DDR(双倍速率同步动态随机存储器)或QDR(四倍数据速率同步动态随机存储器)等,它们的读、写周期都要比内置RAM(随机存储器)长的多,而内置RAM又不可能分配足够大的空间给令牌桶使用。现有方案为保证有足够的时间读、写外置存储器,就需要累加更多拍的报文,而且用于预累加判断的资源也会增加,不仅效率不高,而且累加的越多,限速的准确性就越差。
[0005]因此,如何报文处理时解决读、写外部存储器的时间过长而导致的资源消耗过多和限速准确性降低的问题是值得考虑的技术问题之一。

技术实现思路

[0006]有鉴于此,本申请提供一种报文处理方法及装置,用以报文处理时解决读、写外部存储器的时间过长而导致的资源消耗过多和限速准确性降低的问题。
[0007]具体地,本申请是通过如下技术方案实现的:
[0008]根据本申请的第一方面,提供一种报文处理方法,应用于网络设备中的现场可编程门阵列FPGA中,所述网络设备内部设置有第一缓存区和第二缓存区,所述方法,包括:
[0009]在本次接收到若干拍的报文后,将所述若干拍的报文中相同用户的报文的报文信息进行累加处理,得到本次的报文统计信息;
[0010]根据本次的报文统计信息,确定本次发送所述用户的报文所需的目标令牌数量;
[0011]从所述第一缓存区中获取所述用户当前的令牌余量;
[0012]从所述第二缓存区中获取记录的所述用户的上一拍的报文到达时的到达时间;
[0013]根据所述到达时间和当前的系统时间,确定本次接收到所述用户的最后一拍的报文时所述用户的令牌的令牌增量;
[0014]根据所述令牌余量和所述令牌增量,确定所述用户的令牌总量;
[0015]若所述令牌总量超过所述目标令牌数量,则根据所述目标令牌数量转发所述用户的报文;
[0016]根据所述令牌总量和所述目标令牌数量,确定新的令牌余量;并将新的令牌余量写入所述第一缓存区中;
[0017]将所述最后一拍的报文的到达时间作为所述用户的新的上一拍的报文的到达时间写入所述第二缓存区中。
[0018]根据本申请的第二方面,提供一种报文处理装置,设置于网络设备中的现场可编程门阵列FPGA中,所述网络设备内部设置有第一缓存区和第二缓存区,所述装置,包括:
[0019]接收模块,用于接收本次的若干拍的报文;
[0020]累加模块,用于在本次接收到若干拍的报文后,将所述若干拍的报文中相同用户的报文的报文信息进行累加处理,得到本次的报文统计信息;
[0021]第一确定模块,用于根据本次的报文统计信息,确定本次发送所述用户的报文所需的目标令牌数量;
[0022]第一获取模块,用于从所述第一缓存区中获取所述用户当前的令牌余量;
[0023]第二获取模块,用于从所述第二缓存区中获取记录的所述用户的上一拍的报文到达时的到达时间;
[0024]第二确定模块,用于根据所述到达时间和当前的系统时间,确定本次接收到所述用户的最后一拍的报文时所述用户的令牌的令牌增量;
[0025]第三确定模块,用于根据所述令牌余量和所述令牌增量,确定所述用户的令牌总量;
[0026]转发模块,用于若所述令牌总量超过所述目标令牌数量,则根据所述目标令牌数量转发所述用户的报文;
[0027]第四确定模块,用于根据所述令牌总量和所述目标令牌数量,确定新的令牌余量;
[0028]第一写入模块,用于并将新的令牌余量写入所述第一缓存区中;
[0029]第二写入模块,用于将所述最后一拍的报文的到达时间作为所述用户的新的上一拍的报文的到达时间写入所述第二缓存区中。
[0030]本申请实施例的有益效果:
[0031]本申请实施例提供的报文处理方法及装置中,在本次接收到若干拍的报文后,将所述若干拍的报文中相同用户的报文的报文信息进行累加处理,得到本次的报文统计信息;根据本次的报文统计信息,确定本次发送所述用户的报文所需的目标令牌数量;从所述第一缓存区中获取所述用户当前的令牌余量;从所述第二缓存区中获取记录的所述用户的上一次最后一拍的报文到达时的到达时间;根据所述到达时间和当前的系统时间,确定本次接收到所述用户的最后一拍的报文时所述用户的令牌的令牌增量;根据所述令牌余量和所述令牌增量,确定所述用户的令牌总量;若所述令牌总量不低于所述目标令牌数量,则根
据所述目标令牌数量转发所述用户的报文。通过对若干拍的报文的报文信息进行统计,然后基于统计得到的报文统计信息确定发送相同用户的报文所需要的令牌数量,这样一来,不再以单个报文为单位进行令牌数量访问,从而在一定程度上能够避免频繁从外部读取令牌数量所造成的资源消耗过大的问题发生,同时也提升了报文限速的准确度;此外,本申请通过设置第一缓存区和第二缓存区,然后将令牌余量和到达时间分别存储在第一缓存区和第二缓存区中,这样,在读取令牌余量时也就不需要从外部存储单元读取,直接从第一缓存区读取方可达到需求,此外在计算令牌增量时也只需从第二缓存区中读取到达时间,从而更近一步地降低了从外部存储单元读取令牌余量的频次,进而节省了资源;同时也更进一步地提升了报文限速结果的准确度。再者,为了更好地实施本申请提供的报文处理方法,还需要根据所述令牌总量和所述目标令牌数量,确定新的令牌余量;并将新的令牌余量写入所述第一缓存区中;将所述最后一拍的报文的到达时间作为所述用户的新的上一次最后一拍的报本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种报文处理方法,其特征在于,应用于网络设备中的现场可编程门阵列FPGA中,所述网络设备内部设置有第一缓存区和第二缓存区,所述方法,包括:在本次接收到若干拍的报文后,将所述若干拍的报文中相同用户的报文的报文信息进行累加处理,得到本次的报文统计信息;根据本次的报文统计信息,确定本次发送所述用户的报文所需的目标令牌数量;从所述第一缓存区中获取所述用户当前的令牌余量;从所述第二缓存区中获取记录的所述用户的上一次最后一拍的报文到达时的到达时间;根据所述到达时间和当前的系统时间,确定本次接收到所述用户的最后一拍的报文时所述用户的令牌的令牌增量;根据所述令牌余量和所述令牌增量,确定所述用户的令牌总量;若所述令牌总量不低于所述目标令牌数量,则根据所述目标令牌数量转发所述用户的报文;根据所述令牌总量和所述目标令牌数量,确定新的令牌余量;并将新的令牌余量写入所述第一缓存区中;将所述最后一拍的报文的到达时间作为所述用户的新的上一次最后一拍的报文的到达时间写入所述第二缓存区中。2.根据权利要求1所述的方法,其特征在于,在将所述若干拍的报文中相同用户的报文的报文信息进行累加处理,得到本次的报文统计信息之后,还包括:确定本次累加处理与上一次累加处理之间的报文间隔;从所述第一缓存区中获取所述用户当前的令牌余量,包括:确定所述用户的最后一拍的报文到达时所述第一缓存区当前的第一读地址;根据所述第一读地址和所述报文间隔,确定所述令牌余量的第一实际读地址;从所述第一缓存区中所述第一实际读地址的对应位置处读取所述令牌余量;将新的令牌余量写入所述第一缓存区中,包括:确定本次所述用户的最后一拍的报文到达时所述第一缓存区当前的第一写地址;根据所述第一写地址和所述报文间隔,确定所述新的令牌余量的第一实际写地址;将所述新的令牌余量写入所述第一缓存区中所述第一实际写地址的对应位置处。3.根据权利要求2所述的方法,其特征在于,从所述第二缓存区中获取记录的所述用户的上一次最后一拍的报文到达时的到达时间,包括:确定本次所述用户的最后一拍的报文到达时所述第二缓存区当前的第二读地址;根据所述第二读地址和所述报文间隔,确定所述用户的上一次最后一拍的报文到达时的到达时间的第二实际读地址;从所述第二缓存区中所述第二实际读地址的对应位置处读取所述用户的上一次最后一拍的报文到达时的到达时间的第二实际读地址;将本次所述最后一拍的报文的到达时间作为所述用户的新的上一次最后一拍的报文的到达时间写入所述第二缓存区中,包括:确定本次所述用户的最后一拍的报文到达时所述第二缓存区当前的第二写地址;根据所述第二写地址和所述报文间隔,确定所述用户的新的上一次最后一拍的报文到
达时的到达时间的第二实际写地址;将所述用户的新的上一次最后一拍的报文到达时的到达时间写入到所述第二缓存区中所述第二实际写地址的对应位置处。4.根据权利要求1所述的方法,其特征在于,根据所述到达时间和当前的系统时间,确定本次接收到所述用户的最后一拍的报文时所述用户的令牌的令牌增量,包括:确定所述系统时间与所述到达时间之间的时间差;将所述时间差与所述用户的单位时间的单位令牌增量之间的乘积,确定为本次接收到所述用户的最后一拍的报文时所述用户的令牌的令牌增量。5.根据权利要求1所述的方法,其特征在于,还包括:当本次接收到的若干拍的报文中不包括相同用户的报文时,则针对每个用户的报文信息确定发送该用户的报文所需的令牌数量;从该用户对应的外接存储单元中获取该用户当前的令牌余量;根据获取到的令牌余量和发送该用户的报文所需的令牌数量,转发该用户的报文;重新确定令牌余量;将确定出的令牌余量写入该用户的外接存储单元中。6.一种报文处理装置,其特征在于,设置于网络设备...

【专利技术属性】
技术研发人员:张富强
申请(专利权)人:新华三信息安全技术有限公司
类型:发明
国别省市:

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

1