广播与多播介绍

  一般,我们将IP地址分为四类:单播地址、 多播地址、 广播地址、任意播地址
  广播(地址)与多播(地址)在需要将数据报发送给多个目的IP时,具有重要作用。能极大地减少网络开销:当我们需要把数据包发送给多个目的IP时,使用广播和多播,数据包就可以在必要时才进行复制,而不需要从发送源就分别为每个目的IP复制一份。
  多播相对于广播的一个优点是,广播会影响本地网络的所有主机,而多播只会影响对其感兴趣的主机。IPv6只支持多播,并不支持广播
  一般情况下,广播和多播只适用于UDP协议。(TCP协议需要建立连接)。

1. 广播

  所谓广播, 就是指将消息发送给本地网络上所有可能的接受者(主机,包含路由器等)。

(1) 广播地址

  在本地链路进行广播时,需要mac广播地址,ff:ff:ff:ff:ff:ff。 由于IP地址我们可能会进行子网划分,所以IP层的广播有全局的广播(地址为:255.255.255.255), 以及本地广播(本地广播地址一般是将表示主机号的位全置为1,网络号不变。 比如一个局域网络192.168.1.*,网络号为192.168.1, 其本地广播地址为192.168.1.255)。

(2) 广播包的传输

  当我们的主机上有多个接口时, 针对本地广播报文,不同的系统有不同的反应。大多数系统会选择一个接口来传输数据报(可能是最早配置的接口,也可能是其他的选举算法),也有一些系统会进行多个接口广播。

2. 多播

  相对广播而言,多播/组播可以更大程度上减少网络开销,多播/组播只把数据报文传输给对该报文感兴趣的主机。
  多播不同于广播,只是简单地把数据包发送给网络上的所有接受者,在实现上,多播比广播要难得多。 多播需要多播信息表,支持多播的主机上需要维护一张多播信息表,这样才能知道哪一些接受者(主机)对哪一些多播报文感兴趣。
  现在多播服务主要有两种:ASM:任意源多播服务; SSM:源指定多播服务

(1) 多播的实现机制

  网络多播实现机制如下:
+ 寻址机制:借助组播地址,实现信息从组播源发送到一组接收者;
+ 主机注册:允许接收者主机动态加入和离开某组播组,实现对组播成员的管理;
+ 组播路由:构建组播报文分发树(即组播数据在网络中的树型转发路径),并通过该分发树将报文从组播源传输到接收者;
+ 组播应用:组播源与接收者必须安装支持视频会议等组播应用的软件,TCP/IP协议栈必须支持组播信息的发送和接收。
  上述实现机制需要一些技术/协议支持:
+ 寻址机制——需要组播地址支持
+ 主机注册——需要因特网组管理协议支持,IGMP协议
+ 组播路由——组播路由选择协议支持

(2) 多播地址

多播IP地址: 即D类地址:224.0.0.0 to 239.255.255.255(包含了一些本地广播地址,本地广播也是多播的一种)。
多播Mac地址: 以01:00:5e(前25位)开头, 后面的23位有多播IP地址的后23位直接映射过来。由于多播IP地址还有前面9位(其中最前面4位为1110)。仍有5位没办法得到映射, 因此多播IP地址与多播Mac地址之间并不是一对一的映射关系
  
多播IP地址分类:
  IPv4的多播地址还可以根据其功能细分为几种类型:

地址范围 含义
224.0.0.0~224.0.0.255 永久组地址:除224.0.0.0 保留不做分配外,其它地址供路由协议、拓扑查找和协议维护等使用。对于以该范围内组播地址为目的地址的数据包来说,不论其TTL(Time to Live ,生存时间)值为多少,都不会被转发出本地网段
224.0.1.0~238.255.255.255 用户组地址:全网范围内有效。包含两种特定的组地址:232.0.0.0/8:SSM 组地址;233.0.0.0/8:GLOP 组地址
239.0.0.0~239.255.255.255 本地管理组地址:仅在本地管理域内有效。使用本地管理组地址可以灵活定义组播域的范围,以实现不同组播域之间的地址隔离,从而有助于在不同组播域内重复使用相同组播地址而不会引起冲突。详情请参见RFC 2365

常用多播地址
+ 224.0.0.1:网段上所有主机和路由器(IGMP普遍查询目的地址)
+ 224.0.0.2 :网段上所有组播路由器
+ 224.0.0.22:IGMPv3 所有组播路由器(IGMPv3成员报告的目的地址)

(3) 多播数据包的传输

  当发送数据包时,首选需要确定使用哪个接口进行发送,哪个IP地址(主机有多个IP地址)作为源地址。路由转发表会帮助我们做一些确定。当我们想某个IP的主机发送数据包时,目的IP在路由转发表中可能匹配到多个条目entry,这是要使用最准确的entry,如10.0.0.1既属于0.0.0.0,又属于10.0.0.0,这是要使用10.0.0.0的entry。
  多播的基础概念:加入组、离开组。(即组成员关系)

你可能感兴趣的:(广播,多播,组播)