单播、广播、多播和IGMP

1.主机对信道传过来的帧处理过程

  1. 当一个帧到达主机时,网卡将进行第一道判断,该帧是不是本网卡MAC地址、广播地址(FF,FF,FF,FF,FF,FF)、多播地址(01,00,00,00,00,00也就是说最高字节的最后一位为1),同时进行检验和检验,是的话到2,不是则抛弃。
  2. 交到设备驱动程序,判断上层协议是什么(IP,ARP,RARP)等,交给上层协议,进行多播过滤来检测该主机是否属于多播地址说明的多播组。
  3. 再交给上层协议,如IP,进行IP地址过滤,检验和验证等,判断上层协议,交给UDP或TCP,再进行判定,如果端口不存在,发送端口不可达报文,否则交给应用程序。
如下图所示:

2.单播

单播是指以太网帧发往单个目的主机,目的地址指明单个接口。一般TCP就肯定是单播,因为TCP是面向连接的,这意味着TCP是在两个主机的两个进程之间进行通信。多播和广播只应用于UDP协议。

3.广播

又是要像一个网络上的所有主机发送帧,这称之为广播。255.255.255.255是一个特殊的广播地址,它被称为受限的广播,它一般用于主机配置过程中IP数据报的目的地址,在任何情况下,路由器不转发目的地址为受限的广播地址的数据报。指向网络的广播地址是主机号全为1的地址,指向子网的广播地址为主机号全1且有特定子网号的地址。指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。
使用广播的问题在于它增加了对广播数据不感兴趣的主机处理负荷,比如说发送一个UDP广播,一个网络内有50台主机,只有20台对这个广播有兴趣,那么另30台只能到UDP层才能把它抛弃,抛弃是因为它没有设置相应的端口号。

4.多播

多播也叫组播,属于单播跟广播之间,它仅向属于多播组的主机发送数据。使用多播,一个主机可以加入一个或多个多播组。这样,网卡将获悉该主机属于哪个多播组,然后仅接收主机所在多播组的多播帧。多播最主要是提供两个服务,一是向多个目的地址传送数据,二是客户对服务器的请求。

4.1多播组地址

多播组地址也就是D类地址,它包括4为1110和28位多播组号。范围从224.0.0.0到239.255.255.255.能够接收发往一个特定多播组地址数据的主机集合称为多播组。一个主机组可以跨越多个网络。一些多播组被IANA确定为知名地址保留,比如“224.0.0.1”代表系统内的所有系统组,“224.0.0.2“代表系统内的所有路由器组。

4.2多播组地址到以太网地址的转换

与IP地址对应的MAC地址范围是01:00:5e:00:00:00到01:00:5e:7f:ff:ff,这种地址分配将使MAC地址的23位和IP多播组地址的23位对应起来,也就是说多播组地址的前五位将被忽略,这使得一个MAC地址可能对应多个IP地址。因为地址映射不唯一,所以设备驱动程序或IP层就必须对数据报进行过滤。(注:以上的MAC地址都指的是虚拟的以太网组播地址)

5.IGMP协议

IGMP(Internet组管理协议)用于支持主机和路由器进行多播。它让一个物理网上的所有系统知道主机当前所在的多播组。多播路由器需要知道这些信息以便知道多播数据报应该向哪些接口转发。使用规则如下:

  1. 主机第一个进程加入多播组,发送IGMP报告报文,如果有多个进程加入多播组,也只需要发一个报文。
  2. 主机有进程离开不发送报告报文,即使某组的进程全部离开,只是收到查询报文的时候不发送报告报文。
  3. 多播路由器对每个接口发送查询IGMP,主机需要对它加入的还包含进程每一个多播组都发回一个报告,查询报文中组播地址设为0.
多播路由器需要对每个接口保存一个表,表内含有接口上至少还包含一个主机的多播组。当路由器收到多播数据报时,路由器只发往含有该多播组的主机接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值