发明内容
有鉴于此,本发明的主要目的在于提供一种链路质量检测方法及装置,使得仅在链路一端设置链路质量检测机制即能够实现链路质量检测。
为达到上述目的,本发明的技术方案是这样实现的:
一种链路质量检测方法,该方法包括:
本端周期性向对端发送包括自身发送时间、包序号、和会话标识的回显请求报文;所述会话标识为唯一标识一个链路质量检测流程的指标,启动多个链路质量检测流程时,每个流程根据所述会话标识区分属于自身的回显请求报文、和回显应答报文;
接收对端回复的包括所述回显请求报文内容的回显应答报文,根据所述回显应答报文的内容、接收到所述回显应答报文的时间、以及历史记录计算链路质量指标,并将所述回显应答报文的内容、接收到所述回显应答报文的时间存储在历史记录中。
进一步地,所述本端接收到对端回复的回显应答报文前,该方法还包括:对端将接收到的回显请求报文的内容拷贝至回显应答报文中,并将所述回显应答报文回复给本端。
进一步地,所述本端接收到对端回复的回显应答报文前,该方法还包括:对端将接收到的回显请求报文的内容拷贝至回显应答报文中,并在所述回显应答报文中添加接收到所述回显请求报文的时间、发送所述回显应答报文的时间后,将所述回显应答报文回复给本端。
进一步地,所述计算链路质量指标包括:计算链路的时延,具体为:
计算接收到回显应答报文的时间与该回显应答报文内容中的发送时间之差,得到链路的时延。
进一步地,所述计算链路质量指标包括:计算链路的时延抖动,具体为:
计算本次接收到回显应答报文的时间与该回显应答报文内容中的发送时间之差,得到当前时延;
计算历史记录中存储的前一次接收到回显应答报文的时间与该回显应答报文内容中的发送时间之差,得到前次时延;
计算当前时延与前次时延之差,即得到链路的时延抖动。
进一步地,所述计算链路质量指标包括:计算链路的丢包率,具体为:
设定检测时间段;
对在设定的检测时间段内发送的回显请求报文进行计数,得到在设定的检测时间段内发送回显请求报文的数量;
对在设定的检测时间段内接收到的回显应答报文进行计数,得到在设定的检测时间段内实际接收到回显应答报文的数量;
计算所述接收到回显应答报文的数量与所述发送回显请求报文的数量之差,得到设定的检测时间段内的丢包数量;
使用所述丢包数量除以所述发送回显请求报文的数量,得到设定的检测时间段内链路的丢包率。
进一步地,所述计算链路质量指标包括:确定在链路上是否发生乱序,具体为:
判断连续接收的两个回显应答报文中,后接收回显应答报文内容中的包序号与先接收回显应答报文内容中的包序号的差是否大于0,如果大于,则认为链路上没有发生乱序;如果不大于,则表明链路上发生了乱序。
进一步地,所述计算链路质量指标包括:计算链路的单向时延,具体为:
计算接收到回显应答报文的时间与该回显应答报文内容中的发送该回显应答报文的时间之差,即得到链路的单向时延。
进一步地,所述计算链路质量指标包括:计算链路的单向时延抖动,具体为:
计算本次接收到回显应答报文的时间与该回显应答报文内容中的发送该回显应答报文的时间之差,得到当前单向时延;
计算历史记录中存储的前一次接收到回显应答报文的时间与该回显应答报文内容中的发送该回显应答报文的时间之差,得到前次单向时延;
计算当前单向时延与前次单向时延之差,即得到链路的单向时延抖动。
本发明还提供一种链路质量检测装置,该装置包括:设置于本端的收发模块、计算模块和历史记录模块;其中,
收发模块,用于周期性向对端发送包括回显请求报文自身发送时间、包序号、和会话标识的回显请求报文,并接收对端回复的回显应答报文;所述会话标识为唯一标识一个链路质量检测流程的指标,启动多个链路质量检测流程时,每个流程根据所述会话标识区分属于自身的回显请求报文、和回显应答报文;
计算模块,用于监测到接收到对端回复的回显应答报文时,根据该回显应答报文的内容、接收到该回显应答报文的时间、以及历史记录计算链路质量指标;
历史记录模块,用于将接收到的包括所述回显请求报文内容的回显应答报文的内容、接收到该回显应答报文的时间存储在历史记录中。
进一步地,所述回显应答报文为:对端将接收到的回显请求报文的内容拷贝至对应的回显应答报文中形成的报文。
进一步地,所述回显应答报文进一步为:对端将接收到的回显请求报文的内容拷贝至对应的回显应答报文,并在该回显应答报文中添加接收到该回显请求报文的时间、发送该回显应答报文的时间后形成的报文。
进一步地,所述计算模块包括:时延计算模块、和/或抖动计算模块、和/或丢包率计算模块;其中,
时延计算模块,用于计算接收到回显应答报文的时间与该回显应答报文内容中的发送时间之差,得到链路的时延;
抖动计算模块,用于计算本次接收到回显应答报文的时间与该回显应答报文内容中的发送时间之差,得到当前时延;计算历史记录中存储的前一次接收到回显应答报文的时间与该回显应答报文内容中的发送时间之差,得到前次时延;并计算当前时延与前次时延之差,得到链路的时延抖动;
丢包率计算模块,用于设定检测时间段;对在设定的检测时间段内发送的回显请求报文进行计数,得到在设定的检测时间段内发送回显请求报文的数量;对在设定的检测时间段内接收到的回显应答报文进行计数,得到在设定的检测时间段内实际接收到回显应答报文的数量;计算所述述接收到回显应答报文的数量与所述发送回显请求报文的数量的差值,并使用该差值除以所述发送回显请求报文的数量,得到设定的检测时间段内链路的丢包率;
乱序确定模块,用于判断连续接收的两个回显应答报文中,后接收回显应答报文内容中的包序号与先接收回显应答报文内容中的包序号的差是否大于0,在大于时,确定链路上没有发生乱序;在不大于时,确定链路上发生了乱序。
进一步地,所述计算模块还包括:单向时延计算模块、和/或单向抖动计算模块、和/或单向丢包率计算模块;其中,
单向时延计算模块,用于计算接收到回显应答报文的时间与该回显应答报文内容中的发送该回显应答报文的时间之差,即得到链路的单向时延;
单向抖动计算模块,用于根据本次接收到的回显应答报文计算链路的单向时延,得到当前单向时延;根据前一次接收到的回显应答报文计算链路的单向时延,得到前次单向时延;计算当前单向时延与前次单向时延之差,得到链路的单向时延抖动。
本发明所提供的链路质量检测方法及装置,通过将回显请求报文的发送时间和包序号作为回显请求报文的内容,并由本端根据接收到回显应答报文的时间和该回显请求报文的内容、以及历史记录计算链路质量指标,使得仅在本端设置链路质量检测机制即能够实现链路质量检测。本发明所提供的方法和装置还具有以下优点及特点:
通过对端在该回显应答报文中添加接收到该回显请求报文的时间、发送该回显应答报文的时间,本发明还能够计算出链路的单向时延、单向时延抖动和单向丢包率。
具体实施方式
本发明实施例的原理是:本端周期性向对端发送回显请求报文,对端接收到回显请求报文后,立即通过回显应答报文返回接收到的回显报文的内容,以此检测链路的可达性;将回显请求报文的发送时间和包序号作为回显请求报文的内容,并由本端根据接收到回显应答报文的时间和该回显请求报文的内容、以及历史记录计算链路质量指标,不需要对端设置相应的链路质量检测机制进行协助,可以认为链路质量检测操作对对端是透明的,这样,使得仅在本端设置链路质量检测机制即能够实现链路质量检测。
通常,链路建立后,将链路的一端称为本端。
本发明实施例链路质量检测方法的实现流程如图1所示,包括以下步骤:
步骤101:本端周期性向对端发送回显请求报文;
其中,所述回显请求报文的内容包括回显请求报文自身的发送时间和包序号;所述回显请求报文自身的发送时间是指:本端发送所述回显请求报文的时间。
本发明实施例描述了一个链路质量检测流程,而所述回显请求报文的内容还可以包括:会话标识;所述会话标识用于唯一标识一个链路质量检测流程,这样,当本端启动多个链路质量检测流程时,即可根据所述会话标识区分回显请求报文、以及回显应答报文是属于哪一个链路质量检测流程;其中,启动多个链路质量检测流程时,每个流程根据所述会话标识区分属于自身的回显请求报文、以及回显应答报文,而根据属于其自身的回显请求报文、以及回显应答报文进行链路质量检测的操作,则与本发明实施例一致,此处不再赘述。
步骤102:对端将接收到的回显请求报文的内容拷贝至回显应答报文中,并将该回显应答报文回复给本端。
这里,步骤102还可以为:对端将接收到的回显请求报文的内容拷贝至回显应答报文中,并在该回显应答报文中添加接收到该回显请求报文的时间、发送该回显应答报文的时间后,将该回显应答报文回复给本端;这样,回复给本端的回显应答报文既包括接收到的回显请求报文的内容,还包括接收到该回显请求报文的时间、发送该回显应答报文的时间。
步骤103:本端接收到对端回复的回显应答报文,根据该回显应答报文的内容、接收到该回显应答报文的时间、以及历史记录计算链路质量指标,并将该回显应答报文的内容、接收到该回显应答报文的时间存储在历史记录中。
其中,当所述回显应答报文的内容包括回显请求报文的内容时,或所述回显应答报文既包括回显请求报文的内容、还包括接收到回显请求报文的时间、发送该回显应答报文的时间时,所述计算链路质量指标包括:计算链路的时延,计算链路的时延抖动,计算链路的丢包率、确定在链路上是否发生乱序。
当所述回显应答报文既包括回显请求报文的内容、还包括接收到回显请求报文的时间、发送该回显应答报文的时间时,所述计算链路质量指标还可以包括:计算链路的单向时延,计算链路的单向时延抖动,计算链路的单向丢包率。其中,
所述计算链路的时延具体为:计算接收到回显应答报文的时间与该回显应答报文内容中的发送时间之差,即得到链路的时延。
所述计算链路的时延抖动具体为:计算本次接收到回显应答报文的时间与该回显应答报文内容中的发送时间之差,得到当前时延;计算历史记录中存储的前一次接收到回显应答报文的时间与该回显应答报文内容中的发送时间之差,得到前次时延;计算当前时延与前次时延之差,即得到链路的时延抖动。
所述计算链路的丢包率具体为:
步骤a1、设定检测时间段;
步骤b1、对在设定的检测时间段内发送的回显请求报文进行计数,得到在设定的检测时间段内发送回显请求报文的数量;
步骤c1、对在设定的检测时间段内接收到的回显应答报文进行计数,得到在设定的检测时间段内实际接收到回显应答报文的数量;
步骤d1、计算所述接收到回显应答报文的数量与所述发送回显请求报文的数量之差,得到设定的检测时间段内的丢包数量;
步骤e1、使用所述丢包数量除以所述发送回显请求报文的数量,得到设定的检测时间段内链路的丢包率。
所述确定在链路上是否发生乱序,具体为:
判断连续接收的两个回显应答报文中,后接收回显应答报文内容中的包序号与先接收回显应答报文内容中的包序号的差是否大于0,如果大于,则认为链路上没有发生乱序;如果不大于,则表明链路上发生了乱序。
所述计算链路的单向时延具体为:
计算接收到回显应答报文的时间与该回显应答报文内容中的发送该回显应答报文的时间之差,即得到链路的单向时延。
所述计算链路的单向时延抖动具体为:
步骤a2、计算本次接收到回显应答报文的时间与该回显应答报文内容中的发送该回显应答报文的时间之差,得到当前单向时延;
步骤b2、计算历史记录中存储的前一次接收到回显应答报文的时间与该回显应答报文内容中的发送该回显应答报文的时间之差,得到前次单向时延;
步骤c2、计算当前单向时延与前次单向时延之差,即得到链路的单向时延抖动。
本发明实施例一链路质量检测装置,包括:设置于本端的第一收发模块、计算模块和历史记录模块;其中,
第一收发模块,用于周期性向对端发送回显请求报文;并接收对端回复的回显应答报文;其中,所述回显请求报文的内容包括回显请求报文自身的发送时间和包序号;
计算模块,用于监测到接收到对端回复的回显应答报文时,根据该回显应答报文的内容、接收到该回显应答报文的时间、以及历史记录计算链路质量指标;
历史记录模块,用于将接收到的回显应答报文的内容、接收到该回显应答报文的时间存储在历史记录中;其中,所述回显应答报文的内容包括所述回显请求报文的内容。
进一步地,该装置进一步包括:
第二收发模块,设置于对端,用于接收到回显请求报文时,将接收到的回显请求报文的内容拷贝至回显应答报文中,并将该回显应答报文回复给本端。
其中,所述计算模块包括:时延计算模块、和/或抖动计算模块、和/或丢包率计算模块;其中,
时延计算模块,用于计算接收到回显应答报文的时间与该回显应答报文内容中的发送时间之差,即得到链路的时延;
抖动计算模块,用于计算本次接收到回显应答报文的时间与该回显应答报文内容中的发送时间之差,得到当前时延;计算历史记录中存储的前一次接收到回显应答报文的时间与该回显应答报文内容中的发送时间之差,得到前次时延;并计算当前时延与前次时延之差,即得到链路的时延抖动;
丢包率计算模块,用于设定检测时间段;对在设定的检测时间段内发送的回显请求报文进行计数,得到在设定的检测时间段内发送回显请求报文的数量;对在设定的检测时间段内接收到的回显应答报文进行计数,得到在设定的检测时间段内实际接收到回显应答报文的数量;计算所述接收到回显应答报文的数量与所述发送回显请求报文的数量之差,得到设定的检测时间段内的丢包数量;并使用所述丢包数量除以所述发送回显请求报文的数量,得到设定的检测时间段内链路的丢包率;
乱序确定模块,用于判断连续接收的两个回显应答报文中,后接收回显应答报文内容中的包序号与先接收回显应答报文内容中的包序号的差是否大于0,在大于时,确定链路上没有发生乱序;在不大于时,确定链路上发生了乱序。
本发明实施例二链路质量检测装置,包括:设置于本端的第一收发模块、计算模块和历史记录模块,其中,除计算模块外,其余模块的组成与功能与本发明实施例一中相应模块的组成与功能相同;
本发明实施例二中,由第三收发模块替换了本发明实施例一中的第二收发模块;所述第三收发模块,设置于对端,用于接收到回显请求报文时,将接收到的回显请求报文的内容拷贝至回显应答报文中,并在该回显应答报文中添加接收到该回显请求报文的时间、发送该回显应答报文的时间后,将该回显应答报文回复给本端;
相应的,与本发明实施例一中的计算模块相比,本发明实施例二中的计算模块还可以包括:单向时延计算模块、和/或单向抖动计算模块、和/或单向丢包率计算模块;其中,
单向时延计算模块,用于计算接收到回显应答报文的时间与该回显应答报文内容中的发送该回显应答报文的时间之差,即得到链路的单向时延;
单向抖动计算模块,用于计算本次接收到回显应答报文的时间与该回显应答报文内容中的发送该回显应答报文的时间之差,得到当前单向时延;计算历史记录中存储的前一次接收到回显应答报文的时间与该回显应答报文内容中的发送该回显应答报文的时间之差,得到前次单向时延;计算当前单向时延与前次单向时延之差,即得到链路的单向时延抖动;
以下分别以LTE系统中,连接演进的基站(eNB)和核心网(EPC)的流控传输协议(SCTP,Stream Control Transmission Protocol)链路的链路质量检测流程,以及连接eNB和EPC的GPRS用户面隧道协议(GTP-U,GPRSTunnelling Protocol for User Plane)链路的链路质量检测流程为例,具体说明本发明提供的方法及装置。
LTE系统中,连接eNB和EPC的SCTP链路的链路质量检测流程如下:
步骤A1、eNB周期性向EPC发送心跳(Heartbeat)包,所述Heartbeat包的内容包括Heartbeat包自身的发送时间和包序号;其中,SCTP中,Heartbeat包实现回显请求,而回显应答通过心跳应答(HeartbeatACK,HeartbeatAcknowledgement)实现;
这里,Heartbeat包的结构图如2所示,包括:类型(Type)字段、数据块标识(Chunk Flag)字段、心跳长度(Heartbeat Length)字段、心跳信息类型-长度-值结构(变长)(Heartbeat Information TLV(Variable Length))字段;
通过以下操作使得所述Heartbeat包的内容包括Heartbeat包自身的发送时间和包序号:
扩展Heartbeat Information TLV(Variable Length)字段,在其中增加发送时间戳(Send Time Stamp)、序列号(Serial Number)字段和会话标识(SessionID)字段后,Heartbeat Information TLV(Variable Length)字段的结构如图3所示;并分别将Heartbeat包自身的发送时间、包序号和本链路质量检测流程的会话标识添加在Send Time Stamp字段和Serial Number字段和Session ID字段中;这里,扩展Heartbeat Information TLV(Variable Length)字段时,还可以在其中增加对端发送时间戳(Peer Send Time Stamp)字段、对端接收时间戳(PeerReceive Time Stamp)字段和对端序列号(Peer Serial Number)字段。
步骤B1、EPC将接收到的Heartbeat包的内容拷贝至HeartbeatACK包中,并将该HeartbeatACK包回复给eNB。
这里,步骤B1还可以为:EPC将接收到的Heartbeat包的内容拷贝至HeartbeatACK包中,并在该HeartbeatACK包中的Peer Receive Time Stamp字段、Peer Send Time Stamp字段中分别添加接收到该Heartbeat包的时间、发送该HeartbeatACK包的时间后,将该HeartbeatACK包回复给本端;
步骤C1、eNB接收到EPC回复的HeartbeatACK包,根据该HeartbeatACK包的内容、接收到该HeartbeatACK包的时间、以及历史记录计算链路质量指标,并将该HeartbeatACK包的内容、接收到该HeartbeatACK包的时间存储在历史记录中。
LTE系统中,连接eNB和EPC的GTP-U链路的链路质量检测流程如下:
步骤A2、eNB周期性向EPC回显请求(Echo Request)报文,所述EchoRequest报文的内容包括Echo Request报文自身的发送时间和包序号;其中,GTP-U中,Echo Request报文实现回显请求,而回显应答通过回显响应(EchoResponse)报文实现;
这里,Echo Request报文的结构图如4所示;通过以下操作使得所述EchoRequest报文的内容包括Echo Request报文自身的发送时间和包序号:
扩展Echo Request报文中的私有扩展(Private Extension)字段,在其中增加Send Time Stamp字段、Serial Number字段和Session ID字段后,PrivateExtension字段的结构如图5所示;并分别将Echo Request报文自身的发送时间、包序号和本链路质量检测流程的会话标识添加在Send Time Stamp字段、SerialNumber字段和Session ID字段中;
步骤B2、EPC将接收到的Echo Request报文的内容拷贝至Echo Response报文中,并将该Echo Response报文回复给eNB。
这里,将接收到的Echo Request报文的内容拷贝至Echo Response报文中具体为:扩展Echo Response报文中的Private Extension字段,在其中增加SendTime Stamp字段、Serial Number字段和Session ID字段,将接收到的EchoRequest报文的内容拷贝至增加的Send Time Stamp字段、Serial Number字段和Session ID字段。
这里,步骤B1还可以为:扩展Echo Response报文中的Private Extension字段,在其中增加Send Time Stamp字段、Serial Number字段、Session ID字段、Peer Send Time Stamp字段、Peer Receive Time Stamp字段;EPC将接收到的EchoRequest报文的内容拷贝至增加的Send Time Stamp字段、Serial Number字段和Session ID字段中,并在Peer Receive Time Stamp字段、Peer Send Time Stamp字段中分别添加接收到该Echo Request报文的时间、发送该Echo Response报文的时间后,将该Echo Response报文回复给本端;
步骤C1、eNB接收到EPC回复的Echo Response报文,根据该Echo Response报文的内容、接收到该Echo Response报文的时间、以及历史记录计算链路质量指标,并将该Echo Response报文的内容、接收到该Echo Response报文的时间存储在历史记录中。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。