摘要
- 1985 年的 RFC 966 提议用一个组地址指向可能提供同类服务的主机,不要求请求者事先掌握每台服务器的地址。
- 组外主机也可以向开放组发送数据报;组内是否有人、网关是否知道成员所在网络、应用是否答复,是三道独立的关口。
无盘工作站必须先找到启动服务器才能工作。服务器一旦迁移,仍保存旧地址的工作站就卡在开机之前;管理员得逐台改地址,或者让全网无关机器也处理广播问询。Steve Deering 与 David Cheriton 在 1985 年 12 月的 RFC 966 中提出第三条路:把问题交给“可能提供该服务的主机组”,让工作站继续使用同一目的地。这个目的地甚至可以暂时没有成员。它解决的是往哪里问,不是保证一定有人答。RFC 966 是供讨论的设计提案,不能据此宣称当时已普遍部署。
论文把组播的作用分为多目的地传送和分布式绑定。后者更容易被忽略:客户端寻找的是一个服务,不必先确定它落在哪台机器。文中用文件服务器举例,客户端询问服务器组,认识该文件名的服务器再直接回答。常设的组标识也可以指向名称服务器组、启动服务器组等逻辑角色。这里有一个关键变化:地址所代表的需求相对稳定,提供服务的实体却可以换班。
RFC 966 允许同一主机加入多个组,也探讨只通过组地址可达的主机。临时组可随一次分布式程序的生命周期建立,最后一名成员退出后消失。提案列出 CreateGroup、JoinGroup、LeaveGroup 三类操作。常设组标识像一个长期入口,但入口存在不等于此刻有人值守。
“开放”说的是发送资格。请求者无需先加入组,就可以向它发数据报;否则,要找启动服务器的工作站竟得先成为启动服务器组的一员。提案另有用访问密钥限制成员加入的设想。是否可以发送、是否可以作为接收成员、应用是否接受请求,分别由不同机制决定。组地址本身不发放服务使用权。
这份便利要由网关的状态维护来承担。转发时,网关须知道哪些网络当下有该组成员。RFC 966 坦言,如何让各网关的成员记录及时一致,仍是尚未解决的分布式数据库问题。作者希望重复发送不会系统性地遗漏成员,称之为“覆盖”;但故障通知被定位为提示而非必备回执。因此一次发送既不能列明所有实际接收机器,也不能证明上层服务已经工作。
后来的文本保留了这条区分。RFC 988 于 1986 年替代 RFC 966,明确常设组永久的是地址,不是成员名单。RFC 1112 在 1989 年继续指出组播是尽力而为,不保证每位成员完整收到,更不保证顺序一致。这段沿革证明思想得到规范化,不证明原提案的每个细节都曾在网络上普遍运行。
这段历史的要点,并非“一个数据包就能找到所有人”。真正的新能力,是允许客户端凭借一个公开目的地提出问题,同时承认回答者、转发状态和送达结果都要另行查证。
来源与边界
本文仅使用原始的 RFC 966、RFC 988、RFC 1112,并以此前的广播提案 RFC 919 作对照。这些文件不能给出首次部署时间、采用率或某项具体服务的成功率。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
