IP组播技术出现已久,但这仅仅是IP组播时代的开始。我们认为, IP组播是从WWW技术推广后出现的最激动人心的网络技术之一。
随着骨干网带宽增加使因特网视/音频成为可能,小区网络中视/音频应用不断丰富。这类依赖于组播技术才能实现的应用的出现,令对组播技术的支持成为网络建设的一个重要内容。
目前经常被采用的稠密分布模型的域内组播路由协议是PIM。PIM协议的全称是“协议无关组播路由协议”,它主要应用于路由器中。在高端的多层交换机中也有广泛应用。它不受网络规模限制,应用非常灵活。
IP组播技术的提出是基于对业务通信结构进行优化的思想。在某些业务中,常常有一定数量的用户在接收一些完全相同的数据流。如果采用IP单播技术来为这些用户服务,需要发送者为每个用户单独建立一个数据流。由于这些数据流重复地发送完全相同的数据,所以将大大加重发送主机和通信网络的负载,同时也比较难以保证对不同接收者的服务的公平性。而组播技术只要求发送者为同一数据发送一个数据流,通过网络来选择合适的通信设备,为不同的用户复制同一数据流来降低主机服务负载、网络通信负载和实现服务的公平性。
组播应用大致可以分为三类: 点对多点应用,多点对点应用和多点对多点应用。
目前推广组播网络技术的困难在于组播应用难以提供有效的用户认证和计费手段,缺乏成熟的商业化基础;同时,还缺乏有效的手段保证服务质量,包括延时、丢失率和对异质链路的支持等。当前, 这些问题主要依靠应用本身来解决。
下面以具有支持PIM功能的港湾交换机为例,对三种组网方式进行探讨。
点对多点的应用
点对多点应用是指一个发送者,多个接收者的应用形式,这是最常见的组播应用形式。典型的应用包括:
媒体广播:如演讲、演示、会议等按日程进行的事件。其传统媒体分发手段通常采用电视和广播。这一类应用通常需要一个或多个恒定速率的数据流,当采用多个数据流(如语音和视频)时,往往它们之间需要同步,并且相互之间有不同的优先级。它们往往要求较高的带宽、较小的延时抖动,但是对绝对延时的要求不是很高。
媒体推送:如新闻标题、天气变化、运动比分等一些非商业关键性的动态变化的信息。它们要求的带宽较低、对延时也没有什么要求。
信息缓存: 如网站信息、执行代码和其他基于文件的分布式复制或缓存更新。它们对带宽的要求一般,对延时的要求也一般。
事件通知:如网络时间、组播会话日程、随机数字、密钥、配置更新、有效范围的网络警报或其他有用信息。它们对带宽的需求有所不同,但是一般都比较低,对延时的要求也一般。
状态监视:如股票价格、传感设备、安全系统、生产信息或其他实时信息。这类带宽要求根据采样周期和精度有所不同,可能会有恒定速率带宽或突发带宽要求,通常对带宽和延时的要求一般。
点对多点应用的网络设备连接拓扑如图1所示。
多点对多点的应用
多点对多点应用是指多个发送者和多个接收者的应用形式。通常,每个接收者可以接收多个发送者发送的数据,同时,每个发送者可以把数据发送给多个接收者。典型应用包括:
多点会议: 通常音/视频和白板应用构成多点会议应用。在多点会议中,不同的数据流拥有不同的优先级。传统的多点会议采用专门的多点控制单元来协调和分配它们,采用组播可以直接由任何一个发送者向所有接收者发送,多点控制单元用来控制当前发言权。这类应用对带宽和延时要求都比较高。
资源同步:如日程、目录、信息等分布数据库的同步。它们对带宽和延时的要求一般。
并行处理: 如分布式并行处理。它对带宽和延时的要求都比较高。
协同处理:如共享文档的编辑。它对带宽和延时的要求一般。
远程学习: 这实际上是媒体广播应用加上对上行数据流(允许学生向老师提问)的支持。它对带宽和延时的要求一般。
讨论组:类似于基于文本的多点会议,还可以提供一些模拟的表达。
分布式交互模拟(DIS):它对带宽和时延的要求较高。
多人游戏: 多人游戏是一种带讨论组能力的简单分布式交互模拟。它对带宽和时延的要求都比较高。
J am Session:这是一种音频编码共享应用。它对带宽和时延的要求都比较高。
多点对点的应用
多点对点应用是指多个发送者,一个接收者的应用形式。通常是双向请求响应应用,任何一端(多点或点)都有可能发起请求。典型应用包括:
资源查找:如服务定位,它要求的带宽较低,对时延的要求一般。
数据收集: 它是点对多点应用中状态监视应用的反向过程。它可能由多个传感设备把数据发回给一个数据收集主机。带宽要求根据采样周期和精度有所不同,可能会有恒定速率带宽或突发带宽要求,通常这类应用对带宽和延时的要求一般。
网络竟拍: 拍卖者拍卖产品,而多个竟拍者把标价发回给拍卖者。
信息询问: 询问者发送一个询问,所有被询问者返回应答。通常这对带宽的要求较低,对延时不太敏感。
Juke Box:如支持准点播(Near-On-Demand)的音视频倒放。通常接收者采用“带外的”协议机制(如HTTP、RTSP、SMTP,也可以采用组播方式)发送倒放请求给一个调度队列。它对带宽的要求较高,对延时的要求一般。