TCP/IP详解卷1:协议(八)【广播和多播,ICMP:Internet组管理协议】

来源:互联网 发布:生成式对抗网络 应用 编辑:程序博客网 时间:2024/05/16 05:49

广播是将数据报发送到网络中的所有主机(通常是本地相连的网络),而多播是将数据报发送到网络的一个主机组。

广播和多播仅应用于UDP。

使用广播的问题在于它增加了对广播数据不感兴趣主机的处理负荷。多播的出现减少了对应用不感兴趣主机的处理负荷。使用多播,主机可加入一个或多个多播组。

12.2 广播

四种广播地址

  1. 受限的广播, 255.255.255.255,该地址用于主机配置过程中IP数据报的目的地址。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。
  2. 指向网络的广播,指向网络的广播地址是主机号为全1的地址。A类网络广播的士为netid.255.255.255。一个路由器必须转发指向网络的广播,但它也有一个不转发的选择。
  3. 指向子网的广播,地址为主机号为全 1且有特定子网号的地址。
  4. 指向所有子网的广播,需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。指向所有子网的广播地址的子网号及主机号为全1。

广播是怎样传送的?路由器及主机又如何处理广播?这些问题有赖于广播的类型、应用的类型、TCP/IP实现以及有关路由器的配置。

12.4 多播

多播组地址包括为1110的最高4bit和多播组号。它们通常可表示为点分十进制数,范围从224.0.0.0到239.255.255.255 。一个主机组可以跨越多个网络。

这里写图片描述

通过将其低位 23bit映射到相应以太网地址中便可实现多播组地址到以太网地址的转换。由于地址映射是不唯一的,因此需要其他的协议实现额外的数据报过滤。


支持主机和路由器进行多播的Internet组管理协议(IGMP)。它让一个物理网络上的所有系统知道主机当前所在的多播组。

IGMP也被当作IP层的一部分。IGMP报文通过IP数据报进行传输。IGMP有固定的报文长度,没有可选数据。

IGMP报文

这里写图片描述

IGMP协议

多播的基础就是一个进程的概念,该进程在一个主机的给定接口上加入了一个多播组。在一个给定接口上的多播组中的成员是动态的 —-它随时因进程加入和离开多播组而变化。

多播路由器使用IGMP报文来记录与该路由器相连网络中组成员的变化情况。使用规则如下:

1) 当第一个进程加入一个组时,主机就发送一个IGMP报告。如果一个主机的多个进程加入同一组,只发送一个IGMP报告。这个报告被发送到进程加入组所在的同一接口上。

2) 进程离开一个组时,主机不发送IGMP报告,即便是组中的最后一个进程离开。主机知道在确定的组中已不再有组成员后,在随后收到的IGMP查询中就不再发送报告报文。

3) 多播路由器定时发送 IGMP查询来了解是否还有任何主机包含有属于多播组的进程。多播路由器必须向每个接口发送一个 IGMP查询。因为路由器希望主机对它加入的每个多播组均发回一个报告,因此 IGMP查询报文中的组地址被设置为 0。

4) 主机通过发送 IGMP报告来响应一个IGMP查询,对每个至少还包含一个进程的组均要发回 IGMP报告。

使用这些查询和报告报文,多播路由器对每个接口保持一个表,表中记录接口上至少还包含一个主机的多播组。当路由器收到要转发的多播数据报时,它只将该数据报转发到(使用相应的多播链路层地址)还拥有属于那个组主机的接口上。

阅读全文
0 0
原创粉丝点击