CN102970246B - 一种以太网报文流量控制方法 - Google Patents
一种以太网报文流量控制方法 Download PDFInfo
- Publication number
- CN102970246B CN102970246B CN201210483442.7A CN201210483442A CN102970246B CN 102970246 B CN102970246 B CN 102970246B CN 201210483442 A CN201210483442 A CN 201210483442A CN 102970246 B CN102970246 B CN 102970246B
- Authority
- CN
- China
- Prior art keywords
- message
- time
- byte
- auibytetable
- buffer area
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种以太网报文流量控制方法,该方法首先设定一个字节时间表,当报文进入时,以当前时间标尺为索引,通过查表方式获取该时间标尺内可通过的字节数,然后根据缓存区中报文的状态,判断报文的处理方式;通过、存入缓存区或者被丢弃。与现有技术相比,本发明具有高精度、使报文保持有序等优点。
Description
技术领域
本发明涉及一种网络控制方法,尤其是涉及一种以太网报文流量控制方法。
背景技术
在网络通信设备中,需要对接入用户的收发速率进行控制,使整个网络正常合理地运行。传统的设计中,将准备通过的报文长度换算成需要花费的时间,然后通过查看时间标尺令牌桶,确定报文是否能够通过。这种设计的精度受CPU***时钟频率的影响较大。
传统的设计中,流量控制将超过当前速率的报文存入缓存区中,缓冲区报文由定时器发送,那么后期到来的报文有可能在缓存区报文之前发送,这样会导致报文乱序。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种高精度、使报文保持有序的以太网报文流量控制方法。
本发明的目的可以通过以下技术方案来实现:
一种以太网报文流量控制方法,该方法首先设定一个字节时间表,当报文进入时,以当前时间标尺为索引,通过查表方式获取该时间标尺内可通过的字节数,然后根据缓存区中报文的状态,判断报文的处理方式:通过、存入缓存区或者被丢弃。
该方法具体包括以下步骤:
a.报文进入后,根据上次报文到来时间点和当前的时间点,计算出时间标尺uiTickDiff;
b.以时间标尺uiTickDiff作为索引,从字节时间表auiByteTable中,获取当前时间标尺内可通过的字节数uiByteAvail;
c.将uiByteAvail累加到可通过的总字节数g_uiByteAvail中;
d.判断g_uiByteAvail的长度是否大于或等于当前报文的总长度,若是,则进行步骤e,若否,则进入步骤f;
e.判断缓存区中是否存在报文,若是,则进入步骤f,若否,则从g_uiByteAvail中减去报文的长度,并且允许报文通过,报文处理结束;
f.判断缓冲区是否已满,若是,则丢弃报文,报文处理结束,若否,则将报文存入缓存区,报文处理结束。
所述的步骤f中将报文存入缓存区后,启动***定时器,按照当前设置的传输速率来发送缓存区中的报文。
所述的字节时间表auiByteTable为数组形式,其索引为时间标尺,每个单元的数值表示对应时间标尺内可通过的字节数。
所述的字节时间表中每个单元的数值的计算方式如下:
对于字节时间表中的第一个单元auiByteTable[1]:
auiByteTable[1]=((S*1024)/8)/N,表示单位时间标尺内可通过的字节数,S为当前设置的传输速率,N为字节时间表的单元数目;
对于字节时间表中的第i个单元,i=[2,N]:
auiByteTable[i]=i*auiByteTable[1]。
与现有技术相比,本发明具有以下优点:
1)拥有更高精度的流量控制功能,且受CPU***时钟频率影响较小;
2)本发明提供报文保序机制,确保流量控制前后报文的顺序一致。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例
如图1所示,一种以太网报文流量控制方法,该方法首先设定一个字节时间表,当报文进入时,以当前时间标尺为索引,通过查表方式获取该时间标尺内可通过的字节数,然后根据缓存区中报文的状态,判断报文的处理方式:通过、存入缓存区或者被丢弃。
该方法具体包括以下步骤:
在步骤a中,报文进入后,根据上次报文到来时间点和当前的时间点,计算出时间标尺uiTickDiff;
在步骤b中,以时间标尺uiTickDiff作为索引,从字节时间表auiByteTable中,获取当前时间标尺内可通过的字节数uiByteAvail;
在步骤c中,将uiByteAvail累加到可通过的总字节数g_uiByteAvail中:
在步骤d中,判断g_uiByteAvail的长度是否大于或等于当前报文的总长度,若是,则进行步骤e,若否,则进入步骤f;
在步骤e中,判断缓存区中是否存在报文,若是,则进入步骤f,若否,则从g_uiByteAvail中减去报文的长度uiPktLen,并且允许报文通过,报文处理结束;
在步骤f中,判断缓冲区是否已满,若是,则丢弃报文,报文处理结束,若否,则将报文存入缓存区,报文处理结束。
所述的步骤f中将报文存入缓存区后,启动***定时器,按照当前设置的传输速率来发送缓存区中的报文。
所述的字节时间表auiByteTable为数组形式,其索引为时间标尺,每个单元的数值表示对应时间标尺内可通过的字节数。
本实施例中时间标尺的单位为毫秒(ms),字节时间表包含的单元数目为1000,当前设置的传输速率为S kbps,则所述的字节时间表中每个单元的数值的计算方式如下:
对于字节时间表中的第一个单元auiByteTable[1](第0个单元auiByteTable[0]不使用):
auiByteTable[1]=((S*1024)/8)/1000,表示单位时间标尺(即每一毫秒)内可通过的字节数;
对于字节时间表中的第i个单元,i=[2,999]:
auiByteTable[i]-i*auiByteTable[1]。
本实施例中时间标尺单位、字节时间表的大小等参数为本发明方案的一个优先实施例,对其进行的修改应当属于本发明方案的保护范围。
Claims (4)
1.一种以太网报文流量控制方法,其特征在于,该方法首先设定一个字节时间表,当报文进入时,以当前时间标尺为索引,通过查表方式获取该时间标尺内可通过的字节数,然后根据缓存区中报文的状态,判断报文的处理方式:通过、存入缓存区或者被丢弃,该方法具体包括以下步骤:
a.报文进入后,根据上次报文到来时间点和当前的时间点,计算出时间标尺uiTickDiff;
b.以时间标尺uiTickDiff作为索引,从字节时间表auiByteTable中,获取当前时间标尺内可通过的字节数uiByteAvail;
c.将uiByteAvail累加到可通过的总字节数g_uiByteAvail中;
d.判断g_uiByteAvail的长度是否大于或等于当前报文的总长度,若是,则进行步骤e,若否,则进入步骤f;
e.判断缓存区中是否存在报文,若是,则进入步骤f,若否,则从g_uiByteAvail中减去报文的长度,并且允许报文通过,报文处理结束;
f.判断缓冲区是否已满,若是,则丢弃报文,报文处理结束,若否,则将报文存入缓存区,报文处理结束。
2.根据权利要求1所述的一种以太网报文流量控制方法,其特征在于,所述的步骤f中将报文存入缓存区后,启动***定时器,按照当前设置的传输速率来发送缓存区中的报文。
3.根据权利要求1所述的一种以太网报文流量控制方法,其特征在于,所述的字节时间表auiByteTable为数组形式,其索引为时间标尺,每个单元的数值表示对应时间标尺内可通过的字节数。
4.根据权利要求3所述的一种以太网报文流量控制方法,其特征在于,所述的字节时间表中每个单元的数值的计算方式如下:
对于字节时间表中的第一个单元auiByteTable[1]:
auiByteTable[1]=((S*1024)/8)/N,表示单位时间标尺内可通过的字节数,S为当前设置的传输速率,N为字节时间表的单元数目;
对于字节时间表中的第i个单元,i=[2,N]:
auiByteTable[i]=i*auiByteTable[1]。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210483442.7A CN102970246B (zh) | 2012-11-23 | 2012-11-23 | 一种以太网报文流量控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210483442.7A CN102970246B (zh) | 2012-11-23 | 2012-11-23 | 一种以太网报文流量控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102970246A CN102970246A (zh) | 2013-03-13 |
CN102970246B true CN102970246B (zh) | 2017-12-22 |
Family
ID=47800133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210483442.7A Active CN102970246B (zh) | 2012-11-23 | 2012-11-23 | 一种以太网报文流量控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102970246B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539477B (zh) * | 2014-12-15 | 2017-10-27 | 国家计算机网络与信息安全管理中心 | 一种对多条以太线路报文信息采集的方法 |
CN106712908B (zh) * | 2015-11-13 | 2020-01-14 | 富士通株式会社 | 数据传输方法、装置和*** |
CN106411778B (zh) * | 2016-10-27 | 2019-07-19 | 东软集团股份有限公司 | 数据转发的方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1449156A (zh) * | 2003-04-14 | 2003-10-15 | 北京港湾网络有限公司 | 数据传输的流量控制方法 |
CN1787483A (zh) * | 2004-12-10 | 2006-06-14 | 华为技术有限公司 | 一种流量控制方法 |
CN101159700A (zh) * | 2007-11-27 | 2008-04-09 | 杭州华三通信技术有限公司 | 一种流量控制方法和控制设备 |
CN101516109A (zh) * | 2008-02-21 | 2009-08-26 | 大唐移动通信设备有限公司 | 一种流量控制方法、***及装置 |
CN101647278A (zh) * | 2006-12-12 | 2010-02-10 | 梵提克斯公司 | 用于视频编码标准的改进的视频速率控制 |
CN102025694A (zh) * | 2009-09-11 | 2011-04-20 | 中兴通讯股份有限公司 | 基于dsp阵列实现以太网数据发送的装置及方法 |
CN102377631A (zh) * | 2010-08-06 | 2012-03-14 | 北京乾唐视联网络科技有限公司 | 一种基于流量控制的数据传输方法及通信*** |
-
2012
- 2012-11-23 CN CN201210483442.7A patent/CN102970246B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1449156A (zh) * | 2003-04-14 | 2003-10-15 | 北京港湾网络有限公司 | 数据传输的流量控制方法 |
CN1787483A (zh) * | 2004-12-10 | 2006-06-14 | 华为技术有限公司 | 一种流量控制方法 |
CN101647278A (zh) * | 2006-12-12 | 2010-02-10 | 梵提克斯公司 | 用于视频编码标准的改进的视频速率控制 |
CN101159700A (zh) * | 2007-11-27 | 2008-04-09 | 杭州华三通信技术有限公司 | 一种流量控制方法和控制设备 |
CN101516109A (zh) * | 2008-02-21 | 2009-08-26 | 大唐移动通信设备有限公司 | 一种流量控制方法、***及装置 |
CN102025694A (zh) * | 2009-09-11 | 2011-04-20 | 中兴通讯股份有限公司 | 基于dsp阵列实现以太网数据发送的装置及方法 |
CN102377631A (zh) * | 2010-08-06 | 2012-03-14 | 北京乾唐视联网络科技有限公司 | 一种基于流量控制的数据传输方法及通信*** |
Also Published As
Publication number | Publication date |
---|---|
CN102970246A (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104301248B (zh) | 报文限速方法和装置 | |
CN108881056A (zh) | 一种拥塞控制方法、网络设备及其网络接口控制器 | |
CN107276711B (zh) | EtherCAT主站装置 | |
CN102970246B (zh) | 一种以太网报文流量控制方法 | |
IN2014DN11230A (zh) | ||
WO2009134416A3 (en) | Method and apparatus for performing congestion management | |
CN110019386B (zh) | 一种流数据处理方法及设备 | |
WO2016086542A1 (zh) | 一种传输报文的方法及装置、计算机存储介质 | |
CN103516508A (zh) | 一种单向和双向时延抖动测量中修正时钟漂移的方法及*** | |
CN101635674A (zh) | 通信网络自适应拥塞控制方法 | |
CN112866135A (zh) | 发送报文的方法、第一网络设备及计算机可读存储介质 | |
JP2009188542A (ja) | 帯域制御装置および帯域制御方法 | |
CN112838904A (zh) | Tsn网络延迟抖动测量装置及方法 | |
CN103746878B (zh) | 一种测定SpaceWire数据包的传输时间的仿真*** | |
CN106789723A (zh) | 多核网络转发限速的方法和装置 | |
CN107733812A (zh) | 一种数据包调度方法、装置及设备 | |
CN104699649A (zh) | 一种多分支串行总线接口及数据交换方法 | |
Ding et al. | The research of AFDX system simulation model | |
JP2015109493A5 (zh) | ||
CN107181697A (zh) | 一种链路负载均衡方法及装置 | |
CN103163782B (zh) | 一种航天器延时遥测下传策略计算方法 | |
CN102843273A (zh) | 一种网络设备吞吐量的测试方法及装置 | |
CN101483603A (zh) | 对设备的数据流量进行控制的方法和装置 | |
CN104378256A (zh) | 基于fpga的性能测试数据流的调度方法和装置 | |
CN105721215A (zh) | 一种基于汇聚过程的网络数据流生成方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |