应用级多播架构的制作方法

文档序号:7640351阅读:212来源:国知局
专利名称:应用级多播架构的制作方法
应用级多播架构
背景技术
随着因特网技术和宽带网络的发展,在市场上出现越来越多的多方交 互式应用。多方交互式应用一般允许多个用户实时交互。这些应用的示例 包括视频会议、因特网游戏、远程教育等等。在这些应用中的媒体传送具 有一对多语义学特征。
多方交互式应用使用网络层中的通信机制来管理应用之间的分组传 送。通常,仅使用一种类型传输协议。例如,多方交互式应用可使用传输
控制协议(TCP)机制来发送分组给其他应用。TCP是用于受控消息传递 的可靠协议并且要求每一源-目的对的独立连接。因而,对于涉及多个参与 者的交互式会话而言,排他性地使用TCP机制变得很麻烦。
对于向其它应用发送分组的多方交互式应用而言,使用用户数据报协 议(UDP)是较快捷的方法。然而,UDP是无连接的并且提供非常少的错 误恢复服务。因而,UDP在可靠性为重要需求的情况下不是理想的传送。
多方交互式应用也可使用IP多播来处理数据传送。IP多播是一种可将 消息同时发送到一组目的地的方法。遗憾的是,IP多播一般需要理解该协 议且能够在合适时刻复制分组的专用路用器。因此,尽管IP多播在专用网 中是有效的,但IP多播对于异构网络中的节点在因特网上进行实时交互是 不实际的。

发明内容
下面提供本揭示的简化概要以便为读者提供基本的理解。本概要不是 本揭示的详尽概观,并且既不标识本发明的关键/本质元素也不描绘本发明 的范围。其唯一目的是以简化形式提供在此揭示一些概念作为稍后提供的 更详细描述的序言。
本示例提供应用级多播架构,它允许多个节点通过数据分组实时交互,这些数据分组是基于有关这些节点之间的连接状态的信息来路由的。在一 个实现中,每一节点在同一交互会话中与其它节点共享它们的连接状态。 数据分组可在应用级中使用在发送节点上可用的多个分组传输协议来路 由。可基于数据分组的服务质量(QoS)要求来选择特定的传输协议。注意 在交互会话中可按照路由图将数据分组中继到其它节点,路由图是基于连 接状态创建的。可为任意多方交互式应用实现多播架构,诸如用于视频会 议、多人游戏、远程教育、虚拟会议和语音通信的应用。
许多伴随特征将随着参考下面的详细描述并结合附图进行理解而得到 更好的认识。


从结合附图的下列详细描述将更好地理解本描述,在附图中
图1示出一示例应用级多播(ALM)系统100。
图2示出图1所示的ALM模块的示例架构。
图3示出应用级多播系统的示例路由图。
图4示出应用级多播系统的示例协议分层模型。
图5示出应用级多播系统的连接级协议数据分组的示例首部。
图6示出应用级多播系统的路由级协议数据分组的示例首部。
图7示出应用级多播系统的带有路由级协议链路状态的示例数据分组。
图8示出应用级多播系统的带有带宽测量信息的示例数据分组。
图9示出应用级多播系统的带有带宽测量报告的示例数据分组。
图10示出应用级多播系统中与交互会话的节点进行通信的示例过程。
图11示出监视与关联于交互会话的节点的连接状态的示例过程。
图12示出处理关联于交互会话的数据分组的示例过程。
图13示出实现所述系统和方法的示例性计算机设备。
相同的标号用于指示附图中相同的部分。
具体实施例方式
下面结合附图提供的详细描述旨在作为对本示例的描述,而非表示用于解释或利用本示例的唯一形式。该描述阐述本示例的功能以及用于构造 和操作本示例的步骤序列。然而,相同或等价的功能与序列可由不同的示
例来完成。
图1示出一示例应用级多播(ALM)系统100。多播是将共同的消息 通信给选择的一组接收器的过程。与需要网络路由器来确定分组传递路径 并在必要时复制分组的IP多播不同,应用级多播将所有功能性推到终端系 统。ALM不要求来自网络路由器的任何特殊支持;因此可容易地在现有网 络基础架构之上采用它。如图1所示,系统100包括在设备103-105中的 多方交互式应用113-115。多方交互式应用被配置为使交互会话的成员能够 在网络135中通过多播彼此交互。在本示例中,多方交互式应用113-115 可以是能够实时交互的任意类型的应用,诸如用于视频会议、多人游戏、 远程教育、虚拟会诊、语音通信等等的应用。交互会话包括允许多方交互 式应用113-115交换数据的任何会话。例如,交互会话可以是视频会议、 音频会议、多媒体会议、在线游戏或涉及多用户的任何事件。服务器130 中的会话控制器131被配置为在多方交互式应用113-115之间建立通信会 话。
对于通信的实际过程,多方交互式应用113-115被配置为与设备
103- 105中的ALM模块123-125交互。ALM模块123-125配置为用应用级 网络监视和数据分组路由来处理多方交互式应用113-115之间的通信。具 体地说,ALM模块123-125被配置为确定可用的传输机制并且以可用的最 适合的机制发送数据分组。ALM模块123-125还被配置为监视设备103-105 之间的连接状态并且按照最近更新的状态路由数据分组。下面结合图2讨 论示例ALM模块。
在一示例操作中,多方交互式应用113从用户接收请求以发起与设备
104- 105中其他用户的交互会话。多方交互式应用113建立与会话控制器 131的会话,会话控制器131提供有关会话的信息给多方交互式应用 114-115,以供其他成员连接该会话中的发起用户所用。多方交互式应用 113-115随后与ALM模块123-125交互以建立彼此的连接(即链路)。ALM 模块123-125随后确定相对于彼此的连接状态,诸如延迟、连通性、可用的传输协议等等,并且向彼此发送该信息。基于该信息,每一ALM模块计 算向交互会话中每一其它设备发送数据分组的路由。
图2示出图1所示的ALM模块123的示例架构。ALM模块123允许 节点(例如运行在多方交互式应用上的设备)在具有多个成员的交互会话 中与其它节点通信。具体地,多方交互式应用可以依赖ALM模块123来主 动管理数据分组路由,而不必仅依赖于直接的一对一连接。ALM模块123 能够从多种协议类型中选择以处理数据分组路由。这些协议一般包括传输 控制协议(TCP)、用户数据报协议(UDP)和与IP多播有关的协议。UDP 是适于媒体流传输的轻量协议。TCP是适于消息传递的可靠协议。在同一 交互会话中的终端系统可被配置为建立彼此之间的TCP和UDP信道两者。 连接尝试可被发送到各类网络地址,诸如客户机在本地看到的专有地址、 服务器査明的公共地址、客户机从支持通用即插即用(UPnP)的网络地址 转换(NAT)检索到的公共地址、IP多播地址等等。
为了允许藏在不同NAT背后的终端系统之间进行UDP通信,定义了 UPD穿孔协议并且该协议与经NAT的UDP简单穿越(STUN)相似。在 一个示例实现中,每一节点发送一定数量的UDP分组(例如IO个分组) 到交互会话中其它节点的每一可用网络地址。如果发送节点在发送所有这 些分组到一特定节点之后不能获得应答,则该发送节点将假设该特定节点 不能经由UDP到达。
除了 TCP和UDP之外,ALM模块123在IP多播可用时使用IP多播。 IP多播是用于一对多数据分发的有效机制。然而,IP多播一般因为固有的 问题而不是全局布置的。通常,IP多播具有不调合的布置,大部分在专用 网中。当IP多播可用时使用IP多播可以大大提高数据传递的效率。在一示 例实现中,每一交互会话与一IP多播地址相关联,后者可由发起该会话的 节点或服务器随机产生。该地址可注册在服务器的会话控制器上并在其它 节点参加时分发给其它节点。参加该交互会话的每一节点发送出其自己的 信息。如果节点通过IP多播信道从同一会话中的成员收到探查分组,则该 节点可停止TCP/UDP探査并使用IP多播用于所有后续的通信。
如图2所示,ALM模块123包括应用级中的组件。这些组件可在会话层202、成员层203和路由层204中实现。ALM模块123还可包括网络级 中的组件。这些组件可包括在连接层208和传输层209中。ALM模块123被配置为允许用户发起并同时参加多个交互会话。例如, ALM模块123可被配置为支持多方A/V会议应用,该应用允许用户与不同 组的成员节点建立多个会议会话。ALM模块123还允许用户同时出席多个 会议会话。在会话层202中,会话对象如会话对象214和215被配置为维 护交互会话和每一会话的成员或出席者列表。会话对象214-215由会话管 理器212管理。因为ALM模块123包括不同层中的组件,故连接层208中的组件可 以不知道成员节点正在参加哪一个交互会话。因而,即使当一个节点出现 在两或多个会话中,ALM模块123可仅创建一个节点连接模块实例并且为 每一类型的连接仅维护一个连接。在成员层203中,每一成员模块227-229被配置为保持成员的应用级 属性,如成员ID、其正在参加的交互会话等等。通常,在应用级中成员模 块227-229与网络级中节点连接模块247-249之间存在一对一的映射。每一 成员模块227-229还被配置为管理来自相应成员的媒体数据,并且如果使 用信道编码则装配A/V分组。本地成员模块225被配置为管理由同一节点中的多方交互式应用生成 的本地流223。例如,本地成员模块225可从节点中的媒体捕捉模块接收数 据流并使用由成员模块227-229提供的信息将这些流发送到交互会话中的 其它节点。在路由层204中的组件用作应用级上的支持多播的路由器。通常,进 出ALM模块123的分组经过路由层204。路由级204中的组件将应用定义 的分组转发到交互会话中的其它成员。可使用分组中的目的地ID来选择下 一跳以转发该分组。如图2所示,路由层204中的组件可包括网络监视器 234、路由管理器236和套接字238。路由管理器236被配置为处理ALM模块123的数据分组路由。由ALM 123处理的数据分组可具有多个目的地。例如,本地节点可以不是唯一的目 的地,甚至不是其收到的分组的目的地。因而,对于任何进入的分组,路由管理器236被配置为检査本地节点是否为目的地之一。如果是,则路由 管理器236将分组转发给上面的层。路由管理器236还被配置为检查该分 组是否需要被中继到其它节点。路由信息可在由路由管理器236维护的本 地路由表中找到或者可由分组携带。ALM模块123配置有应用级连接状态路由。每一节点周期性地测量其 邻近节点的网络动态并且将该信息传播到同一交互会话中的所有其它节 点。网络监视器234被配置为探査和传播网络信息。网络监视器234还配 置为维护同一交互会话中节点的图。每当连接状态消息到达,网络监视器 234就使用该信息来更新该图。当连接状态改变时,路由管理器236被配置为以任意方法重新计算每 一活动流的路由,这些方法如应用Dijkstra的SPF算法、扩展最宽路径优 先(BPF)算法等。路由管理器236还可在与活动流相关联的节点的订阅状 态改变时重新计算该活动流的路由。路由信息保存在路由表中。不同于每 分组的IP路由,ALM123配置有每一流的特定源路由。数据传递路由是在 源处计算的并且被转发到所有中继节点。因而,路由管理器236不仅为本 地流也为它需要中继的流维护路由表。在网络级的连接层208中,每一节点连接247-249被配置为维护至一 特定节点的可用连接,如TCP、 UDP和IP多播。节点连接247-249提供抽 象的网络信道用于与关联于交互会话的每一节点的通信。可用连接的类型 对于路由层204及以上层一般是透明的。由本地流223或网络监视器224 生成的外出分组一般将通过路由表以获得下一跳信息。然后,这些分组被 传递到相应的节点连接模块247-249。节点连接模块247-249将自动选择最 适合的连接以按照指定的服务质量(QoS)要求发送分组。节点连接模块247-249是由节点连接管理器244管理的,它被配置为 添加、删除和更新模块实例。在一个实现中,进入分组一般不直接去节点 连接模块247-249。相反地,进入分组可被传递至节点连接管理器244,该 连接管理器244被配置为维护每一TCP套接字的接收缓冲区,因为TCP分 组可以由下层网络组合或分割。节点连接管理器244可被配置为保持进入 的比特流并且直到收到完整的分组为止才将它们传递给节点连接模块247-249。对于UDP分组,节点连接管理器244可被配置为解包这些分组 并且在将分组传递至正确的节点连接模块之前检索源ID。
在传输层208中,ALM模块123被配置为使用节点中可用的传输机制。 在本示例中,节点中的传输机制包括TCP 253、 UDP 254、 IP多播255。
ALM模块123可暴露应用程序接口 (API),这些API允许诸如图1 中的多方交互式应用113之类的应用与ALM模块123交互。下面是可由 ALM模块123的套接字238暴露的示例API: InitSocketO初始化应用级套接字。 CloseSocket()关闭应用级套接字。
AddMember(MemberID id, ADDRESS地址)调用该接口来通知路 由层和连接层交互会话中的新成员节点。在不调用该接口的情况下, 路由层不能向该成员发送任何数据并且不能从该成员接受任何数据。
UpdateMember(MemberID id, ADDRESS地址)调用该接口来更 新成员节点的地址信息。
CloseMember(MemberID id)调用该接口来通知路由层和连接层 一成员节点的离开。在进行该方法之后,本地站点可不再向该成员发 送任何数据。
CreateStream(StreamType类型,Streamlnfo信息)调用该接口来注 册一新的流如音频和视频。Streamlnfo包含流的比特率。
UpdateStream(StreamID id, Streamlnfo信息)调用该接口来更新 特定流的Streamlnfo。
DeleteStream(StreamID id)调用该接口来撤消注册一现有流。相 应的路由信息可从路由表中删除。
AddSourceMembership(MemberID id, StreamType类型)如果用户 想要订阅一特定成员节点的特定流则调用该接口。
DropSourceMembership(MemberID id, StreamType类型)如果用 户想要取消订阅一特定成员节点的特定流则调用该接口。
AddReceiver(StreamType type, MemberID id)如果本地站点收到 来自成员ID的订阅消息则调用该接口。RemoveReceiver(StreamType类型,MemberID id)如果本地站点 收到来自成员ID的取消订阅消息则调用该接口。
UpdateReceivers(StreamType类型,MemberIDSet idSet)调用该接 口来更新一特定流的接收器设置。
Send(StreamID id, LP VOID数据,UINT长度)调用该接口来发送 一特定流的数据。应用层不必指定接收器设置,因为ALM123可实现 为针对每一流的路由协议。每一流的接收器设置由路由层维护。
BroadcastMessage(Message消息)向ALM组中的所有成员广播控 制消息,无论它们是否己经订阅任何本地流。
SetOnReceiveCallback()调用该接口来设置回调函数,以便接收应 用级数据,诸如来自其它会议成员的音频和视频。 下面是可由路由管理器236暴露的示例API:
GetRoutingTopo(MemberID id, StreamType t, CTopology &tp)该 接口允许开发者/用户可视化应用级传输路由。拓扑可保存在存储器块 中并且可用与路由级协议中定义的相同的格式来实现。 下面是可由网络监视器234暴露的示例API:
SetBWMeasurementData(LPVOID data[], UINT unitLen, UINT分 组)该接口允许开发者设置用于带宽测量的数据。数据在应用级被分 割和编码(如果开发者想要进行信道编码的话)。
SetBWDataProcessCallback()如果开发者想要使用带宽测量数 据,则可调用该接口来设置回调函数。
图3示出用于应用级多播系统的示例路由图300。示例路由图300包 括6个节点,它们正在参加一个由应用级多播系统处理的交互会话。通常, 节点103基于网络信息如由网络监视器收集的节点之间的连接状态来建立 图300。示例路由图300表示由节点103产生的或者发送到节点103用于关 连子节点104-108的流的数据分组路由。如图3所示,节点103被配置为 分别通过连接312和313直接发送数据分组至节点104和105。连接312 和313可用任何类型的协议来实现。例如,连接312和313取决于QoS要 求可使用TCP、 UDP或IP多播。数据分组路由可用各种方式实现。例如,路由信息如路由图300或路由表,可通信至中继节点如节点105。路由信息
也可包括在数据分组中,诸如包括源和目的地标识符。
在示例路由图300中,节点103依赖节点105用连接314-316来将数 据分组转发至节点106-108。例如,节点105-108可以是其中IP多播可用 的专用网的一部分。因而,节点105可被配置为用实现IP多播协议的连接 314-316来发送数据分组。
图4示出用于应用级多播系统的示例协议分层模型400。示例分层模 型400允许应用级多播系统定义连接、路由和应用层上的协议。例如,带 有应用级首部402和数据412的应用级消息可密封在具有数据413的路由 级数据报中。包括路由级首部403和数据413的路由级消息可密封在具有 数据414的连接级数据报中。具有首部404的连接级消息随后用传输层协 议在具有首部405-406和数据415-416的消息中发送。
图5示出用于应用级多播系统的连接级协议数据分组的示例首部500。 通常,连接层是应用级多播系统控制的最低层。在连接层中的消息通常由 对应于交互会话中一节点的节点连接管理器或节点连接模块诸如图2中的 节点连接模块247-249来处理。
如图5所示,示例连接级数据分组首部500可包括魔法字(magic word)
字段、版本字段、可靠性字段、消息ID字段、消息长度字段、发送器ID
字段和ACK序列字段。魔法字字段标识应用级多播系统。版本字段示出应
用级多播系统的版本。可靠性字段指示当前分组假设为经由可靠传送信道
来发送。如果该分组要求可靠传送,并且是从UDP信道收到的,则在收到
该消息时需要发送ACK。 ACK序列字段包含确认需要ACK的分组的接收
所使用的分组的序列号。
消息ID字段包含消息类型信息。在一个示例中,消息类型可定义为 画m CLP一MESSAGEJTYPE
CLP—HEL = 0x0001, 〃问候
CLP_PRB = 0x0002, 〃用于测量RTT的探査消息
CLP一APR = 0x0004, 〃对通信消息的回答
CLP—ACK = 0x0008, 〃对需要ACK的分组的确认
CLP—OTH = 0x0010, 〃其它消息长度字段示出分组的长度,包括连接层首部500。发送器ID字段 包含分组发送者的成员ID,它可以是与分组源不同的身份。
在一个示例实现中,魔法字字段为6位;版本字段为2位;可靠性字 段为l位;ACK序列字段为8位;消息ID字段为16位;消息长度字段为 16位;以及发送器ID字段为128位。
如上所述,消息类型可包括问候消息(CLP_HEL)、探査消息 (CLP—PRB)、回答探査消息(CLP—APR)和确认消息(CLP_ACK)。 问候消息主要用于建立连接。在节点接受TCP连接请求之后,它从连接接 收到的第一个消息一般是问候消息。否则,主机节点可关闭该连接。主机 节点也可使用问候消息通过UDP和IP多播信道来査验交互会话中的其它 节点。在收到问候消息时,节点连接管理器可检査是否己经存在与数据分 组的首部中的发送器ID相关联的节点连接模块。如果是,则节点连接管理 器更新该节点连接模块的连通性信息(例如,如果从UDP收到问候消息则 将UDP信道状态设置为"可用")。否则,节点连接管理器创建新的节点连 接模块实例并且将它与分组首部中的发送器ID相关联。问候消息的主体是 空的,因为发送器ID (它始终与问候消息中的源ID相同)已经携带在连 接层协议分组首部中。
问候消息也可用作保持活动消息。例如,主机节点可每5秒发送问候 消息至每一可用的UDP和IP多播信道以保持链路活动。如果主机节点在 一定的时间内(例如30秒)还没有收到来自特定链路的问候消息,则主机 节点可假设连接断了。在这种情形中,节点连接模块实例将试着重新连接。
探査和回答探查消息可用于测量端到端的延迟。两个消息可具有相同 的主体结构 一个包含时间戳的DWORD字段。在一个示例实现中,交互 会话的主机节点每10秒发送探测消息至每一可用的UDP信道。在分组中 的时间戳指示发送时间。在收到该消息时,交互会话中的成员节点将消息 ID改为回答探査并且将该分组立即发送回去。当主机节点收到返回的分组 时,它可通过从当前时间中减去分组中所携带的时间戳来计算RTT。结果 被报告给网络监视器。
在应用级多播系统中,基本上存在两种分组控制消息和媒体流。尽管媒体数据的丢失影响通信质量,但控制消息的丢失通常是破坏性的。例 如,订阅请求的丢失使订阅者保持等待;网络状态更新的丢失可导致网络 拥塞。因而,可靠的TCP信道通常较佳地用于传送控制消息。
然而,由于防火墙和NAT的存在,TCP连接并不始终可用。有时, UDP是两个终端系统进行通信的唯一可用信道。在一个示例实现中,应用 级多播系统可使用与TCP中的"超时并重新传送"方案相似的轻量机制来确 保在UDP上的可靠传递。可使用连接级协议首部中的可靠性字段。在该字 段中的指示(例如在l位的可靠性字段中的1)指示数据分组需要确认。滑 动窗口机制不优选,因为不必保证按序列传递。
CLP_ACK消息用于确认需要ACK的分组的收到。例如,分组的主 体可包含一个序列号,它指示该成员节点已经收到哪一个分组。可为序列 号使用较小的字段(例如8位),因为需要ACK的分组的量不会大。
CLP—OTH消息可用于指示一个分组属于上面的层。在这种情形中, 连接中的组件可去除连接级协议首部并且将该数据传递至路由级协议。
图6示出用于应用级多播系统的路由级协议数据分组的示例首部600。
如图6所示,示例路由级数据分组首部600可包括源ID字段、消息类型字
段、媒体类型字段、接收器数量字段、拓扑长度字段、接收器列表字段、
序列号字段、比特率字段和拓扑字段。源ID字段包含分组源的成员ID。
消息类型字段包含消息类型信息。在一个示例中,消息类型可定义为 enum RLP_MESSAGE TYPE
RLP_LKST = 0x01, 〃链路状态信息RLPSBSC = 0x02,〃订阅请求 RLP—UNSB = 0x04,〃取消订阅请求 RLP一ACTP = 0x08, 〃接受拓扑 RLP—RJTP = 0x10, 〃拒绝拓扑RLP—BWMS = 0x20 〃带宽测量 RLP一BWRP-0x21, 〃带宽测量报告 RLP—STRM = 0x40, 〃媒体流 RLP_APPM = 0x80; 〃应用级消息RLP—QUIT = OxFF, 〃离开会话媒体类型字段指示包括在数据分组中的媒体数据类型。接收器数量字 段指示该分组的接收器数量。拓扑长度字段指示拓扑字段中条目的数量。 接收器列表字段包含条目,其中列表中的每一条目包含成员ID。序列号字 段包含拓扑的序列号。流比特率字段包含与拓扑相关联的流的新比特率。
拓扑字段包含多播树的拓扑。该字段可包括在RLP—STRM类型的消息中, 该消息可包含流的路由信息。
在一个示例实现中,消息类型字段包括8位;源ID字段包括128位; 媒体类型字段包括7位;接收者数量字段包括8位;拓扑长度字段包括8 位;接收器列表字段中的每一条目包括128位;序列号字段包括32位;流 比特率字段包括32位;以及拓扑字段的每一条目包括128位的成员ID和 32位的子号码。
图7示出用于应用级多播系统的带有路由级协议链路状态信息的示例 数据分组700。通常,路由级协议链路状态数据分组是由监视与关联于交互 会话的其它节点连接或链路的节点的网络监视器发送的。网络监视器收集 网络动态并且周期性地用路由级协议链路状态数据分组将该信息传播至其 它成员节点。如图7所示,示例的路由级链路状态数据分组700可包括链 路数量字段、目的地ID字段、RTT字段、可用带宽字段以及更多链路字段。
链路数量字段指示该分组中链路状态条目的数量。每一链路状态条目 包含链路的目的地ID、 RTT和可用带宽。节点一般发布从该节点发起的链 路的链路状态。每一目的地ID字段条目可仅包含结束节点的成员ID。 RTT 字段和带宽字段分别包括有关来回时间和传送带宽的信息。更多链路字段 可包括有关从该节点发起的其它可用链路的信息。
通常,路由级协议链路状态数据分组被传递给网络监视器。基于新的 信息重新为每一流计算媒体传递路由。如果路由不同于先前的计算,则可 在该媒体类型的所有外出数据分组中携带新的拓扑,直到新的多播树中所 有内部节点都接受了该拓扑为止。
具有应用级多播系统的多方交互式应用的用户可选择订阅/取消订阅 交互会话中一特定成员的特定媒体流。订阅/取消订阅消息可用于该选择。 这些消息可包含媒体类型。对应于源ID和接收器ID的订阅者ID和媒体提供者ID可从路由级协议数据分组首部中检索到。这些消息一般被传递给路 由级中的组件。网络动态和订阅状态可输入到路由管理器中。在任一输入 中的任何变化可引起多播树的重新计算。
在从关联于交互会话的源节点收到拓扑信息时,接收节点可检查它是 否能如拓扑所要求的那样中继流,例如,按照最新更新的可用带宽测量。
如果能,则接收节点更新路由表并且发送RLP_ACTP消息至源节点。否则, 接收节点保持路由不变并且发送RLP—RJTP消息至源节点。
RLP—ACTP消息可包含拓扑的序列号。该序列号是由源节点生成的并 且在分组的拓扑部分中携带。序列号帮助源节点确认所接受的内容是关于 最新更新的拓扑的。源节点在从多播树中的所有内部节点收到RLP—ACTP 之后停止发送拓扑。
有时,尤其当两或多个源节点在相近时间改变其拓扑时,多个源节点 可能要求同一接收节点中继其数据。由于可用带宽是在先来先用的基础上 使用的, 一些后到的中继请求可能无法满足。在这些情形中,中继请求发 送RLP_RJTP消息至源节点。除了被拒绝的拓扑的序列号,分组可包含接 收节点的最新链路状态信息。基于该新信息,源节点可重新计算其多播树 并且以新的序列号来分发新的拓扑。
图8示出用于应用级多播系统的带有带宽测量信息的示例数据分组 800。分组800 —般由网络监视器使用以测量数据通信性能。轮次号字段指 示分组所属的测量轮次。轮次号字段用于避免混淆来自连续测量过程的分 组。序列号字段包含该分组的按序编号。时间戳字段记录发送时间。数据 字段包括关联于带宽测量信息的数据。
应用级多播系统允许用户在应用层设置和处理带宽测量数据。应用层 指派的数据的示例是用户的显示图像和最近的实时视频的I帧。这些数据 可通过暴露的接口传递至网络监视器。默认地,网络监视器可使用无意义 数据块用于带宽测量。开发者也可设置用于处理测量数据的回调函数。数 据部分的结构可由开发者定义。
图9示出用于应用级多播系统的带有带宽测量报告的示例数据分组 卯0。分组900—般由节点的网络监视器传递至关联于交互会话的其它节点。轮次号字段标识一个特定的测量轮次。增加趋势字段指示是否在一个特定 的测量轮次观测到单向延迟的增加趋势。如果在当前轮次中未观测到增加 趋势,则发送器可在下一轮次中增加探查率。可用带宽字段记录计算出的 所测量路径的可用带宽。
应用级多播系统中的节点可发送其它数据分组至同一交互会话中的其 它节点。例如,在离开交互会话之前,节点可通过任何可用的信道发送
RLP—QUIT至该会话的所有节点。在收到该消息时,应用级多播系统中的 每一节点如果离开的节点已经是其流的订阅者则可清除路由表中的相应条 目并且重新计算多播树。
由应用级多播系统处理的媒体流数据可以是音频、视频或任何用户定 义的流。在收到RLP_STREAM分组时,路由层中的组件如路由管理器可 检查分组是否包括拓扑信息。然后,路由管理器可从本地订阅列表中检査 本地用户是否订阅了关联于该分组的流。如果是,则路由管理器可去除路 由级协议首部,并且将路由级协议分组传递至应用级协议组件。路由管理 器可查找路由表以査看是否要将该分组转发至交互会话中的其它节点。如 果是,则路由管理器打包路由级协议首部,并且将该分组向下传递至连接 层。
应用级多播系统的应用级组件可以定义较低层可能无法理解的它们自 己的消息。当收到这些消息时,路由层组件将其直接传递至应用级。应用 级组件被配置为处理媒体流,包括任何用户定义的流。开发者可以按需定 义应用级首部。如果使用信道编码,则在应用级中处理分割和重新装配。
图10示出用于在应用级多播系统中与交互会话的节点通信的示例过 程1000。示例过程1000可由节点实现以发起和组织交互会话。在框1002, 对交互会话的请求被发送至会话控制器。在框1004,接收有关关联于该交 互会话的节点的信息。在框1006,建立与这些节点每一个的连接。在框1008, 从每一节点接收连接状态信息。在框1010,计算用于发送数据分组至每一 节点的路由图。在框1012,将计算出的路由图提供给各节点。在框1014, 按这些路由发送内容。在框1016,监视到每一节点的连接状态。将结合图 11讨论用于监视连接状态的示例过程。图11示出用于监视与关联于交互会话的节点的连接状态的示例过程
1100。在框1102,标识一数据分组。在判断框1104,作出数据分组是否包 含节点的连接状态信息的判断。如果是,则过程1100进行至判断框1106。 如果数据分组不包括连接状态信息,则过程1100进行至框1114,在其中处 理数据分组。将结合图12讨论用于处理数据分组的示例过程。
在判断框1106,作出连接状态是否已改变的判断。如果否,则过程返 回框1102。如果连接状态已经改变,则过程1100继续至框1108,在其中 按照改变的连接状态重新计算路由图。在框lllO,向各节点提供重新计算 的路由。
图12示出用于处理关联于交互会话的数据分组的示例过程1200。数 据分组可由关联于交互会话的任何节点来发送。在框1202,接收关联于交 互会话的数据分组。在判断框1204,作出分组是否与本地目的地相关联的 判断。如果是,则过程1200继续至框1206,在其中将分组转发至多方交互 式应用进行处理。过程随后进行至判断框1208。如果分组不与本地目的地 相关联,则过程1200也进行至判断框1208。
在判断框1208,作出是否中继数据分组的判断。如果不中继分组,则 过程1200返回框1202。如果要中继分组,则过程进行至框1210,在其中 标识关联于交互会话的路由图。在框1212,按照路由信息将分组转发至一 或多个中继节点。例如,可将分组转发至路由树中的子节点。过程随后返 回至框1202。
图13示出用于实现所述系统和方法的示例性计算机设备1300。在其 最基本的配置中,计算设备1300 —般至少包括一个中央处理单元(CPU) 1305和存储器1310。
取决于计算设备的精确配置和类型,存储器1310可以是易失性(如 RAM)、非易失性(如ROM、闪存等)或者两者某种组合。另外,计算设 备1300还可具有附加的特征/功能性。例如,计算设备1300可包括多个 CPU。所述方法可由计算设备1300中的任何处理单元以任何方式来执行。 例如,所述过程可由多CPU中的两个CPU并行执行。
计算设备1300还可包括其它存储(可移动和/或不可移动),其中包括但不限于磁或光盘或带。这样的其它存储在图13中由存储1315例示。
计算机存储介质包括易失性和非易失性、可移动和不可移动介质,它们是 以存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任
何方法或技术实现的。存储器1310和存储1315都是计算机存储介质的示 例。计算机存储介质包括但不限于,RAM、 ROM、 EEPROM、闪存或其它 存储器技术,CD-ROM、数字多功能盘(DVD)或其它光存储,磁带盒、 磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并且可由计 算设备1300访问的任何其它介质。任何这样的计算机存储介质可以是计算 设备1300的一部分。
计算设备1300还可包含允许该设备与其它设备通信的通信设备1340。 通信设备1340是通信介质的示例。通信介质一般体现为在经调制数据信号 如载波或其它传输机制中的计算机可读指令、数据结构、程序模块或其它 数据,并且包括任何信息传递介质。术语"经调制的数据信号"指一种信号, 它具有一或多个以将信息编码到该信号中的方式设置或改变的特性。作为 示例而非限制,通信介质包括线接介质如线接网络或直接线连接,以及无 线介质如声音、RF、红外和其它无线介质。在此使用的术语计算机可读介 质包括计算机存储介质和通信介质两者。所述方法可用任何形式编码在任 何计算机可读介质,这些形式诸如数据、计算机可执行指令等等。
计算设备1300也可具有诸如键盘、鼠标、笔、语音输入设备、触摸输 入设备等的输入设备1335。还可包括诸如显示器、扬声器、打印机等的输 出设备1330。所有这些设备是本领域周知的并且不必详细讨论。
本领域的技术人员将认识到用于存储程序指令的存储设备可分布在网 络上。例如,远程计算机可存储描述为软件的该过程的示例。本地或终端 计算机可访问远程计算机并下载该软件的一部分或全部以运行该程序。可 替换地,本地计算机可按需下载软件的片断,或者通过在本地机器上执行 一些软件指令而在远程计算机(或计算机网络)上执行一些软件指令来分 布式地处理。本领域的技术人员将认识到,通过使用本领域技术人员已经 的常规技术,软件指令的全部或部分可由专用电路如DSP、可编程逻辑阵 列等来执行。
权利要求
1.编码有用于执行各步骤的设备可执行指令的一个或多个设备可读介质,所述步骤包括标识与交互会话相关联的节点;建立与每一节点的连接;从所述节点接收连接状态信息;至少部分地基于所接收的连接状态信息计算用于将与所述交互会话相关联的数据分组发送至每一节点的路由图,所述路由图是在实时应用级中计算的;提供所述计算出的路由图给负责中继实时数据分组的节点;以及使用所述计算出的图将数据分组发送至所述节点。
2. 如权利要求1所述的一个或多个设备可读介质,其特征在于,还包括监视与所述节点相关联的连接状态;以及响应于至少一个所述连接状态的改变,按照所述改变的连接状态重新 计算所述路由图。
3. 如权利要求2所述的一个或多个设备可读介质,其特征在于,还包 括向所述中继节点提供所述重新计算出的路由图。
4. 如权利要求l所述的一个或多个设备可读介质,其特征在于,所述 路由图至少部分地是基于应用Dijkstra的SPF算法或扩展的最宽路径优先(BPF)算法中的至少一者来重新计算的。
5. 如权利要求l所述的一个或多个设备可读介质,其特征在于,所述 交互会话与视频会议、音频会议、多媒体会议、在线游戏或涉及多用户的 事件中的至少一者相关联。
6. 如权利要求l所述的一个或多个设备可读介质,其特征在于,还包括标识用于发送至所述节点的数据分组; 标识可用于发送所述数据分组的传输协议;以及至少部分地基于与所述数据分组相关联的服务质量要求来选择所述传 输协议中的至少一者来发送所述数据分组。
7. 如权利要求6所述的一个或多个设备可读介质,其特征在于,所述 传输协议包括TCP、 UDP和IP多播中的至少一者。
8. 如权利要求l所述的一个或多个设备可读介质,其特征在于,所述 数据分组对应于与视频会议相关联的数据流。
9. 编码有包括设备可执行组件的一个或多个设备可读介质,所述设备 可执行组件包括被配置为与交互会话相关联的节点通信的多方交互式应用;以及 被配置为从所述多方交互式应用接收去往所述节点的数据分组的路由 模块,所述路由模块还被配置为标识所述节点的连接状态并且计算用于将 所述数据分组发送至所述节点的路由图,所述路由图是至少部分地基于所 确定的连接状态来计算的,所述路由模块还被配置为向每一节点提供所述 路由图,从而指示所述每一节点将所述数据分组中继至与所述交互会话相 关联的另"节点。
10. 如权利要求9所述的一个或多个设备可读介质,其特征在于,还 包括网络监视器,所述网络监视器被配置为接收带有与关联于所述交互会 话的节点连接状态有关的信息的数据分组并且将所述连接状态提供给所述 路由模块。
11. 如权利要求9所述的一个或多个设备可读介质,其特征在于,所 述路由模块是在应用级中实现的。
12. 如权利要求9所述的一个或多个设备可读介质,其特征在于,还 包括多个成员模块实例,每一成员模块实例对应于与所述交互会话中至少 一个节点相关联的成员,每一成员模块实例包括与所述相应成员相关联的 属性并且被配置为管理与由所述多方交互式应用提供的相应成员相关联的 数据。
13. 如权利要求12所述的一个或多个设备可读介质,其特征在于,所 述属性包括对应于所述成员的标识符和对应于所述成员正在参加的会话的 标识符中的至少一者。
14. 如权利要求12所述的一个或多个设备可读介质,其特征在于,每 一成员模块实例还被配置为如果使用了信道编码则为所述相应成员装配数 据分组。
15. 如权利要求14所述的一个或多个设备可读介质,其特征在于,还 包括多个节点连接实例,每一节点连接实例对应于至少一个成员模块实例 并且被配置为管理与关联于所述至少一个成员模块的节点的连接。
16. 如权利要求15所述的一个或多个设备可读介质,其特征在于,每 一节点连接实例还被配置为至少部分地基于与数据分组相关联的服务质量 要求选择传输协议来发送所述数据分组至所述相应的节点。
17. 如权利要求16所述的一个或多个设备可读介质,其特征在于,每 一节点连接实例还被配置为从包括TCP、UDP和IP多播的传输协议中选择。
18. 如权利要求15所述的一个或多个设备可读介质,其特征在于,所 述节点连接实例是在网络级中实现的。
19. 一种用于参加交互会话的多个节点的系统,包括 用于每一节点向其它节点提供连接状态的装置;用于至少部分地基于所述连接状态在应用级计算路由图的装置,所述 路由图用于将与所述交互会话相关联的数据分组路由至每一所述节点;用于每一节点使用从所述节点上可用的多个传输协议中选择的传输协 议路由与所述交互会话相关联的数据分组的装置;以及用于响应于所述连接状态的改变重新计算所述路由图的装置。
20. 如权利要求19所述的系统,其特征在于,还包括用于使用对应于 分层的协议模型的数据分组在所述交互会话的各节点之间发送数据流的装 置。
全文摘要
提供一种应用级多播架构,它允许多个节点用数据分组实时进行交互,这些数据分组是基于有关各节点之间的连接状态的信息来路由的。每一节点与同一交互会话中的其它节点共享它们的连接状态。数据分组可在应用级中使用在发送节点上可用的多个分组传输协议来路由。可基于数据分组的服务质量(QoS)要求来选择具体的传输协议。在交互会话中的节点可按照基于连接状态创建的路由图将数据分组中继至其它节点。可为任何多方交互式应用实现该应用级多播架构,诸如用于视频会议、多人游戏、远程教育、虚拟会议以及语音通信等应用。
文档编号H04L12/56GK101292474SQ200680038791
公开日2008年10月22日 申请日期2006年10月19日 优先权日2005年10月21日
发明者C·罗, J·李 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1