1、IP数据报的三种传输方式:
单播
单播用于发送数据到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式。
单播在发送者和每一接收者之间需要单独的数据信道。
广播
广播是指发送数据到同一广播域或子网内的所有设备的一种数据传输方式。是一种点对多点的传输方式。
组播(多播)
当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。
组播提高了数据传送效率,减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络(需要有组播路由器的支持,即
运行组播协议的路由器
)。
图示:
2、IP组播地址
(1)IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)。
(2)组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是为单播地址。
组播数据报也是"尽最大努力交付",不提供可靠交付,应用于UDP。
UDP是传输层的协议
对组播数据报不产生ICMP差错报文。
并非所有D类地址可以作为组播地址。
3、硬件组播
(1)同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧。组播MAC地址以十六进制值01-00-5E打头,余下的6个十六进制位是IP组播组地址的最后23位转换得到的。
(2)TCP/IP协议使用的以太网多播地址的范围是:
从01-00-5E-00-00-00到01-00-5E-7F-FF-FF。
(3)收到多播数据报的主机,还要在IP地址利用软件进行过滤,把不是本主机要接收的数据报丢弃。
4、IGMP——网际组管理协议
IGMP,全称为Internet Group Management Protocol,即互联网组管理协议、网际组管理协议。
IGMP是TCP/IP协议族中负责IP组播成员管理的协议,用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
# 当一台主机加入到一个新的组时,它发送一个IGMP消息到组地址来宣告它的成员身份,多播路由器就可以从中学习(知道)到组的成员。利用从IGMP中获取到的信息,路由器在每个接口上维护一个多播组成员的列表。
IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组。
ICMP协议和IGMP都使用IP数据报传递报文。
5、IGMP工作的两个阶段
ROUND 1:
某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要称为该组的成员。
本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。
ROUND 2:
本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。
只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的;如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的网络上没有此组播组的主机。因此就不再把这组的成员关系发给其它的组播路由器。
组播路由器知道的成员关系只是所连接的局域网中有无组播的成员。
6、组播路由选择协议
组播路由选择协议目的是:找出以源主机为根节点的组播转发树。
构造树可以避免在路由器之间兜圈子。
对不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树。
组播路由选择协议常使用的三种算法:
基于链路状态的路由选择
基于距离-向量的路由选择
协议无关的组播(稀疏/密集)