《TCP/IP详解卷2:实现》笔记--IP多播

本文详细介绍了IP多播的相关知识,包括D类IP地址、IGMP协议、多播等级、多播路由器协议如DVMRP,以及以太网多播地址的转换。还探讨了在Net/3中多播接口的实现,包括ether_multi结构、in_multi结构、ip_moptions结构,以及加入和离开多播组的机制。此外,讨论了多播输入和输出处理,如ipintr和ip_output函数的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

D类IP地址(224.0.0.0到239.255.255.255)不识别互联网内的单个接口,但识别接口组,被称为多播组。

单个网络上的组成员利用IGMP协议在系统之间通信。多播路由器用多播选录协议,如DVMRP(distance vector multicast 

routing protocol,距离向量多播路由选择协议)传播成员信息。

在Net/3中,如果某个接口支持多播,那么在接口ifnet结构中的if_flags的标识IFF_MULTICAST比特就被打开。

RFC 1112描述了多播对主机的要求,分三个级别:

0级:主机不能发送或接受IP。

折中主机应该自动丢弃它收到的具有D类目的地址的分组。

1级:主机能发送但不能接受IP多播。

在向某个IP多播组发送数据报之前,并不要求主机加入该组。多播数据报的发送方式与单播一样,除了多播数据报的目的地址

是IP多播组之外。网络驱动器必须能够识别出这个地址。

2级:主机能发送和接收IP多播

为了接收IP多播,主机必须能够加入或离开多播组,而且必须支持IGMP,能够在至少一个接口上交换组成员信息。多接口主机

必须支持在它的接口的一个子网上的多播,Net/3符合2级主机要求。可以完成多播路由器的工作。


和UDP、TCP的端口号一样,互联网授权机构IANA(Internet Assigned Numbers Authority)维护着一个注册的IP多播组表。下图

只给出了一些知名的多播组。


全256个组(224.0.0.0到224.0.0.255)是为实现IP单播和多播选路机制的协议预留的。不管发给其中任意一个组的数据报内IP

首部的TTL值如何变化,多播路由器都不会把它转发出本地网络。

对于符合2级的系统,要求其在系统初始化时,在所有的多播接口上加入224.0.0.1组,并且保持该组成员,直到系统关闭。

单播和多播路由可能会加入224.0.0.2组进行互相通信。ICMP路由器请求报文和路由器通告可能会被分别发往224.0.0.2(所有

路由器)和224.0.0.1(所有主机),而不是受限的广播地址(255.255.255.255).

224.0.0.4组支持在实现DVMRP的多播路由器之间的通信。


1.以太网多播地址

IP多播的高效实现要求IP充分利用硬件级多播,因为没有硬件级多播,就不得不在网络上广播每个多播IP数据报,而每台主机

也不得不检查每个数据报,把哪些不是给它的丢掉。硬件在数据报到达IP层之前,就把没有用的过滤掉了。

为了保证硬件过滤器能正常工作,网络接口必须把IP多播目的地址转换成网络硬件识别的链路级多播地址。在以太网,需要有

一个明确地完成映射地址的函数,以太网的标准映射适用于任何使用802.3寻址方式的网络。

因为以太网支持多种协议,所以要采取措施分配多播地址,避免冲突。IEEE管理以太网多播地址分配。IEEE把一块以太网多播

地址分给IANA以支持IP多播。块的地址都是以01:00:5e开头。以00:00:5e开头的以太网单播也被分配给IANA,但为将来

使用预留。下图显示了从一个D类IP地址构造出一个以太网多播地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值