1. 概述
单播(unicast):每一个以太网帧包含源主机和目的主机的以太网地址(48bit)。每个以太网帧仅发往单个目的的主机,目的地址指明单个接收接口,因而称为单播。在该方式下任意两个主机的通讯不会干扰网内其它主机。
广播(broadcast):一个主机向网上的所有主机发送帧这就是广播。
多播(multicast):处于广播和单播之间的就是多播,主机仅传松给属于多播组的多个主机。
广播和多播仅应用与UDP。
使用广播其增加了对广播数据不感兴趣主机的处理负荷,而使用多播则减少了对应用不感兴趣主机的处理负荷。
2. 广播
受限的广播地址为:255.255.255.255,该地址用于主机配置过程中IP数据报的目的地址。任何情况下路由器都不转发目的地址为受限的管波地址的数据报。
指向网络的广播地址:(A类)netid.255.255.255,其中netid为A类网络的网络号。指向网络的广播路由器必须转发。
指向子网的广播:指向子网的广播地址为主机号为全1且有特定子网号的地址。(需要了解子网掩码)
3. 多播
多播提供两类服务:
(1)、向多个目的地址传送数据;
(2)、客户对服务器的请求;
多播组地址:
即D类IP地址的格式,如下图:
多播组地址包括1110的最高4bit和多播组号。它们通常表示为点分十进制数,范围从224.0.0.0到239.255.255.255。能够接收发往一个特定多播组地址数据的主机集合称为主机组(host group)。一个主机组可跨越多个网络。主机组中成员可随时加入或离开主机组。主机组中对主机的数量没有限制,同时不属于某一主机组的主机可以向该组发送信息。
多播组地址到以太网地址的转换:
IANA拥有一个以太网地址块,即高位24bit为00:00:5e(十六进制表示),这意味着该地址块所拥有的地址范围从00:00:5e:00:00:00到00:00:5e:ff:ff:ff。IANA将其中的一半分配为多播地址。为了指明一个多播地址,任何一个以太网地址的首字节必须是01,这意味着与IP多播相对应的以太网地址范围从01:00:5e:00:00:00到01:00:5e:7f:ff:ff。多播组地址到以太网地址的转换如下图。
这种地址分配将使以太网多播地址中的23bit与IP多播组号对应起来,通过将多播组号中的低位23bit映射到以太网地址中的低位23bit实现。
由于多播组号中的最高5bit在映射过程中被忽略,因此每个以太网多播地址对应的多播组是不唯一的。
既然地址映射是不唯一的,那么设备驱动程序或IP层就必须对数据报进行过滤。
单个物理网络的多播是简单的。多播进程将目的IP地址指明为多播地址,设备驱动程序将它转换为相应的以太网地址,然后把数据发送出去。这些接收进程必须通知它们的IP层,它们想接收的发往给定多播地址的数据报,并且设备驱动程序必须能够接收这些多播帧。这个过程就是“加入一个多播组”(使用“接收进程”复数形式的原因在于对一确定的多播信息,在同一主机或多个主机上存在多个接收者,这也是为什么要首先使用多播的原因)。当一个主机收到多播数据报时,它必须向属于那个多播组的每个进程均传送一个复制。这和单个进程收到单播UDP数据报的UDP不同。使用多播,一个主机上可能存在多个属于同一多播组的进程。