系列TCP/IP协议-广播与多播(010)

2,763 阅读5分钟

一、引言

在一开始的IP层介绍的时候就已经提供了三种IP地址:单播地址,广播地址,多播地址。对于这些通讯方式的理解是:单播地址是一对一的通讯,广播是一对多的通讯,多播是一对多的通讯。多播是对一个特定的通讯主体集合的通讯。广播与多播仅仅应用于UDP协议。单播的典型方式是TCP协议。

二、广播

有时一个主机要向网上的所有其他主机发送帧,这就是广播。广播有四种地址类型如下:

  • 受限的广播地址:255.255.255.255。该地址用于主机配置过程中IP数据包的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道。
  • 指向网络的广播:主机号为全1的地址。
  • 指向子网的广播:主机号为全1且有特定子网号的地址。
  • 指向所有子网的广播:所有子网的广播地址的子网号及主机号为全1。

三、多播

多播出现的原因是需要向多个目的地址传送数据。目前,大多数的网卡经过配置都能接收目的地址为多播地址或某些子网多播地址的帧。对于以太网,当地址中最高字节的最低位设置为1时表示该地址是一个多播地址,用十六进制可表示为 01:00:00:00:00:00(以太网广播地址ff:ff:ff:ff:ff:ff可看作是以太网多播地址的特例)。

1. 多播组地址

多播的IP地址即D类IP地址,如图1:

图1.D类IP地址
  不像其他三类IP地址(A、B、C),分配的28bit均用作多播组号而不再表示其他.多播的IP范围为:从224.0.0.0到239.255.255.255。   能够接收发往一个特定多播组地址数据的主机集合称为主机组 (host group)。一个主机组可跨越多个网络。主机组中成员可随时加入或离开主机组。主机组中对主机的数量没有限制,同时不属于某一主机组的主机可以向该组发送信息。

对于多播IP地址到多播物理地址(MAC)转换如下:

  • 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实现。
  • 由于多播组号中的最高 5 bit在映射过程中被忽略,因此每个以太网多播地址对应的多播组是不唯一的。
    图2.多播IP与物理地址映射关系

单个物理网络的多播是简单的。多播进程将目的 I P地址指明为多播地址,设备驱动程序将它转换为相应的以太网地址,然后把数据发送出去。

2.原理

“多播”亦称“多点传送”(multicast),也就是一台主机发出的包可以同时被其他多个有资格的主机接收,这台主机和那些有资格的主机就形成了一个组,他们在组内的通信是广播式的。多播的工作原理是,将一个网络上的某些主机的网卡设置成多播传送工作模式,指定其不过滤以某一个多播传送地址作为目的物理地址的数据帧,这样,这些主机的驱动程序中就可以同时接收以该多播传送地址作为目的物理地址的数据帧,而其他主机的驱动程序却接收不到,这些主机在逻辑上便形成了一个“多播”组。采用这种技术,相对广播而言,可有效减轻网络上“多播”组之外的其他主机的负担,因为发送给“多播”组的数据不会被传送到它们的驱动程序中去处理,避免资源的无谓浪费。

3.IGMP协议

IGMP(Internet Group Management Protocol Internet组管理协议)用于管理网路协议多播组成员的一种通信协议。IP主机和相邻的路由器利用IGMP来创建多播组的组成员。像ICMP用于单播连接一样,IGMP也是IP多播说明的一个完整部分。 IGMP为互联网协议的一种,属于开放系统链接(OSI) 模块的第三层协议,IP主机用它将主机的多点发送成员人数报告给临近的多点发送路由器。

图3.IGMP协议

  • 这是版本为1的IGMP
  • IGMP类型:为1说明是由多播路由器发出的查询报文,为 2说明是主机发出的报告报文;
  • 校验和:同ICMP协议

都看到这里了,要不要扫二维码关注一下微信公众号林湾村龙猫

微信公众号rudy_tan_home