首页> 中国专利> 网络中可靠实时数据流传输的高效应用层自动重复请求重发的方法

网络中可靠实时数据流传输的高效应用层自动重复请求重发的方法

摘要

描述了一种方法和装置,包括:缓冲要发送的数据,通过数据报协议发送从缓冲器中取回的数据,接收对数据重发的请求,确定请求的数据是否在所述缓冲器中以及通过提供数据的端到端确认和错误恢复的协议重发所述请求的数据。

著录项

  • 公开/公告号CN102687448A

    专利类型发明专利

  • 公开/公告日2012-09-19

    原文格式PDF

  • 申请/专利权人 汤姆森特许公司;

    申请/专利号CN200980161860.0

  • 申请日2009-10-07

  • 分类号H04L1/18(20060101);H04L29/06(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人吕晓章

  • 地址 法国伊西莱穆利诺

  • 入库时间 2023-12-18 06:33:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-23

    未缴年费专利权终止 IPC(主分类):H04L 1/18 专利号:ZL2009801618600 申请日:20091007 授权公告日:20160316

    专利权的终止

  • 2019-06-18

    专利权的转移 IPC(主分类):H04L1/18 登记生效日:20190529 变更前: 变更后: 申请日:20091007

    专利申请权、专利权的转移

  • 2016-03-16

    授权

    授权

  • 2012-11-07

    实质审查的生效 IPC(主分类):H04L1/18 申请日:20091007

    实质审查的生效

  • 2012-09-19

    公开

    公开

说明书

技术领域

本发明大体上涉及一种网络,并且更具体地涉及一种用于实时数据流传 输(streaming)的自动重复请求(ARQ)重发的应用层方法。

背景技术

在多播或广播应用中,通过有线和/或无线网络将数据从服务器发送到多 个接收器。如在此使用的多播系统是其中服务器同时向多个接收器发送相同 数据的系统,其中接收器形成上至并且包括所有接收器的所有接收器的子集。 广播系统是其中服务器同时向所有接收器发送相同数据的系统。即,在定义 上多播系统可以包括广播系统。

数据通常被格式化为用于发送的分组和/或帧。即,分组和帧是数据格式 化方案。如在此使用的,可以将数据格式化为包括分组和/或帧的用于发送的 任何方便的格式。

无线网络中的视频发送或分发通常涉及由诸如干扰、信道衰落、冲突等 的信道错误条件造成的分组丢失。当这样的信道错误条件发生时,协议栈的 无线链路层尝试在固定时间段内以固定次数重发分组。如果这些重发还不成 功,则无线链路层丢弃这些分组。基于因特网协议(IP)网络的视频发送典 型地使用实时传输协议(RTP)协议来向目的地(接收器)传递视频分组, 而所述实时传输协议(RTP)使用可靠的发送控制协议(TCP)传输协议或者 不太可靠的用户数据报协议(UDP)传输协议。当使用不太可靠的UDP协议 时,该协议不提供检测无序(out of order)分组或恢复丢失分组的手段,并 且将责任留给应用(application)来恢复分组传递错误。相反,当使用TCP 协议时,提供端到端确认使得协议尝试严格地以应用处理分组的顺序发送和/ 或恢复媒体(音频、视频、多媒体…)分组(数据)。当检测到分组错误时, TCP的滑动窗口机制激活流控制并且减少分组发送速率。TCP保持重发丢失 的分组直至将它们恢复。由于视频发送必须实时出现并且具有与数据的接收 和呈现相关联的用户观看体验,存在这样的等待时间或时间限制,在所述等 待时间或时间限制内必须传递或恢复分组使得不影响末端用户的观看体验。 因此,显然地必须在有限的时间内恢复分组错误否则数据对于末端用户将没 有用。对于TCP,没有让应用基于时间限制来控制分组恢复的方式。将TCP 用作无线网络的传输协议可能导致不良用户观看体验。此外,TCP对于所有 发送的数据分组需要肯定确认(positive acknowledge)。(从数据接收器到数据 发送器(传送器)的)TCP上行链路确认将与(从发送器(传送器)到接收 器的)下行链路数据流量竞争无线带宽。如果在下行链路和上行链路中出现 冲突,该冲突可能导致进一步的吞吐量减少。

在一个现有技术方案中,提出了基于块的应用层前向纠错(FEC)机制。 应用层FEC机制在诸如RTP或UDP分组的分组级工作。其与物理层FEC不 同并且跨越多个数据分组应用FEC码以在服务器(发送器、传送器)侧生成 冗余奇偶校验分组。发送器向目标接收器发送出数据分组和FEC分组二者。 在接收器侧,FEC解码器尝试通过使用接收的数据分组和FEC分组重构丢失 的分组。为了使这个方案高效,其适配用于时间变化信道条件是重要的。然 而,具有挑战的是怎样事先预测信道条件以及怎样高效地并且可靠地将FEC 码适配用于变化信道条件。如果出现低估,则不能恢复丢失的分组。然而, 如果出现高估,则浪费带宽。因此,在不折中可靠性或带宽的情况下难以精 细调谐。

在其它现有技术方案中,已经为分组丢失恢复提出了自动重复请求 (ARQ)的变型。自动重复请求是一种用于数据发送的错误控制方法。在一 种途径中,在ARQ方案中使用带有超时的肯定确认以实现可靠的数据发送。 接收器向发送器发送肯定确认(ACK)以便指示接收器已经正确地接收数据 帧或分组。发送器在发送器发送数据帧或分组之后还保持处于合理时间点的 超时计时器。如果发送器在超时之前没有接收到确认,发送器通常重发数据 帧或分组直至发送器接收到确认或者超过预定数目的重发。在这种途径中, 当分组丢失率低时(大多数数据分组/帧被正确接收并且需要被确认)来自接 收器和发送器的确认数据分组或帧流量的数量高。确认数据分组或帧将与数 据分组或帧竞争无线带宽。此外,在数据分组的发送和确认分组之间可能出 现冲突。

在另外一种现有技术途径中,从接收器向发送器发送否定确认(NACK) 用于指示其没有正确地接收到数据帧/分组。一旦发送器接收到NACK,发送 器向接收器重发丢失的分组或帧。当分组丢失率低时,来自接收器和发送器 的NACK流量的量低,导致包括带宽的网络资源的更高效利用。然而,NACK 数据分组或帧其自身可能丢失。如果这种情况发生,发送器将不重发丢失的 分组或帧,造成低可靠性。

具有以下高效方法是有利的,该方法通过从原始发送器(传送器)仅请 求丢失的分组并且尝试在对于应用可接受的时间限制内恢复分组来向基于 UDP的视频发送提供可靠性,因此增强可靠性和系统吞吐量,并且改进实时 应用的整体用户观看体验。

发明内容

本发明针对一种在传输或应用层用来增加网络中实时视频流传输的可靠 性的方法。在此使用视频流传输作为实时数据流传输的一个特定示例。实时 数据流传输可以包括任何类型的数据,包括音频、视频、多媒体或任何其组 合。本发明的方法不特定于无线网络或无线局域网。其可以部署用于有线或 无线网络。使用无线网络作为示例性部署。本发明的方法提供一种恢复表征 为由各种信道错误引起分组丢失的网络中丢失的分组的高效手段,因此增强 视频发送的可靠性和质量。本发明的方法提供了一种高效的方法,该方法通 过从原始发送器(传送器)仅请求丢失的分组并且尝试在对于应用可接受的 时间限制内恢复分组来向基于UDP的视频发送提供可靠性,因此增强可靠性 和系统吞吐量,并且改进实时应用的整体用户观看体验。

本发明提供了一种将带有超时的肯定ACK和否定确认的优点相结合的 方法。NACK用于初始发送。但是在分离的TCP信道上使用带有超时的ACK 发送NACK分组或帧和重发的数据分组或帧。本发明使用TCP来提供可靠的 错误恢复路径并且还通过在恢复时间窗口上实施上限来考虑到应用的实时限 制。

描述了一种方法和装置,包括:缓冲要发送的数据,通过数据报协议发 送从缓冲器中取回的数据,接收对数据重发的请求,确定所请求的数据是否 在缓冲器中,以及通过提供数据的端到端确认和错误恢复的协议重发所请求 的数据。

附图说明

当连同附图一起阅读时,根据以下具体描述最好地理解本发明。附图包 括以下总地描述的图:

图1A是作为服务器向客户机设备初始发送数据中实践的本发明的方法 的流程图。

图1B是作为服务器在重发损坏的数据中实践的本发明的方法的流程图。

图2A是作为客户机在初始接收数据中实践的本发明的方法的流程图。

图2B是作为客户机在接收重发的数据中实践的本发明的方法的流程图。

图2C是作为客户机在呈现数据中实践的本发明的方法的流程图。

图3是协议栈。

图4A示出用于请求重发和回复重发请求的示例性消息的公共首标。

图4B示出重发的数据分组的示例性格式。

图4C示出重发否定请求(NACK)的示例性格式。

图4D示出重发否定请求(NACK)的可替换示例性格式。

图5是根据本发明的原理的服务器的示例性实施例的示意图。

图6是根据本发明的原理的客户机设备的示例性实施例的示意图。

具体实施方式

无线网络中的视频发送或分发典型使用RTP,在UDP上移动画面专家组 2传输流(MPEG2TS),并且可以从单个源分发到单个目的地(单播模式)或 者从单个源分发到多个目的地(多播模式)。由于在无线网络中信道条件变化, 当信道条件不好时,如果链路层错误恢复不成功则分组发送导致丢失分组。 在这些情况下,在分组序列中存在间隙,导致对于末端用户的不良观看质量。 本发明提供高效的基于应用层的重发方案,在此称作可靠媒体协议(RMP), 以便恢复分组丢失来帮助可靠实时流传输应用。

在本发明的可靠媒体协议(RMP)方法中,定期单播和多播数据或分组 发送使用UDP。除此以外,在源(发送器、传送器)和目的地(接收器、转 接器(sink))之间建立额外的可靠的基于TCP的控制信道以便请求并接收丢 失的分组的重发。为了让这个机制适当工作,发送器(传送器)保持向其接 收器发送的最新分组的高速缓存器。一个或更多接收器接收来自发送器的数 据分组并且使用RTP或MPEG传输流(TS)首标中存在的序列号码字段来 检测接收的数据分组中的序列间隙(sequence gap)。如果接收器检测到序列 间隙,接收器发送对基于TCP的控制信道的请求用于选择性的重发缺少的数 据分组。当发送器接收到来自其接收器的一个或更多的重发请求时,该发送 器在其本地高速缓存器中查找最新的分组。如果在本地高速缓存器中找到了 所请求的(多个)分组,传送器以单播在基于TCP的控制信道上向接收器重 发该分组的拷贝。如果在其本地高速缓存器中没有发现所请求的分组,传送 器继续服务剩余的重发请求。接收器保持传递队列(缓冲器)以便保留来自 数据和控制信道二者的所有接收数据分组并且将重发的分组重排序成这个队 列内正确的序列(位置)并且在正确的时间以适当的顺序向应用传递分组。 接收器保持可配置的时间窗口以便等待任何重发而不是永远等待,使得可以 将分组延迟和延迟抖动保持在应用限度内。这暗示如果用于丢失分组的重传 回复中的一些没有及时收到,接收器将从传递队列向应用传递剩余的接收分 组。如果重发分组中的一些在可接受的恢复时间窗口以外被接收,则接收器 丢弃它们。应该注意的是视频应用可以使用视频解码中的错误隐蔽技术来容 忍一些数据分组丢失。

在图1A、1B和2A、2B中描绘了根据本发明的传送器侧和接收器侧操 作的流程图。图3示出根据本发明的协议栈。本发明中的可靠媒体协议(RMP) 方案在实时应用/RTP/MPEG TS和UDP/TCP/IP之间操作。

再次参照图1A,在105发送器(服务器、传送器)接收从本地文件(未 示出)或从与例如内容服务器或内容分发系统(未示出)通信的另一网络接 口模块(未示出)发送的数据。在110发送器缓冲在缓冲器(本地高速缓存 器、存储器)中要发送的数据的拷贝,并且在115经由网络接口模块向用于 发送的UDP/IP模块转发要发送的数据。

再次参照图1B,在120当接收器确定缺少(丢失、毁坏、破坏)分组时 服务器(原始数据的发送器)接收来自接收器的重发请求。服务器经由TCP/IP 模块接收重发请求,所述TCP/IP模块经由网络接口模块接收重发请求。在 125,服务器确定所请求的(要重发的)数据分组是否在缓冲器中。如果数据 分组在缓冲器中,那么在130服务器从缓冲器取回(retrieve)所请求的数据 分组并且将它们经由网络接口模块转发到用于重发的TCP/IP模块。如果数据 分组不在缓冲器中,那么服务器不能重发所请求的数据分组。

再次参照图2A,在205客户机设备接收(多个)新数据分组。(多个) 重发的数据分组经由网络接口模块从TCP/IP模块被接收。在210客户机确定 (多个)新数据分组是否丢失(毁坏、破坏)。在此,术语“损坏的数据”包 括丢失、毁坏或破坏的任何数据。如果(多个)新的数据分组丢失(毁坏、 破坏),那么在215客户机生成并且经由TCP/IP模块发送重发请求到服务器, TCP/IP模块将重发请求转发到用于发送的网络接口模块。在220客户机设置 计时器以便限制客户机等待(多个)重发数据分组的时间。如果接收的数据 不是损坏的,则将其插入到队列中用于以后呈现。

再次参照图2B,在225,客户机接收来自TCP/IP模块的(多个)重发数 据分组,TCP/IP模块是从网络接口模块接收(多个)重发数据分组的。在230 客户机通过检查计时器(图2A中设置的)确定(多个)重发数据分组是否 太晚。如果(多个)重发数据分组不太晚则在235将(多个)重发数据分组 插入到队列用于以适当顺序呈现。如果(多个)重发数据分组太晚则在240 客户机丢弃该(多个)重发数据分组。

再次参照图2C,在245客户机检验序列号码来确定具有下一序列号码的 数据分组是否可用。如果具有下一序列号码的数据分组可用则在250将该数 据分组插入到队列用于呈现。如果具有下一序列号码的数据分组不可用则客 户机继续检查数据分组直至其发现要插入到队列用于呈现的数据分组。错误 隐蔽还可以用于隐藏或伪装一些错误或缺少的(多个)数据分组。

再次参照图3,示出了协议栈。协议栈示出应用层在协议栈的顶部。紧 接着在应用层下面的是RTP/MPEG TS层。紧接着在RTP/MPEG TS层下面的 是本发明的RMP层。TCP和UDP层支持RMP层,而因特网协议(IP)层支 持TCP和UDP层。TCP、UDP和IP层典型地被认为是ISO协议栈的第3或 第4层。链路层(第2层,其可以是例如媒体访问控制(MAC)层)和物理 层(第1层)典型地支持第3和第4层。

可以将本发明的RMP方法实施于以下:灵活软件库、硬件、固件、任何 计算机或处理器、专用集成电路(ASIC)、精简指令集计算机(RISC)、场可 编程门阵列(FPGA)或其组合。本发明的RMP方法使用类似插座的用户空 间API以及底层传输部件用于与流传输服务器和播放器应用的简单集成。本 发明的RMP方法对于其所支持的流传输应用是透明的。内部地保持UDP数 据信道和TCP控制信道。本发明的RMP方法可扩展以支持诸如FEC和混合 ARQ之类的其它错误恢复方案。

图4A和4B中示出了用于重发请求和回复的交换消息的示例性格式。所 有的重发请求/回复消息具有其格式在图4A示出的公共首标。图4B示出重发 分组的格式,其包括分组长度字段、分组类型字段和分组子类型字段、标志、 和有效载荷(重发数据)。有效载荷是在先前发送中丢失的数据分组(或帧)。 如图4C所示,重发请求/NACK控制分组包含分组长度字段、分组类型和子 类型字段、标志、开始序列号码和结束序列号码。开始序列号码和结束序列 号码字段指示接收器请求要重发的分组的序列范围。在如图4D所示的可替 换实施例中,重发请求/NACK控制分组包含分组长度字段、分组类型和子类 型字段、标志、基序列号码(base sequence number)和比特图。基序列号码 和比特图指示接收器请求要重发的分组的序列。

在以上描述的本发明的RMP方案中,没有对在数据信道上传送的分组进 行改变。因此,保持了后向兼容性。此外,本发明的RMP方案高效地利用带 宽,这是因为以低开销在控制信道上请求并且重发仅丢失的媒体分组。丢失 分组请求用作NACK(否定确认)并且还向传送器提供反馈。其可以在宽泛 的不同的信道条件下提供高可靠性,这是因为可以在恢复时间窗口内多次重 发丢失的分组。此外,本发明的RMP方案通过具有最大等待时间(即,恢复 窗口)实施用于重发的应用的等待时间限制,并且因此在给定时间限制内在 尽力而为(best effort)传递模型上操作。

注意到使用视频发送解释以上实施例。本发明还可以应用于音频和其它 实时多媒体流传输应用的发送。

图5示出了示例性服务器实现方式的示意图。服务器包括:流传输应用 模块、缓冲器(存储器)、可靠媒体协议(RMP)模块、UDP/IP模块、TCP/IP 模块和网络接口模块。流传输应用模块从本地文件或网络接口模块获得实时 数据。网络接口模块是在从网络发送/接收分组的计算机中出现的网卡。单个 网卡进行发送和接收的双向功能。网络接口模块的示例是连接到计算机网络 的以太网卡、IEEE 802.11/WiFi卡。如果实时数据没有被分组,流传输应用模 块将该数据分组。流传输应用模块将实时数据分组(媒体RTP分组)传递到 RMP模块。RMP模块提供类似插座的应用协议接口(API)用于数据传递和 与应用集成。RMP模块处理数据分组的可靠传输。对于初始发送,RMP模 块使用UDP/IP数据信道并且通过网络接口向(多个)接收器发送数据分组, 所述网络接口可以是,例如,以太网接口或IEEE 802.11接口。RMP模块还 在缓冲器中高速缓存发送的分组的本地拷贝。其通过TCP/IP控制信道从接收 器接收重发请求/否定确认。如果所请求的分组在缓冲器中,则RMP模块使 用TCP/IP控制信道向接收器重发所请求的分组。标记为“Conf”的方块是对 于RMP模块的“配置接口”。可以在初始化的时刻将RMP模块配置为设置 诸如高速缓存器大小、等待分组恢复的最大时间等的参数。

图6示出客户机设备的示例性实现方式的示意图。客户机包括播放器/流 传输应用模块、显示器/扩音器模块、缓冲器(存储器)、可靠媒体协议(RMP) 模块、UDP/IP模块、TCP/IP模块和网络接口。网络接口可以是,例如,以太 网接口或IEEE 802.11接口。网络接口接收所有输入消息。消息到达不同的插 座/地址。网络接口因此确定将接收的消息转发到哪里。通过网络接口模块将 新输入数据分组转发到UDP/IP接口。通过RMP模块将数据分组重发请求和 重发数据分组转发到TCP/IP模块。RMP模块确定接收的数据分组中是否有 任何损坏并且使用UDP/IP和TCP/IP二者来协调分组恢复。RMP模块生成任 何损坏的数据分组的重发请求并且将重发请求转发到TCP/IP模块用于通过 网络接口在网络上发送。RMP模块还在本地缓冲器中存储接收的分组用于重 排序。一旦经由TCP/IP模块从TCP控制信道接收到重发分组,RMP模块以 正确的顺序排序分组。RMP保持以序列号码排序的队列,并且将重排序并插 入分组到这个缓冲器区域/队列中。当恢复窗口过期时,RMP模块向播放器/ 流传输应用传递分组。RMP模块提供类似插座的应用协议接口(API)用于 数据传递和与应用集成。注意到,在恢复窗口过期时一些分组可能不能恢复。 将在恢复窗口过期之后到达的数据分组丢弃。流传输/播放器应用将数据逆分 组化(depacketize)和/或解码并且将数据传递到显示器/扩音器。在RMP“缓 冲器区域”中存储输入分组并且将输入分组移交给应用以便在应用请求分组 时呈现(显示)。标记为“Conf”的方块是对于RMP模块的“配置接口”。可 以在初始化的时刻将RMP模块配置为设置诸如高速缓存器大小、等待分组恢 复的最大时间等的参数。

虽然关于无线网络已经描述了本发明的以上方案,可以在任何类型的涉 及分组丢失的网络中使用该方案。

应当理解,可以以硬件、软件、固件、专用处理器或它们的组合的各种 形式来实现本发明。优选地,作为硬件和软件的组合来实现本发明。此外, 可以作为在程序存储单元上有形地体现的应用程序来实现所述软件。所述应 用程序可以被上载到包括任何适当架构的机器并由其执行。优选地,在具有 诸如一个或多个中央处理单元(CPU)、随机存取存储器(RAM)和(多个)输入 /输出(“I/O”)接口之类的硬件的计算机平台上实现所述机器。该计算机平台 还包括操作系统和微指令代码。在此描述的各种处理和功能可以是由操作系 统执行的微指令代码的一部分或应用程序一部分(或者它们的任何组合)。此 外,诸如附加的数据存储设备和打印设备之类的各种其它外围设备可以连接 到该计算机平台。

还应当理解,因为优选地用软件来实现在附图中描绘的一些组成系统组 件和方法步骤,所以系统组件(或处理步骤)之间的实际连接可以根据本发 明被编程的方式而不同。给出这里的教导,相关领域的普通技术人员将能够 想到本原理的这些和类似的实现方式或配置。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号