1.6 组播的历史
必要性是发明之母。20世纪80年代早期,Steve Deering是斯坦福大学的一名学生,正在研究分布式处理项目。这个项目中使用的其中一个底层通信机制能够让一台设备向多台设备发送消息。随着项目的成长,计算机资源的需求也随之增长。这些资源分布在校园各处,因此需要有一种机制能够让这些设备通过路由器(三层)架构进行通信。这种通信可以使用多个单播消息实现,或者通过在整个网络中发送广播消息实现。在这个环境中,上述方法都不可行,因为它们的效率都太低了。这个解决方案需要一个单独的组地址,需要路由器能够参与发送消息,并且需要主机能够随意加入或离开这个组——从而,组播诞生了。
1.6.1 组播骨干
组播骨干(MBone)项目启动于Deering博士发明组播的10年后。当时构成Internet的那些路由器还无法支持组播;组播骨干由一些UNIX主机构成,它们之间使用DVMRP(距离矢量组播路由协议)通过隧道相连,运行称为mrouted的后台程序。组播骨干当时由高校推动,用来传输的内容包括IETF(Internet工程任务组)会议、音乐会等,观众范围非常有限。
1.6.2 Internet组播
Internet组播允许所有连接到Internet的人都能够观看组播中的内容。你能想象通过组播观看任意电视频道、收听广播电台、参加远程教育课程吗?但很可惜,在20世纪90年代由学术界推动的组播骨干并没有变成ISP(Internet运营商)提供的主流服务,因为很多运营商都不支持在它们的网络中传输组播流量。ISP对于组播的支持由于多种因素被推迟了:安全考量、实施的复杂性,以及轻松共享组播路由信息的能力。
但这并没有消除私有网络中对于组播的需求。就像前文中提到的,很多应用都获益于能够传输组播流量的网络架构。我们仍然可以在Internet上通过隧道传输组播流量,即使Internet本身并不支持组播。
1.6.3 IPv6组播
Internet的快速增长导致了IPv4地址空间的耗竭。因此人们使用IPv6来支持Internet的扩张,并且为地球上的任意设备连接到网络中做好准备。
IPv4地址使用32比特数值来区分每个设备,而IPv6使用128比特数值。这种增长带来了惊人的可扩展性。IPv6的实施中还有另一个有趣的特征,那就是IPv6不再支持网络广播。IPv6中的两种通信方式是单播或组播。
由于在协议创建期间组播就是考量内容之一,因此IPv6的内建功能增强了组播的操作。除了更大的地址空间之外,IPv6中的其他特性也使组播的设计变得简单。第6章将介绍更多有关IPv6功能和组播的内容。
1.6.4 组播的发展与标准化
与很多其他的网络技术一样,人们对于组播发展的推动是不遗余力的。人们已经对组播协议的不足之处进行了很多改善,还增强了很多特性,这些不足和特性都是在创建组播协议之初所没有预见到的。
你能想象如果每个开发者都根据他们自己对于这项协议的理解来编写代码,会发生什么吗?幸运的是,标准化团体协调了解决技术难题的方法,并创建统一文档,让这些解决方案能够实现兼容性和互操作性。有两个主要的标准化组织为推动通用实施方法做出了贡献,它们是IETF(Internet工程任务组)和IEEE(电气和电子工程师协会)。
注释
IETF(Internet工程任务组)的宗旨是促进Internet的发展,推出高质量的技术文档,影响人们设计、使用和管理Internet的方式。IETF生成的文档有RFC(Requests for Comment)和BCP(Best Current Practices)。
IEEE(电气和电子工程师协会)是最大的技术专业协会,它的宗旨是促进创新和完善技术,以此造福于人类。除了开发以太网标准外,IEEE还在很多其他领域推出了标准。