使用单播协议的多播传输的制作方法

文档序号:8002067阅读:174来源:国知局
使用单播协议的多播传输的制作方法
【专利摘要】一种用于在服务器(4)和多个客户端(6,8)中至少一个之间使用单播协议进行多播传输的方法,所述方法包括以下步骤:为了能够在所述服务器(4)和所述客户端(6,8)之间实现多播路径(16)和单播路径(10、12)的联合操作,所述服务器(4)向所述客户端(6,8)提供允许所述客户端(6,8)通过多播路径(16)与所述服务器(4)进行通信的信息。
【专利说明】使用单播协议的多播传输
【技术领域】
[0001]本发明大体上涉及用于在网络中传输信息的传输层协议的领域。
[0002]更具体地,本发明处理由IETF RFC 4960中的因特网工程任务组进行标准化的流控制传输协议(被称为是SCTP)。
[0003]因此,本发明是关于用于使用单播协议进行多播传输的方法、客户端和服务器。本发明还涉及实现本发明的方法的计算机程序。
【背景技术】
[0004]可以要求保护在本部分所描述的方法,该方法不一定是之前已经想到的或已经实施的方法。因此,除非在本文中所指示,在此部分中所描述的方法不是本申请权利要求的现有技术,并且并非通过包含在本部分中而成为现有技术。
[0005]流控制传输协议(SCTP)是通用传输层协议,提供与TCP (传输控制协议)类似的服务,外加用于使用现代IP(因特网协议)网络的增强型性能以及支持增加的应用需求的高级特征集合。当今,存在针对所有主要操作系统的SCTP实现。
[0006]在3GPP (第三代合作伙伴计划)中使用由IETF规定的SCTP协议,用于在蜂窝核心网中传送信令信息。设计SCTP以解决TCP针对IP电话信令传送所固有的特定限制。SCTP的主要设计目标之一是以网络容错方式高效地传送微小消息,这对于传送信令消息是重要的。因此,SCTP向应用用户提供针对服务消息传送的可靠数据传输服务。
[0007]SCTP是保护消息边界的面向连接的通用传输协议。SCTP连接(被称为是SCTP关联)可以被用在IPv4和IPv6的顶部。
[0008]消息可以被封装在被称为是块的数据结构中。该块可以将自身封装在SCTP分组中。此外,SCTP集成TCP中不可获得的若干新特征。
[0009]与传统传输层协议相比,SCTP所提供的最重要的增强之一是多宿(multihoming)。此多宿特征允许SCTP关联使用若干源地址和目的地址。然后,在关联的建立时,每个节点可以由若干地址集合访问。在SCTP关联的初始化期间交换传送的地址。
[0010]迄今为止,使用多宿特征作为提供可靠性的方式。一旦源和目的地之前的主路径失败,因为业务可以通过次级路径之一流动,所以SCTP关联保持。
[0011]近来,已经提出并发地使用SCTP允许的不同可用连接路径,使整体带宽增加,固有地增强移动性管理。
[0012]除了上述缺省的类似TCP行为之外,SCTP还支持在RFC 3758中规定的被命名为sctp-pr(SCTP部分可靠性)扩展中的非确认业务(类似m)P(用户数据报协议))。
[0013]在2005年国家计算及科学研究生讨论会(NaCSPC)中的由F.Yong, ff.Chee and
S.Ramadass提交的题目为“M-SCTP !transport layer multicasting protocol,,的文章中,描述了使用多播SCTP(M-SCTP)的方案。该方案在SCTP服务器及其SCTP客户端之前添加M-SCTP服务器栈。该服务器栈管理多播服务的资源并控制多播成员资格。然而,此方案通过使用递归单播协议消息传输来实现多播性能。换句话说,服务器栈通过复制数据分组并使用多个单播协议消息传输向每个客户端单独地发送它们,来实现多播。因此,该方案不解决源于低带宽效率或差的系统扩展的问题。
[0014]文档W02011/071474实现了允许向SCTP添加多播支持的方案的优点。
[0015]该想法是在多播环境中操作SCTP传输协议,而如上文段落中所解释的,SCTP主要被设计用于单播类似TCP/UDP的连接。
[0016]存在许多情况,并且特别是当考虑视频分发(其令人关注地受益于多播和/或广播)时。然而,其通常与广播介质(针对鲁棒性、服务连续性等的双向介质)相关联。今天,应用涉及不同介质以及它们的特性(例如,单播或多播)。
[0017]现有技术(仅存在于通过UDP的多播)解决了以下情况:源(作为例如流服务器)通过共享通信链路向多个目的地分发流,而不允许并发使用多个链路来实现这种多播内容的分发。
[0018]上文所引用的文档W02011/071474不提供对SCTP协议的改变以实现这种多播传输。

【发明内容】

[0019]本发明提出用于改进该情形的解决方案。
[0020]因此,本发明提供了一种用于在服务器和多个客户端之一之间使用单播协议进行多播传输的方法,所述方法包括以下步骤:为了能够在服务器和客户端之间实现多播路径和单播路径的联合操作,服务器向客户端提供允许所述客户端通过多播路径与所述服务器进行通信的信息。
[0021]通过从服务器向客户端提供允许所述客户端通过多播路径与所述服务器进行通信的信息,本发明的所述方法能够实现联合地或交替地使用单播路径和多播路径。
[0022]有益的,所述单播协议是多宿协议。
[0023]优选地,所述多宿协议是流控制传输协议SCTP或SCTP的扩展。
[0024]这种SCTP的扩展的示例是SCTP-PR。
[0025]有利地,在SCTP的情况下,允许所述客户端通过多播路径与所述服务器进行通信的信息包括允许初始化SCTP关联的初始化信息。
[0026]利用本发明,然后,可以设计使用与IP单播承载相关联的并发IP多播承载的多播SCTP服务。
[0027]根据第一实施例,在定期通过多播路径广播的初始化块中携带所述初始化信息。
[0028]有益的,所述初始化块包括通知由所述SCTP关联所携带的输出流的数目的字段。
[0029]有益的,所述初始化块包括所述服务器支持的至少一个IP地址。
[0030]更具体地,广播初始化块包括可以联系到服务器的IPv4/IPv6地址集合。这些地址可以包括其他可能的多播承载。
[0031]根据第二实施例,在所述客户端可获得的文件中描述所述初始化信息。
[0032]例如,这种文件可以是通过任意可能手段(例如,作为服务指南的一部分或通过网络运营商预加载)使客户端可获得的SDP文件。
[0033]有益的,所述方法包括由所述客户端执行初始化SCTP关联的步骤。
[0034]当可获得所述客户端和所述服务器之间的上行链路路径时,这是可能的。[0035]本发明还提供了一种服务器,所述服务器能够使用单播协议与多个客户端中至少一个进行通信,所述服务器包括管理模块,所述管理模块用于:为了能够在服务器和客户端之间实现多播路径和单播路径的联合操作,向所述客户端提供允许所述客户端通过多播路径与所述服务器进行通信的信息。
[0036]本发明还提供了一种客户端,所述客户端能够使用单播协议与服务器进行通信,所述客户端包括接收机模块,所述接收机模块用于:为了能够在服务器和客户端之间实现多播路径和单播路径的联合操作,接收允许所述客户端通过多播路径与所述服务器进行通
信的信息。
[0037]可以以在可编程装置上的软件,实现根据本发明的用于多播传输的方法。其还可以仅以硬件或以软件或以其组合来实现。
[0038]因为可以以软件实现本发明,所以本发明可以在任意合适载体介质上实现为可以向可编程装置供应的计算机可读代码。载体介质可以包括诸如软盘、CD-ROM、硬盘、磁带设备或固态存储设备等的存储介质。
[0039]因此,本发明提供计算机可读程序,该计算机可读程序包括用于使计算机能够执行本发明方法的步骤的计算机可执行指令。图3示出了用于这种计算机程序的通用算法的示例。
【专利附图】

【附图说明】
[0040]本发明是通过示例的方式而不是通过限定的方式进行阐述,在附图中,类似的附图标记指代类似的要素,在附图中:
[0041]图1是根据本发明实施例的使用SCTP并实现多播传输方法的传输系统实施例的示意图;
[0042]图2是根据本发明的实施例的初始化块的示例;以及
[0043]图3是示出了根据本发明实施例的多播传输方法的步骤的流程图。
【具体实施方式】
[0044]参考图1,其中示出了根据本发明实施例的使用多宿单播协议(更具体地说是SCTP)的传输系统2的示意图。
[0045]传输系统2包括服务器4(包含SCTP管理模块5)、第一客户端6和第二客户端8 (分别包含接收机模块7、9)。虽然图1示出了两个客户端,系统2不限于与两个客户端进行操作,并可以支持一至多个客户端。
[0046]服务器4包括存储介质(包括要向客户端6、8传递的内容)。有益地,服务器4维护客户端状态或简档信息,允许其跟踪客户端设备特性(例如,回放能力、屏幕分辨率以及客户端6、8除多播连接之外是否已经建立了单播连接)。相应地,可以使用状态信息来选择性地为某些客户端添加目标内容(例如,不同的音轨或增强的质量)。
[0047]每个单独客户端6、8可以包括与服务器4交换数据分组的若干IP地址。使用单个客户端的IP地址来创建与服务器4的IP地址的通信路径,用于有益于单个客户端6、8和服务器4之间的数据分组的交换。服务器4还可以形成通过多接入网络的与单个客户端
6、8的通信路径。[0048]例如,如图1所示,服务器4可以分别通过单播接入路径10、12(与例如第三代合作伙伴计划(3GPP)单播网络相对应)与客户端6、8进行通信。
[0049]根据本发明,服务器4还可以通过多播接入路径14、16 (与例如3GPP多媒体广播和多播服务(MBMS)网络以及数字视频广播-手持(DVB-H)网络分别相对应)与客户端6、8进行通信。
[0050]驻留在服务器4中的SCTP协议栈18管理服务器4和客户端6、8之间的多播关联,每当客户端向关联中添加它们的单播地址时注册新的客户端地址。其通过多播连接向客户端6、8发送数据块,并使用面向单个客户端6、8的连接来选择性地传递数据,或当客户端6、8显式地请求时重传数据。
[0051]尽管图1示出了三个接入网,系统不限于与三个接入网的操作,并可以支持服务器4和要么支持单播数据传输要么支持多播数据传输的一至多个接入网之间的连接路径。
[0052]单播路径10、12利用服务器4和每个对应客户端6、8之间的双向上行链路和下行链路,提供单播通信支持能力。
[0053]多播路径14、16仅支持单向下行链路。因此,通过多播路径14、16没有可用的从对应客户端6、8到服务器4的反馈信道。
[0054]客户端6、8还可以具有多个网络接口,并能够经由不同类型的通信网络与远程系统连接。具体地,客户端6、8可以通过所有三个上述接入网与远程系统进行连接,并因此既具有单播双向链路也具有多播单向链路。
[0055]每个客户端6、8可以是能够处理数据文件、运行应用并与服务器进行通信用于指示发送、接收和处理数据的硬件设备(例如,计算机或移动设备)。
[0056]为了能够执行特定功能,客户端6、8可以从服务器4请求内容。例如,客户端6、8可以是音频/视频设备,为了合适地处理并显示针对用户的数据,该音频/视频设备必须从服务器4接收特定数据。因此,为了有利于数据的传输,需要客户端6、8和服务器4之间的关联。
[0057]根据本发明,由SCTP层(S卩,SCTP协议栈18)管理混合多播/单播传输。
[0058]分别在服务器4、客户端6和客户端8侧使用接口 20、22、24(例如,存在于微增强套接字应用编程接口)来读取并修改关联参数。增强型套接字API 20、22、24允许读取已经建立单播连接的客户端的列表。
[0059]要么由客户端4通过其多链路侧或由客户端6、8通过上行链路路径10、12发起服务器4和客户端6、8之间的关联。
[0060]SCTP关联是通过传统四向握手来发起的。当然,仅当上行链路路径(例如,路径
10、12)可用时,客户端可以使用此连接建立。
[0061]根据本发明的第一实施例,此关联使用被称为是BINIT的初始化块(与RFC 4960中所定义的INIT块不同)。通过多播路径14、16定期地广播此块,并通知由SCTP关联所携带的输出流(outbound stream)的数目。
[0062]在图2中示出了本发明的初始化块BINIT 30的示例。
[0063]BINIT块包括以下的SCTP关联的INIT块的传统字段:
[0064]-源端口号32:此字段标识SCTP发送方的端口号。接收机结合源IP地址、SCTP目的端口和可能的目的IP地址使用源端口号,以识别此分组所属的关联;[0065]-目的端口号34:此字段标识所考察分组的目的地的SCTP端口号。接收主机将使用此端口号来将该SCTP分组解复用到正确的接收端点/应用;
[0066]-验证标签36:此字段用于验证所考察的SCTP分组的发送方。在双向(即,传统SCTP关联)的情况下,验证标签的值被设置为在关联初始化期间从对端端点所接收的发起标签的值。根据本发明的优选实施例,因为可以从具有多播目的地的服务器4发起该关联,而不需要与任何客户端握手,所以此验证标签被设置为在多播关联的开始随机选择的值。
[0067]-校验和38:此字段包含所考察的SCTP分组的校验和;
[0068]-块类型40:此字段标识块数据中所包含的信息的类型;
[0069]-块标志42:此字段的使用取决于块类型;
[0070]-块长度44:此字段指示块的大小(以字节为单位);
[0071]-发起标签46:客户端使用此字段的值,该客户端希望发起双向连接,以设置它们INIT块的验证标签的内容;
[0072]-初始化TSN48:此字段指示要使用的初始传输序列号;
[0073]-保留50:保留此字段用于未来使用;
[0074]-可选/可变长度参数52:此字段包含可选参数。
[0075]此外,根据本发明的第一实施例,BINIT块包含新字段54。新字段54包含关联所携带的输出流的数目,并且与在INIT块中发现的输出流数目字段完全相同地进行编码。因为一旦已经建立了关联,通常就不再进一步通知此信息,所以其值允许客户端加入关联,以知道有多少流是关联的部分。
[0076]图3的流程图详述了根据第一实施例的本发明的方法的步骤。
[0077]在步骤60,服务器6定期通过多播路径16广播BINIT块30。
[0078]在上行链路可用的情况下(就像在这里具有单播路径10、12),客户端6、8将等待BINIT块,并在步骤62使用发起标签值作为BINIT块中的验证标签值,开始随后四向握手。处理进入INIT块的服务器4检测到非空认证标签,该非空认证标签指示客户端没有正在尝试建立新的“传统”SCTP关联。而是,所接收的验证标签值允许服务器4识别客户端希望使用它的双向路径进行加入的多播SCTP关联。在已经处理与客户端的剩余四向握手之后,月艮务器的SCTP协议栈18将会把客户端的IP地址集成到现有多播关联中。
[0079]服务器10通过可选字段52在其BINIT块以及可能的随后INIT ACK块(在步骤64)中指示其所支持的IPv4/IPv6地址集合以及在多播路径14、16上所使用的多播地址列表。按照RFC 4960对于INIT块的方式,对地址进行编码。
[0080]根据本发明的第二实施例,在SDP文件中描述关联的特性。可以通过任意可能手段(例如,作为服务指南的一部分或通过网络运营商预加载)使客户端6、8可获得此文件。
[0081]在客户端6、8希望发起上行链路连接的情况下,使用不同机制。实际上,服务器将通过多播链路发送的所有块的验证标签设置为固定值,这里的固定值是在服务器初始化关联时所选择的。客户端6、8发送具有验证标签的INIT块,该验证标签被设置为通过多播链路16所接收的块中所发现的验证标签的值。这向服务器4指示客户端6、8希望向现有关联添加此单播链路,而不是发起新关联。发起标签被设置为客户端6、8在传统SCTP握手时所选择的值。服务器4回复具有验证标签的INIT ACK块,该验证标签被设置为客户端6、8所提供的发起标签的值。[0082]从服务器4来看,应用开启了一至多个SCTP套接字。然而,当创建套接字时,使用S0CK_DGRAM类型,而不是传统SOCK_SEQPACKET。这事实上指示基础连接(underlyingconnection)的非连接实质。这还向SCTP协议栈18指示可以建立潜在的点对点关联。
[0083]然后,服务器4应用使用通常的套接字API调用来发送数据。
[0084]然后,由SCTP协议栈18产生BINIT块,并启动通过多播路径14、16的分发业务。
[0085]从客户端6、8来看,应用创建也具有S0CK_DGRAM类型的一至多个SCTP套接字。客户端6、8编程模型与传统多播接收机相似。其调用来自套接字API的标准集合套接字函数,该套接字API具有用于处理IGMP的IP_ADD_MEMBERSHIP选项。然后,客户端6、8将该套接字与特定多播使能接口绑定,并等待进入分组。[0086]然后,由SCTP协议栈18监听对应的多播业务,并在可能的情况下,创建与源SCTP端点的新单播关联。
[0087]从客户端6、8的角度看,从和通常套接字一样的SCTP套接字读取业务。获得附加的上行链路向SCTP套接字给予对于客户端6、8透明地重传丢失分组的请求的可能性。
[0088]在图1的特定使用情况(存在多于一个多播分发机制(例如,DVB-H和MBMS))下,可以通过套接字API后验地添加多播路径。
[0089]显然,本发明在传输层集成了下游多播分发和可选双向多播链路。可以重用支持(leveraging)多播UDP的传统应用,而几乎不用修改。因为当网络支持多播时,可以避免数据的复制,所以大量客户端可以接收到多波流而不使分发网络泛滥。客户端可以对应用透明地建立附加双向单播链路,由于附加带宽,该附加双向单播链路可以用于增强用户体验,或在由于网络覆盖的原因而不能获得多播的区域中,保证服务的连续性。
[0090]尽管已经叙述并描述了当前被认为是本发明的优选实施例,本领域技术人员将理解,在不脱离本发明的真实范围的前提下,可以作出各种其他修改,并且替换等同物。另外,在不脱离本文所描述的中心发明性概念的前提下,可以作出很多修改以将特定情况适应到本发明教导中。此外,本发明的实施例可以不包括上述所有特征。然而,本发明不是意在受限于所公开的特定实施例,而是意在包括落入所附权利要求范围中的所有实施例。
[0091]当解释说明书以及关联权利要求时,应以非穷尽式的方式解释诸如“由…组成”、“包括”、“集成”、“包含”、“是”和“具有”的表达,而是应分别被理解为允许未被显式定义存在的其他项目或组件。对单数的引用也可被理解为对复数的引用,而对复数的引用也可被理解为对单数的引用。
[0092]本领域技术人员将容易地理解,在不脱离本发明范围的前提下,可以对说明书中所公开的各种参数进行修改,并且可以合并所公开和/或所请求保护的各种实施例。
【权利要求】
1.一种用于在服务器(4)和多个客户端(6,8)中至少一个之间使用单播协议进行多播传输的方法,所述方法包括以下步骤:为了能够在所述服务器(4)和所述客户端(6,8)之间实现多播路径(16)和单播路径(10、12)的联合操作,所述服务器(4)向所述客户端(6,8)提供(60)允许所述客户端(6,8)通过多播路径(16)与所述所述服务器(4)进行通信的信肩、O
2.根据权利要求1所述的方法,其中,所述单播协议是多宿协议。
3.根据权利要求2所述的方法,其中,所述多宿协议是流控制传输协议SCTP或SCTP的扩展。
4.根据权利要求3所述的方法,其中,允许所述客户端(6,8)通过所述多播路径(16)与所述服务器(4)进行通信的所述信息包括允许初始化SCTP关联的初始化信息。
5.根据权利要求4所述的方法,其中,所述初始化信息是在定期通过所述多播路径(16)广播的初始化块(30)中携带的。
6.根据权利要求5所述的方法,其中,所述初始化块(30)包括通知由所述SCTP关联所携带的输出流的数目的字段(54)。
7.根据权利要求5或6所述的方法,其中,所述初始化块(30)包括所述服务器(4)支持的至少一个IP地址。
8.根据权利要求4所述 的方法,其中,所述初始化信息是在所述客户端(6,8)可获得的文件中描述的。
9.根据权利要求4至8中任意一项所述的方法,包括由所述客户端(6,8)执行的以下步骤(62):初始化SCTP关联。
10.一种服务器(4),能够使用单播协议与多个客户端出,8)中至少一个进行通信,所述服务器(4)包括管理模块(5),所述管理模块(5)用于:为了能够在所述服务器(4)和所述客户端(6,8)之间实现多播路径(16)和单播路径(10、12)的联合操作,向所述客户端(6.8)提供允许所述客户端(6,8)通过多播路径(16)与所述所述服务器(4)进行通信的信肩、O
11.根据权利要求10所述的服务器(4),其中,所述单播协议是流控制传输协议SCTP或SCTP的扩展,并且允许所述客户端(6,8)通过所述多播路径(16)与所述服务器(4)进行通信的所述信息包括允许初始化SCTP关联的初始化信息。
12.—种客户端出,8),能够使用单播协议与服务器(4)进行通信,所述客户端(6,8)包括接收机模块(7,9),所述接收机模块(7,9)用于:为了能够在所述服务器(4)和所述客户端(6,8)之间实现多播路径(16)和单播路径(10、12)的联合操作,接收允许所述客户端(6.8)通过多播路径(16)与所述所述服务器(4)进行通信的信息。
13.根据权利要求12所述的客户端出,8),其中,所述单播协议是流控制传输协议SCTP或SCTP的扩展,并且允许所述客户端(6,8)通过所述多播路径(16)与所述服务器(4)进行通信的所述信息包括允许初始化SCTP关联的初始化信息。
14.一种包括计算机可执行指令的计算机可读程序,用于使计算机能够执行根据权利要求I至9中任意一项所述的方法的步骤。
【文档编号】H04L29/06GK103546302SQ201310288027
【公开日】2014年1月29日 申请日期:2013年7月10日 优先权日:2012年7月12日
【发明者】斯蒂芬妮·古阿什, 纪尧姆·比绍, 吴振宇 申请人:汤姆逊许可公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1