广播和多播仅应用于U D P,它们对需将报文同时传往多个接收者的应用来说十分重要。TCP是一个面向连接的协议,它意味着分别运行于两主机(由IP地址确定)内的两进程(由端口号确定)间存在一条连接。

1、基本概念

单播(unicast):每个以太网帧包含源主机和目的主机的以太网地址(48bit)。通常每个以太网帧仅发往单个目的主机,目的地址指明单个接收接口,因而称为单播。在这种方式下,任意两个主机的通信不会干扰网内其他主机。

广播(broadcast):有时一个主机要向网上的所有其他主机发送帧,这就是广播

组播(multicast):处于单播和广播之间,帧仅传送给属于组播组的多个主机。

协议栈各层对收到帧的过滤过程

网卡查看由信道传送过来的帧,确定是否接收该帧,若接收后就将它传往设备驱动程序。通常网卡仅接收那些目的地址为网卡物理地址或广播地址的帧。另外,多数接口均被设置为混合模式,这种模式能接收每个帧的一个复制。目前,大多数的网卡经过配置都能接收目的地址为组播地址或某些子网组播地址的帧。对于以太网,当地址中最高字节的最低位设置为1时表示该地址是一个组播地址,用十六进制可表示为01:00:00:00:00:00(以太网广播地址ff:ff:ff :ff:ff:ff可看作是以太网组播地址的特例)

使用广播的问题在于它增加了对广播数据不感兴趣主机的处理负荷

2、广播

受限的广播:受限的广播地址是255.255.255.255。该地址用于主机配置过程中I P数据报的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。

指向网络的广播:指向网络的广播地址是主机号为全1的地址。A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发的选择。

指向子网的广播:指向子网的广播地址为主机号为全1且有特定子网号的地址。作为子网直接广播地址的IP地址需要了解子网的掩码。例如,如果路由器收到发往128.1.2.255的数据报,当B类网络128.1的子网掩码为255.255.255.0时,该地址就是指向子网的广播地址;但如果该子网的掩码为255.255.254.0,该地址就不是指向子网的广播地址。

指向所有子网的广播:指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。指向所有子网的广播地址的子网号及主机号为全1。例如,如果目的子网掩码为255.255.255.0,那么IP地址128.1.255.255是一个指向所有子网的广播地址。然而,如果网络没有划分子网,这就是一个指向网络的广播。

可以参考tcp/ip协议概述中对互联网地址划分来理解上述广播地址

3、组播

  1. 向多个目的地址传送数据
  2. 客户对服务器的请求.无盘工作站需要确定启动引导服务器。目前,这项服务是通过广播来提供的(BOOTP),但是使用组播可降低不提供这项服务主机的负担。

组播组地址

与其他三类IP地址(A、B和C),分配的28 bit均用作多播组号而不再表示其他。

多播组地址包括为111 0的最高4 bit和多播组号。它们通常可表示为点分十进制数,范围 从224.0.0.0——239.255.255.255。

IANA拥有一个以太网地址块,即高位24 bit为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实现,

由于多播组号中的最高5 bit在映射过程中被忽略,因此每个以太网多播地址对应的多播组是不唯一的。3 2 个不同的多播组号被映射为一个以太网地址。例如,多播地址 224.128.64.32(十六进制e0.80.40.20)和224.0.64.32(十六进制e0.00.40.20)都映射为同一以太网地址01:00:5e:00:40:20