CN102223263B - 基于fpga的丢包率监测方法及装置 - Google Patents
基于fpga的丢包率监测方法及装置 Download PDFInfo
- Publication number
- CN102223263B CN102223263B CN201110154165.0A CN201110154165A CN102223263B CN 102223263 B CN102223263 B CN 102223263B CN 201110154165 A CN201110154165 A CN 201110154165A CN 102223263 B CN102223263 B CN 102223263B
- Authority
- CN
- China
- Prior art keywords
- message
- fpga
- protocol
- local terminal
- protocol massages
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
Landscapes
- Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于FPGA的丢包率监测方法及装置,其方法包括:本端FPGA接收对端FPGA发送的报文;当报文为第一普通报文时,记录接收第一普通报文时的接收计数值;当报文为第一协议报文时,将当前接收计数值填入第一协议报文;根据第一协议报文携带的当前发送计数值、上次发送计数值、上次接收计数值、当前接收计数值以及预设的协议报文发送间隔时间计算本端链路丢包率。本发明根据测量丢包率的需求,配置协议报文的生成策略,发送测量丢包率的协议报文,减少对有限的网络带宽资源的占用。同时利用网络中原有的普通报文,在不影响网络可用带宽的情况下,记录监测链路中的丢包率,降低后期对网络环境的影响,并提高了网络的可用性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种网络链路质量监测技术中基于FPGA(Field-Programmable Gate Array,现场可编程门阵列)的丢包率监测方法及装置。
背景技术
随着数据通信技术的不断发展,通信设备的设计不断复杂化,挂接在通信网络系统上的通信设备不断增多,使得这些通信设备的稳定性面临着挑战。操作员在调试通信设备时,常常会产生链路不畅或者信息包丢失情况。
目前,一种测量链路丢包率的方法是:在报文加入计数/序列号,通过计数/序列号测量链路丢包率。该方法包括至少两个维护端点在通信网络中相互周期性地发送连接确认报文的过程,其步骤具体包括:A.在连接确认报文的协议数据单元中携带报文序列号;B.维护端点通过连接确认报文的序列号计算丢包率。
上述方法虽然仅需要通过报文序列号就能计算丢包率,过程快捷方便,并可提高LM(低电压版移动处理器)性能监控的便利性,但是,该方法因引入测量报文,对原有报文流量产生了较大影响,其总需要主动发起专用的测量报文流,会占用大量的网络带宽资源,导致在测量丢包率时网络的正常通信受到极大的影响,甚至中断网络正常通信,从而增加了网络系统的带宽开销难度,降低了系统的可使用性。
发明内容
本发明的主要目的在于提供一种基于FPGA的丢包率监测方法及装置,在不影响网络可用带宽的情况下,实现对链路丢包率的监测。
为了达到上述目的,本发明提出一种基于FPGA的丢包率监测方法,包括:
本端FPGA接收对端FPGA发送的报文;
当所述报文为第一普通报文时,记录接收所述第一普通报文时的接收计数值;当所述报文为第一协议报文时,将当前接收计数值填入所述第一协议报文;
根据所述第一协议报文携带的当前发送计数值、上次发送计数值、上次接收计数值、所述当前接收计数值以及预设的协议报文发送间隔时间计算本端链路丢包率。
优选地,所述当前发送计数值是指所述对端FPGA发送所述第一协议报文至所述本端FPGA时,该对端FPGA填入该第一协议报文内的、当前统计的第一普通报文的发送计数值。
优选地,所述计算本端链路丢包率之后还包括:将所述第一协议报文、第一普通报文以及本端链路丢包率发送至本端交换芯片。
优选地,还包括:
所述本端FPGA接收本端交换芯片发送的第二普通报文;
根据预置策略生成第二协议报文;
将所述第二普通报文及第二协议报文按照预设的发送策略发送至所述对端FPGA,由所述对端FPGA计算对端链路丢包率。
优选地,所述将第二普通报文及第二协议报文按照预设的发送策略发送至所述对端FPGA的步骤包括:
判断本端FPGA端口发送速率是否达到预定阀值;若是,则
不允许第二协议报文进入发送队列,否则,允许所述第二协议报文进入发送队列,并对第二协议报文及第二普通报文进行排序;
对待发送的所述第二普通报文进行计数,得到发送计数值;
在发送所述第二协议报文时,将当前发送计数值填入所述第二协议报文;
将所述第二普通报文及携带有当前发送计数值的第二协议报文按照排序先后发送至对端FPGA。
优选地,所述本端FPGA接收本端交换芯片发送的第二普通报文的步骤之前还包括:
配置所述预置策略;所述预置策略包括设置协议报文发送间隔时间、发送时间长度、上次发送计数值、上次接收计数值和/或使能。
本发明还提出一种基于FPGA的丢包率监测装置,包括:
第一接收模块,用于接收对端FPGA发送的报文;
记录模块,用于当所述报文为第一普通报文时,记录接收所述第一普通报文时的接收计数值;当所述报文为第一协议报文时,将当前接收计数值填入所述第一协议报文;
计算模块,用于根据所述第一协议报文携带的当前发送计数值、上次发送计数值、上次接收计数值、所述当前接收计数值以及预设的协议报文发送间隔时间计算本端链路丢包率。
优选地,所述当前发送计数值是指所述对端FPGA发送所述第一协议报文至所述本端FPGA时,该对端FPGA填入该第一协议报文内的、当前统计的第一普通报文的发送计数值。
优选地,还包括:
第一发送模块,用于将所述第一协议报文、第一普通报文以及本端链路丢包率发送至本端交换芯片。
优选地,还包括:
第二接收模块,用于接收本端交换芯片发送的第二普通报文;
生成模块,用于根据预置策略生成第二协议报文;
第二发送模块,用于将所述第二普通报文及第二协议报文按照预设的发送策略发送至所述对端FPGA,由所述对端FPGA计算对端链路丢包率。
优选地,所述第二发送模块包括:
判断操作单元,用于判断本端FPGA端口发送速率是否达到预定阀值;若是,则不允许第二协议报文进入发送队列,否则,允许所述第二协议报文进入发送队列,并对第二协议报文及第二普通报文进行排序;
计数单元,用于对待发送的所述第二普通报文进行计数,得到发送计数值;
写入单元,用于当发送所述第二协议报文时,将当前发送计数值填入所述第二协议报文;
发送单元,用于将所述第二普通报文及携带有当前发送计数值的第二协议报文按照排序先后发送至对端FPGA。
优选地,还包括:
配置模块,用于配置所述预置策略;所述预置策略包括设置协议报文发送间隔时间、发送时间长度、上次发送计数值、上次接收计数值和/或使能。
本发明提出的一种基于FPGA的丢包率监测方法及装置,根据测量丢包率的需求,配置协议报文的生成策略,发送测量丢包率的协议报文,减少对有限的网络带宽资源的占用。同时可不依赖专门的用于测量丢包率的序列报文,而利用网络环境中原有的普通报文,在基本不影响网络可用带宽的情况下,记录监测链路中的丢包率,降低了后期对网络系统环境的影响,并提高了网络系统的可用性。与现有技术相比,本发明使得网络系统可操作性更强,适应面更广泛。
附图说明
图1是本发明基于FPGA的丢包率监测方法一实施例流程示意图;
图2是本发明基于FPGA的丢包率监测方法涉及的网络架构示意图;
图3是本发明基于FPGA的丢包率监测方法另一实施例流程示意图;
图4是本发明基于FPGA的丢包率监测方法另一实施例中将第二普通报文及第二协议报文按照预设的发送策略发送至对端FPGA,由对端FPGA计算对端链路丢包率的流程示意图;
图5是发明基于FPGA的丢包率监测装置一实施例结构示意图;
图6是发明基于FPGA的丢包率监测装置另一实施例结构示意图;
图7是发明基于FPGA的丢包率监测装置另一实施例中第二发送模块的结构示意图。
为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
具体实施方式
本发明实施例解决方案主要是:根据测量丢包率的需求,配置策略生成协议报文,并结合协议报文与现有网络中的普通报文,实现对链路丢包率的监测,以减少对有限的网络带宽资源的占用,提高网络系统的可用性。
如图1所示,本发明一实施例提出一种基于FPGA的丢包率监测方法,包括:
步骤S101,本端FPGA接收对端FPGA发送的报文;
如图2所示,本实施例方法运行环境涉及网络设备中的发送端及接收端之间的数据包的传输,发送端及接收端分别对应设置有负责报文交换的本端交换芯片及对端交换芯片,为了监测本端交换芯片及对端交换芯片之间链路的丢包率,在发送端及接收端之间设置有本端FPGA及对端FPGA。
对端FPGA向本端FPGA发送的报文包括普通报文及用于测量丢包率的协议报文,即本实施例所称第一普通报文及第一协议报文。对于报文的识别可以通过报文识别器来进行区分。
上述第一协议报文是在对端FPGA收到对端交换芯片发送的第一普通报文时,根据预定的配置策略生成的。
其中,预定的配置策略可以由对端交换芯片配置,也可以由对端FPGA在对端交换芯片或CPU(中央处理器)的控制下配置,该配置策略包括:设置协议报文发送间隔时间、发送时间长度、上次发送计数值、上次接收计数值以及使能等。如下表1所示,其中表内的值可以根据实际情况设定:
表1
上述表1中,端口号:指设备端口号;
发送时间长度:表示测量多少时间,单位为秒;
发送频率间隔:表示发送协议报文的间隔时间,单位为毫秒;
使能:其值为1时,表示使用此测量丢包率功能,为0时,表示不启动此项功能;
上次发送计数值:指上次协议报文被发送时,统计的普通报文的发送计数值;
上次接收计数值:指上次协议报文被接收时,统计的普通报文的接收计数值。
本实施例中协议报文(即第一协议报文)的报文结构如下表2所示:
表2
上述表2中,报文头:指协议报文的头部,如源地址、目的地址;
协议字段:在此标识报文属于测量丢包率的字段,用以区分普通报文;
上次发送计数:指上一次发送协议报文时统计的普通报文的发送计数值,该上次发送计数从协议报文上次的发送计数字段拷贝而来;
上次接收计数:指上一次接收协议报文是统计的普通报文的接收计数值,该上次接收计数从原来的接收计数字段拷贝而来;
发送计数:在发送本协议报文时,将计数器统计的当前普通报文的发送计数值填入到此字段;
接收计数:在接收到本协议报文时,将计数器统计的当前普通报文的接收计数值填入到此字段。
步骤S102,当报文为第一普通报文时,记录接收第一普通报文时的接收计数值;当报文为第一协议报文时,将当前接收计数值填入第一协议报文;
通过报文识别器来区分本端FPGA接收的报文为普通报文还是协议报文,当为普通报文时,通过计数器对接收到的普通报文即本实施例所称第一普通报文进行计数,其中,计数器可以采用32位计数器。
由于对端FPGA对普通报文和协议报文是以预定排序后的发送队列进行发送的,因此协议报文根据配置的发送间隔时间进行发送。
当本端FPGA接收的报文为协议报文时,将当前计数器中的接收计数值填入该协议报文即第一协议报文中。
步骤S103,根据第一协议报文携带的当前发送计数值、上次发送计数值、上次接收计数值、当前接收计数值以及预设的协议报文发送间隔时间计算本端链路丢包率。
如上所述,当前发送计数值是指对端FPGA发送第一协议报文至本端FPGA时,该对端FPGA填入该第一协议报文内的、当前统计的第一普通报文的发送计数值。根据第一协议报文携带的当前发送计数值、上次发送计数值、上次接收计数值、当前接收计数值以及预设的协议报文发送间隔时间即可计算本端链路丢包率。
其中,本端链路丢包率的计算过程如下:
在本端收到二个协议报文之后即可以计算丢包率,以不同时刻先后收到两协议包A和B(以下简称A包和B包)为例计算丢包率。
本端丢包数值=|B包上一次发送计数-A包上一次发送计数|-|B包上一次接收计数-A包上一次接收计数|;
本端丢包率=本端丢包数值/对端发送包数
=本端丢包数值/|B包发送计数-A包发送计数|
需要说明的是,本实施例方法除了基于FPGA实现外,还可以在CPLD(ComplexProgrammable Logic Device,复杂可编程逻辑器件)中设计完成。
本实施例与现有技术相比,使系统可操作性更强,适应面更广泛,对原有网络的影响更小。其可以不依赖专门的测量丢包率的序列报文,而是利用了网络环境中原有的普通报文,即可完成对网络的丢包率监测,从而降低了后期对网络系统环境的影响,同时提高了系统的可用性。
如图3所示,本发明另一实施例提出基于FPGA的丢包率监测方法,在上述实施例的基础上,
在步骤S101之前还包括:
步骤S100,配置预置策略;预置策略包括设置协议报文发送间隔时间、发送时间长度、上次发送计数值、上次接收计数值和/或使能。
在步骤S103之后还包括:
步骤S104,将第一协议报文、第一普通报文以及本端链路丢包率发送至本端交换芯片。
步骤S105,接收本端交换芯片发送的第二普通报文;
步骤S106,根据预置策略生成第二协议报文;
步骤S107,将第二普通报文及第二协议报文按照预设的发送策略发送至对端FPGA,由对端FPGA计算对端链路丢包率。
本实施例与上述实施例的区别在于,上述实施例实现了从对端FPGA到本端FPGA的链路丢包率的监测,本实施例中,不仅可以实现从对端FPGA到本端FPGA的链路丢包率的监测,并将第一协议报文、第一普通报文以及本端链路丢包率发送至本端交换芯片,同时还可以实现从本端FPGA到对端FPGA的链路丢包率的监测。本实施例中本端FPGA与对端FPGA具有相同的功能特征,并同时包括有上述实施例中本端FPGA与对端FPGA两者的功能特征。
具体地,本端FPGA与对端FPGA均具有报文的接收与发送过程,以本端FPGA为例,其报文接收过程与上述实施例相同,在此不作详细阐述;其报文发送过程如下:
首先,本端FPGA配置生成协议报文即本实施例所称第二协议报文的策略及相关参数,该策略包括设置协议报文发送间隔时间、发送时间长度、上次发送计数值、上次接收计数值和使能等。
本端FPGA从本端交换芯片接收第二普通报文,同时根据上述配置策略生成第二协议报文,然后将第二普通报文及第二协议报文按照预设的发送策略发送至对端FPGA,由对端FPGA计算对端链路丢包率。其中,对端FPGA计算对端链路丢包率的过程与上述实施例中本端FPGA计算本端链路丢包率的过程相同。
具体地,链路丢包率的计算过程如下:
在本端FPGA收到二个协议报文之后即可以计算丢包率,以不同时刻先后收到两协议包A和B(以下简称A包和B包)为例计算丢包率。
本端丢包数值=|B包上一次发送计数-A包上一次发送计数|-|B包上一次接收计数-A包上一次接收计数|;
本端丢包率=本端丢包数值/对端发送包数
=本端丢包数值/|B包发送计数-A包发送计数|
对端丢包率计算过程如下:
对端丢包数值=|B包发送计数-A包发送计数|-|B包接收计数-A包接收计数|;
对端丢包率=对端丢包数值/本地发送包数
=对端丢包数值/|B包上一次发送计数-A包上一次发送计数|
若再进行多次测量可求得长时间内的平均丢包率值。
本端FPGA在发送第二普通报文及第二协议报文时,首先要对第二普通报文及第二协议报文进行排序,然后送入出端口发送队列进行发送。
同时,考虑到增加的用于测量丢包率的第二协议报文会在端口线速度(线速度是指端口的最大速度,比如百兆端口的最大速度为100Mbps)发包时影响到端口的速度,给端口增加负担(比如,对于100Mbps的端口,若其已达到线速度发包,但因为加入了丢包率测量的协议报文,端口的发包速度超过100Mbps。即使本端口能以超过100Mbps的速度发包,在接收端亦会因为速度不匹配而丢包),本实施例在将第二普通报文及第二协议报文送入端口发送队列进行发送前,需要监测端口发送速率,若本端FPGA监测到端口发送速率已达到端口最大速率,则不允许第二协议报文进入到出端口的发送队列,暂不发送该第二协议报文。若监测到端口发送速率下降到允许发送该第二协议报文,则允许第二协议报文进入到出端口发送队列。
本端FPGA在发送队列中发送第二普通报文时,通过计数器对待发送的第二普通报文进行计数,得到发送计数值。如果待发送的报文为第二协议报文,则将当前计数得到的发送计数值填入到该第二协议报文的对应字段中,然后,将第二普通报文和第二协议报文发送至对端FPGA。
如图4所示,步骤S107包括:
步骤S1071,判断本端FPGA端口发送速率是否达到预定阀值;若是,则进入步骤S1072,否则,进入步骤S1073;
步骤S1072,不允许第二协议报文进入发送队列;
若监测到端口发送速率下降到低于预定阀值,则允许第二协议报文进入到出端口发送队列。
步骤S1073,允许第二协议报文进入发送队列,并对第二协议报文及第二普通报文进行排序;
步骤S1074,对待发送的所述第二普通报文进行计数,得到发送计数值;
步骤S1075,在发送第二协议报文时,将当前发送计数值填入第二协议报文;
步骤S1076,将第二普通报文及携带有当前发送计数值的第二协议报文按照排序先后发送至对端FPGA。
本实施例根据测量丢包率的需求,配置协议报文的生成策略,发送测量丢包率的协议报文,减少对有限的网络带宽资源的占用。同时可不依赖专门的用于测量丢包率的序列报文,而利用网络环境中原有的普通报文,在基本不影响网络可用带宽的情况下,可实现本端与对端之间链路的丢包率的监测,降低了后期对网络系统环境的影响,并提高了网络系统的可用性。与现有技术相比,本发明使得网络系统可操作性更强,适应面更广泛。
如图5所示,本发明一实施例提出一种基于FPGA的丢包率监测装置,包括:第一接收模块401、记录模块402以及计算模块403,其中:
第一接收模块401,用于接收对端FPGA发送的报文;
记录模块402,用于当报文为第一普通报文时,记录接收第一普通报文时的接收计数值;当报文为第一协议报文时,将当前接收计数值填入第一协议报文;
计算模块403,用于根据第一协议报文携带的当前发送计数值、上次发送计数值、上次接收计数值、当前接收计数值以及预设的协议报文发送间隔时间计算本端链路丢包率。
本实施例装置的运行环境涉及网络设备中的发送端及接收端之间的数据包的传输,如图2所示,发送端及接收端分别对应设置有负责报文交换的本端交换芯片及对端交换芯片,为了监测本端交换芯片及对端交换芯片之间链路的丢包率,在发送端及接收端之间设置有本端FPGA以及对端FPGA。本实施例装置即为本端FPGA,以下均以本端FPGA作为本实施例装置进行说明。
对端FPGA向本端FPGA的第一接收模块401接收对端FPGA发送的报文包括普通报文及用于测量丢包率的协议报文,即本实施例所称第一普通报文及第一协议报文。对于报文的识别可以通过报文识别器来进行区分。
上述第一协议报文是在对端FPGA收到对端交换芯片发送的第一普通报文时,根据预定的配置策略生成的。
其中,预定的配置策略可以由对端交换芯片配置,也可以由对端FPGA在对端交换芯片或CPU的控制下配置,该配置策略包括:设置协议报文发送间隔时间、发送时间长度、上次发送计数值、上次接收计数值以及使能等。
如下表1所示,其中表内的值可以根据实际情况设定:
表1
上述表1中,端口号:指设备端口号;
发送时间长度:表示测量多少时间,单位为秒;
发送频率间隔:表示发送协议报文的间隔时间,单位为毫秒;
使能:其值为1时,表示使用此测量丢包率功能,为0时,表示不启动此项功能;
上次发送计数值:指上次协议报文被发送时,统计的普通报文的发送计数值;
上次接收计数值:指上次协议报文被接收时,统计的普通报文的接收计数值。
本实施例中协议报文(即第一协议报文)的报文结构如下表2所示:
表2
上述表2中,报文头:指协议报文的头部,如源地址、目的地址;
协议字段:在此标识报文属于测量丢包率的字段,用以区分普通报文;
上次发送计数:指上一次发送协议报文时统计的普通报文的发送计数值,该上次发送计数从协议报文上次的发送计数字段拷贝而来;
上次接收计数:指上一次接收协议报文是统计的普通报文的接收计数值,该上次接收计数从原来的接收计数字段拷贝而来;
发送计数:在发送本协议报文时,将计数器统计的当前普通报文的发送计数值填入到此字段;
接收计数:在接收到本协议报文时,将计数器统计的当前普通报文的接收计数值填入到此字段。
本实施例通过报文识别器来区分本端FPGA接收的报文为普通报文还是协议报文,当为普通报文时,通过记录模块402对接收到的普通报文即本实施例所称第一普通报文进行计数,其中,记录模块402可以采用32位计数器。
由于对端FPGA对普通报文和协议报文是以预定排序后的发送队列进行发送的,因此协议报文根据配置的发送间隔时间进行发送。
当本端FPGA接收的报文为协议报文时,将记录模块402记录的当前接收计数值填入该协议报文即第一协议报文中。
如上所述,本实施例中当前发送计数值是指对端FPGA发送第一协议报文至本端FPGA时,该对端FPGA填入该第一协议报文内的、当前统计的第一普通报文的发送计数值。根据第一协议报文携带的当前发送计数值、上次发送计数值、上次接收计数值、当前接收计数值以及预设的协议报文发送间隔时间即可计算本端链路丢包率。
其中,本端链路丢包率的计算过程如下:
在本端收到二个协议报文之后即可以计算丢包率,以不同时刻先后收到两协议包A和B(以下简称A包和B包)为例计算丢包率。
本端丢包数值=|B包上一次发送计数-A包上一次发送计数|-|B包上一次接收计数-A包上一次接收计数|;
本端丢包率=本端丢包数值/对端发送包数
=本端丢包数值/|B包发送计数-A包发送计数|
需要说明的是,本实施例方法除了基于FPGA实现外,还可以在CPLD中设计完成。
如图6所示,本发明另一实施例提出一种基于FPGA的丢包率监测装置,在上述实施例的基础上,还包括:
配置模块400,与第一接收模块401连接,用于配置预置策略;预置策略包括设置协议报文发送间隔时间、发送时间长度、上次发送计数值、上次接收计数值和/或使能。
第一发送模块404,与计算模块403连接,用于将第一协议报文、第一普通报文以及本端链路丢包率发送至本端交换芯片。
第二接收模块405,用于接收本端交换芯片发送的第二普通报文;
生成模块406,用于根据预置策略生成第二协议报文;
第二发送模块407,用于将第二普通报文及第二协议报文按照预设的发送策略发送至对端FPGA,由对端FPGA计算对端链路丢包率。
上述各模块可由本实施例装置中控制部分比如控制器进行控制工作。
如图7所示,第二发送模块407包括:判断操作单元4071、计数单元4072、写入单元4073及发送单元4074,其中:
判断操作单元4071,用于判断本端FPGA端口发送速率是否达到预定阀值;若是,则不允许第二协议报文进入发送队列,否则,允许第二协议报文进入发送队列,并对第二协议报文及第二普通报文进行排序;
计数单元4072,用于对待发送的第二普通报文进行计数,得到发送计数值;
写入单元4073,用于当发送第二协议报文时,将当前发送计数值填入第二协议报文;
发送单元4074,用于将第二普通报文及携带有当前发送计数值的第二协议报文按照排序先后发送至对端FPGA。
本实施例与上述实施例的区别在于,上述实施例实现了从对端FPGA到本端FPGA的链路丢包率的监测,本实施例中,不仅可以实现从对端FPGA到本端FPGA的链路丢包率的监测,并将第一协议报文、第一普通报文以及本端链路丢包率发送至本端交换芯片,同时还可以实现从本端FPGA到对端FPGA的链路丢包率的监测。本实施例中本端FPGA与对端FPGA具有相同的功能特征,并同时包括有上述实施例中本端FPGA与对端FPGA两者的功能特征。
具体地,本端FPGA与对端FPGA均具有报文的接收与发送过程,以本端FPGA为例,其报文接收过程与上述实施例相同,在此不作详细阐述;其报文发送过程如下:
首先,本端FPGA配置生成协议报文即本实施例所称第二协议报文的策略及相关参数,该策略包括设置协议报文发送间隔时间、发送时间长度、上次发送计数值、上次接收计数值和使能等。
本端FPGA从本端交换芯片接收第二普通报文,同时根据上述配置策略生成第二协议报文,然后将第二普通报文及第二协议报文按照预设的发送策略发送至对端FPGA,由对端FPGA计算对端链路丢包率。其中,对端FPGA计算对端链路丢包率的过程与上述实施例中本端FPGA计算本端链路丢包率的过程相同,在此不作详述。
本端FPGA在发送第二普通报文及第二协议报文时,首先要对第二普通报文及第二协议报文进行排序,然后送入出端口发送队列进行发送。
同时,考虑到增加的用于测量丢包率的第二协议报文会在端口线速度(线速度是指端口的最大速度,比如百兆端口的最大速度为100Mbps)发包时影响到端口的速度,给端口增加负担(比如,对于100Mbps的端口,若其已达到线速度发包,但因为加入了丢包率测量的协议报文,端口的发包速度超过100Mbps。即使本端口能以超过100Mbps的速度发包,在接收端亦会因为速度不匹配而丢包),本实施例在将第二普通报文及第二协议报文送入端口发送队列进行发送前,需要监测端口发送速率,若本端FPGA监测到端口发送速率已达到端口最大速率,则不允许第二协议报文进入到出端口的发送队列,暂不发送该第二协议报文。若监测到端口发送速率下降到允许发送该第二协议报文,则允许第二协议报文进入到出端口发送队列。
本端FPGA在发送队列中发送第二普通报文时,通过计数器对待发送的第二普通报文进行计数,得到发送计数值。如果待发送的报文为第二协议报文,则将当前计数得到的发送计数值填入到该第二协议报文的对应字段中,然后,将第二普通报文和第二协议报文发送至对端FPGA。
本发明实施例基于FPGA的丢包率监测方法及装置,根据测量丢包率的需求,配置协议报文的生成策略,发送测量丢包率的协议报文,减少对有限的网络带宽资源的占用。同时可不依赖专门的用于测量丢包率的序列报文,而利用网络环境中原有的普通报文,在基本不影响网络可用带宽的情况下,记录监测链路中的丢包率,降低了后期对网络系统环境的影响,并提高了网络系统的可用性。与现有技术相比,本发明使得网络系统可操作性更强,适应面更广泛。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种基于FPGA的丢包率监测方法,其特征在于,包括:
本端现场可编程门阵列FPGA接收对端FPGA发送的报文;
当所述报文为第一普通报文时,记录接收所述第一普通报文时的接收计数值;当所述报文为第一协议报文时,将当前接收计数值填入所述第一协议报文;
根据所述第一协议报文携带的当前发送计数值、上次发送计数值、上次接收计数值、所述当前接收计数值以及预设的协议报文发送间隔时间计算本端链路丢包率;
所述方法还包括:
所述本端FPGA接收本端交换芯片发送的第二普通报文;
根据预置策略生成第二协议报文;
将所述第二普通报文及第二协议报文按照预设的发送策略发送至所述对端FPGA,由所述对端FPGA计算对端链路丢包率,具体包括:
判断本端FPGA端口发送速率是否达到预定阀值;若是,则
不允许第二协议报文进入发送队列,否则,允许所述第二协议报文进入发送队列,并对第二协议报文及第二普通报文进行排序;
对待发送的所述第二普通报文进行计数,得到发送计数值;
在发送所述第二协议报文时,将当前发送计数值填入所述第二协议报文;
将所述第二普通报文及携带有当前发送计数值的第二协议报文按照排序先后发送至对端FPGA。
2.根据权利要求1所述的方法,其特征在于,所述当前发送计数值是指所述对端FPGA发送所述第一协议报文至所述本端FPGA时,该对端FPGA填入该第一协议报文内的、当前统计的第一普通报文的发送计数值。
3.根据权利要求2所述的方法,其特征在于,所述计算本端链路丢包率之后还包括:
将所述第一协议报文、第一普通报文以及本端链路丢包率发送至本端交换芯片。
4.根据权利要求1、2或3所述的方法,其特征在于,所述本端FPGA接收本端交换芯片发送的第二普通报文的步骤之前还包括:
配置所述预置策略;所述预置策略包括设置协议报文发送间隔时间、发送时间长度、上次发送计数值、上次接收计数值和/或使能。
5.一种基于FPGA的丢包率监测装置,其特征在于,包括:
第一接收模块,用于接收对端FPGA发送的报文;
记录模块,用于当所述报文为第一普通报文时,记录接收所述第一普通报文时的接收计数值;当所述报文为第一协议报文时,将当前接收计数值填入所述第一协议报文;
计算模块,用于根据所述第一协议报文携带的当前发送计数值、上次发送计数值、上次接收计数值、所述当前接收计数值以及预设的协议报文发送间隔时间计算本端链路丢包率;
第二接收模块,用于接收本端交换芯片发送的第二普通报文;
生成模块,用于根据预置策略生成第二协议报文;
第二发送模块,用于将所述第二普通报文及第二协议报文按照预设的发送策略发送至所述对端FPGA,由所述对端FPGA计算对端链路丢包率,其中,所述第二发送模块包括:
判断操作单元,用于判断本端FPGA端口发送速率是否达到预定阀值;若是,则不允许第二协议报文进入发送队列,否则,允许所述第二协议报文进入发送队列,并对第二协议报文及第二普通报文进行排序;
计数单元,用于对待发送的所述第二普通报文进行计数,得到发送计数值;
写入单元,用于当发送所述第二协议报文时,将当前发送计数值填入所述第二协议报文;
发送单元,用于将所述第二普通报文及携带有当前发送计数值的第二协议报文按照排序先后发送至对端FPGA。
6.根据权利要求5所述的装置,其特征在于,所述当前发送计数值是指所述对端FPGA发送所述第一协议报文至所述本端FPGA时,该对端FPGA填入该第一协议报文内的、当前统计的第一普通报文的发送计数值。
7.根据权利要求5所述的装置,其特征在于,还包括:
第一发送模块,用于将所述第一协议报文、第一普通报文以及本端链路丢包率发送至本端交换芯片。
8.根据权利要求5、6或7所述的装置,其特征在于,还包括:
配置模块,用于配置所述预置策略;所述预置策略包括设置协议报文发送间隔时间、发送时间长度、上次发送计数值、上次接收计数值和/或使能。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110154165.0A CN102223263B (zh) | 2011-06-09 | 2011-06-09 | 基于fpga的丢包率监测方法及装置 |
PCT/CN2012/075528 WO2012167685A1 (zh) | 2011-06-09 | 2012-05-15 | 基于fpga的丢包率监测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110154165.0A CN102223263B (zh) | 2011-06-09 | 2011-06-09 | 基于fpga的丢包率监测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102223263A CN102223263A (zh) | 2011-10-19 |
CN102223263B true CN102223263B (zh) | 2016-12-28 |
Family
ID=44779696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110154165.0A Active CN102223263B (zh) | 2011-06-09 | 2011-06-09 | 基于fpga的丢包率监测方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102223263B (zh) |
WO (1) | WO2012167685A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102223263B (zh) * | 2011-06-09 | 2016-12-28 | 中兴通讯股份有限公司 | 基于fpga的丢包率监测方法及装置 |
CN102882747B (zh) * | 2012-10-10 | 2015-08-19 | 烽火通信科技股份有限公司 | 基于发送、接收时间戳的以太网丢包率测量方法及系统 |
CN102891780B (zh) * | 2012-10-10 | 2015-05-13 | 烽火通信科技股份有限公司 | 基于发送时间戳的以太网丢包率测量方法及测量系统 |
CN106411625A (zh) * | 2015-07-27 | 2017-02-15 | 中兴通讯股份有限公司 | 链路报文丢包测量方法、系统及目标节点、发起端节点 |
CN105591839A (zh) * | 2015-12-23 | 2016-05-18 | 浪潮集团有限公司 | 一种测试网络交换芯片的装置、方法及系统 |
CN107426042A (zh) * | 2016-05-23 | 2017-12-01 | 中兴通讯股份有限公司 | 一种报文传输方法和发送设备 |
CN106506265B (zh) * | 2016-10-25 | 2019-08-06 | 杭州迪普科技股份有限公司 | 检测fpga芯片挂死的方法及装置 |
CN107566222A (zh) * | 2017-10-18 | 2018-01-09 | 中国联合网络通信集团有限公司 | 一种计算丢包率的方法及装置 |
CN116614442A (zh) | 2018-07-09 | 2023-08-18 | 华为技术有限公司 | 一种报文控制方法、流表更新方法和节点设备 |
CN110876158B (zh) * | 2018-08-29 | 2023-07-14 | 阿里巴巴集团控股有限公司 | LoRa网络状况监测方法、装置、系统、设备及存储介质 |
CN112073256B (zh) * | 2020-06-01 | 2022-07-19 | 新华三信息安全技术有限公司 | 一种丢包处理方法、装置、设备及机器可读存储介质 |
CN112653536B (zh) * | 2020-06-18 | 2022-11-01 | 中国科学院国家空间科学中心 | 一种基于FPGA的SpaceFibre星载网络节点测试系统及方法 |
CN112039724B (zh) * | 2020-08-17 | 2021-09-28 | 鹏城实验室 | 网络丢包检测方法、装置、存储介质及网络系统 |
CN113590431B (zh) * | 2021-09-27 | 2022-01-21 | 联想长风科技(北京)有限公司 | 一种cpu与fpga的数据传输动态监测方法及系统 |
CN114567574B (zh) * | 2022-03-01 | 2023-11-10 | 烽火通信科技股份有限公司 | 一种基于时序控制实现lm免流量测试的方法与装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101695171A (zh) * | 2009-10-16 | 2010-04-14 | 中兴通讯股份有限公司 | 通过流控制传输协议测量网络传输质量的方法和装置 |
CN101719850A (zh) * | 2009-11-04 | 2010-06-02 | 中兴通讯股份有限公司 | 对以太网丢包率进行统计的装置、方法及报文交换设备 |
CN101742358A (zh) * | 2009-12-22 | 2010-06-16 | 重庆重邮东电通信技术有限公司 | 网络电视质量的测试方法及装置 |
CN101800679A (zh) * | 2010-03-10 | 2010-08-11 | 华为技术有限公司 | 一种报文丢包检测方法及系统 |
CN101854268A (zh) * | 2009-04-04 | 2010-10-06 | 华为技术有限公司 | Ip网络性能测量、服务质量控制的方法、装置和系统 |
US20100322358A1 (en) * | 2009-06-17 | 2010-12-23 | Drumm David B | Parallel Execution of Trellis-Based Methods |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102223263B (zh) * | 2011-06-09 | 2016-12-28 | 中兴通讯股份有限公司 | 基于fpga的丢包率监测方法及装置 |
-
2011
- 2011-06-09 CN CN201110154165.0A patent/CN102223263B/zh active Active
-
2012
- 2012-05-15 WO PCT/CN2012/075528 patent/WO2012167685A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101854268A (zh) * | 2009-04-04 | 2010-10-06 | 华为技术有限公司 | Ip网络性能测量、服务质量控制的方法、装置和系统 |
US20100322358A1 (en) * | 2009-06-17 | 2010-12-23 | Drumm David B | Parallel Execution of Trellis-Based Methods |
CN101695171A (zh) * | 2009-10-16 | 2010-04-14 | 中兴通讯股份有限公司 | 通过流控制传输协议测量网络传输质量的方法和装置 |
CN101719850A (zh) * | 2009-11-04 | 2010-06-02 | 中兴通讯股份有限公司 | 对以太网丢包率进行统计的装置、方法及报文交换设备 |
CN101742358A (zh) * | 2009-12-22 | 2010-06-16 | 重庆重邮东电通信技术有限公司 | 网络电视质量的测试方法及装置 |
CN101800679A (zh) * | 2010-03-10 | 2010-08-11 | 华为技术有限公司 | 一种报文丢包检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102223263A (zh) | 2011-10-19 |
WO2012167685A1 (zh) | 2012-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102223263B (zh) | 基于fpga的丢包率监测方法及装置 | |
CN102104502A (zh) | 一种基于Linux系统的以太网网络设备性能测试平台 | |
CN105634840B (zh) | 一种丢包的测量方法及装置 | |
WO2016000659A1 (zh) | 一种统计信息获取方法及装置 | |
CN106789430B (zh) | 一种点到点链路故障检测方法 | |
CN107241238A (zh) | 一种手持式万兆网络测试装置 | |
CN101217422B (zh) | 一种测试网口性能的方法 | |
CN101719850B (zh) | 对以太网丢包率进行统计的装置、方法及报文交换设备 | |
CN108243117A (zh) | 一种流量监控方法、装置及电子设备 | |
CN103152192B (zh) | 数据传输方法及网管系统 | |
CN104317762A (zh) | 一种fpga自适应控制rs485芯片收发方向的方法 | |
CN101834665A (zh) | Dwdm系统中以太网业务的丢包检测系统及方法 | |
CN108390799A (zh) | 量子密钥分发网络端到端可用密钥速率的测量方法 | |
US9438502B2 (en) | Controlling generation of filtered result packets | |
CN103944738B (zh) | 一种支持功能扩展的交换机 | |
CN106452964A (zh) | 一种网络设备接口缓存测试系统及其测试方法 | |
CN110401670A (zh) | 一种优化的工业用串口协议的以太网透传方法 | |
CN102098289B (zh) | 一种基于fpga的网络安全连接封堵处理方法 | |
CN106230660A (zh) | sFlow采样的方法及装置 | |
CN109600320A (zh) | 拥塞处理方法及设备、数据中心网络 | |
CN102387085A (zh) | 一种通道化流量的控制方法 | |
CN105282053A (zh) | 避免网络交换芯片输出队头阻塞的方法及系统 | |
CN107888508A (zh) | 一种基于pc‑nc的数控系统及其aut抗干扰弱实时网络协议 | |
CN107317762A (zh) | 基于工业互联网现场层装置的拥塞控制方法及现场层装置 | |
CN108667690A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |