CN117221238A - 借用硬件中断实现高性能高精度软件tcp限速的方法 - Google Patents
借用硬件中断实现高性能高精度软件tcp限速的方法 Download PDFInfo
- Publication number
- CN117221238A CN117221238A CN202311267057.3A CN202311267057A CN117221238A CN 117221238 A CN117221238 A CN 117221238A CN 202311267057 A CN202311267057 A CN 202311267057A CN 117221238 A CN117221238 A CN 117221238A
- Authority
- CN
- China
- Prior art keywords
- message
- token
- queue
- buffer queue
- executing
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000005540 biological transmission Effects 0.000 claims abstract description 29
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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/22—Traffic shaping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明提供一种借用硬件中断实现高性能高精度软件TCP限速的方法,其包括执行一加入队列(Enqueue)的步骤,将一有限速要求的一报文加入一缓冲队列中而暂缓传送;一提出队列(Dequeue)的步骤,在等待流量控管的情形排除后,将被暂缓的所述报文由所述缓冲队列中提出并继续传送;以及执行一更新标记令牌(Token)的步骤,每经过由硬件所设定系统的一定时器(Timer)的时间间隔后,来更新一标记令牌数值;其中,所述定时器的参数配置是借用ECNT的型号为EN7521/26的一芯片,并设定所述芯片的总线(BUS)的时钟频率为225MHz。
Description
本申请是申请日为2018年12月28日,申请号为201811629335.4,专利名称为“借用硬件中断实现高性能高精度软件TCP限速的方法”的发明申请的分案申请。
技术领域
本发明涉及一种借用硬件中断实现高性能高精度软件TCP限速的方法。
背景技术
随着近年网络与通信的快速发展,及使用者的传输需求日益提升,纵使提高网络传输带宽,仍无法解决在大量数据传送的过程中,所造成的传输速度拥塞及传输质量不佳等问题。
在传输控制协议(Transmission Control Protocol,以下简称TCP)中使用漏水桶(Leaky Bucket)或令牌桶(Token Bucket)演算机制作为网络流量的管制架构,为网络系统中的流量整形(Traffic Shaping)或速率限制(Rate Limiting)经常使用的算法,其主要目的在于控制数据传送的速度,或将突发(Burst)的数据流量平整化等,以提供一个稳定的传送流量。
核心系统的变量Jiffies是用于记录自系统开始运作以来所经历Tick的标记令牌(Token),其中,Tick可为核心系统的定时器(Timer),并计算每发生一次中断(TimerInterrupt)所需要的时间,当令牌桶内的标记令牌不足时,则舍弃此报文,不予发送,被舍弃的报文则需要用户重新发送,若使用者过多,其等待发送的流量过大,则报文被重新发送的次数将增加,进而增加网络资源的耗损。
因此,在数据以高速传送的情况下则无法提高并维持传送质量。例如,以GPON(Gigabit-Capable PON)网络架构的GE LAN来进行Chariot的TCP流量测试结果显示,若不限速流量,其速度为600Mbps以上;若限速为100Mbps,则在约1秒之后传送中断;以及,若限速为500Mbps,则在约8秒之后传送中断。
其原因是,若以1500bytes为报文的大小来计算,在600Mbps的传输速度下,经过10ms约可传送500个报文,换言之,在用尽全部令牌到下次更新令牌之前,可能会导致约500个报文的传送中断,而大量的报文被舍弃,将造成TCP连接中断,影响传送质量与效能。
在实际TCP应用中,TCP经常存在较大的突发(Burst)的数据流量,因此需要比较大的储存空间(Bucket Size)来暂缓并存放TCP中流量突发的数据,并且得尽可能地减少TCP中舍弃传送的报文,来避免不断重传造成TCP传送速度大幅下降或者联机中断。
发明内容
为了应对突发的数据流量,使用更高精度的硬件设备来提升软件算法在传送系统中运作的效能,以硬件与软件的相辅相成,解决关于流量限速的技术问题。
有鉴于此,本发明提供一种借用硬件中断实现高性能高精度软件TCP限速的方法,特别是借用ECNT的型号为EN7521/26的一芯片,来实现在TCP传送速度超过500Mbps的限速的方法,进而提供高性能高精度的传送质量并确保网络的正常运行。
根据本发明的一种观点,所述借用硬件中断实现高性能高精度软件TCP限速的方法包括:
步骤S1:在一网络系统中经由一传送路径传送一报文时,通过一装置及一收发方向来计算所述报文的一队列索引(Queue Index);
步骤S2:自所述队列索引判断所述报文是否具有一加入队列标记;
步骤SE:执行一加入队列(Enqueue)的步骤,将具有所述加入队列标记的所述报文以先进先出(First-In First-Out,FIFO)的方式加入一缓冲队列中;
步骤SD:执行一提出队列(Dequeue)的步骤,将所述缓冲队列中的所述报文以先进先出的方式自所述缓冲队列中提出;以及
步骤ST:执行一更新标记令牌(Token)的步骤,每经过由硬件所设定的一定时器(Timer)的时间间隔后,来更新一标记令牌数值;其中,所述定时器的参数配置是借用ECNT的型号为EN7521/26的一芯片,并设定所述芯片的总线(BUS)的时钟频率为225MHz。
优选地,所述步骤SE针对步骤S2的不具有所述加入队列标记的所述报文,判别其是否具有限速请求;若不具有限速请求,则所述报文依照原本的所述传送路径进行传送。
优选地,若所述报文具有限速请求,则执行所述步骤ST,并计算所述标记令牌数值,进而判别所述标记令牌数值是否足够;若所述标记令牌数值足够,则所述报文依照原本的所述传送路径进行传送。
优选地,若所述标记令牌数值判别为不足够,则标记一加入队列标记于所述报文,并以先进先出的方式加入所述缓冲队列中。
优选地,所述步骤SD还包括:执行所述步骤ST;判别所述缓冲队列中是否存在一报文;若所述缓冲队列中不存在一报文,则返回系统原执行工作程序,并等待下一次的重新呼叫。
优选地,若所述缓冲队列中存在一报文,则计算所述标记令牌数值,进而判别所述标记令牌数值是否足够;若所述标记令牌数值足够,则将所述缓冲队列中的所述报文以先进先出的方式自所述缓冲队列中提出,并进行传送。
优选地,若所述标记令牌数值判别为不足够,则返回系统原执行工作程序,并等待下一次的重新呼叫。
优选地,在所述步骤ST中,所述定时器为4.4纳秒的整数倍,每一中断的时间间隔为1毫秒。
附图说明
图1示本发明的第一实施例的借用硬件中断实现高性能高精度软件TCP限速的方法的流程图;
图2是本发明的第二实施例的借用硬件中断实现高性能高精度软件TCP限速的方法的流程图。
符号说明:
S1、S2、SE、SD、ST步骤
具体实施方式
以下提供本发明的不同实施例。这些实施例是用于说明本发明的技术内容,而非用于限制本发明的权利范围。可对本发明的特征进行修饰、变化、组合、分离、置换、或转用,而实现其他实施例。
在本发明中,所谓的“系统”、“设备”、“装置”、“模块”、或“单元”等用语,是指一电子组件或由多个电子组件所组成的一数字电路、一模拟电路、或其他更广义的电路,且除了特别指明者之外,它们不必然有阶层或从属关系。
此外,本发明的方法、或其中的步骤或手段可以任何所需及适合方式来实现。例如,它们可实现于硬件或软件。除了特别指明者之外,本发明的多种功能性组件、层级及手段可包括一处理器、一控制器、一功能性单元、一电路、一程序逻辑、或一微处理器的设置等,可操作成执行该些功能。可能存在一专用的硬件组件及/或可编程硬件组件,可组态成以所需及适合方式来操作。
应注意的是,其中实施例的“第一”及“第二”非必然要求这些实施例的实施顺序或在执行的时程上呈互斥关系,意即,这些实施例可依需求同时序、平行地或单独地执行。所述“第一”及“第二”仅用于区别或分辨本发明的技术特征。
图1及图2分别显示本发明的第一实施例及第二实施例的借用硬件中断实现高性能高精度软件TCP限速的方法的流程图。一般而言,所述借用硬件中断实现高性能高精度软件TCP限速的方法具有下列多个步骤:S1、S2、SE、SD、及ST;其中,第一实施例主要在于阐明步骤S1、S2、SE及ST的实施细节,而第二实施例主要在于阐明步骤SD及ST的实施细节。第一实施例与第二实施例可独立存在,或相互配合。
参照图1,在第一实例中,所述借用硬件中断实现高性能高精度软件TCP限速的方法的步骤S1是通过一装置及/或一收发方向来计算欲传送的一报文的一队列索引(QueueIndex);并在步骤S2中判别所述队列索引中是否有一加入队列标记。
所述加入队列标记是用于标记一网络系统中的网络流量进行流量控管的记号;若需对所述报文进行传送控制,则所述报文在所述队列索引则具有一加入队列标记,目的在于将欲传送的所述报文暂缓而储存至一缓冲队列(Queue)中而暂缓传送。
此外,将欲传送的所述报文暂缓而储存至一队列中是通过一步骤SE来执行一加入队列(Enqueue)的步骤,是将具有所述加入队列标记的所述报文以先进先出的方式加入一缓冲队列中。
另外,所述借用硬件中断实现高性能高精度软件TCP限速的方法的步骤ST,是执行一更新标记令牌的步骤,每经过由硬件所设定的一定时器的时间间隔后,来更新一标记令牌数值;其中,所述定时器的参数配置是借用ECNT的型号为EN7521/26的一芯片,并设定所述芯片的总线(BUS)的时钟频率为225MHz。
应注意的是,此处令牌仅代表网络流量控管的算法架构中所对应比拟的名词,而标记令牌数值是一种量化的所述网络系统内的流量、负荷或控管程度。意即,可将标记令牌数值的高低来表示当前网络流量的拥塞与否。
此外,在第一实施例中,针对步骤S2的不具有所述加入队列标记的所述报文,判别其是否具有限速请求;若不具有限速请求,则所述报文依照原本的所述传送路径进行传送。
若所述报文具有限速请求,则执行所述步骤ST,并计算所述标记令牌数值,进而判别所述标记令牌数值是否足够;若所述标记令牌数值足够,则所述报文依照原本的所述传送路径进行传送。
若所述标记令牌数值判别为不足够,则标记一加入队列标记于所述报文,并以先进先出的方式加入所述缓冲队列中而暂缓传送。
总的而言,第一实施例目的在于借用ECNT的型号为EN7521/26的一芯片,设定所述芯片的总线的时钟频率为225MHz,并且在此设定之下,将具有限速要求的报文加入一缓冲队列中而暂缓传送。
参照图2,在第二实施例中,所述借用硬件中断实现高性能高精度软件TCP限速的方法是通过一步骤SD来执行一提出队列(Dequeue)的步骤,将被暂缓的所述报文由所述缓冲队列中提出;其细节是执行所述步骤ST来更新令牌,接着,判别所述缓冲队列中是否存在一报文;若所述缓冲队列中不存在一报文,则返回系统原执行工作程序,并等待下一次的重新呼叫。
若所述缓冲队列中存在一报文,则计算所述标记令牌数值,进而判别所述标记令牌数值是否足够;若所述标记令牌数值足够,则将所述缓冲队列中的所述报文以先进先出的方式自所述缓冲队列中提出,并进行传送。
若所述标记令牌数值判别为不足够,则返回系统原执行工作程序,并等待下一次的重新呼叫。
应注意的的是,当令牌为足够时,应该尽速将所述报文由所述缓冲队列提出,避免TCP超时造成数据不断重传。而在更新完令牌后,直接将所述报文由所述缓冲队列提出,直到所述缓冲队列为空(无报文)或令牌用尽为止。
总的而言,第二实施例的目的在于借用ECNT的型号为EN7521/26的一芯片,设定所述芯片的总线的时钟频率为225MHz,并且在此设定之下等待流量控管的情形排除后,将被暂缓的所述报文由所述缓冲队列中提出并继续传送。
优选而言,综上第一及第二实施例所述,所述借用硬件中断实现高性能高精度软件TCP限速的方法借用ECNT的型号为EN7521/26的一芯片,其总线的时钟频率为225MHz,并且使所述定时器为4.4纳秒的整数倍,以及设定每一中断的时间间隔为1毫秒,进而达到高水平的时间精度。
因此,能够将此芯片的总线所提供的高精度的定时器做为漏水桶算法(LeakyBucket Algorithm)或其他有关软件TCP算法中的一个Tick的运行时间,以达到高性能及高精度的软件TCP的限速及整流目的。
尽管本发明已通过上述实施例加以说明,可理解的是,在不悖离本发明精神及权利要求书所主张的范围下,可进行许多其他修饰及变化,而实现其他实施例。
Claims (5)
1.一种TCP的限速方法,其特征在于,所述方法包括:
执行一更新标记令牌(Token)的步骤,包括:
每经过由硬件所设定的一定时器(Timer)的时间间隔后,来更新一标记令牌数值;以及
执行一提出队列(Dequeue)的步骤,包括:
判别一缓冲队列中是否存在一报文,若所述缓冲队列中存在所述报文,判别所述标记令牌数值是否足够让所述报文经由所述缓冲队列提出,当所述标记令牌数值足够让所述缓冲队列中的所述报文自所述缓冲队列提出时,将所述缓冲队列中的所述报文自所述缓冲队列中提出。
2.如权利要求1所述的TCP的限速方法,其特征在于,所述执行一提出队列(Dequeue)的步骤,还包括:
若所述标记令牌数值不足够让所述缓冲队列中的所述报文自所述缓冲队列提出时,则返回系统原执行工作程序,并等待下一次的标记令牌(Token)更新。
3.如权利要求1所述的TCP的限速方法,其特征在于,所述TCP的限速方法还包括:
执行一加入队列(Enqueue)的步骤,包括:
当一预设标记令牌数值不足够让所述报文经由一传送路径传送时,将所述报文加入所述缓冲队列中。
4.如权利要求3所述的TCP的限速方法,其特征在于,所述执行一加入队列(Enqueue)的步骤还包括:
当所述预设标记令牌数值足够让所述报文经由所述传送路径传送时,则所述报文依照原本的所述传送路径进行传送。
5.如权利要求1所述的TCP的限速方法,其特征在于,在所述执行一更新标记令牌(Token)的步骤中,所述定时器为4.4纳秒的整数倍,每一中断的时间间隔为1毫秒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311267057.3A CN117221238A (zh) | 2018-12-28 | 2018-12-28 | 借用硬件中断实现高性能高精度软件tcp限速的方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311267057.3A CN117221238A (zh) | 2018-12-28 | 2018-12-28 | 借用硬件中断实现高性能高精度软件tcp限速的方法 |
CN201811629335.4A CN111385219B (zh) | 2018-12-28 | 2018-12-28 | 借用硬件中断实现高性能高精度软件tcp限速的方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811629335.4A Division CN111385219B (zh) | 2018-12-28 | 2018-12-28 | 借用硬件中断实现高性能高精度软件tcp限速的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117221238A true CN117221238A (zh) | 2023-12-12 |
Family
ID=71218143
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311267057.3A Pending CN117221238A (zh) | 2018-12-28 | 2018-12-28 | 借用硬件中断实现高性能高精度软件tcp限速的方法 |
CN201811629335.4A Active CN111385219B (zh) | 2018-12-28 | 2018-12-28 | 借用硬件中断实现高性能高精度软件tcp限速的方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811629335.4A Active CN111385219B (zh) | 2018-12-28 | 2018-12-28 | 借用硬件中断实现高性能高精度软件tcp限速的方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN117221238A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112751777A (zh) * | 2021-01-06 | 2021-05-04 | 烽火通信科技股份有限公司 | 一种高速率的流量控制方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237417B (zh) * | 2008-02-29 | 2010-09-08 | 华为技术有限公司 | 队列索引方法及装置和流量整形的方法及装置 |
CN107276909B (zh) * | 2016-04-07 | 2021-04-06 | 深圳市中兴微电子技术有限公司 | 端口流量管理方法及装置 |
CN107800643B (zh) * | 2016-08-29 | 2022-12-09 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
-
2018
- 2018-12-28 CN CN202311267057.3A patent/CN117221238A/zh active Pending
- 2018-12-28 CN CN201811629335.4A patent/CN111385219B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111385219A (zh) | 2020-07-07 |
CN111385219B (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108616458B (zh) | 客户端设备上调度分组传输的系统和方法 | |
CN110445722B (zh) | 拥塞控制方法、装置、设备及存储介质 | |
CN101977359B (zh) | 一种移动数据业务的处理方法及装置 | |
JP6595112B2 (ja) | データ送信方法及び装置並びに端末 | |
CN102804714A (zh) | 控制分组传输 | |
CN110099013B (zh) | 一种报文发送控制方法及装置 | |
CN113992588B (zh) | 数据传输方法、装置、电子设备及可读存储介质 | |
CN110784415A (zh) | 一种ecn快速响应的方法及装置 | |
CN113242183A (zh) | 一种数据流发送控制方法、装置、智能终端及存储介质 | |
CN109104742A (zh) | 拥塞窗口调整方法及发送设备 | |
CN111385219B (zh) | 借用硬件中断实现高性能高精度软件tcp限速的方法 | |
WO2024088353A1 (zh) | 数据流的速率控制方法、智能网卡、云端设备及存储介质 | |
WO2022169602A1 (en) | Dynamic network receiver-driven data scheduling over a datacenter network for managing endpoint resources and congestion mitigation | |
WO2019109902A1 (zh) | 队列调度方法及装置、通信设备、存储介质 | |
US11516145B2 (en) | Packet control method, flow table update method, and node device | |
CN117014967A (zh) | 移动通信系统、方法和用户面节点 | |
CN115022245A (zh) | 一种数据传输的方法、相关装置、设备以及存储介质 | |
CN105610740B (zh) | 一种控制端口状态的方法、路由设备及网络处理器 | |
US8825892B2 (en) | Dynamically calculating an inbound blocking factor using operating-system-level conditions | |
CN112532535B (zh) | 一种用于优化网络拥塞的方法和装置 | |
CN115884258B (zh) | 一种数据传输方法、装置、设备和存储介质 | |
CN103873386A (zh) | 管理网络传输顺序的方法 | |
CN116599871B (zh) | 一种网络时延的确定方法和相关装置 | |
CN110855575B (zh) | Tcp报文的调度方法、装置及通信设备 | |
WO2024098757A1 (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 |