确定IP分组的丢失

申请号 CN201180047239.9 申请日 2011-09-14 公开(公告)号 CN103155515B 公开(公告)日 2016-06-29
申请人 瑞典爱立信有限公司; 发明人 约根·古斯塔夫森; 加纳·海奇拉; 托马斯·伦德伯格;
摘要 一种确定通过网络(102)传输的IP分组的丢失的方法,其中,每个IP分组包括一定数目的数据分组。所述方法包括:i)从第一IP分组(41)中提取(501)第一数据分组;ii)从第二IP分组中提取(502)第二数据分组;iii)从第一数据分组中取得(503,504)第一序列号,并从第二数据分组中取得(503,504)第二序列号,其中,每个序列号指示数据分组的序列,并且具有属于一定数目的唯一值的集合的值;iv)计算(505)序列号之间的差(Δcc);以及v)根据序列号之间的差(Δcc),确定(506)丢失IP分组的数目(k)。还描述了有关的计算机可读介质和客户设备。
权利要求

1.一种确定通过网络(102)传输的IP分组的丢失的方法,其中,每个IP分组包括n个数据分组,所述方法包括:
从第一IP分组(41)中提取(501)第一数据分组(411),
从第二IP分组(42)中提取(502)第二数据分组(427),
从第一数据分组(411)中取得(503,504)第一序列号,并从第二数据分组(427)中取得(503,504)第二序列号,其中,每个序列号指示数据分组的序列,并且具有属于x个唯一值的集合的值,
计算(505)序列号之间的差Δcc,以及
根据序列号之间的差Δcc,确定(506)丢失IP分组的数目k。
2.根据权利要求1所述的方法,其中,数据分组(411、427)是MPEG2分组。
3.根据权利要求1或2所述的方法,其中,每个IP分组(41、42)包括具有UDP首部(304)的UDP分组(303)。
4.根据权利要求3所述的方法,其中,根据IP分组的长度(L-udp)、UDP首部的长度(L-udh)以及在IP分组中传输的数据分组的长度(L-data)来计算数据分组的数目n。
5.根据权利要求4所述的方法,其中,n=(L-udp-L-udh)/L-data,其中,n是数据分组的数目,L-udp是UDP分组的长度,L-udh是UDP首部的长度,L-data是在IP分组中传输的数据分组的长度。
6.根据权利要求1至2中任一项所述的方法,其中,数据分组的数目n是7。
7.根据权利要求1至2中任一项所述的方法,包括:还根据x个唯一值的集合,确定丢失IP分组的数目k。
8.根据权利要求1至2中任一项所述的方法,其中,根据表达式Δcc=(k·n+1)(mod x)确定丢失IP分组的数目k,其中,Δcc是序列号之间的差,n是IP分组中包括的数据分组的数目,x是序列号所属的集合中的唯一值的数目。
9.根据权利要求1至2中任一项所述的方法,其中,序列号所属的集合中的唯一值的数目x等于或小于256。
10.根据权利要求1至2中任一项所述的方法,其中,序列号所属的集合中的唯一值的数目x是16。
11.根据权利要求1至2中任一项所述的方法,其中,第一数据分组(411)是第一IP分组(41)中的第一个分组。
12.根据权利要求1至2中任一项所述的方法,其中,第二数据分组(427)是第二IP分组(42)中的最后一个分组。
13.根据权利要求1至2中任一项所述的方法,包括:通过将丢失IP分组的数目k与IP分组中包括的数据分组的数目n相乘,来确定丢失的数据分组的数目k·n。
14.根据权利要求1至2中任一项所述的方法,包括:如果IP分组丢失,从第二数据分组(427)中取得(706)有效载荷起始标记(318),并且如果所述标记不指示数据起始,则迭代地执行:
增加(705;708)丢失IP分组的数目k,直到:
-第一序列号和下一数据分组的序列号之间的下一个计算的差Δcc指示未丢失另外的数据分组,并且
-下一数据分组的有效载荷起始标记指示用户数据的起始。
15.根据权利要求1至2中任一项所述的方法,其中,通过网络(102)传输的IP分组包括第一和第二类型的数据分组,并且针对第一类型的IP分组计算序列号之间的差Δcc,所述方法包括:
计算(602)第二类型的数据分组的序列号之间的相应的差Δcc2,以及
根据两个计算的差Δcc、Δcc2所指示的丢失值,确定(603)丢失IP分组的数目k。
16.一种客户设备,被配置为确定通过网络(102)传输的IP分组的丢失,其中,每个IP分组包括n个数据分组,所述客户设备包括处理单元(202),所述处理单元(202)被配置为:
从第一IP分组(41)中提取第一数据分组(411),
从第二IP分组(42)中提取第二数据分组(427),
从第一数据分组(411)中取得第一序列号,并从第二数据分组(427)中取得第二序列号,其中,每个序列号指示数据分组的序列,并且具有属于x个唯一值的集合的值,计算序列号之间的差Δcc,以及
根据序列号之间的差Δcc,确定丢失IP分组的数目k。

说明书全文

确定IP分组的丢失

技术领域

[0001] 本发明涉及确定通过网络传送的IP分组的丢失。

背景技术

[0002] 目前,互联网协议电视(IPTV)是通过互联网传送的数字电视系统。IPTV包含“普通”直播TV和通常称为视频点播的存储视频。IPTV提供视频以及相关联的音频和字幕,视频和音频分别由视频编码器和音频编码器进行编码并且接着使用到达用户的传输流(TS)来发送。用于视频以及相关联的音频的常用传输流是MPEG2-TS,MPEG2-TS是在MPEG-2部分1,系统(正式称为ISO/IEC标准13818-1或ITU-T Rec.H.222.0)中指定的传输流。
[0003] 更详细地,MPEG2-TS指定了封装分组化基本流的容器格式,具有纠错和流同步特征用于在传输流使用信号劣化的情况下保持传输完整性。目前,MPEG2-TS是对运动图像以及相关联的音频信息进行通用编码的标准,并且描述了视频压缩和相关的音频数据压缩方法的组合,所述方法通过使用当前可用的存储介质和传输带宽,允许对电影的存储和传输。
[0004] 还使用其他类型的传输流,并且各种传输流传输的信息类型通常是变化的,并且除了IPTV以外还可以与诸如基于IP的语音、简单文件传输协议和许多在线游戏等服务相关。然而,在上述传输流都传输数据分组的意义上,它们是共同的。
[0005] 当通过IP网络发送数据分组时,必须使用其他协议(例如通过使用实时传输协议(RTP)和用户数据报协议(UDP)或直接使用UDP)来封装数据分组。进而,使用互联网协议组中的基本协议互联网协议(IP)来封装这些分组。IP的工作是从源主机向目的地主机传送IP分组。使用IP仅提供尽而为传送,因此通常使不可靠的服务。缺乏可靠性能够引起接收侧差错,如数据损坏、丢失数据分组、重复到达、或乱序分组传送。为了完全或部分地采取措施对抗这样的差错,可以使用如例如UDP或传输控制协议(TCP)指定的更高层协议。
[0006] 一些在互联网上使用的传输协议(例如TCP)包含针对每个TCP/IP分组增加的序列号。这有助于检测分组丢失,并且在TCP中这用于要求重传丢失的分组。对于实时服务(如IPTV),由于重传花费太多的时间,不可能使用重传。对于实时服务,因此通常使用UDP。与IP类似,UDP也不包含任何序列号,这使得难以仅使用UDP/IP来检测传输差错。另一方面,RTP包含大到足以提供对分组丢失的可靠检测的序列号,这意味着采用RTP/UDP/IP的实时服务可以检测分组丢失。
[0007] 如上所述,当通过网络传输IP分组时,可能发生损害,如IP分组的延迟、抖动和丢失。这可能影响数据分组所包含并被提供给用户的数据或服务的质量。损害的影响是:数据分组在对数据分组进行解码并向用户提供服务的用户端设备(CPE)处丢失(在抖动缓冲器后但在解码器前)。这影响体验质量,并且服务提供商能够获取与此相关的信息从而采取措施改进这种情形是十分重要的。
[0008] 因此,从服务监测的度来看,跟踪IP分组的丢失和/或IP分组封装的数据分组的丢失是重要的。
[0009] 现有技术解决该问题,如专利文献US2010135180A1公开了测量分组丢失(或更具体地分组丢失率)的方法。该方法包括在会话期间断续地捕捉分组。对捕捉成功数和可捕捉数进行计数,所述捕捉成功数指示所捕捉的分组的数目,所述可捕捉数指示要捕捉的分组的数目。根据捕捉成功数和可捕捉数,计算指示分组丢失率的丢失率。
[0010] 存在多种其他技术,其中的一些就确定分组丢失而言更具一般性,而另一些能够针对特定类型的IP分组和/或数据分组确定分组丢失。
[0011] 已知技术通常能够确定分组丢失。然而,认为在可以使用更精确的分组丢失计算的意义上,关于一般类型数据分组的丢失或更具体类型数据分组的丢失,可以改进现有技术。

发明内容

[0012] 本发明的目的是:至少部分克服现有技术的一个或多个局限。特别地,目的是:提供一种确定通过网络传输的IP分组的丢失的有用且精确的方法。
[0013] 因此,提供了一种用于确定通过网络传输的IP分组的丢失的方法,其中,每个IP分组包括n个数据分组。所述方法包括:从第一IP分组中提取第一数据分组,以及从第二IP分组中提取第二数据分组。从第一数据分组中取得第一序列号,并从第二数据分组中取得第二序列号,其中,每个序列号指示数据分组的序列,并且具有属于x个唯一值的集合的值。计算序列号之间的差Δcc,以及根据序列号之间的差Δcc,确定丢失IP分组的数目k。
[0014] 该方法的优势在于:可以确定丢失的IP分组的相对更大的数目,由于IP分组的丢失是例如IPTV的主要劣化原因之一,这是十分重要的。当丢失的IP分组的数目已知时,更容易评估服务性能以及可以缓解该情形的维护或升级动作。
[0015] 更具体地,数据分组可以是MPEG2-分组,和/或每个IP分组可以包括具有UDP首部的UDP分组。
[0016] 可以根据UPD分组的总长度(L-udp)、UDP首部的长度(L-udh)以及在UDP分组中传输的数据分组的长度(L-data)来计算数据分组的数目n。具体地,n可以被确定为(L-udp-L-udh)/L-data,其中,n是数据分组的数目,L-udp是UDP分组的长度,L-udh是UDP首部的长度,L-data是在UDP分组中传输的数据分组的长度。此外,n可以被确定为具有值7。
[0017] 方法可以包括:根据x个唯一值的集合,确定丢失的IP分组的数目k。具体地,可以根据Δcc=(k·n+1)(modx)来确定丢失的IP分组的数目k。
[0018] x个唯一值的集合可以等于或小于256。更具体地,x可以等于或小于16。
[0019] 第一数据分组可以是第一IP分组中的第一分组,和/或第二数据分组可以是第二IP分组中的最后一个分组。
[0020] 方法可以进一步包括:通过将丢失的IP分组的数目k与IP分组中包括的数据分组的数目n相乘,来确定丢失的数据分组的数目k·n。
[0021] 方法还可以包括:如果IP分组丢失,从第二数据分组中取得有效载荷起始标记,并且如果标记不指示数据起始,迭代地增加丢失的IP分组的数目k,直到:i)第一序列号和下一数据分组的序列号之间的下一个计算的差Δcc指示未丢失另外的数据分组,并且ii)下一数据分组的有效载荷起始标记指示用户数据的起始。
[0022] 在一个实施例中,通过网络传输的IP分组包括第一和第二类型的数据分组,并且针对第一类型的IP分组计算序列号之间的差Δcc。所述方法此时包括以下附加步骤:计算第二类型的数据分组的序列号之间的相应的差Δcc2;以及根据两个计算的差Δcc、Δcc2所指示的丢失值,确定丢失的IP分组的数目k。
[0023] 在该实施例中,IP分组中可能复用了多于一个的数据流,例如n1个类型1的数据分组(如视频),以及n2个类型2的数据分组(如音频)。这些数据流可能通常具有单独的连续计数器。此时,可以对这些流独立使用该方法,这针对每个流给出IP分组丢失的可能丢失的范围。在选择对于两个流公共的最小可能IP分组丢失的意义上,此时可以组合这些丢失。例如,如果可能的IP分组丢失的数目对于类型1数据分组被计算为3、6、9、12,对于类型2数据分组被计算为4、8、12、16,则实际的分组丢失是12。处理不同类型数据分组的该实施例可推广至多于两个流,还可以被推广至每个IP分组中数据分组的数目不为常数的情形。
[0024] 根据另一方面,提供了用于确定通过网络传输的IP分组的丢失的计算机可读介质,其中,每个IP分组包括n个数据分组。所述计算机可读介质上存储有处理指令,所述指令在客户设备上运行时使客户设备执行上述方法的步骤。
[0025] 根据另一方面,提供了一种客户设备,被配置为:确定通过网络传输的IP分组的丢失,其中,每个IP分组包括n个数据分组。所述客户设备包括处理单元,所述处理单元被配置为:i)从第一IP分组中提取第一数据分组;ii)从第二IP分组中提取第二数据分组;iii)从第一数据分组中取得第一序列号,并从第二数据分组中取得第二序列号,其中,每个序列号指示数据分组的序列,并且具有属于x个唯一值的集合的值;iv)计算序列号之间的差(Δcc);以及v)根据序列号之间的差(Δcc),确定丢失IP分组的数目k。
[0026] 计算机可读介质可以存储处理指令,所述处理指令包括以上结合确定IP分组的丢失的方法描述的任一特征,并且共享相应的优势。对于客户设备和/或处理单元的配置同样适用。根据以下详细描述、所附权利要求以及附图,本发明的其他目的、特征、方面和优势将显而易见。

附图说明

[0027] 下面将参照附图以示例方式来描述本发明的实施例,附图中
[0028] 图1是通信网络的示意图,IP分组通过通信网络传输至多个客户设备,[0029] 图2示出了IP分组被传输至的客户设备的实施例,
[0030] 图3示出了被传输至图2的客户设备的IP分组,
[0031] 图4示出了支持如何可以确定IP分组的丢失的示例的两个IP分组,
[0032] 图5是用于确定IP分组的丢失的方法的原理流程图
[0033] 图6是用于在IP分组中包括不同数据分组时确定IP分组的丢失的方法的原理流程图,以及
[0034] 图7示出了图5的方法的备选实施例。

具体实施方式

[0035] 参照图1,示出了通信网络101的示例。通信网络101包括网络102(如互联网),内容服务器103与网络102相连。内容服务器103连接至数据库104,内容(如视频、音频和其他类型的数据)存储在数据库104上。内容服务器103经由网络102连接至客户设备形式的多个内容接收方,如TV105、移动电话106、个人计算机107或能够通过网络102接收流内容的任意其他电子设备。内容服务器103被配置为经由网络102向客户设备105、106、107发送数据,客户设备105、106、107继而被配置为接收数据,从而客户设备105、106、107能够使用数据。
[0036] 发送、接收和任意数据编码/解码以传统方式执行,并且所有涉及设备实现支持例如发送和/或接收数据的适当的已知网络协议。
[0037] 更具体地,内容服务器103和客户设备105、106、107中的每一个实现用于互联网和其他类似网络的互联网协议组,互联网协议组包括公知的传输控制协议(TCP)、互联网协议(IP)、实时传输协议(RTP)和用户数据报协议(UDP)。采用UDP,位于内容服务器103和客户设备105、106、107上的各种应用可以交换数据和服务,包括流媒体应用,如IPTV、基于IP的语音(VoIP)、以及简单文件传输协议。
[0038] 为了支持例如IPTV,内容服务器103和客户设备105、106、107中的每一个实现MPEG2传输协议(MPEG2-TS),MPEG2-TS是用于编码视频和相关联的音频信息的标准。因此,内容服务器103能够从其内容数据库取得通过例如UDP流传输至客户设备105的编码的视频和音频数据,所述客户设备105、106、107对数据进行解码并将其提供给用户。这意味着内容服务器103能够通过利用UDP通过网络并向客户设备105、106、107传输IP分组。接着,每个IP分组可以包括多个MPEG2-TS分组,并且客户设备105、106、107可以从IP分组中提取MPEG2-TS分组。如已知的,MPEG2-TS分组是一种类型的数据分组,可以通过采用封装数据分组的UDP向客户设备105、106、107发送其他类型的数据分组。通常可以发送的其他类型的数据分组包括对分组丢失相对不敏感的实时应用所使用的数据。
[0039] 在该上下文中并且如已知的,以IP分组流的形式向客户设备105、106、107发送IP分组。
[0040] 更具体地,图2示出了经由网络102连接至内容服务器103的客户设备201。客户设备201包括连接至例如非易失性存储器(如硬盘、ROM(只读存储器)和闪存)形式的计算机可读介质205的处理单元202。计算机可读介质205上存储有包括软件指令的计算机程序206,所述指令在客户设备201上运行时使客户设备201执行下述方法步骤。更具体地,处理单元202可以执行软件指令,并且接着当执行软件指令时被配置为执行下述方法步骤。此外,通信接口204连接至处理器单元202,以提供经由网络102与内容服务器103的通信。
[0041] 为了开发方便,软件指令206(即用于执行此处描述的客户设备201的操作的计算机程序代码)可以以高级编程语言(如Jave、C和/或C++)来编写,还可以以其他编程语言(如但不限于解释语言)来编写。可以以汇编语言或者甚至微代码来编写用于客户设备201操作的一些模或例程,以增强性能和/或存储器使用率。还将理解的是:可以使用一个或多个处理器(例如处理单元202)、分立的硬件组件、一个或多个专用集成电路信号处理器或微控制器来实现由客户设备201执行的功能步骤。
[0042] 客户设备201是图1的客户设备105、106、107的示意示例,并实现相同的功能,即,客户设备201实现协议TCP、IP、UDP和MPEG2-TS,并且支持例如IPTV。这意味着:客户设备201还包括:用于接收和解码视频流并随后播放视频流的视频内容的装置和软件指令。为了能够显示视频内容,客户设备201包括根据已知技术和标准实现的MPEG2解码器207。
[0043] 参照图3,示出了采用UDP的IP分组301的示例。IP分组301是从内容服务器103向客户设备105、106、107、201之一传输数据的分组的示例。根据所采用的协议,IP分组301包括长度(即数据大小)为L-iph字节(通常20字节)的IP-首部302。IP分组301还包括具有长度为L-udh字节(通常8字节)UDP-首部304的UDP分组303,并且包括n个数据分组(在该示例中是7个MPEG2-TS分组311-317)。
[0044] 如已知的,UDP首部304具有例如指示UDP分组303的长度的长度字段305,所述UDP分组303包括首部304和数据分组311-317的有效载荷。此处,长度字段305的值称为L-udp。此外,如MPEG2-TS分组311示例的,每个MPEG2-TS分组包括:用于有效载荷起始标记的字段
318,又称“有效载荷单元起始指示符”(PUSI);以及用于序列号的字段319,通常称为连续计数器。每个MPEG2-TS分组具有188字节的长度L-data。IP分组301的总最大长度可以被估计为L-mto个字节,是可用于IP分组301的大约1500字节的典型所谓最大传输单元(MTU)。
[0045] 内容服务器103采用例如UDP和MPEG2-TS来向客户设备201提供内容。接着,可能发生分组丢失,这影响客户设备201的用户感到的质量体验。确定分组丢失,并且优选地还根据如下所述的客户设备201执行的步骤来报告分组丢失。
[0046] 这些步骤背后的原理采用来自一些检查的结果。更具体地,通常通过检查所传输的IP分组的序列号来处理分组丢失的计算。例如,如果使用RTP代替例如UDP来传输IP分组,则RTP首部保持的是针对每个发送的IP分组增加的序列号。该序列号可由客户设备用于检测分组丢失,并且在分组传送乱序的情况下,可以使用该序列号恢复分组序列。当使用RTP时,使用16个比特来存储序列号。
[0047] 然而,由于IP或UDP都没有与序列号类似的机制,当通过使用UDP在IP分组中封装例如MPEG2-TS时,存在问题。虽然MPEG2-TS具有一种序列号(连续计数器),其仅仅4比特长,并且因此16个分组后环回。
[0048] 此处,术语连续计数器与序列号相同,并且具有属于一定数目(x个)唯一值的集合的值。x是有限的,并且通常等于或小于256。x的甚至更具体的值是16。
[0049] MPEG2-TS的连续计数器针对每个(新)MPEG2-TS分组增加1,并被客户设备201中的解码器207用于检测重复分组(允许发送两个但不能更多的相同分组)或丢失的分组。针对两个连续MPEG2-TS分组,连续计数器之间的差模x(即,对于例如MPEG2-TS,模16)应等于1。如果连续计数器之间的差是0,则MPEG2-TS分组是重复的,并且丢弃一个。如果差既不是0也不是1,则一个或多个MPEG2-TS分组已经丢失。
[0050] 连续计数器的4比特的有限长度使得难以使用它作为计数器来确定丢失的IP分组的数目。该问题通过注意到丢失例如18个分组给出与丢失仅仅2个分组相同的连续计数器差(由于18≡2mod16)得到示例。
[0051] 以下步骤利用多个MPEG2-TS分组(即,n个MPEG2-TS分组)通常被合并为一个IP分组这一事实。
[0052] n的值是每个IP分组中MPEG2-TS分组的数目并且通常是7,因为这给出了1344字节的总IP分组大小,小于针对例如基于以太网的网络的大约1500字节的典型最大传输单元(MTU)。
[0053] 作为最小首部大小,IP首部302的大小L-iph通常是20字节,并且UDP首部304的大小L-udh通常是8字节。如果IP首部选项用于IP分组301,则IP首部将更大,并且因此考虑到MPEG2-TS分组的大小L-data通常是188字节,MPEG2-TS分组的数目可能需要小于7,以便IP分组的总大小小于MTU。然而,针对封装MPEG2-TS分组形式的数据分组的大多数IP分组,n=7。在更一般的情况下,可以根据以下表达式计算n:
[0054] n=(L-udp-L-udh)/L-data    (1)
[0055] 由表达式(1)可得,根据IP分组的长度L-udp、UDP首部的长度L-udh、以及在IP分组中传输的数据分组的长度L-data来计算n。
[0056] 对于整个IP分组,发生全部MPEG2-TS分组丢失。这意味着:如果一个或多个IP分组丢失,包含在其中的全部MPEG2-TS分组也丢失。这给出了连续计数器差中的特征,可用于计算IP分组的丢失。此外,在典型情况下,可以检测到多至105(15×n)个连续MPEG2-TS分组丢失。这可与连续计数器直接用于分组丢失计算的情况(在次情况下仅仅可以检测到15个连续MPEG2-TS分组丢失)形成对比。
[0057] 为了确定IP分组的丢失,可以进行多个计算。结合图4对计算进行了示例,图4示出了分别包括7个MPEG2-TS分组411-417和421-427的第一IP分组41和第二IP分组42。IP分组41、42及其相应的MPEG2-TS分组中的每一个对应于图3的具有MPEG2-TS分组311-317的IP分组301。这意味着:MPEG2-TS分组包括相应的连续计数器。
[0058] 为了计算,假设第一IP分组41(例如IP分组1)中的第一个MPEG2-TS分组411的连续计数器CCfirst,1具有以下值:
[0059] CCfirst,1=m(modx),    (2)
[0060] 其中x表示连续计数器可以具有的唯一值的总数,m表示连续计数器的当前值。对于此处的示例,x=16。
[0061] 假设每个IP分组封装了n个MPEG2-TS分组并且每个IP分组中MPEG2-TS分组的数目不变(即,n为常数),则第一IP分组41中的最后一个MPEG2-TS分组417的连续计数器CClast,1将具有以下值:
[0062] CClast,1=(m+n-1)(modx)    (3)
[0063] 可以假设不发送重复的TS分组。对于下一IP分组,即对于第二IP分组42(分组2),第一个MPEG2-TS分组421的连续计数器CCfirst,2和最后一个MPEG2-TS分组427的连续计数器CClast,2将是:
[0064] CCfirst,2=(m+n)(modx)        (4)
[0065] CClast,2=(m+2n-1)(modx)    (5)
[0066] 对于分组编号k+1,对应的连续计数器将是:
[0067] CCfirst,k+1=(m+(k+1)n)(modx)    (6)
[0068] CClast,k+1=(m+(k+2)n-1)(modx)    (7)
[0069] 如果k个中间IP分组丢失,则通过合并表达式(3)和(6),第k+1个IP分组中的第一个MPEG2-TS分组和第1个IP分组中的最后一个MPEG2-TS分组之间的连续计数器中的绝对差ΔCC将是:
[0070] ΔCC=(m+(k+1)n-(m+n-1))(modx)=(k·n+1)(modx)  (8)
[0071] 可以通过使用表达式(1)找到每个IP分组的MPEG2-TS分组的数目(即n)。当n已知时,可以使用表达式(8),通过连续计数器中的差ΔCC来确定丢失的IP分组的数目k的下界。从而,可以基于x个唯一值的集合来确定丢失的IP分组的数目k。
[0072] 备选地,可以使用查找表,其中,通过使用表达式(8)来确定表中的值。当n=7(最一般的情况),则丢失的IP分组的数目是k,丢失的MPEG2-TS分组的数目是k·n,如示例表1所示。
[0073]
[0074]
[0075] 表1:n=7、x=16
[0076] 如果使用重复的数据分组
[0077] 如果不使用重复的数据分组
[0078] k列中的第一值是丢失的IP分组的最小可能数目,而其他值是产生相同ΔCC的IP分组丢失的其他可能值。应注意的是:由于模运算符(modx),上述表达式在n和x互质(即它们不具有1以外的公因子)时奏效,如表1中那样可以毫无疑义地识别多至105个丢失的MPEG2-TS分组。以下分别在表2和表3中示出了针对n=1和n=6的对应的表,并且可以看到分别能够毫无疑义地识别多至15和42个丢失的MPEG2-TS分组。
[0079]
[0080]
[0081] 表2:n=1、x=16
[0082] 如果使用重复的数据分组
[0083] 如果不使用重复的数据分组
[0084]
[0085] 表3:n=6、x=16
[0086] 如果使用重复的数据分组
[0087] (如果不使用重复的数据分组,则对于n=6,Δcc永不为0)
[0088] 进一步参照图5,阐述原理流程图,该流程图示出了如何能够基于连续计数器之间的差来确定丢失的IP分组的数目k。
[0089] 在第一步骤501中,从第一IP分组中提取第一数据分组,并且在下一步骤502中,从第二IP分组中提取第二数据分组。IP和数据分组对应于上述相应的分组,并且提取是根据已知技术和协议来执行的。在该上下文中,应注意的是:第一和第二IP分组不必须是连续的IP分组,即,在第一和第二IP分组之间可以存在一定数目的IP分组。
[0090] 在下一步骤503中,从第一数据分组中取得第一序列号,并且在下一步骤504中,从第二数据分组中取得第二序列号。每个序列号对应于上述连续计数器,并且它们的取得本身是根据已知技术实现的。因此,每个序列号具有属于x个唯一值的集合的值。
[0091] 在下一步骤505中,计算序列号之间的绝对差Δcc。
[0092] 在最后的步骤506中,基于序列号之间的差Δcc来确定丢失的IP分组的数目k。典型地,表达式(8)或者如上表的表可用于该确定。
[0093] 如果每个IP分组包含多于一个类型的数据分组并且每个数据分组类型具有其自身单独的序列号,对于每个数据分组类型独立应用上述过程,并且可以计算针对每个分组类型丢失的IP分组的可能数目。接着,可以比较来自每个数据分组类型的结果,并且针对每个数据分组类型可以找到的丢失的IP分组的最小数目是丢失的IP分组的最终数目。
[0094] 图6示出了该情形,其中,第一步骤601基于针对类型1的数据分组计算的Δcc1-值来确定可能丢失的IP分组的数目k11、k12、k13……。数目k11、k12、k13……对应于产生相同ΔCC1-值的IP分组丢失的可能值,并且可以从如表1-3的表中取得。
[0095] 步骤601对应于针对类型1的所有数据分组执行图5的步骤501-506,而忽略另一类型的数据分组。然而,取代仅取得表示丢失的IP分组的最小数目的一个值,取得多个值(k11、k12、k13...)。这意味着:例如k11和Δcc1对应于上述k和Δcc,区别在于它们对特定类型的数据分组(类型1分组)有效。
[0096] 在下一步骤602中,基于针对类型2的数据分组计算的Δcc2-值确定可能丢失的IP分组的数目k21、k22、k23...。步骤602对应于步骤601,区别在于其针对类型2的数据分组执行而忽略其他类型的数据分组。
[0097] 在下一步骤603中,将k11、k12、k13...值和k21、k22、k23...值比较,并将k设置为针对两种数据类型的丢失的数据分组的最小公共数目,即k是k11、k12、k13...和k21、k22、k23的交集的最小值(k=min(k11、k12、k13、..∩k21、k22、k23...)。
[0098] 例如,假设每个IP分组中存在6个类型1的数据分组和1个类型2的数据分组,针对类型1分组的Δcc1是13,且针对类型2分组的Δcc2是11。根据以上表3,可以确立:类型1的丢失的IP分组的数目必为2、10、18...之一;根据表2,可以确立:对于类型2分组,丢失的IP分组的数目必为10、26、42...之一。由于丢失的IP分组的实际数目必然相同,此时可以确定10个IP分组丢失,即k=10。
[0099] 在重复执行图5和6的方法以连续提供指示IP分组的丢失的值的意义上,图5和6的方法可以是迭代的。
[0100] 还可以确定分组丢失率,在该情况下,必须首先确定接收分组的数目和丢失分组的数目。具体地,将分组丢失率计算为丢失分组的数目除以丢失分组的数目与接收分组的数目之和。
[0101] 为了确定分组丢失率,可以检查MPEG2-TS首部中的有效载荷起始标记。如果MPEG2-TS分组包含数据的起始,该有效载荷起始标记或PUSI被设置为1。在(检测到的)分组丢失后,客户设备丢弃接收到的分组,直至其接收到有效载荷起始标记被设置为1的分组。
[0102] 为了示意如何可以确定分组丢失率,参照图7,图7在原理上是图5所示的方法的增强实施例。
[0103] 该增强实施例是迭代的,并且第一步骤701包括从IP分组中提取数据分组。数据分组通常是从经由IP分组流接收的多个连续MPEG2-TS分组中取得的MPEG2-TS分组。步骤701包括从数据分组中提取序列号CCi以及在存储器单元611中存储序列号CCi。根据已知方法执行数据分组和序列号的提取。
[0104] 在下一步骤702中,确定所取得的序列号CCi和最先前取得的序列号CCi-1之间的差ΔCC。可以从存储器单元611获得最先前取得的序列号CCi-1,在方法的前一迭代期间在存储器单元611中存储最先前取得的序列号CCi-1。如果不能获得最先前取得的序列号CCi-1,从步骤701重复迭代。
[0105] 接下来,根据差ΔCC具有哪个值,进入三个步骤703、704、705中的一个。
[0106] 如果ΔCC=0,则数据分组冗余,在步骤703中抛弃数据分组,并且重新进入第一步骤701。如果使用重复的数据分组,通常执行步骤703。
[0107] 如果ΔCC=1,则数据分组有效,进入步骤704,并且有效的接收MPEG2-TS分组的数目增加1。在步骤704后,重新进入第一步骤701。
[0108] 如果ΔCC既不是1也不是0,则数据分组丢失,在步骤705中丢失的MPEG2-TS分组的数目增加,并且进入下一步骤706。步骤705中的增量与基于能够根据如上表的表导出的k·n确定的丢失的数据分组的值相对应。
[0109] 该下一步骤706包括:取得和检查数据分组的PUSI,并且如果PUSI=1,则数据分组有效,且进入下一步骤707,增加接收到的有效分组的数目。在步骤707后,重新进入第一步骤701。如果步骤706中PUSI=0,则进入下一步骤708,将丢失的数据分组的数目加1。
[0110] 此后,在下一步骤709中,以与步骤701类似的方式提取数据分组并取得其序列号。在步骤710中,在提取后,确定在步骤709中取得的所提取的数据分组的序列号和最先前取得的序列号之间的差ΔCC。步骤709、710与数据库611或类似的数据库协作,使得可以根据需要获得先前的序列号以计算差ΔCC(如步骤702)。
[0111] 在步骤710后,如果ΔCC=0则重新进入步骤709;如果ΔCC=1则进入步骤706;并且如果ΔCC既不是0也不是1则进入步骤705。
[0112] 通过使用有效分组的增加数目和丢失分组的增加数目来连续计算分组丢失率。
[0113] 原理上,步骤701和/或步骤709对应于图5的步骤501-504,而步骤702和/或步骤710对应于步骤505。
[0114] 如上所述,所述客户设备通常包括可以执行软件指令(即,实现上述步骤的计算机程序代码)的一个或多个处理单元。为了该目的,客户设备可以使用其存储这样的软件指令的计算机可读存储器。为了开发方便,这些指令可以以高级编程语言(如Jave、C和/或C++)来编写,还可以以其他编程语言(如但不限于解释语言)来编写。此外,可以使用一个或多个处理单元来实现上述步骤。
[0115] 因此,虽然描述和示出了本发明的各种实施例,本发明不限于此,还可以在以下权利要求中限定的主题的范围内以其他方式来实现。
QQ群二维码
意见反馈