《IP组播(第1卷)》一1.6 组播的历史

简介:

本节书摘来自异步社区《IP组播(第1卷)》一书中的第1章,第1.6节,作者【美】Josh Loveless(乔希 勒夫莱斯) , Ray Blair(雷 布莱尔) , Arvind Durai(阿温德 杜莱),更多章节内容可以访问云栖社区“异步社区”公众号查看

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还在很多其他领域推出了标准。

相关文章
|
安全 JavaScript Java
iOS使用PushKit实现VoIP
iOS使用PushKit实现VoIP
1297 0
|
JavaScript Java 关系型数据库
Springboot+vue的在线试题题库管理系统(有报告),Javaee项目,springboot vue前后端分离项目。
Springboot+vue的在线试题题库管理系统(有报告),Javaee项目,springboot vue前后端分离项目。
|
机器学习/深度学习 传感器 计算机视觉
MotionBert论文解读及详细复现教程
MotionBert提出了一个统一视角来学习人体运动表示,并使用双流时空Transformer(DSTformer)网络作为运动编码器,能够全面、自适应地捕获骨骼关节之间的远程时空关系,实现在多个下游任务上的性能提升。
656 1
MotionBert论文解读及详细复现教程
|
12月前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
2735 2
|
JavaScript 数据管理 编译器
揭秘 ArkTS 的五大优势:如何让鸿蒙系统开发更高效、更简单?
【10月更文挑战第18天】ArkTS是专为鸿蒙系统设计的开发语言,结合了TypeScript的类型系统,并在分布式开发、UI开发、性能优化和API支持等方面进行了优化。它提供了一系列专门的API和语法糖,简化多设备协同开发,支持高效能和低功耗,助力开发者充分利用鸿蒙系统的分布式架构和强大功能。
910 5
|
JSON 前端开发 JavaScript
优雅!Spring Boot 3.3 实现职责链模式,轻松应对电商订单流程
本文介绍如何使用 Spring Boot 3.3 实现职责链模式,优化电商订单处理流程。通过将订单处理的各个环节(如库存校验、优惠券核验、支付处理等)封装为独立的处理器,并通过职责链将这些处理器串联起来,实现了代码的解耦和灵活扩展。具体实现包括订单请求类 `OrderRequest`、抽象处理器类 `OrderHandler`、具体处理器实现(如 `OrderValidationHandler`、`VerifyCouponHandler` 等)、以及初始化职责链的配置类 `OrderChainConfig`。
|
消息中间件 JSON Java
Springboot支付宝沙箱支付---完整详细步骤
Springboot支付宝沙箱支付---完整详细步骤
2703 1
|
NoSQL 大数据 MongoDB
云中对决:Amazon DocumentDB 与 MongoDB的终极较量,谁将主宰云端数据库的未来?
【8月更文挑战第8天】在云计算与大数据时代,文档数据库因灵活高效备受开发者青睐。本文作为指南,全面对比Amazon DocumentDB与MongoDB。DocumentDB兼容MongoDB,便于迁移;在AWS环境下,它提供卓越的性能与自动伸缩能力。MongoDB则侧重于自定义部署与成本控制。DocumentDB作为托管服务简化管理但成本较高,而MongoDB需自行处理安全性与备份。根据需求与预算,开发者可作出最佳选择。
446 3
|
Linux 调度
内核异步处理技术 —— async_schedule
内核异步处理技术 —— async_schedule
|
弹性计算 人工智能 自然语言处理
诚云科技招聘进行中!
诚云科技招聘进行中!
3577 2