CN115174486A - 一种报文传输方法、***及存储介质 - Google Patents
一种报文传输方法、***及存储介质 Download PDFInfo
- Publication number
- CN115174486A CN115174486A CN202210618394.1A CN202210618394A CN115174486A CN 115174486 A CN115174486 A CN 115174486A CN 202210618394 A CN202210618394 A CN 202210618394A CN 115174486 A CN115174486 A CN 115174486A
- Authority
- CN
- China
- Prior art keywords
- message
- bytes
- token bucket
- key
- result
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000005540 biological transmission Effects 0.000 title claims abstract description 30
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 45
- 230000009471 action Effects 0.000 claims abstract description 27
- 230000000903 blocking effect Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 230000007246 mechanism Effects 0.000 claims description 10
- 238000011084 recovery Methods 0.000 claims description 10
- 238000007493 shaping process Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 9
- 238000004891 communication Methods 0.000 abstract description 5
- 230000000694 effects Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003116 impacting effect Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
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/215—Flow control; Congestion control using token-bucket
-
- 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/23—Bit dropping
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
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
本发明涉及通信传输技术领域,公开了一种报文传输方法、***及存储介质,该方法包括基于预设运算算法生成与接收的报文唯一对应的第一KEY码;从预存储的数据库中查找与第一KEY码对应的令牌桶,在查找到与第一KEY码对应的第一令牌桶的情况下,将第一令牌桶的桶内的令牌数量加1;每一令牌桶对应一个KEY码;判断令牌数量是否大于预设令牌阈值,若令牌数量大于或者等于预设令牌阈值,则将第一令牌桶对应的动作修改为丢弃,并丢弃接收的报文;若令牌数量小于预设令牌阈值,则将第一令牌桶对应的动作修改为转发,并继续转发接收的报文,这样,可以高效的判别报文的攻击性,减小报文传输延时,保证***内部的正常进程。
Description
技术领域
本发明涉及通信传输技术领域,尤其涉及一种报文传输方法、***及存储介质。
背景技术
报文(packet)是网络中交换与传输的数据单元,随着网络技术的快速发展,报文的发送量与日俱增,目前,市场上的交换机和路由器无法靶向针对带有攻击性质的合法报文进行判断,无法做到智能识别效果,大多数交换机和路由器对于报文冲击CPU保护的功能有限,行业类主要做法是对CPU接口限速、基于入端口上CPU报文全局限速、基于CPU端口COS队列限速、基于以太网报文类型限速,并未判断报文是否带有攻击性,当交换机或路由器收到一种或多种速率较大,报文内容固定,且会上CPU的报文,如果此报文内容合法,市面上大多数交换机或路由器不会对此冲击CPU的报文判断为攻击性而丢弃。而当大量带有攻击性质的报文冲击交换机或路由器CPU,必定会占用设备CPU资源,占用CPU接口带宽,这样会导致正常上CPU的协议报文不能正常处理,或延时较大,同时也会引起***内部进程通信异常。可见,现有方式在传输报文时,不能及时发现报文的攻击性,导致报文传输延时较大,影响***内部进程。
发明内容
本发明提供了一种报文传输方法、***及存储介质,以解决现有方式在传输报文时,不能及时发现报文的攻击性,导致报文传输延时较大,影响***内部进程的问题。
为了实现上述目的,本发明通过如下的技术方案来实现:
第一方面,本发明提供一种报文传输方法,包括:
基于预设运算算法生成与接收的报文唯一对应的第一KEY码;
从预存储的数据库中查找与所述KEY码对应的令牌桶,在查找到与所述第一KEY码对应的第一令牌桶的情况下,将第一令牌桶的桶内的令牌数量加1;每一令牌桶对应一个KEY码;
判断令牌数量是否大于预设令牌阈值,若令牌数量大于或者等于所述预设令牌阈值,则将第一令牌桶对应的动作修改为丢弃,并丢弃接收的所述报文;若令牌数量小于所述预设令牌阈值,则将第一令牌桶对应的动作修改为转发,并继续转发接收的所述报文。
可选地,所述基于预设运算算法生成与接收的报文唯一对应的第一KEY码,包括:
定义一个数据类型为32位的无符号整形数组KEY,数组元素大小为16,总共数组大小为64字节;
根据所述报文的报文长度确定预设运算算法,基于预设运算算法、报文以及所述整形数组KEY生成所述第一KEY码。
可选地,所述根据所述报文的报文长度确定预设运算算法,包括:
在报文长度小于16字节时,预设运算算法满足如下关系式:
push16=(((x1)&(y1))|((~w1)&(z1)));
其中,x1为报文内容0-3字节和KEY数组元素0进行与运算的结果,y1为报文内容4-7字节和KEY数组元素1进行与运算的结果,w1为报文内容8-11字节和KEY数组元素2进行与运算的结果,z1为报文内容12-15字节和KEY数组元素3进行与运算的结果,~表示取反运算,&表示与运算,|表示或运算;
在报文长度大于16小于32字节时,预设运算算法满足如下关系式:
push32=(((x2)&(z2))|((y2)&(~w2)));
其中,x2为报文内容16-19字节和KEY数组元素4进行与运算的结果,z2为报文内容20-23字节和KEY数组元素5进行与运算的结果,y2为报文内容24-27字节和KEY数组元素6进行与运算的结果,w2为报文内容28-31字节和KEY数组元素7进行与运算的结果;
在报文长度大于32小于48字节时,预设运算算法满足如下关系式:
push48=((w3)^(x3)^(y3)^(z3));
其中,w3为报文内容32-35字节和KEY数组元素8进行与运算的结果,x3为报文内容36-39字节和KEY数组元素9进行与运算的结果,y3为报文内容40-43字节和KEY数组元素10进行与运算的结果,z3为报文内容44-47字节和KEY数组元素11进行与运算的结果,^表示亦或运算;
在报文长度大于48小于64字节时,预设运算算法满足如下关系式:
push64=(((y4)|(~w4))^((x4)|(~z4)));
其中,y4为报文内容48-51字节和KEY数组元素12进行与运算的结果,w4为报文内容52-55字节和KEY数组元素13进行与运算的结果,x4为报文内容56-59字节和KEY数组元素14进行与运算的结果,z4为报文内容60-63字节和KEY数组元素15进行与运算的结果;
在报文长度大于64小于112字节时,预设运算算法满足如下关系式:
pushTail=(((x5)&(y5))|((~w5)&(z5)));
其中,x5为报文内容96-99字节和KEY数组元素0进行与运算的结果,y5为报文内容100-103字节和KEY数组元素1进行与运算的结果,w5为报文内容104-107字节和KEY数组元素2进行与运算的结果,z5为报文内容108-111字节和KEY数组元素3进行与运算的结果;
所述生成所述第一KEY码,满足如下关系式:
keyCode=(push16+push32+push48+push64+pushTail)|(pktLen<<4)|(pktLen>>4);
其中,pktLen<<4表示报文长度左移4位,pktLen>>4表示报文长度右移4位。
可选地,若在预存储的数据库中未查找到与所述第一KEY码对应的第一令牌桶,且数据库中的令牌桶资源已满,则将数据库中令牌桶数量最少的令牌桶对应的第二KEY码改写为所述第一KEY码;若未查找到与所述第一KEY码对应的令牌桶,且数据库中的令牌桶资源充足,则创建一个与所述第一KEY码对应的令牌桶。
可选地,所述从预存储的数据库中查找与所述KEY码对应的令牌桶之前,所述方法还包括:
在报文的收包速率大于预设速率时,开启令牌桶阻断机制;
所述从预存储的数据库中查找与所述KEY码对应的令牌桶,包括:
在开启令牌桶阻断机制的情况下,从预存储的数据库中查找与所述KEY码对应的令牌桶。
可选地,所述方法还包括:
若令牌桶当前动作为丢弃且令牌数量等于预设恢复值,则令牌桶的动作转为准备;
若令牌桶当前动作为准备且令牌数量等于预设恢复值减去取令牌数,则令牌桶的动作转为转发,并恢复对该报文的转发。
第二方面,本发明提供一种报文传输***,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述方法的步骤。
第三方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的方法步骤。
有益效果:
本发明提供的一种报文传输方法,通过预设运算算法与报文内容进行运算,生成一个此报文唯一对应的第一KEY码,从预存储的数据库中查找与第一KEY码对应的令牌桶,并进一步根据令牌桶的令牌数量判断报文是否存在攻击性从而决定丢弃报文还是继续转发报文,这样,可以高效的判别报文的攻击性,减小报文传输延时,保证***内部的正常进程。
在优选的实施方案中,采用预设运算算法对报文内容与定义的KEY数组进行位运算,计算方式高效,占用CPU资源较少,且预设运算算法能对每一个不同内容的报文生成唯一的KEY码。
在优选的实施方案中,若令牌桶当前动作为准备且令牌数量等于预设恢复值减去取令牌数,则令牌桶的动作转为转发,并恢复对该报文的转发,这样,当攻击报文速率减小不再有攻击性时可以自动恢复转发。可以达到既能防范报文对CPU的冲击,也能保证业务正常运转的效果。
附图说明
图1为本发明优选实施例的一种报文传输方法的流程图之一;
图2为本发明优选实施例的KEY码生成方式示意图;
图3为本发明优选实施例的令牌桶开启流程示意图;
图4为本发明优选实施例的取令牌及关令牌流程的示意图;
图5为本发明优选实施例的一种报文传输方法的流程图之二。
具体实施方式
下面对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另作定义,本发明中使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也相应地改变。
应理解,本申请提供的一种报文传输方法可以应用于数据通信领域的各类转发装置,例如,转发装置可以是交换机或路由器CPU,此处仅作示例,不做限定。当大量带有攻击性质的报文冲击交换机或路由器CPU,必定会占用设备CPU资源,占用CPU接口带宽,这样会导致正常上CPU的协议报文不能正常处理,或延时较大,同时也会引起***内部进程通信异常。由此就会导致远端网管软件访问失败、协议处理不及时导致网络故障、导致设备卡顿无法管理、设备自动重启等现象发生。基于此,本申请提供一种报文传输方法。
请参见图1,本申请提供的一种报文传输方法,包括:
基于预设运算算法生成与接收的报文唯一对应的第一KEY码;
从预存储的数据库中查找与第一KEY码对应的令牌桶,在查找到与第一KEY码对应的第一令牌桶的情况下,将第一令牌桶的桶内的令牌数量加1;每一令牌桶对应一个KEY码;
判断令牌数量是否大于预设令牌阈值,若令牌数量大于或者等于预设令牌阈值,则将第一令牌桶对应的动作修改为丢弃,并丢弃接收的报文;若令牌数量小于预设令牌阈值,则将第一令牌桶对应的动作修改为转发,并继续转发接收的报文。
在本实施例中,令牌桶是一种流量监管算法,通过令牌桶中的令牌数量,可以统计报文数,每一令牌桶对应一个KEY码,如果命中,该令牌桶就将令牌加入桶中,令牌桶中的对应令牌数量加1。若此时令牌数量大于阀值,则将该令牌桶中的令牌数量设为阀值加1,其中,预设令牌阈值可以由工作人员根据实际需求设置。其中,令牌数量大于或者等于预设令牌阈值,表明报文数较大,视为该报文存在攻击性质。
上述的报文传输方法,通过预设运算算法与报文内容进行运算,生成一个此报文唯一对应的第一KEY码,从预存储的数据库中查找与第一KEY码对应的令牌桶,并进一步根据令牌桶的令牌数量判断报文是否存在攻击性从而决定丢弃报文还是继续转发报文,这样,可以高效的判别报文的攻击性,减小报文传输延时,保证***内部的正常进程。
可选地,所述基于预设运算算法生成与接收的报文唯一对应的第一KEY码,包括:
定义一个数据类型为32位的无符号整形数组KEY,数组元素大小为16,总共数组大小为64字节;
根据所述报文的报文长度确定预设运算算法,基于预设运算算法、报文以及所述整形数组KEY生成所述第一KEY码。
需要说明的是,64字节对应普通以太网报文最短长度,当CPU收到以太网报文后,将报文内容与此KEY数组通过预设运算算法进行运算,可以生成一个无符号32位整形keycode(KEY码),并将此运算得出的KEY码保存于预存储的数据库中,表示此报文已被标记,后续再收到此报文通过KEY码匹配,可以快速判断出是否命中,从而对此报文数进行令牌桶运算,进一步根据运算结果决定报文是否丢弃。
可选地,所述根据所述报文的报文长度确定预设运算算法,包括如图2所示的算法一:在报文长度小于16字节时,预设运算算法满足如下关系式:
push16=(((x1)&(y1))|((~w1)&(z1)));
其中,x1为报文内容0-3字节和KEY数组元素0进行与运算的结果,y1为报文内容4-7字节和KEY数组元素1进行与运算的结果,w1为报文内容8-11字节和KEY数组元素2进行与运算的结果,z1为报文内容12-15字节和KEY数组元素3进行与运算的结果,~表示取反运算,&表示与运算,|表示或运算。
算法二:在报文长度大于16小于32字节时,预设运算算法满足如下关系式:
push32=(((x2)&(z2))|((y2)&(~w2)));
其中,x2为报文内容16-19字节和KEY数组元素4进行与运算的结果,z2为报文内容20-23字节和KEY数组元素5进行与运算的结果,y2为报文内容24-27字节和KEY数组元素6进行与运算的结果,w2为报文内容28-31字节和KEY数组元素7进行与运算的结果;
算法三:在报文长度大于32小于48字节时,预设运算算法满足如下关系式:
push48=((w3)^(x3)^(y3)^(z3));
其中,w3为报文内容32-35字节和KEY数组元素8进行与运算的结果,x3为报文内容36-39字节和KEY数组元素9进行与运算的结果,y3为报文内容40-43字节和KEY数组元素10进行与运算的结果,z3为报文内容44-47字节和KEY数组元素11进行与运算的结果,^表示亦或运算;
算法四:在报文长度大于48小于64字节时,预设运算算法满足如下关系式:
push64=(((y4)|(~w4))^((x4)|(~z4)));
其中,y4为报文内容48-51字节和KEY数组元素12进行与运算的结果,w4为报文内容52-55字节和KEY数组元素13进行与运算的结果,x4为报文内容56-59字节和KEY数组元素14进行与运算的结果,z4为报文内容60-63字节和KEY数组元素15进行与运算的结果;
算法五:在报文长度大于64小于112字节时,预设运算算法满足如下关系式:
pushTail=(((x5)&(y5))|((~w5)&(z5)));
其中,x5为报文内容96-99字节和KEY数组元素0进行与运算的结果,y5为报文内容100-103字节和KEY数组元素1进行与运算的结果,w5为报文内容104-107字节和KEY数组元素2进行与运算的结果,z5为报文内容108-111字节和KEY数组元素3进行与运算的结果;
算法六:所述生成所述第一KEY码满足如下关系式:
keyCode=(push16+push32+push48+push64+pushTail)|(pktLen<<4)|(pktLen>>4);
其中,pktLen<<4表示报文长度左移4位,pktLen>>4表示报文长度右移4位。
需要说明的是,上述的公式仅为其满足的一种数学表达式,在其他可行的实施方式中,还可以将上述公式变换为其余形式,但不论其作何变换,都在本申请保护的范围之内。其中,最后得到结果keyCode,keyCode即为需要保存到数据库中KEY码,用来映射到对应的报文,该KEY码主要用于后面令牌桶阻断冲击机制,判断报文是否命中数据库中保存的KEY码(每一个令牌桶对应一个KEY码)。这样,采用预设运算算法对报文内容与定义的KEY数组进行位运算,计算方式高效,占用CPU资源较少,且预设运算算法能对每一个不同内容的报文生成唯一的KEY码。
可选地,若在预存储的数据库中未查找到与所述第一KEY码对应的第一令牌桶,且数据库中的令牌桶资源已满,则将数据库中令牌桶数量最少的令牌桶对应的第二KEY码改写为所述第一KEY码;若未查找到与所述第一KEY码对应的令牌桶,且数据库中的令牌桶资源充足,则创建一个与所述第一KEY码对应的令牌桶。
在本可选的实施方式中,令牌桶资源已满是指令牌桶种类已到最大,无可用资源。令牌桶资源充足是指令牌桶种类未到最大,存在可用资源。
本实施例中,通过查找情况改写令牌桶对应的KEY码以及新增或者减少令牌桶,可以根据用户需求和使用场景进行合理的配置。
可选地,所述从预存储的数据库中查找与所述KEY码对应的令牌桶之前,所述方法还包括:
在报文的收包速率大于预设速率时,开启令牌桶阻断机制;
所述从预存储的数据库中查找与所述KEY码对应的令牌桶,包括:
在开启令牌桶阻断机制的情况下,从预存储的数据库中查找与所述KEY码对应的令牌桶。
需要说明的是,如图3所示,令牌桶阻断机制是当CPU收包速率到底一定值(用户配置的值)时,才会自动开启。若端口下的令牌桶没有开启,由定时器触发的处理函数就会读取令牌桶记录表中的速率,判断是否超过每秒取报文数。若超速则将令牌桶记录表中的超速次数加1,若未超速则将令牌桶记录表中的超速次数清零。判断超速次数是否到最大允许的超速次数(该超速次数可以通过用户配置确定),若已到最大超速次数则开启令牌桶。
这样,根据CPU收包速率来自动开关令牌桶,可以节约计算资源。
可选地,上述的方法还包括:
若令牌桶当前动作为丢弃且令牌数量等于预设恢复值,则令牌桶的动作转为准备;
若令牌桶当前动作为准备且令牌数量等于预设恢复值减去取令牌数,则令牌桶的动作转为转发,并恢复对该报文的转发。
在本可选的实施方式中,如图4所示,若端口下的令牌桶已开启,由定时器触发的处理函数就会遍历令牌记录,取走令牌。在对桶中令牌的动作进行判断时,若动作为丢弃则以单次取令牌数两倍的数量取走令牌,若为其他动作则以单次取令牌数量取走令牌。从桶中取走令牌时,令牌桶记录表中记录的令牌数目减少。若令牌当前动作为丢弃且令牌数等于恢复值,则令牌的动作转为准备。若令牌当前动作为准备且令牌数等于恢复值减去取令牌数,则令牌动作转为转发,恢复对该报文的转发。这样,当攻击报文速率减小不再有攻击性时可以自动恢复转发。可以达到既能防范报文对CPU的冲击,也能保证业务正常运转的效果。
在一示例中,若某令牌桶的令牌数为零,则将它从令牌桶记录表中删除,桶中令牌种类减一。若令牌桶记录表中的令牌记录为空,说明令牌桶中所有令牌已被取走,关闭令牌桶。
在一完整示例中,如图5所示,cpu收到报文时,通过上面的运算生成KEY码,然后与数据库中保存的KEY码比较,通过命中查找出该报文对应的令牌桶。如果命中,该令牌桶就将该令牌加入桶中,令牌桶中的对应令牌的数量加1。若此时令牌数大于阀值,则将该令牌桶中的令牌数量设为阀值加1。如果没有命中,则创建一个此报文对应的新令牌桶。先查看已有令牌桶种类是否已到最大,即资源是否可用。若已到最大,就替换掉令牌数最少的令牌桶,令牌桶种类数量不变。若未到最大,将创建该KEY码对应的令牌桶,并将该令牌桶记录在令牌桶数据库中,令牌桶种类数量加1。新加入令牌桶的令牌数量为初始令牌值。若该令牌桶中令牌数量大于或等于阀值且动作不为丢弃,则将该令牌桶的动作变为丢弃,存入令牌桶数据库中。转发动作之外其他动作的报文将会被丢弃。这样,建立了有效判断及阻断报文攻击的机制,通过对报文精准识别、记录、速率运算、攻击性质判断、阻断动作响应、恢复等一套处理机制来达到精准判断报文攻击,并有效阻断报文冲击CPU的效果。根据CPU收包速率来自动开关令牌桶,自动识别攻击性质的报文,自动下发阻断攻击动作,停止攻击自动恢复转发。本发明的令牌桶,包括对桶阀值、正常恢复值、单次取令牌数值、初始化令牌值的设置,可以根据用户需求和使用场景进行合理的配置,从而达到既能防范对CPU的冲击,也能保证业务正常运转的效果。
本申请还提供一种报文传输***,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。该报文传输***可以实现上述的报文传输方法的各个实施例,且能达到相同的有益效果,此处,不做赘述。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的方法步骤。该可读存储介质可以实现上述的方法的各个实施例,且能达到相同的有益效果,此处,不做赘述。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (8)
1.一种报文传输方法,其特征在于,包括:
基于预设运算算法生成与接收的报文唯一对应的第一KEY码;
从预存储的数据库中查找与所述第一KEY码对应的令牌桶,在查找到与所述第一KEY码对应的第一令牌桶的情况下,将第一令牌桶的桶内的令牌数量加1;每一令牌桶对应一个KEY码;
判断令牌数量是否大于预设令牌阈值,若令牌数量大于或者等于所述预设令牌阈值,则将第一令牌桶对应的动作修改为丢弃,并丢弃接收的所述报文;若令牌数量小于所述预设令牌阈值,则将第一令牌桶对应的动作修改为转发,并继续转发接收的所述报文。
2.根据权利要求1所述的报文传输方法,其特征在于,所述基于预设运算算法生成与接收的报文唯一对应的第一KEY码,包括:
定义一个数据类型为32位的无符号整形数组KEY,数组元素大小为16,总共数组大小为64字节;
根据所述报文的报文长度确定预设运算算法,基于预设运算算法、报文以及所述整形数组KEY生成所述第一KEY码。
3.根据权利要求2所述的报文传输方法,其特征在于,所述根据所述报文的报文长度确定预设运算算法,包括:
在报文长度小于16字节时,预设运算算法满足如下关系式:
push16=(((x1)&(y1))|((~w1)&(z1)));
其中,x1为报文内容0-3字节和KEY数组元素0进行与运算的结果,y1为报文内容4-7字节和KEY数组元素1进行与运算的结果,w1为报文内容8-11字节和KEY数组元素2进行与运算的结果,z1为报文内容12-15字节和KEY数组元素3进行与运算的结果,~表示取反运算,&表示与运算,|表示或运算;
在报文长度大于16小于32字节时,预设运算算法满足如下关系式:
push32=(((x2)&(z2))|((y2)&(~w2)));
其中,x2为报文内容16-19字节和KEY数组元素4进行与运算的结果,z2为报文内容20-23字节和KEY数组元素5进行与运算的结果,y2为报文内容24-27字节和KEY数组元素6进行与运算的结果,w2为报文内容28-31字节和KEY数组元素7进行与运算的结果;
在报文长度大于32小于48字节时,预设运算算法满足如下关系式:
push48=((w3)^(x3)^(y3)^(z3));
其中,w3为报文内容32-35字节和KEY数组元素8进行与运算的结果,x3为报文内容36-39字节和KEY数组元素9进行与运算的结果,y3为报文内容40-43字节和KEY数组元素10进行与运算的结果,z3为报文内容44-47字节和KEY数组元素11进行与运算的结果,^表示亦或运算;
在报文长度大于48小于64字节时,预设运算算法满足如下关系式:
push64=(((y4)|(~w4))^((x4)|(~z4)));
其中,y4为报文内容48-51字节和KEY数组元素12进行与运算的结果,w4为报文内容52-55字节和KEY数组元素13进行与运算的结果,x4为报文内容56-59字节和KEY数组元素14进行与运算的结果,z4为报文内容60-63字节和KEY数组元素15进行与运算的结果;
在报文长度大于64小于112字节时,预设运算算法满足如下关系式:
pushTail=(((x5)&(y5))|((~w5)&(z5)));
其中,x5为报文内容96-99字节和KEY数组元素0进行与运算的结果,y5为报文内容100-103字节和KEY数组元素1进行与运算的结果,w5为报文内容104-107字节和KEY数组元素2进行与运算的结果,z5为报文内容108-111字节和KEY数组元素3进行与运算的结果;
所述生成所述第一KEY码,满足如下关系式:
keyCode=(push16+push32+push48+push64+pushTail)|(pktLen<<4)|(pktLen>>4);
其中,pktLen<<4表示报文长度左移4位,pktLen>>4表示报文长度右移4位。
4.根据权利要求1所述的报文传输方法,其特征在于,若在预存储的数据库中未查找到与所述第一KEY码对应的第一令牌桶,且数据库中的令牌桶资源已满,则将数据库中令牌桶数量最少的令牌桶对应的第二KEY码改写为所述第一KEY码;若未查找到与所述第一KEY码对应的令牌桶,且数据库中的令牌桶资源充足,则创建一个与所述第一KEY码对应的令牌桶。
5.根据权利要求1所述的报文传输方法,其特征在于,所述从预存储的数据库中查找与所述KEY码对应的令牌桶之前,所述方法还包括:
在报文的收包速率大于预设速率时,开启令牌桶阻断机制;
所述从预存储的数据库中查找与所述KEY码对应的令牌桶,包括:
在开启令牌桶阻断机制的情况下,从预存储的数据库中查找与所述KEY码对应的令牌桶。
6.根据权利要求1所述的报文传输方法,其特征在于,所述方法还包括:
若令牌桶当前动作为丢弃且令牌数量等于预设恢复值,则令牌桶的动作转为准备;
若令牌桶当前动作为准备且令牌数量等于预设恢复值减去取令牌数,则令牌桶的动作转为转发,并恢复对该报文的转发。
7.一种报文传输***,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至6中任一所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210618394.1A CN115174486B (zh) | 2022-06-01 | 2022-06-01 | 一种报文传输方法、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210618394.1A CN115174486B (zh) | 2022-06-01 | 2022-06-01 | 一种报文传输方法、***及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115174486A true CN115174486A (zh) | 2022-10-11 |
CN115174486B CN115174486B (zh) | 2024-05-28 |
Family
ID=83483925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210618394.1A Active CN115174486B (zh) | 2022-06-01 | 2022-06-01 | 一种报文传输方法、***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115174486B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115941610A (zh) * | 2022-12-09 | 2023-04-07 | 中联智慧农业股份有限公司 | 基于令牌桶算法的限流方法、限流装置及电子设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020075875A1 (en) * | 2000-09-22 | 2002-06-20 | Narad Networks, Inc. | Broadband system with transmission scheduling and flow control |
CN1466334A (zh) * | 2002-06-12 | 2004-01-07 | ��Ϊ��������˾ | 一种控制路由器接口报文发送速率的方法 |
CN101272346A (zh) * | 2008-04-29 | 2008-09-24 | 华为技术有限公司 | 一种对报文进行流量监管的方法和装置 |
CN101325588A (zh) * | 2007-06-11 | 2008-12-17 | 华为技术有限公司 | 一种网络设备防攻击的方法以及网络设备 |
CN105024942A (zh) * | 2015-05-29 | 2015-11-04 | 桂林电子科技大学 | 一种动态流量监控方法 |
CN105471917A (zh) * | 2016-01-14 | 2016-04-06 | 成都麦杰康科技有限公司 | 数据传输方法及*** |
CN106656850A (zh) * | 2016-10-27 | 2017-05-10 | 盛科网络(苏州)有限公司 | 一种自动识别网络流量并做限速的芯片实现方法 |
CN110611623A (zh) * | 2019-08-30 | 2019-12-24 | 江苏苏宁物流有限公司 | 限流方法和装置 |
CN110995598A (zh) * | 2019-11-12 | 2020-04-10 | 芯创智(北京)微电子有限公司 | 一种变长报文数据处理方法和调度装置 |
CN111447150A (zh) * | 2020-02-29 | 2020-07-24 | 中国平安财产保险股份有限公司 | 访问请求限流方法、服务器及存储介质 |
WO2021002022A1 (ja) * | 2019-07-04 | 2021-01-07 | 日本電信電話株式会社 | 通信装置、通信方法及びプログラム |
CN113411267A (zh) * | 2021-06-16 | 2021-09-17 | 杭州迪普科技股份有限公司 | 报文转发方法及装置 |
-
2022
- 2022-06-01 CN CN202210618394.1A patent/CN115174486B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020075875A1 (en) * | 2000-09-22 | 2002-06-20 | Narad Networks, Inc. | Broadband system with transmission scheduling and flow control |
CN1466334A (zh) * | 2002-06-12 | 2004-01-07 | ��Ϊ��������˾ | 一种控制路由器接口报文发送速率的方法 |
CN101325588A (zh) * | 2007-06-11 | 2008-12-17 | 华为技术有限公司 | 一种网络设备防攻击的方法以及网络设备 |
CN101272346A (zh) * | 2008-04-29 | 2008-09-24 | 华为技术有限公司 | 一种对报文进行流量监管的方法和装置 |
CN105024942A (zh) * | 2015-05-29 | 2015-11-04 | 桂林电子科技大学 | 一种动态流量监控方法 |
CN105471917A (zh) * | 2016-01-14 | 2016-04-06 | 成都麦杰康科技有限公司 | 数据传输方法及*** |
CN106656850A (zh) * | 2016-10-27 | 2017-05-10 | 盛科网络(苏州)有限公司 | 一种自动识别网络流量并做限速的芯片实现方法 |
WO2021002022A1 (ja) * | 2019-07-04 | 2021-01-07 | 日本電信電話株式会社 | 通信装置、通信方法及びプログラム |
CN110611623A (zh) * | 2019-08-30 | 2019-12-24 | 江苏苏宁物流有限公司 | 限流方法和装置 |
CN110995598A (zh) * | 2019-11-12 | 2020-04-10 | 芯创智(北京)微电子有限公司 | 一种变长报文数据处理方法和调度装置 |
CN111447150A (zh) * | 2020-02-29 | 2020-07-24 | 中国平安财产保险股份有限公司 | 访问请求限流方法、服务器及存储介质 |
CN113411267A (zh) * | 2021-06-16 | 2021-09-17 | 杭州迪普科技股份有限公司 | 报文转发方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115941610A (zh) * | 2022-12-09 | 2023-04-07 | 中联智慧农业股份有限公司 | 基于令牌桶算法的限流方法、限流装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115174486B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102082693B (zh) | 网络流量监管方法及装置 | |
EP2991304B1 (en) | Conflict detection and solving method and device | |
CN101399711B (zh) | 网络监视装置以及网络监视方法 | |
US10409705B2 (en) | Automated code verification and machine learning in software defined networks | |
US7140041B2 (en) | Detecting dissemination of malicious programs | |
JP6433865B2 (ja) | 通信装置 | |
Zhang et al. | FTGuard: A priority-aware strategy against the flow table overflow attack in SDN | |
US20070174449A1 (en) | Method and system for identifying potential adverse network conditions | |
CN101286996A (zh) | 一种风暴攻击抵抗方法与装置 | |
US6918067B2 (en) | Detecting network instability | |
CN115174486A (zh) | 一种报文传输方法、***及存储介质 | |
CN107800626A (zh) | 数据报文的处理方法、装置及设备 | |
CN109657463B (zh) | 一种报文洪泛攻击的防御方法及装置 | |
CN111901234A (zh) | 网络环路处理方法、***及相关设备 | |
WO2009018737A1 (fr) | Procédé et dispositif en réseau pour empêcher des attaques dos | |
CN106789954A (zh) | 一种基于多cpu的ddos攻击识别的方法和装置 | |
US20240214412A1 (en) | Hierarchical novelty detection using intended states for network security | |
Kwon et al. | RNN-based anomaly detection in DNP3 transport layer | |
CN111756713A (zh) | 网络攻击识别方法、装置、计算机设备及介质 | |
Zhang et al. | A scalable double oracle algorithm for hardening large active directory systems | |
CN111641659A (zh) | 一种交换机的中央处理器防攻击的方法、装置、设备及存储介质 | |
CN114697088B (zh) | 一种确定网络攻击的方法、装置及电子设备 | |
CN116185598A (zh) | 地址处理方法、装置、电子设备及可读存储介质 | |
CN116743406A (zh) | 一种网络安全预警方法、装置、存储介质和计算机设备 | |
CN113328976B (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 |