IP组播

一、组播的概念

  • 首先看单播和广播:

    • 单播:单播用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式 90各主机接受电视节目就要在视频服务器M处复制90份IP数据报,所占带宽和资源多
    • 广播:广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式
  • 组播(多播):当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的结点(经过某个路由器要到目的局域网了,该路由器即是那个结点)后才开始复制和分发,是一种点对多点传输方式 在R1处复制IP数据报,直到传输到要发送的多个主机的路由器处再进行复制数据,可见组播提高了数据传输效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络(即同一个局域网),如歌有组播路由器(运行组播协议的路由器)支持的话也可来自不同的物理网络

二、组播地址

  • 组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目的地址。源地址总是单播地址

      1. 组播数据报也是"尽最大努力交付",不提供可靠交互,应用于UDP
      1. 对组播数据报不产生ICMP差错报文
      1. 并非所有D类地址都可以作为组播地址 组播分为因特网范围内组播和硬件组播,对应的协议分别为组播路由选择协议和IGMP协议
  • 硬件组播:同单播地址一样,组播IP地址也需要相应的MAC地址在本网络中实际传送帧。组播MAC地址以十六进制值01-00-5E打头,余下的6个十进制是根据IP组播地址的后23位转换得到的,TCP/IP协议使用的以太网多播地址的范围是:从01-00-5E-00-00-00到01-00-5E-7F-FF-FF 可能两个组播组的组播MAC地址的后23位相同,但组播IP地址不同(即第5到9位不同),所以并不是一个组播组,因此收到多播数据报的主机还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃

  • 网际组管理协议IGMP-Internet Group Management Protocol: 如图,当一个主机(中心有个主机)发送数据报给多播组的成员时,IGMP协议让路由器知道自己局域网是否存在多播组成员(即是否要将该数据报发送给该局域网的主机),但IGMP协议并不能让路由器知道局域网内多播组的成员个数,也不知道成员在哪个子网,只知道是否有主机参加或退出了多播组

IGMP在TCP/IP栈中的位置知道是网络层协议,ICMP和IGMP都使用IP数据报传递报文

IGMP工作的两个阶段

  • 组播路由选择协议
      1. 组播路由协议目的是找出以源主机为根结点的组播转发树,因为构造树可以避免在路由器之间兜圈子
      1. 不同的多播组对应于不同的多播转发树;同一个多播组,多不同的源点也会有不同的多播转发树 如图对于R4局域网的成员主机到R6局域网成员主机可以走R4->R6,对于R2局域网的成员主机到R6局域网成员主机可以走R2->R4->R6
      1. 组播路由选择协议常使用的三种算法:
      • 基于链路状态的路由选择
      • 基于距离-向量的路由选择
      • 协议无关的组播(稀疏/密集,组播组离得近用密集算法,远用稀疏)

本文章使用limfx的vscode插件快速发布