基于发送、接收时间戳的以太网丢包率测量方法及系统
技术领域
本发明涉及通信领域中的以太网,特别是涉及一种基于发送、接收时间戳的以太网丢包率测量方法及系统。
背景技术
随着以太网技术的广泛应用,以太网的OAM(OperationAdministration and Maintenance,操作、管理、维护)技术越来越重要。IEEE(Institute of Electrical and Electronics Engineers,美国电气和电子工程师协会)802.1ag定义了以太网的连接错误管理功能,ITU-T(International Telecommunication Union TelecommunicationStandardization Sector,国际电信联盟电信标准化部门,负责制定通信领域的标准)Y.1731是ITU(International Telecommunication Union,国际电信联盟)基于802.1ag提出的一个标准,也是802.1ag的超集,另外加了一些功能,例如性能测量等,更加全面地考虑了电信网络的需求。
性能测量中比较重要的一个部分是丢包率测量,ITU-T Y.1731定义的丢包率测量功能用于点到点的以太网连接,MEG(MaintenanceEntity Group,维护实体组)内只有两个MEP(Maintenance Entity GroupEnd Point,维护实体组终端节点)。ITU-T Y.1731定义了一种按需的丢包测量功能,通过在两个MEP之间周期性的发送和接收用于丢包率测量的协议帧:LMM(Loss Measurement Message,丢包率测量消息)、LMR(Loss Measurement Reply,丢包率测量响应),实现链路的双向丢包率测量。在一个要进行丢包测量的点到点的ME(Maintenance Entity,维护实体)中,MEP为每个对等MEP和需要监测的每个优先级等级保持TxFCl和RxRCl两个本地的计数器,TxFCl是用于统计发往对等MEP的未超标数据帧个数的计数器,RxRCl是用于统计从对等MEP接收的未超标数据帧个数的计数器。测量过程中,两端的MEP将TxFCl和RxRCl两个计数器的值添加到协议帧中,利用这些计数值计算丢包率。
参见图1所示,单端丢包测量的工作原理如下:当MEP A连续发送两个LMM帧时,可以使用ITU-T Y.1731给出的公式,分别计算远端、近端帧丢失的个数:
远端帧丢失个数=|TxFCf[tc]-TxFCf[tp]|-|RxFCf[tc]-RxFCf[tp]|,近端帧丢失个数=|TxFCb[tc]-TxFCb[tp]|-|RxFCl[tc]-RxFCl[tp]|,其中:
tc表示当前LMR帧的接收时间,
tp表示前一个LMR帧的接收时间;
TxFCf[tc]为当前LMM帧发送时携带的发送计数值,
TxFCf[tp]为上一个LMM帧发送时携带的发送计数值;
RxFCf[tc]为对端接收当前LMM帧时的接收计数值,
RxFCf[tp]为对端接收上一个LMM帧时的接收计数值;
TxFCb[tc]为对端回复当前响应帧LMR时携带的发送计数值,
TxFCb[tp]为对端回复上一个响应帧LMR时携带的发送计数值;
RxFCl[tc]为本地接收当前LMR帧时的接收计数值,
RxFCl[tp]为本地接收上一个LMR帧时的接收计数值。
远端和近端的丢包率可以通过远端、近端帧丢失的个数除以连续两个LMM帧之间发送的数据帧总数得到,由于远端连续两个LMM帧之间发送的数据帧总数=|TxFCf[tc]-TxFCf[tp]|,近端连续两个LMM帧之间发送的数据帧总数=|TxFCb[tc]-TxFCb[tp]|,计算公式为:
远端丢包率=(|TxFCf[tc]-TxFCf[tp]|-|RxFCf[tc]-RxFCf[tp]|)/|TxFCf[tc]-TxFCf[tp]|
近端丢包率=(|TxFCb[tc]-TxFCb[tp]|-|RxFCl[tc]-RxFCl[tp]|)/|TxFCb[tc]-TxFCb[tp]|
根据ITU-T Y.1731的说明,上述远端丢包率、近端丢包率的计算公式能够在一定程度上解决计数器翻转问题:当计数器只翻转一次、且计数器翻转之后的计数值比翻转前的计数值小时,运用这两个公式能计算出正确的丢包率。在某个具体以太网网络中,当测量丢包率的协议帧都能可靠传输时,可通过设置计数器的宽度或LMM帧的发送间隔等参数保证丢包率测量的正确性。
发明人在发明过程中发现,该方法至少存在以下缺陷:
上述计算过程是建立在用于测量丢包率的协议帧都能可靠传输的基础上,但以太网并不能够提供这样的保证。当出现以下两种情况时,丢包率的测量结果可能不正确:
(1)参见图2所示,传输过程中出现协议帧丢失或出现拥塞时,可能导致计数器翻转之后的计数值比翻转前的计数值大,这与没有计数器翻转的情况是相同的,会导致丢包率的测量结果不正确。
(2)传输过程中协议帧之间出现乱序时,会导致丢包率的测量结果不正确。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于发送、接收时间戳的以太网丢包率测量方法及系统,能够提高以太网中丢包率计算的准确性。
本发明提供的基于发送、接收时间戳的以太网丢包率测量方法,包括以下步骤:S1、本地发起丢包测量的MEP预先计算出一个满足丢包率要求的最大时间间隔,在该间隔内不会出现计数器翻转之后的计数值比翻转前的计数值大的情况;本地MEP、对端MEP均根据数据帧所在端口、VLAN、优先级,查找发送和接收的数据帧对应的计数器,并分别计数;S2、本地发起丢包测量的MEP产生对应优先级的携带有发送时间戳的LMM帧,并将本地MEP对应端口、VLAN和优先级所在计数器中的发送计数值TxFCf插入到LMM帧对应位置,然后向对端MEP发送;S3、对端MEP接收到本地MEP发来的LMM帧之后,首先将对端MEP对应端口、VLAN和优先级所在计数器中的接收计数值RxFCf插入到LMM帧对应位置,并将LMM帧转换为LMR帧,再将对端MEP对应端口、VLAN和优先级所在计数器中的发送计数值TxFCb插入到LMR帧对应位置,最后将LMR帧发送到本地MEP;S4、本地MEP接收对端MEP发送过来的LMR帧,提取并保存本地MEP对应端口、VLAN和优先级所在计数器中的接收计数值RxFCl、本地MEP接收该LMR帧时的接收时间戳、LMR帧中携带的三个计数值TxFCf、RxFCf、TxFCb和发送时间戳;S5、获取本地MEP记录的前一个LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收前一个LMR帧时的接收计数值RxFCl、接收时间戳;获取本地MEP当前接收的LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收当前LMR帧时的接收计数值RxFCl、接收时间戳;S6、将当前接收的LMR帧中携带的发送时间戳减去前一个LMR帧中携带的发送时间戳,得到两个LMR帧中携带的发送时间戳差值;将当前接收LMR帧时的接收时间戳减去接收前一个LMR帧时的接收时间戳,得到两个LMR帧的接收时间戳差值;S7、分别比较所述发送时间戳差值、接收时间戳差值与预先计算出的最大时间间隔、0的大小,所述发送时间戳差值>最大时间间隔或接收时间戳差值绝对值>最大时间间隔或发送时间戳差值<0时,不计算丢包率;只有0≤发送时间戳差值≤最大时间间隔且接收时间戳差值绝对值≤最大时间间隔时,才计算丢包率。
在上述技术方案中,步骤S7中计算丢包率时,远端和近端的丢包率通过远端、近端帧丢失的个数除以连续两个LMM帧之间发送数据帧的总数得到,公式如下:
远端丢包率=(|TxFCf[tc]-TxFCf[tp]|-|RxFCf[tc]-RxFCf[tp]|)/|TxFCf[tc]-TxFCf[tp]|;
近端丢包率=(|TxFCb[tc]-TxFCb[tp]|-|RxFCl[tc]-RxFCl[tp]|)/|TxFCb[tc]-TxFCb[tp]|;
其中:
远端丢包率为本地发送LMM帧的情况下对端的丢包率;
近端丢包率为本地发送LMM帧的情况下本地的丢包率;
tc表示当前LMR帧的接收时间,
tp表示前一个LMR帧的接收时间;
TxFCf[tc]为当前LMM帧发送时携带的发送计数值,
TxFCf[tp]为上一个LMM帧发送时携带的发送计数值;
RxFCf[tc]为对端接收当前LMM帧时的接收计数值,
RxFCf[tp]为对端接收上一个LMM帧时的接收计数值;
TxFCb[tc]为对端回复当前响应帧LMR时携带的发送计数值,
TxFCb[tp]为对端回复上一个响应帧LMR时携带的发送计数值;
RxFCl[tc]为本地接收当前LMR帧时的接收计数值,
RxFCl[tp]为本地接收上一个LMR帧时的接收计数值。
在上述技术方案中,步骤S7之后还包括以下步骤:将本地MEP记录的发送时间戳和四个计数值TxFCf、RxFCf、TxFCb、RxFCl、接收时间戳,更新为当前接收的LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收当前LMR帧时的接收计数值RxFCl、接收时间戳,为计算下一个样本的丢包率做准备。
在上述技术方案中,步骤S1中所述本地发起丢包测量的MEP根据计数器容量、数据包带宽和最小包长计算得到所述最大时间间隔,计算公式为:最大时间间隔=计数器容量×数据包最小包长/数据包带宽。
在上述技术方案中,所述发送时间戳使用机构特定TLV携带。
在上述技术方案中,所述机构特定TLV包括类型、长度、机构唯一性标识、子类型、值域,其中值域为64比特的发送时间戳。
本发明还提供一种基于发送、接收时间戳的以太网丢包率测量系统,包括本地MEP和对端MEP,所述本地MEP、对端MEP均包括帧计数模块、帧产生接收模块,本地MEP还包括计算模块,其中:
所述本地MEP、对端MEP中的帧计数模块,均用于:根据数据帧所在端口、VLAN、优先级,查找发送和接收的数据帧对应的计数器,并分别计数;
所述本地MEP中的帧产生接收模块,用于:产生对应优先级的携带发送时间戳的LMM帧,并将本地MEP对应端口、VLAN和优先级所在计数器中的发送计数值TxFCf插入到LMM帧对应位置,发送到对端MEP;以及接收对端MEP发送过来的LMR帧,提取并保存本地MEP对应端口、VLAN和优先级所在计数器中的接收计数值RxFCl、本地MEP接收该LMR帧时的接收时间戳、LMR帧中携带的三个计数值TxFCf、RxFCf、TxFCb和发送时间戳;
所述对端MEP中的帧产生接收模块,用于:接收到本地MEP发来的LMM帧之后,首先将对端MEP对应端口、VLAN和优先级所在计数器中的接收计数值RxFCf插入到LMM帧对应位置,并将LMM帧转换为LMR帧,再将对端MEP对应端口、VLAN和优先级所在计数器中的发送计数值TxFCb插入到LMR帧对应位置,最后将LMR帧发送到本地MEP;
所述本地MEP中的计算模块,用于:根据本地MEP记录的前一个LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb、接收前一个LMR帧时的接收计数值RxFCl、接收时间戳、本地MEP当前接收的LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收当前LMR帧时的接收计数值RxFCl、接收时间戳,来计算丢包率。
在上述技术方案中,所述本地MEP中的计算模块包括最大时间间隔计算单元、获取单元、发送时间戳差值计算单元、接收时间戳差值计算单元、比较单元和丢包率计算单元,其中:
所述最大时间间隔计算单元,用于:预先计算出一个满足丢包率要求的最大时间间隔,在该间隔内不会出现计数器翻转之后的计数值比翻转前的计数值大的情况;
所述获取单元,用于:获取本地MEP记录的前一个LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收前一个LMR帧时的接收计数值RxFCl、接收时间戳;获取本地MEP当前接收的LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收当前LMR帧时的接收计数值RxFCl、接收时间戳;
所述发送时间戳差值计算单元,用于:将当前接收的LMR帧中携带的发送时间戳减去前一个LMR帧中携带的发送时间戳,得到两个LMR帧中携带的发送时间戳差值;
所述接收时间戳差值计算单元,用于:将接收当前LMR帧时的接收时间戳减去接收前一个LMR帧时的接收时间戳,得到接收前后两个LMR帧的接收时间戳差值;
所述比较单元,用于:分别比较发送时间戳差值、接收时间戳差值与预先计算出的最大时间间隔、0的大小,当发送时间戳差值>最大时间间隔或接收时间戳差值绝对值>最大时间间隔或发送时间戳差值<0时,产生触发不计算信号,发送到丢包率计算单元;只有当0≤发送时间戳差值≤最大时间间隔且接收时间戳差值绝对值≤最大时间间隔时,才产生触发计算信号,发送到丢包率计算单元;
所述丢包率计算单元,用于:收到比较单元发来的触发不计算信号时,不计算丢包率;只有收到比较单元发来的触发计算信号时,才计算丢包率。
在上述技术方案中,所述丢包率计算单元收到比较单元发来的触发计算信号时,按照下列公式计算丢包率:
远端丢包率=(|TxFCf[tc]-TxFCf[tp]|-|RxFCf[tc]-RxFCf[tp]|)/|TxFCf[tc]-TxFCf[tp]|;
近端丢包率=(|TxFCb[tc]-TxFCb[tp]|-|RxFCl[tc]-RxFCl[tp]|)/|TxFCb[tc]-TxFCb[tp]|;
其中:
远端丢包率为本地发送LMM帧的情况下对端的丢包率;
近端丢包率为本地发送LMM帧的情况下本地的丢包率;
tc表示当前LMR帧的接收时间,
tp表示前一个LMR帧的接收时间;
TxFCf[tc]为当前LMM帧发送时携带的发送计数值,
TxFCf[tp]为上一个LMM帧发送时携带的发送计数值;
RxFCf[tc]为对端接收当前LMM帧时的接收计数值,
RxFCf[tp]为对端接收上一个LMM帧时的接收计数值;
TxFCb[tc]为对端回复当前响应帧LMR时携带的发送计数值,
TxFCb[tp]为对端回复上一个响应帧LMR时携带的发送计数值;
RxFCl[tc]为本地接收当前LMR帧时的接收计数值,
RxFCl[tp]为本地接收上一个LMR帧时的接收计数值。
在上述技术方案中,所述计算模块还包括更新单元,所述更新单元用于:将本地MEP记录的发送时间戳和四个计数值TxFCf、RxFCf、TxFCb、RxFCl、接收时间戳,更新为当前接收的LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收当前LMR帧时的接收计数值RxFCl、接收时间戳,为计算下一个样本的丢包率做准备。
在上述技术方案中,所述最大时间间隔计算单元根据计数器容量、数据包带宽和最小包长计算得到所述最大时间间隔,计算公式为:最大时间间隔=计数器容量×数据包最小包长/数据包带宽。
在上述技术方案中,所述帧产生接收模块使用机构特定TLV携带发送时间戳。
在上述技术方案中,所述机构特定TLV包括类型、长度、机构唯一性标识、子类型、值域,其中值域为64比特的发送时间戳。
与现有技术相比,本发明的优点如下:
(1)本发明考虑到本地MEP发送计数器TxFCl和接收计数器RxRCl翻转之后的计数值比翻转之前的小,先计算满足丢包率计算要求的最大时间间隔,再将前后两个LMR帧中携带的发送时间戳差值与最大时间间隔相比较,同时在接收LMR帧时记录接收时间戳,将接收时间戳差值绝对值与最大发送间隔比较,当发送时间戳差值>最大时间间隔时或接收时间戳差值绝对值>最大时间间隔时,表示丢失的协议帧个数在容忍的范围之外,或者传输过程中出现了拥塞,此时计算的丢包率可能不正确,不计算该样本值下的丢包率,避免得到不正确的丢包率,能够提高丢包率计算的准确性。
(2)本发明还考虑到通过比较前后两个LMR帧中携带的发送时间戳可以判断协议帧乱序问题,当发送时间戳差值小于0时,说明协议帧之间出现了乱序,乱序时计算的丢包率不正确,不计算该样本值下的丢包率,因而能够避免得到不正确的丢包率,提高丢包率计算的准确性。
(3)本发明考虑到只有当0≤发送时间戳差值≤最大时间间隔且接收时间戳差值绝对值≤最大时间间隔时,表示此时没有协议帧丢失或者丢失的协议帧个数在可容忍的范围之内,此时能计算出正确的丢包率。将携带发送时间戳的方案和记录接收时间戳的方案结合使用,能够使计算出来的丢包率测量结果更为准确。
附图说明
图1是单端丢包率测量的原理示意图。
图2是计数器翻转后计数值大于翻转前计数值的示意图。
图3是本发明实施例中丢包率的测量方法的流程图。
图4是本发明实施例中携带发送时间戳的TLV格式的示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图3所示,本发明实施例提供一种基于发送、接收时间戳的以太网丢包率测量方法,包括以下步骤:
S1、本地发起丢包测量的MEP根据网络实际情况,预先计算出一个满足丢包率要求的最大时间间隔,在该间隔内不会出现计数器翻转之后的计数值比翻转前的计数值大的情况。最大时间间隔可根据计数器容量、数据包带宽和最小包长计算得到:最大时间间隔=计数器容量×数据包最小包长/数据包带宽。例如:一个32比特的计数器,带宽为100Gbps,最小包长为64字节,那么最大时间间隔是232/(1011/(64×8))≈22s。
MEP为每个对等MEP和需要监测的每个帧的优先级等级保持两个本地的计数器TxFCl和RxRCl,本地MEP、对端MEP均根据数据帧所在端口、VLAN(Virtual Local Area Network,虚拟局域网)、优先级,查找发送和接收的数据帧对应的计数器并分别计数。
S2、本地发起丢包测量的MEP(其端口和VLAN是确定的)产生对应优先级的携带有发送时间戳的LMM帧,并将本地MEP对应端口、VLAN和优先级所在计数器中的发送计数值TxFCf插入到LMM帧对应位置,然后向对端MEP发送;发送时间戳可以使用Organization-Specific(机构特定)TLV(Type、Length、Value,类型、长度、值)携带,其格式参见图4所示,包括类型、长度、OUI(Organizationlly Unique Identifier,机构唯一性标识)、子类型、值域,其中,值域为64比特的发送时间戳。
S3、对端MEP接收到本地MEP发来的LMM帧之后,首先将对端MEP对应端口、VLAN和优先级所在计数器中的接收计数值RxFCf插入到LMM帧对应位置,并将LMM帧转换为LMR帧,再将对端MEP对应端口、VLAN和优先级所在计数器中的发送计数值TxFCb插入到LMR帧对应位置,最后将LMR帧发送到本地MEP。
S4、本地MEP接收对端MEP发送过来的LMR帧,提取并保存本地MEP对应端口、VLAN和优先级所在计数器中的接收计数值RxFCl、本地MEP接收该LMR帧时的接收时间戳、LMR帧中携带的三个计数值TxFCf、RxFCf、TxFCb和发送时间戳。
S5、获取本地MEP记录的前一个LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收前一个LMR帧时的接收计数值RxFCl、接收时间戳;获取本地MEP当前接收的LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收当前LMR帧时的接收计数值RxFCl、接收时间戳;
S6、将当前接收的LMR帧中携带的发送时间戳减去前一个LMR帧中携带的发送时间戳,得到两个LMR帧中携带的发送时间戳差值;将当前接收LMR帧时的接收时间戳减去接收前一个LMR帧时的接收时间戳,得到两个LMR帧的接收时间戳差值;
S7、分别比较该发送时间戳差值、接收时间戳差值与预先计算出的最大时间间隔、0的大小,结果有三种情况:
(1)该发送时间戳差值>最大时间间隔或接收时间戳差值绝对值>最大时间间隔时,表明可能出现协议帧丢包或传输过程中出现拥塞,可能会导致计数器翻转后的值大于翻转前的值,此时丢包率测量结果可能不正确,为了保证所计算的丢包率的准确性,不计算丢包率;
(2)该发送时间戳差值<0时,意味着前一个LMR帧中携带的发送时间戳大于后一个LMR帧中携带的发送时间戳,表明在传输过程中协议帧发生了乱序(除时间戳翻转时的情况外,按照先发送的帧先被接收,前一个LMR帧中携带的发送时间戳应该小于后一个LMR帧中携带的发送时间戳),会导致丢包率测量结果不正确;为了保证所计算的丢包率的准确性,不计算丢包率;
(3)只有0≤发送时间戳差值≤最大时间间隔且接收时间戳差值绝对值≤最大时间间隔时,才能够得到正确的丢包率,此时计算丢包率,计算丢包率时,远端和近端的丢包率可以通过远端、近端帧丢失的个数除以连续两个LMM帧之间发送数据帧的总数得到,公式如下:
远端丢包率=(|TxFCf[tc]-TxFCf[tp]|-|RxFCf[tc]-RxFCf[tp]|)/|TxFCf[tc]-TxFCf[tp]|;
近端丢包率=(|TxFCb[tc]-TxFCb[tp]|-|RxFCl[tc]-RxFCl[tp]|)/|TxFCb[tc]-TxFCb[tp]|;
其中:
远端丢包率为本地发送LMM帧的情况下对端的丢包率;
近端丢包率为本地发送LMM帧的情况下本地的丢包率;
tc表示当前LMR帧的接收时间,
tp表示前一个LMR帧的接收时间;
TxFCf[tc]为当前LMM帧发送时携带的发送计数值,
TxFCf[tp]为上一个LMM帧发送时携带的发送计数值;
RxFCf[tc]为对端接收当前LMM帧时的接收计数值,
RxFCf[tp]为对端接收上一个LMM帧时的接收计数值;
TxFCb[tc]为对端回复当前响应帧LMR时携带的发送计数值,
TxFCb[tp]为对端回复上一个响应帧LMR时携带的发送计数值;
RxFCl[tc]为本地接收当前LMR帧时的接收计数值,
RxFCl[tp]为本地接收上一个LMR帧时的接收计数值。
S8、将本地MEP记录的发送时间戳和四个计数值TxFCf、RxFCf、TxFCb、RxFCl、接收时间戳,更新为当前接收的LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收当前LMR帧时的接收计数值RxFCl、接收时间戳,为计算下一个样本的丢包率做准备。
本发明实施例还提供一种基于发送、接收时间戳的以太网丢包率测量系统,包括本地MEP和对端MEP,本地MEP、对端MEP均包括帧计数模块、帧产生接收模块,本地MEP还包括计算模块,其中:
本地MEP、对端MEP中的帧计数模块,均用于:根据数据帧所在端口、VLAN、优先级,查找发送和接收的数据帧对应的计数器,并分别计数;
本地MEP中的帧产生接收模块,用于:产生对应优先级的携带发送时间戳的LMM帧,并将本地MEP对应端口、VLAN和优先级所在计数器中的发送计数值TxFCf插入到LMM帧对应位置,发送到对端MEP;以及接收对端MEP发送过来的LMR帧,提取并保存本地MEP对应端口、VLAN和优先级所在计数器中的接收计数值RxFCl、本地MEP接收该LMR帧时的接收时间戳、LMR帧中携带的三个计数值TxFCf、RxFCf、TxFCb和发送时间戳;发送时间戳使用机构特定TLV携带,机构特定TLV包括类型、长度、机构唯一性标识、子类型、值域,其中值域为64比特的发送时间戳;
对端MEP中的帧产生接收模块,用于:接收到本地MEP发来的LMM帧之后,首先将对端MEP对应端口、VLAN和优先级所在计数器中的接收计数值RxFCf插入到LMM帧对应位置,并将LMM帧转换为LMR帧,再将对端MEP对应端口、VLAN和优先级所在计数器中的发送计数值TxFCb插入到LMR帧对应位置,最后将LMR帧发送到本地MEP;
本地MEP中的计算模块,用于:根据本地MEP记录的前一个LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb、接收前一个LMR帧时的接收计数值RxFCl、接收时间戳、本地MEP当前接收的LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收当前LMR帧时的接收计数值RxFCl、接收时间戳,来计算丢包率。
进一步,本地MEP中的计算模块包括最大时间间隔计算单元、获取单元、发送时间戳差值计算单元、接收时间戳差值计算单元、比较单元、丢包率计算单元和更新单元,其中:
最大时间间隔计算单元,用于:根据计数器容量、数据包带宽和最小包长,预先计算出一个满足丢包率要求的最大时间间隔,计算公式为:最大时间间隔=计数器容量×数据包最小包长/数据包带宽,在该间隔内不会出现计数器翻转之后的计数值比翻转前的计数值大的情况;最大时间间隔除以LMM帧的实际发送时间间隔,取整数、舍弃余数的结果减1,得到所容忍的协议帧丢包个数;
获取单元,用于:获取本地MEP记录的前一个LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收前一个LMR帧时的接收计数值RxFCl、接收时间戳;获取本地MEP当前接收的LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收当前LMR帧时的接收计数值RxFCl、接收时间戳;
发送时间戳差值计算单元,用于:将当前接收的LMR帧中携带的发送时间戳减去前一个LMR帧的中携带发送时间戳,得到两个LMR帧中携带的发送时间戳差值;
接收时间戳差值计算单元,用于:将接收当前LMR帧时的接收时间戳减去接收前一个LMR帧时的接收时间戳,得到接收前后两个LMR帧的接收时间戳差值;
比较单元,用于:分别比较发送时间戳差值、接收时间戳差值与预先计算出的最大时间间隔、0的大小,当发送时间戳差值>最大时间间隔或接收时间戳差值绝对值>最大时间间隔或发送时间戳差值<0时,产生触发不计算信号,发送到丢包率计算单元;只有当0≤发送时间戳差值≤最大时间间隔且接收时间戳差值绝对值≤最大时间间隔时,才产生触发计算信号,发送到丢包率计算单元;
丢包率计算单元,用于:收到比较单元发来的触发不计算信号时,不计算丢包率;只有收到比较单元发来的触发计算信号时,才按照下列公式计算丢包率:
远端丢包率=(|TxFCf[tc]-TxFCf[tp]|-|RxFCf[tc]-RxFCf[tp]|)/|TxFCf[tc]-TxFCf[tp]|;
近端丢包率=(|TxFCb[tc]-TxFCb[tp]|-|RxFCl[tc]-RxFCl[tp]|)/|TxFCb[tc]-TxFCb[tp]|;
其中:
远端丢包率为本地发送LMM帧的情况下对端的丢包率;
近端丢包率为本地发送LMM帧的情况下本地的丢包率;
tc表示当前LMR帧的接收时间,
tp表示前一个LMR帧的接收时间;
TxFCf[tc]为当前LMM帧发送时携带的发送计数值,
TxFCf[tp]为上一个LMM帧发送时携带的发送计数值;
RxFCf[tc]为对端接收当前LMM帧时的接收计数值,
RxFCf[tp]为对端接收上一个LMM帧时的接收计数值;
TxFCb[tc]为对端回复当前响应帧LMR时携带的发送计数值,
TxFCb[tp]为对端回复上一个响应帧LMR时携带的发送计数值;
RxFCl[tc]为本地接收当前LMR帧时的接收计数值,
RxFCl[tp]为本地接收上一个LMR帧时的接收计数值。
更新单元,用于:将本地MEP记录的发送时间戳和四个计数值TxFCf、RxFCf、TxFCb、RxFCl、接收时间戳,更新为当前接收的LMR帧中携带的发送时间戳、计数值TxFCf、RxFCf、TxFCb及接收当前LMR帧时的接收计数值RxFCl、接收时间戳,为计算下一个样本的丢包率做准备。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明包含这些改动和变型在内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。