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

技术编号:37393780 阅读:16 留言:0更新日期:2023-04-27 07:31
本发明专利技术公开了一种报文处理方法和装置,涉及数据通信领域,方法包括:选取多核处理器的一个核Core0用于按照预设的时间周期计算令牌桶的第一令牌增量值,并将所述第一令牌增量值累计至令牌的添加统计值;当任一核Core

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


[0001]本专利技术涉及数据通信领域,尤其涉及一种报文处理方法及装置。

技术介绍

[0002]在网络中传输报文时,为了防止网络拥塞,需限制流出网络的报文,使报文以比较均匀的速度向外发送。令牌桶算法就实现了这个功能,可控制发送到网络上报文的数目,并允许突发报文的发送。
[0003]在将报文发送到网络上时,需要消耗令牌桶中的令牌。不同大小的报文,消耗的令牌数量不一样,因此需要发送报文时,就会从令牌桶中获取发送报文所需的令牌。
[0004]在多核网络设备中,当有报文需要做限速处理时,令牌桶作为临界资源需要进行互斥保护。即当一个核中有一个报文需要发送时,将在令牌桶中获取令牌,此时不允许其他核从令牌桶中获取令牌,导致多核不能并行处理。且每当有一个报文需要发送时,就需从令牌桶中获取领牌,令牌桶就会进行一次互斥保护;因此当有多个报文需要发送时,就会进行多次加锁互斥保护,导致加锁互斥频率高。这样势必会影响到多核网络设备的并发,最终影响限速的性能。因此,在多核网络设备中如何对令牌桶采用无锁并发方式实现报文限速的方法成为人们亟待解决的问题。

技术实现思路

[0005]为了解决上述问题,本专利技术提供一种报文处理方法,解决了多核网络设备中因令牌桶的加锁互斥影响报文限速转发的性能问题。
[0006]第一方面,本专利技术提供一种报文处理方法,该方法采用具有多核处理器的设备来实现,包括以下步骤:
[0007]选取多核处理器的一个核Core0用于按照预设的时间周期计算令牌桶的第一令牌增量值,并将所述第一令牌增量值累计至令牌的添加统计值;当任一核Core
i
有待转发的报文时,核Core
i
计算当前所述令牌桶的剩余令牌值;根据所述剩余令牌值,核Core
i
对所述报文进行着色,并按照着色结果对所述报文进行处理,然后核Core
i
根据本核对所述报文的实际转发量,累计本核对所述令牌的申请统计值;其中,0≤i≤N,N为所述多核处理器的内核总数,并且所述剩余令牌值等于所述添加统计值减去所述多核处理器所有核的所述申请统计值之和。
[0008]其中,所述选取多核处理器的一个核Core0用于按照预设的时间周期计算令牌桶的第一令牌增量值,并将所述第一令牌增量值累计至令牌的添加统计值,包括:
[0009]所述令牌桶为单速单桶模式时,核Core0按照预设的时间周期计算所述令牌桶的第一令牌增量值,并将所述第一令牌增量值累计至所述添加统计值,直至所述令牌桶已满;或,所述令牌桶为单速双桶模式时,核Core0按照预设的时间周期计算所述令牌桶的第一令牌增量值,所述第一令牌增量值优先用于还清C桶令牌的负债,再优先用于还清E桶令牌的负债,如果C桶和E桶都没有令牌的负载,剩余的所述第一令牌增量值先累计至C桶的所述添
加统计值直至C桶已满,再累计至E桶的所述添加统计值直至E桶已满。
[0010]所述根据所述剩余令牌值,核Core
i
对所述报文进行着色,并按照着色结果对所述报文进行处理,然后核Core
i
根据本核对所述报文的实际转发量,累计本核对所述令牌的申请统计值,包括:
[0011]所述令牌桶为单速单桶模式时,如果所述剩余令牌值大于零,核Core
i
将所述报文标记为绿色,并对报文进行转发,然后核Core
i
根据本核对所述报文的实际转发量,累计本核的所述申请统计值;如果所述剩余令牌值小于等于零,核Core
i
将所述报文标记为红色,并对报文进行丢弃或入队等待处理,此时本核对所述申请统计值维持不变;或,所述令牌桶为单速双桶模式时,如果C桶的所述剩余令牌值大于零,核Core
i
将所述报文标记为绿色,并对报文进行转发,然后核Core
i
根据本核对所述报文的实际转发量,累计本核C桶的所述申请统计值;否则,如果C桶的所述剩余令牌值加E桶的所述剩余令牌值之和大于零,核Core
i
将所述报文标记为黄色,并对报文进行转发,然后核Core
i
根据本核对所述报文的实际转发量,累计本核E桶的所述申请统计值;否则,核Core
i
将所述报文标记为红色,并对报文进行丢弃或入队等待处理,此时核Core
i
对C桶和E桶的所述申请统计值均维持不变。
[0012]所述剩余令牌值等于所述添加统计值减去所述多核处理器所有核的所述申请统计值之和,包括:所述令牌桶为单速双桶模式时,当前C桶的所述剩余令牌值等于C桶的所述添加统计值减去所述多核处理器所有核的C桶的所述申请统计值之和,当前E桶的所述剩余令牌值等于E桶的所述添加统计值减去所述多核处理器所有核的E桶的所述申请统计值之和。
[0013]在一种可能的实现中,所述方法还包括:在连续多个所述时间周期内所述令牌桶都是已满状态时,核Core0暂停累计所述添加统计值并记录当前系统时间戳,待任一核Core
i
有待转发的报文时向核Core0发送唤醒信号,核Core0收到唤醒信号后,根据最新系统时间戳与所述当前系统时间戳的时间间隔计算第二令牌增量值,并将所述第二令牌增量值累计至所述添加统计值。
[0014]第二方面,本专利技术提供一种报文处理装置,包括令牌添加核Core0和令牌申请核Core
i
,所述装置包括:
[0015]令牌添加核Core0,用于按照预设的时间周期计算令牌桶的第一令牌增量值,并将所述第一令牌增量值累计至令牌的添加统计值;
[0016]令牌申请核Core
i
,用于本核有待转发的报文时,计算当前所述令牌桶的剩余令牌值;用于根据所述剩余令牌值,对所述报文进行着色,并按照着色结果对所述报文进行处理,然后根据本核对所述报文的实际转发量,累计本核对所述令牌的申请统计值;其中,0≤i≤N,N为所述多核处理器的内核总数,并且所述剩余令牌值等于所述添加统计值减去所述多核处理器所有核的所述申请统计值之和。
[0017]其中,所述令牌添加核Core0具体用于:所述令牌桶为单速单桶模式时,按照预设的时间周期计算所述令牌桶的第一令牌增量值,并将所述第一令牌增量值累计至所述添加统计值,直至所述令牌桶已满;或,所述令牌桶为单速双桶模式时,按照预设的时间周期计算所述令牌桶的第一令牌增量值,所述第一令牌增量值优先用于还清C桶令牌的负债,再优先用于还清E桶令牌的负债,如果C桶和E桶都没有令牌的负载,剩余的所述第一令牌增量值先累计至C桶的所述添加统计值直至C桶已满,再累计至E桶的所述添加统计值直至E桶已
满。
[0018]所述令牌申请核Core
i
具体用于:所述令牌桶为单速单桶模式时,如果所述剩余令牌值大于零,将所述报文标记为绿色,并对报文进行转发,然后根据本核对所述报文的实际转发量,累计本核的所述申请统计值;如果所述剩余令牌值小于等于零,将所述报文标本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种报文处理方法,该方法采用具有多核处理器的设备来实现,其特征在于,所述方法包括:选取多核处理器的一个核Core0用于按照预设的时间周期计算令牌桶的第一令牌增量值,并将所述第一令牌增量值累计至令牌的添加统计值;当任一核Core
i
有待转发的报文时,核Core
i
计算当前所述令牌桶的剩余令牌值;根据所述剩余令牌值,核Core
i
对所述报文进行着色,并按照着色结果对所述报文进行处理,然后核Core
i
根据本核对所述报文的实际转发量,累计本核对所述令牌的申请统计值;其中,0≤i≤N,N为所述多核处理器的内核总数,并且所述剩余令牌值等于所述添加统计值减去所述多核处理器所有核的所述申请统计值之和。2.如权利要求1所述的方法,其特征在于,所述选取多核处理器的一个核Core0用于按照预设的时间周期计算令牌桶的第一令牌增量值,并将所述第一令牌增量值累计至令牌的添加统计值,包括:所述令牌桶为单速单桶模式时,核Core0按照预设的时间周期计算所述令牌桶的第一令牌增量值,并将所述第一令牌增量值累计至所述添加统计值,直至所述令牌桶已满;或,所述令牌桶为单速双桶模式时,核Core0按照预设的时间周期计算所述令牌桶的第一令牌增量值,所述第一令牌增量值优先用于还清C桶令牌的负债,再优先用于还清E桶令牌的负债,如果C桶和E桶都没有令牌的负载,剩余的所述第一令牌增量值先累计至C桶的所述添加统计值直至C桶已满,再累计至E桶的所述添加统计值直至E桶已满。3.如权利要求2所述的方法,其特征在于,所述根据所述剩余令牌值,核Core
i
对所述报文进行着色,并按照着色结果对所述报文进行处理,然后核Core
i
根据本核对所述报文的实际转发量,累计本核对所述令牌的申请统计值,包括:所述令牌桶为单速单桶模式时,如果所述剩余令牌值大于零,核Core
i
将所述报文标记为绿色,并对报文进行转发,然后核Core
i
根据本核对所述报文的实际转发量,累计本核的所述申请统计值;如果所述剩余令牌值小于等于零,核Core
i
将所述报文标记为红色,并对报文进行丢弃或入队等待处理,此时本核对所述申请统计值维持不变;或,所述令牌桶为单速双桶模式时,如果C桶的所述剩余令牌值大于零,核Core
i
将所述报文标记为绿色,并对报文进行转发,然后核Core
i
根据本核对所述报文的实际转发量,累计本核C桶的所述申请统计值;否则,如果C桶的所述剩余令牌值加E桶的所述剩余令牌值之和大于零,核Core
i
将所述报文标记为黄色,并对报文进行转发,然后核Core
i
根据本核对所述报文的实际转发量,累计本核E桶的所述申请统计值;否则,核Core
i
将所述报文标记为红色,并对报文进行丢弃或入队等待处理,此时核Core
i
对C桶和E桶的所述申请统计值均维持不变。4.如权利要求3所述的方法,其特征在于,所述剩余令牌值等于所述添加统计值减去所述多核处理器所有核的所述申请统计值之和,包括:所述令牌桶为单速双桶模式时,当前C桶的所述剩余令牌值等于C桶的所述添加统计值减去所述多核处理器所有核的C桶的所述申请统计值之和,当前E桶的所述剩余令牌值等于E桶的所述添加统计值减去所述多核处理器所有核的E桶的所述申请统计值之和。5.如权利要求1

4任一项所述的方法,其特征在于,所述方法还包括:在连续多个所述时间周期内所...

【专利技术属性】
技术研发人员:陈小松
申请(专利权)人:迈普通信技术股份有限公司
类型:发明
国别省市:

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

1