小小搬运工又来了,五一假期结束了
1、引言
广播和多播仅应用于UDP,因为TCP是面向连接的协议(IP地址确定)
单播:以太网帧仅发往单个目的主机,目的地址指明单个接收接口。该模式下,任意两主机通信不会影响网内其他主机(争夺共享信道情况除外)
广播:主机向网上的所有其他主机发送帧。但是只有ARP和RARP可以看到该过程。
组播:帧传送给属于多播组的多个主机。
主机对帧过滤过程:
- 网卡查看由信道传送过来的帧,确定是否接收该帧。若接收则将它传往设备驱动程序。通常网卡接收目的地址为网卡物理地址或广播地址的帧。多数接口均被设置为混合模式,这种模式能接收每个帧的一个复制。 大多数网卡经过配置,都能接收目的地址为多播地址或某些子网多播地址的帧。对于以太网,当地址中最高字节的最低位设置为1时表示该地址是一个多播地址。用十六进制可表示为01:00:00:00:00:00。(广播地址ff:ff:ff:ff:ff)
- 网卡收到帧后传递给设备驱动程序(如果帧检验和错,网卡将丢弃该帧)。设备驱动程序会进行另外的帧过滤。首先,帧类型中必须指定要使用的协议(IP、ARP等)。其次,进行组播过滤来检测该主机是否属于多播地址说明的多播组
- 设备驱动程序将数据帧传送给下一层,比如,当帧类型指定为IP数据报时,就传给IP层。IP根据IP地址中的源地址和目的地址进行更多的过滤监测。若正常,则将数据报传送给下一层(TCP或UDP)
- UDP或这IP收到传送来的数据报,就根据目的端口号,有时还有源端口号进行数据报过滤。若当前没有进程使用该目的端口号,就丢弃数据报,并产生ICMP不可达报文。若UDP数据报存在检验和错,则会被丢弃。
多播的作用:减少对广播内容不感兴趣主机的处理负荷。
使用多播,主机可加入一个或多个多播组。
2、广播
2.1 受限广播 -------------------系统初始启动时使用
受限广播地址为255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址。原因:此时主机还不知道自己所在网络的网络掩码,和自己的IP地址。任何情况下,路由器都不转发目的地址为受限广播地址的数据报,这样的数据报仅出现在本地网络中。
2.2 指向网络的广播
指向网络的广播地址是主机号全为1的地址。例如A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发的选择。
2.3 指向子网的广播 ------------------最常用
指向子网的广播地址为主机号为全1且有特定子网号的地址。作为子网直接广播地址的IP地址需要了解子网的掩码。2.4 指向所有子网的广播
指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。
指向所有子网的广播地址的子网号以及主机号全为1。例如,若目的子网掩码为255.255.255.0,则IP地址128.1.255.255是一个指向所有子网的广播地址。然而,如果网络没有划分子网,则这就是一个指向网络的广播。
3、多播
3.1 多播提供两类服务
- 向多个目的地址传送数据,例如交互式会议系统和想多个接收者分发邮件或新闻。然而,即使使用多播,某些应用可能继续采用TCP来保证它的可靠性(?)
- 客户对服务器的请求。例如无盘工作组需要确定启动引导服务器
3.2 多播组地址
D类IP地址的格式如下:图 1 D类IP地址格式
分配的28bit均作为多播组号
多播组地址范围是224.0.0.0 到239.255.255.255
能够接收发往一个特定多播组地址数据的主机集合称为主机组。一个主机组可跨越多个网络。主机组中成员可随时加入或离开主机组。主机组中对主机的数量没有限制,同时不属于某一主机组的主机可以向该组发送信息。
注:一些多播组地址被IANA确定为知名地址。他们被当作永久主机组,这些多播地址所代表的组是永久组,他们的组成员却不是永久的。例如:224.0.0.1表示该子网内的所有系统组
3.3 多播组地址到以太网地址的转换
IANA拥有高位24bit为00:00:5e的以太网地址块,即该地址块所拥有的地址范围是从00:00:5e:00:00:00到00:00:5e:ff:ff:ff。IANA将其中一半分为i多播地址。任何以太网地址首字节为01的,为一个多播地址。因此,IP多播相对应的以太网地址范围从01:00:5e:00:00:00到01:00:5e:7f:ff:ff(为什么是7f)。这种地址分配将使以太网多播地址中的23bit与IP多播组号对应起来。通过将多播组号中的低23bit映射到以太网中的低位23bit实现。过程如图2所示:
图2 D类IP地址到以太网多播地址的映射
由于多播组号中的最高5bit在映射过程中被忽略,因此每个以太网多播地址对应的多播组是不唯一的。32(2^5)个不同的多播组号被映射为一个以太网地址。由于地址映射是不唯一的,因此设备驱动程序或IP层需要对数据报进行过滤。因为网卡可能接收到主机不想接收的多播数据帧。若网卡不提供足够的多播数据帧过滤功能,设备驱动就必须接收所有多播数据帧,并对它们进行过滤。
局域网网卡趋向两种处理类型:一种是网卡根据对多播地址的散列值实行多播过滤,可能会接收到不想接收的多播数据;另一种是网卡只接收一些固定数目的多播地址,当主机想接收超过网卡预先支持多播地址外的多播地址时,必须将网卡设置为“多播混杂”模式。这两种类型的网卡人需要设备驱动程序检查收到的帧是否为主机所需要的。
多播传送接收过程
多播进程将目的IP地址指明为多播地址,设备驱动程序将它转化为相应的以太网地址,然后把数据发出去。而这些接收进程需要通知他们的IP层,他们想接收的发往给定多播地址的数据报,并且设备驱动程序必须能够接收这些多播帧。这个过程就是“加入一个多播组”(在同一个主机或多个主机上存在多个接收者)。当一个主机收到多播数据报时,他必须向属于那个多播组的每个进程均传送一个复制,这和单个进程收到单播UDP数据报的UDP不同。使用多播,一个主机上可能存在多个属于同一多播组的进程。
当把多播扩展到单个物理网络以外需要通过路由器转发多播数据时,需要一个协议让多播路由器了解确定网络中属于确定多播组的任何一个主机,此协议为IGMP协议(Internet组管理协议)
3.4 FDDI和令牌环网络中的多播
FDDI网络使用相同的D类IP地址到48bit FDDI地址的映射过程。令牌环网络通常使用不同的地址映射方法。