背景技术
随着业务需求的增加和互联网协议(IP,Internet Protocol)网络技术的发展,越来越多的实时业务在IP网络上传输。语音、视频、多媒体、电话会议等实时业务的加入给IP网络提出了新的挑战,如何保证实时业务的质量是目前的一个热点问题。RTP是一种端到端的传输协议,用来传输实时业务的数据,它提供的序列号、时间戳等信息为报文在宿端重组提供依据。但RTP本身并不提供实时业务的数据流的QoS保障和实时传输保障,需要RTCP伴随完成QoS参数计算,为数据流的源端传输控制提供依据。RTCP实现了端到端的网络层QoS参数的反馈,如网络延迟、延迟抖动、丢包率等。
对于业务质量,我们通常希望从两方面来保证。在业务质量正常时,例行检查业务质量,防范于未然;当业务质量出现问题时,尽快定位问题,掌握引起业务质量变化的原因,实施相应的改进措施。常用的监测和定位方法包括,测量业务传输过程中QoS性能变化,通过既定的性能指标,如网络延迟、延迟抖动、丢包率等,以及各指标的门限值来定位问题。RTP/RTCP的自身属性决定了其可以用于测量实时业务在网络中的QoS参数。测量结果除反映业务的QoS情况外,还可以供例如资源接纳管理等其他控制实体使用。
目前,常用的基于RTP/RTCP的测量QoS的方法包括主动测量方法和被动测量方法。
在主动测量方法中,测量点在监测端到端的RTP数据流的同时,还需要额外产生对应RTP数据流的RTCP发送方报告(SR,Sender Report)/接收方报告(RR,Receiver Report)报文,并用额外的RTCP SR/RR与其他测量点进行交互,得到与其他测量点之间的QoS参数。具体的,如图1所示,假设用户驻地设备(CPE,Customer Premises Equipment)-A是报文的发送方,CPE-B是报文的接收方,CPE-A与CPE-B之间设置有3个测量点(Moniter),分别是测量点1、测量点2和测量点3,CPE-A发送给CPE-B的RTP数据流依次经过测量点1、测量点2和测量点3,具体包括:
步骤S101:CPE-A发出RTP/RTCP SR报文。
步骤S102:测量点1记录从本地转发出去的RTP报文的个数,当RTCP SR报文到达测量点1时,测量点1转发RTCP SR报文,并生成携带有测量点1转发RTP报文的信息的额外的(Extra)RTCP SR报文,将Extra RTCP SR报文发送给测量点2。
步骤S103A:测量点2记录从本地转发出去的RTP报文的个数,当RTCPSR报文到达测量点2时,测量点2转发RTCP SR报文,并生成携带有测量点2转发RTP报文的信息的Extra RTCP SR报文,将Extra RTCP SR报文发送给测量点3。
步骤S103B(与步骤S103A没有必然的先后顺序关系):测量点2收到测量点1发出的Extra RTCP SR报文后,根据记录的转发RTP报文的信息以及测量点1发送的Extra RTCP SR报文,计算RTP流在测量点1与测量点2之间的QoS参数,构造Extra RTCP RR报文,将构造的Extra RTCP RR报文返回给测量点1。测量点1收到测量点2构造的Extra RTCP RR报文后,可以根据这个Extra RTCP RR报文,计算往返延时RTT。
步骤S104A:测量点3记录从本地转发出去的RTP报文的个数,当RTCPSR报文到达测量点3时,测量点3转发RTCP SR报文到CPE-B。
步骤S104B(与步骤S104A没有必然的先后顺序关系):当收到测量点2发出的Extra RTCP SR报文后,测量点3根据记录的转发RTP报文的信息以及测量点2发出的Extra RTCP SR报文,计算RTP流在测量点2与测量点3之间的QoS参数,构造Extra RTCP RR报文,将构造的Extra RTCP RR报文返回给测量点2。测量点2收到测量点3构造的Extra RTCP RR报文后,可以根据这个Extra RTCP RR报文,计算往返延时RTT。
步骤S105:CPE-B收到RTCP SR报文后,计算端到端的QoS参数,生成端到端的RTCP RR报文,并向CPE-A返回RTCP RR报文。
发明人在认真分析、仔细研究后发现,在主动测量方法中,测量点之间除需要转发RTP/RTCP SR报文外,还需要交互Extra RTCP SR/RR报文,这样会增加网络的负担。
在被动测量方法中,测量点监测经过本地的RTP数据流,分别计算RTP数据流在报文的发送方与本地之间以及本地与报文的接收方之间的QoS参数。具体的,如图2所示,CPE-A与CPE-B之间设置有2个测量点,分别是测量点1和测量点2,CPE-A发送给CPE-B的RTP数据流依次经过测量点1和测量点2,包括:
步骤S201:CPE-A发出RTP/RTCP SR报文。
步骤S202:测量点1收到RTCP SR报文后,计算RTP数据流在CPE-A与本地之间的QoS参数,并转发RTCP SR报文。
步骤S203:测量点2收到RTCP SR报文后,计算RTP数据流在CPE-A与本地之间的QoS参数,并转发RTCP SR报文。
步骤S204:CPE-B计算端到端的QoS参数,生成端到端的RTCP RR报文,并向CPE-A返回RTCP RR报文。
步骤S205:测量点2收到RTCP RR报文后,计算RTP数据流在CPE-B与本地之间的QoS参数,并转发RTCP RR报文。
步骤S206:测量点1收到RTCP RR报文后,计算RTP数据流在CPE-B与本地之间的QoS参数,并转发RTCP RR报文给CPE-A。
发明人在认真分析、仔细研究后发现,在被动测量方法中,测量点只能计算两端到本地之间的QoS参数,无法计算相邻测量点到本地之间的QoS参数,所以,被动测量方法无法做到基于网段的测量。
因此,目前的测量QoS的方法不是增加网络的负担,就是无法基于网段测量QoS。
具体实施方式
下面将结合附图,对本发明的最佳实施方案进行详细描述。
首先结合图3,对本发明的RTCP SR报文的转发方法的实施例进行说明。如图3所示,包括:
步骤S301:接收RTCP SR报文,并计算RTP数据流在报文发送方与本地之间的QoS参数。
RTCP SR报文的格式如图4所示,其中,V表示版本,P表示填充位置是否有效,RC表示接收报告的个数,PT表示包的类型,SR表示发送方报告,Length表示报文的长度。RTCP SR报文包含四个部分,分别是8字节的头部、20字节的发送信息、以24字节为单位的多个接收报告块(Receipt ReportBlock),若有需要,还可以有一个扩展部分,如图4所示,同步源标识1(SSRC_1)字段至从收到最近一个RTCP SR报文到发送生成的接收报告的延迟(DLSR,Delay since last SR)字段即为一个接收报告块。
接收RTCP SR报文的可以是处于报文发送方相邻下游的测量点,此时,RTCP SR报文是报文发送方发出的并且没有经过任何测量点转发或处理的RTCP SR报文。接收RTCP SR报文的也可以是处于报文发送方下游但不是相邻下游的测量点,此时,RTCP SR报文是相邻上游的测量点发出的,并且可以是报文发送方发出的但经过相邻上游的测量点处理的RTCP SR报文,也可以是相邻上游的测量点生成的新的RTCP SR报文。
在实际应用中,报文发送方或者相邻上游的测量点可以间隔性的发出RTCP SR报文,进一步的,可以周期性的发出RTCP SR报文,例如每间隔5秒发出一个RTCP SR报文,当然,接收RTCP SR报文时,也是间隔性的接收RTCP SR,进一步的,可以周期性的接收RTCP SR报文。
每个测量点在接收到RTCP SR报文之前,会接收到至少一个RTP报文,RTP报文可以由报文发送方持续发出,形成RTP流,RTCP SR报文可以与RTP报文在传输层复用传输。RTP报文的格式如图5所示,其中,X表示是否有扩展头部,CC表示CSRC的个数,M是一个标记,PT表示负载类型。
测量点在接收到RTP报文后,会从RTP报文中提取序列号,用以计算丢包率;提取时间戳,用以计算传输延迟及延迟抖动。接收到RTCP SR报文后,无论这个RTCP SR报文是否经过上游测量点转发或处理,只要RTCP SR报文具有报文发送方发送的RTCP SR报文的全部信息,就可以记录RTCP SR报文到达本地的时间,并根据报文发送方发送的RTCP SR报文记载的发送报文数,计算在两个相邻RTCP SR报文到达本地的间隔时间内RTP数据流在报文发送方与本地之间的丢包率以及从收到报文发送方发送的第一个RTCP SR报文到接收到报文发送方发送的当前的RTCP SR报文间隔内的累积丢包数。
需要说明的是,如果接收的RTCP SR报文具有报文发送方发出的RTCPSR报文的所有信息,则在接收到RTCP SR报文后,才能计算RTP数据流在报文发送方与本地之间的QoS参数;如果接收的RTCP SR报文是相邻上游测量点发出的独立于报文发送方发出的RTCP SR报文的新报文,则接收RTCPSR报文的过程与计算RTP数据流在报文发送方与本地之间的QoS参数的过程没有必然的先后顺序关系。
步骤S302:根据所述RTCP SR报文及计算的QoS参数,生成新的RTCPSR报文。
具体的,可以按照下述方式生成新的RTCP SR报文:根据计算的RTP数据流在报文发送方与本地之间的QoS参数,生成接收报告,再将接收报告放入RTCP SR报文的接收报告区域,生成所述新的RTCP SR报文。在接收报告中,SSRC为报文发送方的SSRC,最近的发送方报告携带的时间戳(LSR,Last SR)为RTCP SR报文到达本地的时间,DLSR为生成接收报文所用的时间。
如果RTCP SR报文是报文发送方发送的并且没有经过任何测量点转发或处理的RTCP SR报文,则可以将生成的接收报告放入RTCP SR报文的接收报告区域,例如,可以放在RTCP SR报文中已有的接收报告块的后面。一般来说,只要接收的RTCP SR报文中的接收报告块的个数小于31,都可以将新生成的接收报告放入RTCP SR报文中已有的接收报告块的后面,其中,头部域的RC字段加1,Length字段加6。
如果RTCP SR报文是相邻上游测量点发送的并且携带有RTP数据流在报文发送方与相邻上游测量点之间的QoS参数,则可以将接收报告放入RTCPSR报文中存放RTP数据流在报文发送方与相邻上游测量点之间的QoS参数的原来所在的位置,当然,QoS参数可以以接收报告的形式存在于RTCP SR报文中,换句话说,就是在RTCP SR报文中用新的接收报告替换掉相邻上游测量点生成的接收报告。同样,如果接收的RTCP SR报文是相邻上游测量点新生成的独立于报文发送方发送的RTCP SR报文的新报文,则也可以在RTCPSR报文中用新的接收报告替换掉相邻上游测量点生成的接收报告。
另外,还可以按照下述方式生成新的RTCP SR报文:根据计算的RTP数据流在报文发送方与本地之间的QoS参数,生成接收报告,再根据所述生成的接收报告,生成独立于所述RTCP SR报文的所述新的RTCP SR报文。一般来说,如果接收的RTCP SR报文中的接收报告块的个数等于31,则可以为生成的接收报告生成一个独立于接收的RTCP SR报文的新报文。此时,新报文的头部域中SSRC为测量点的标识,RC为1,Length为新报文的实际长度,其他信息与接收的RTCP SR报文相同。
步骤S303:将所述新的RTCP SR报文提供给相邻下游测量点。
无论是对接收的RTCP SR报文进行改造获得新的RTCP SR报文,还是生成一个独立于接收的RTCP SR报文的新报文,都可以将新的RTCP SR报文提供给相邻下游测量点。这样,相邻下游测量点就可以根据新的RTCP SR报文携带的RTP数据流在报文发送方与执行步骤S301、302、303的测量点之间的QoS参数,计算RTP数据流在执行步骤S301、302、303的测量点与本地之间的QoS参数。
需要说明的是,在图3所示的实施例中,如果RTCP SR报文是相邻上游测量点发出的,则RTCP SR报文可以携带RTP数据流在报文发送方与相邻上游测量点之间的QoS参数,并且接收RTCP SR报文及计算RTP数据流在报文发送方与本地之间的QoS参数后,可以根据RTCP SR报文携带的QoS参数以及计算的QoS参数,计算RTP数据流在相邻上游测量点与本地之间的QoS参数。
图3所示的实施例可以由多种形式的装置实现,其中的一个装置实施例可以包括:报文接收单元,用于接收RTCP SR报文;QoS参数计算单元,用于计算RTP数据流在报文发送方与本地之间的QoS参数;新报文生成单元,用于根据所述报文接收单元接收的RTCP SR报文及所述QoS参数计算单元计算的QoS参数,生成新的RTCP SR报文;报文提供单元,用于将所述新报文生成单元生成的新的RTCP SR报文提供给相邻下游测量点。
报文接收单元接收的RTCP SR报文可以具有报文发送方发出的RTCP SR报文的所有信息,也可以是相邻上游的测量点生成的新的RTCP SR报文。
报文接收单元还可以接收RTP报文,在接收到RTP报文后,报文接收单元可以将RTP报文提供给同一个装置或测量点的其他处理单元,其他处理单元会从RTP报文中提取序列号,用以计算丢包率;提取时间戳,用以计算传输延迟及延迟抖动。报文接收单元接收到RTCP SR报文后,无论这个RTCP SR报文是否经过上游测量点转发或处理,只要RTCP SR报文具有报文发送方发送的RTCP SR报文的全部信息,就可以将RTCP SR报文提供给其他处理单元,由其他处理单元记录RTCP SR报文到达本地的时间,并根据报文发送方发送的RTCP SR报文记载的发送报文数,计算在两个相邻RTCP SR报文到达本地的间隔时间内RTP数据流在报文发送方与本地之间的丢包率以及从收到报文发送方发送的第一个RTCP SR报文到接收到报文发送方发送的当前的RTCPSR报文间隔内的累积丢包数。当然,这里的其他处理单元可以是QoS参数计算单元。
需要说明的是,如果报文接收单元接收的RTCP SR报文具有报文发送方发出的RTCP SR报文的所有信息,则在接收到RTCP SR报文后,QoS参数计算单元才能计算RTP数据流在报文发送方与本地之间的QoS参数;如果报文接收单元接收的RTCP SR报文是相邻上游测量点发出的独立于报文发送方发出的RTCP SR报文的新报文,则报文接收单元接收RTCP SR报文的过程与QoS参数计算单元计算RTP数据流在报文发送方与本地之间的QoS参数的过程没有必然的先后顺序关系。
新报文生成单元可以按照下述方式生成新的RTCP SR报文:根据计算的RTP数据流在报文发送方与本地之间的QoS参数,生成接收报告,再将接收报告放入RTCP SR报文的接收报告区域,生成所述新的RTCP SR报文。
如果RTCP SR报文是报文发送方发送的并且没有经过任何测量点转发或处理的RTCP SR报文,则新报文生成单元可以将生成的接收报告放入RTCPSR报文的接收报告区域,例如,可以放在RTCP SR报文中已有的接收报告块的后面。
如果RTCP SR报文是相邻上游测量点发送的并且携带有RTP数据流在报文发送方与相邻上游测量点之间的QoS参数,则新报文生成单元可以将接收报告放入RTCP SR报文中存放RTP数据流在报文发送方与相邻上游测量点之间的QoS参数的原来所在的位置,当然,QoS参数可以以接收报告的形式存在于RTCP SR报文中,换句话说,就是在RTCP SR报文中用新的接收报告替换掉相邻上游测量点生成的接收报告。同样,如果接收的RTCP SR报文是相邻上游测量点新生成的独立于报文发送方发送的RTCP SR报文的新报文,则新报文生成单元也可以在RTCP SR报文中用新的接收报告替换掉相邻上游测量点生成的接收报告。
另外,新报文生成单元还可以按照下述方式生成新的RTCP SR报文:根据计算的RTP数据流在报文发送方与本地之间的QoS参数,生成接收报告,再根据所述生成的接收报告,生成独立于所述RTCP SR报文的所述新的RTCPSR报文。
无论新报文生成单元对接收的RTCP SR报文进行改造获得新的RTCP SR报文,还是新报文生成单元生成一个独立于接收的RTCP SR报文的新报文,报文提供单元都可以将新的RTCP SR报文提供给相邻下游测量点。
在图3所示的实施例中,一个测量点可以将新的RTCP SR报文提供给相邻下游测量点,这样,相邻下游测量点就可以根据这个新的RTCP SR报文进行基于网段的测量QoS的过程。为此,本发明还提供一种基于RTP/RTCP的测量QoS的方法实施例,如图6所示,包括:
步骤S601:接收携带有RTP数据流在报文发送方与相邻上游测量点之间的QoS参数的RTCP SR报文,并计算RTP数据流在报文发送方与本地之间的QoS参数。
携带有RTP数据流在报文发送方与相邻上游测量点之间的QoS参数的RTCP SR报文可以是由相邻上游测量点发出的,接收的这个RTCP SR报文可以具有报文发送方发送的RTCP SR报文的所有信息,接收的这个RTCP SR报文也可以是相邻上游测量点生成的独立于报文发送方发送的RTCP SR报文的新报文。QoS参数可以以接收报告的形式存在于接收的RTCP SR报文中。
接收到具有报文发送方发送的RTCP SR报文的所有信息的RTCP SR报文后,或者接收到报文发送方发送的RTCP SR报文后,可以计算RTP数据流在报文发送方与本地之间的QoS参数。
需要说明的是,如果接收的RTCP SR报文具有报文发送方发送的RTCPSR报文的所有信息,则需要在接收到这样的报文后,才能计算RTP数据流在报文发送方与本地之间的QoS参数。如果接收的RTCP SR报文是相邻上游测量点生成的独立于报文发送方发送的RTCP SR报文,则接收携带有RTP数据流在报文发送方与相邻上游测量点之间的QoS参数的RTCP SR报文的过程,与计算RTP数据流在报文发送方与本地之间的QoS参数的过程没有必然的先后顺序关系。
步骤S602:根据RTP数据流在报文发送方与相邻上游测量点之间的QoS参数以及在报文发送方与本地之间的QoS参数,得到RTP数据流在相邻上游测量点与本地之间的QoS参数。
显然,在步骤S601之后,就可以得到RTP数据流在报文发送方与相邻上游测量点之间的QoS参数及在报文发送方与本地之间的QoS参数,有了这两个参数,就可以得到TP数据流在相邻上游测量点与本地之间的QoS参数,这样就实现基于网段测量QoS。
如果接收RTCP SR报文的是处于报文接收方上游的但不是相邻上游的测量点,且接收的RTCP SR报文具有报文发送方发送的RTCP SR报文的所有信息,则计算RTP数据流在报文发送方与本地之间的QoS参数后,还可以根据所述计算的RTP数据流在报文发送方与本地之间的QoS参数,生成接收报告,将所述接收报告放入接收的RTCP SR报文中的RTP数据流在报文发送方与相邻上游测量点之间的QoS参数原来所在的位置,生成新的RTCP SR报文,再将新的RTCP SR报文提供给相邻下游测量点。
需要说明的是,在图6所示的实施例中,如果接收RTCP SR报文的是处于报文接收方上游的但不是相邻上游的测量点,且接收的RTCP SR报文具有报文发送方发送的RTCP SR报文的所有信息,则计算RTP数据流在报文发送方与本地之间的QoS参数后,还可以根据计算的RTP数据流在报文发送方与本地之间的QoS参数,生成接收报告,再将接收报告放入接收的RTCP SR报文中的RTP数据流在报文发送方与相邻上游测量点之间的QoS参数原来所在的位置,生成新的RTCP SR报文,之后再将新的RTCP SR报文提供给相邻下游测量点。
如果接收RTCP SR报文的是处于报文接收方上游的但不是相邻上游的测量点,且接收的RTCP SR报文是独立于报文发送方发送的RTCP SR报文,则计算RTP数据流在报文发送方与本地之间的QoS参数后,还可以根据计算的RTP数据流在报文发送方与本地之间的QoS参数,生成接收报告,再根据生成的接收报告生成独立于报文发送方发送的RTCP SR报文的新的RTCP SR报文,之后再将新的RTCP SR报文提供给相邻下游测量点。
如果接收RTCP SR报文的是处于报文接收方相邻上游的测量点,且接收的RTCP SR报文具有报文发送方发送的RTCP SR报文的所有信息,则接收到RTCP SR报文后,可以去掉接收的RTCP SR报文携带的RTP数据流在报文发送方与相邻上游测量点之间的QoS参数,将接收的RTCP SR报文恢复为报文发送方发送的RTCP SR报文,再将报文发送方发送的RTCP SR报文提供给报文接收方。
如果接收RTCP SR报文的是处于报文接收方相邻上游的测量点,且接收的RTCP SR报文是独立于报文发送方发送的RTCP SR报文,则接收到RTCPSR报文后,可以去掉接收的RTCP SR报文,不再产生新的RTCP SR报文,将报文发送方发送的RTCP SR报文提供给报文接收方。
另外,在实际应用中,RTCP SR报文由报文发送方到达报文接收方的过程中,可能要经过不同互联网服务提供商(ISP,Internet Service Provider)提供的网络域。对于相邻的两个网络域来说,可能由于下游的网络域不支持上游的网络域对RTCP SR报文的修改格式,也可能由于不需要测量RTP数据流在这两个网络域之间的QoS参数,还可能由于上游的网络域不希望下游的网络域获得RTP数据流在上游的网络域的传输性能,还可能由于其他原因,总之,由于至少一种原因,上游的网络域的最后一个测量点可以不需要将RTP数据流在两个测量点之间的QoS参数提供给下游的网络域。
具体的,如果接收RTCP SR报文的是一个网络域的最后一个测量点,且接收的RTCP SR报文具有报文发送方发送的RTCP SR报文的所有信息,则接收到RTCP SR报文后,还可以去掉接收的RTCP SR报文携带的RTP数据流在报文发送方与相邻上游测量点之间的QoS参数,将接收的RTCP SR报文恢复为报文发送方发送的RTCP SR报文,再将报文发送方发送的RTCP SR报文提供给相邻下游的网络域。
如果接收RTCP SR报文的是一个网络域的最后一个测量点,且接收的RTCP SR报文是独立于报文发送方发送的RTCP SR报文,则接收到RTCP SR报文后,还可以去掉接收的独立于报文发送方发送的RTCP SR报文,不再产生新的RTCP SR报文,只将报文发送方发送的RTCP SR报文提供给相邻下游的网络域。
当然,如果下游的网络域能够支持上游的网络域对RTCP SR报文的修改格式,或者下游的网络域需要测量RTP数据流在这两个网络域之间的QoS参数,或者由于其他原因,上游的网络域的最后一个测量点也可以将生成的接收报告提供给下游的网络域。
图6所示的实施例也可以由多种形式的装置实现,其中的一种装置实施例可以包括:报文接收单元,用于接收携带有RTP数据流在报文发送方与相邻上游测量点之间的QoS参数的RTCP SR报文;QoS参数计算单元,用于计算RTP数据流在报文发送方与本地之间的QoS参数;基于网段的QoS参数获得单元,用于根据所述报文接收单元接收的RTP数据流在报文发送方与相邻上游测量点之间的QoS参数以及所述QoS参数计算单元计算的在报文发送方与本地之间的QoS参数,得到RTP数据流在相邻上游测量点与本地之间的QoS参数。
携带有RTP数据流在报文发送方与相邻上游测量点之间的QoS参数的RTCP SR报文可以是由相邻上游测量点发出的,报文接收单元接收的这个RTCP SR报文可以具有报文发送方发送的RTCP SR报文的所有信息,接收的这个RTCP SR报文也可以是相邻上游测量点生成的独立于报文发送方发送的RTCP SR报文的新报文。QoS参数可以以接收报告的形式存在于接收的RTCPSR报文中。
报文接收单元接收到具有报文发送方发送的RTCP SR报文的所有信息的RTCP SR报文后,或者接收到报文发送方发送的RTCP SR报文后,QoS参数计算单元可以计算RTP数据流在报文发送方与本地之间的QoS参数。
需要说明的是,如果报文接收单元接收的RTCP SR报文具有报文发送方发送的RTCP SR报文的所有信息,则QoS参数计算单元需要在接收到这样的报文后,才能计算RTP数据流在报文发送方与本地之间的QoS参数。如果报文接收单元接收的RTCP SR报文是相邻上游测量点生成的独立于报文发送方发送的RTCP SR报文,则报文接收单元接收携带有RTP数据流在报文发送方与相邻上游测量点之间的QoS参数的RTCP SR报文的过程,与QoS参数计算单元计算RTP数据流在报文发送方与本地之间的QoS参数的过程没有必然的先后顺序关系。
显然,报文接收单元可以获得RTP数据流在报文发送方与相邻上游测量点之间的QoS参数,QoS参数计算单元可以计算出RTP数据流在报文发送方与本地之间的QoS参数,有了这两个参数,基于网段的QoS参数获得单元就可以计算出RTP数据流在相邻上游测量点与本地之间的QoS参数。
为便于本领域技术人员实施本发明,下面再介绍一个具体应用的实施例。如图7所示,在报文发送方与报文接收方之间设置有两个测量点,分别是测量点1和测量点2,具体包括:
步骤S701:报文发送方发出RTP报文及RTCP SR报文。
步骤S702:当RTP报文到达测量点1时,测量点1从RTP报文中提取序列号,用以计算丢包率;提取时间戳,用以计算传输延迟及延迟抖动。当RTCPSR报文到达测量点1时,测量点1记录RTCP SR报文到达的时间,根据报文发送方发送的RTCP SR报文记载的发送RTP报文数,计算在两个相邻RTCPSR报文期间RTP流在报文发送方与本地之间的丢包率以及从收到报文发送方发送的第一个RTCP SR报文到接收到报文发送方发送的当前的RTCP SR报文间隔内的累积丢包数,再结合已经计算得到的延迟抖动,生成接收报告。如果到达的RTCP SR报文中的接收报告块的个数小于31,则将生成的接收报告放入RTCP SR报文中已有的接收报告块的后面;如果到达的RTCP SR报文中的接收报告块的个数等于31,则需要额外生成一个新的RTCP SR报文用于存放生成的接收报告。另外,如果将生成的接收报告放入到达的RTCP SR报文中已有的接收报告块的后面,则到达的RTCP SR报文中的报文发送方及报文接收方的IP地址和端口号保持不变。
步骤S703:测量点1将携带有生成的接收报告的RTCP SR报文发送到测量点2。
步骤S704:当RTP报文到达测量点2时,测量点2从RTP报文中提取序列号,用以计算丢包率;提取时间戳,用以计算传输延迟及延迟抖动。当报文发送方发出的RTCP SR报文到达测量点2时,无论是否经过修改,测量点2都要记录RTCP SR报文到达的时间,根据报文发送方发送的RTCP SR报文记载的发送RTP报文数,计算在两个相邻RTCP SR报文期间RTP流在报文发送方与本地之间的丢包率以及从收到报文发送方发送的第一个RTCP SR报文到接收到报文发送方发送的当前的RTCP SR报文间隔内的累积丢包数。另外,如果测量点1将生成的接收报告放入报文发送方发送的RTCP SR报文,则测量点2可以计算出RTP数据流在测量点1与本地之间的QoS参数。具体的,可以先根据接收报告中的LSR、DLSR以及本地记录的RTCP SR报文到达本地的时间,计算出RTCP SR报文在两个测量点之间的传输延迟,再分别将接收报告中的丢包率、累积丢包数、传输延迟抖动与本地计算的QoS参数比较,计算出对应的两个测量点之间的QoS参数,实现基于网段的测量。此外,如果测量点1生成的接收报告存在于报文发送方发送的RTCP SR报文,则测量点2可以将自身生成的接收报告放入报文发送方发送的RTCP SR报文中测量点1生成的接收报告原来所在的位置;如果测量点1用生成的新的RTCP SR报文存放测量点1生成的接收报告,则测量点2可以去掉这个新的RTCP SR报文,生成一个新的RTCP SR报文存放自身生成的接收报告,或者,不去掉这个新的RTCP SR报文,而是将自身生成的接收报告放入这个新的RTCP SR报文中测量点1生成的接收报告原来所在的位置,总之,可以用一个独立于报文发送方发送的RTCP SR报文的另一个RTCP SR报文存放自身生成的接收报告。
步骤S705:测量点2将携带有自身生成的接收报告的RTCP SR报文提供给测量点3。
步骤S706:当RTP报文到达测量点3时,测量点3从RTP报文中提取序列号,用以计算丢包率;提取时间戳,用以计算传输延迟及延迟抖动。当报文发送方发出的RTCP SR报文到达测量点3时,无论是否经过修改,测量点3都要记录RTCP SR报文到达的时间,根据报文发送方发送的RTCP SR报文记载的发送RTP报文数,计算在两个相邻RTCP SR报文期间RTP流在报文发送方与本地之间的丢包率以及从收到报文发送方发送的第一个RTCP SR报文到接收到报文发送方发送的当前的RTCP SR报文间隔内的累积丢包数。另外,如果测量点2将生成的接收报告放入报文发送方发送的RTCP SR报文,则测量点3可以计算出RTP数据流在测量点2与本地之间的QoS参数。具体的,可以先根据接收报告中的LSR、DLSR以及本地记录的RTCP SR报文到达本地的时间,计算出RTCP SR报文在两个测量点之间的传输延迟,再分别将接收报告中的丢包率、累积丢包数、传输延迟抖动与本地计算的QoS参数比较,计算出对应的两个测量点之间的QoS参数,实现基于网段的测量。此外,测量点3还需要去掉RTCP SR报文中的测量点2生成的接收报告,恢复报文发送方发送的原始RTCP SR报文;如果测量点2生成新的RTCP SR报文存放生成的接收报告,则不将这个新的RTCP SR报文提供给报文接收方。
步骤S707:测量点3将报文发送方发送的原始RTCP SR报文提供给报文接收方。
步骤S708:计算端到端的QoS参数,生成端到端的RTCP RR报文,并向报文发送方返回RTCP RR报文。
报文接收方接收到报文发送方发送的RTCP SR报文,可以向报文发送方返回RTCP RR报文。RTCP RR报文的格式如图8所示,由图4及图8可以看出,RTCP RR报文相对于RTCP SR报文只是少了发送信息,其他部分与RTCPSR报文的格式都相同。
在本发明的实施例中,测量点只需要将生成的接收报告放入报文发送方发送的RTCP SR报文中,就可将生成的接收报告送到相邻下游的测量点,或者只需要生成一个新的RTCP SR报文用于存放生成的接收报告,并将这个新的RTCP SR报文随同报文发送方发送的RTCP SR报文传输,也可将生成的接收报告送到相邻下游的测量点。这样,测量点不需要知道下游测量点的IP地址和端口号,减轻了测量点的负担。
另外,也正是由于以上原因,生成的接收报告一定会随同报文发送方发送的RTCP SR报文到达相邻下游的测量点,而不是通过其他路径到达相邻下游的测量点,这样,测量结果反映的一定会是RTP数据流在传输路径上实际的性能。
在本发明的实施例中,即使测量点生成新的RTCP SR报文并将新的RTCPSR报文系统给相邻下游测量点,相邻下游测量点也可以不反馈任何报文,所以,相对于主动测量方法,没有过多的增加网络负担。
在本发明的实施例中,测量点将RTP数据流在报文发送方与本地之间的QoS参数提供给相邻下游测量点,相邻下游测量点根据这个参数及自身计算的RTP数据流在报文发送方与本地之间的QoS参数即可计算出RTP数据流在这两个测量点之间的QoS参数,实现了基于网段的测量QoS。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。