IP组播

Posted fennleo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IP组播相关的知识,希望对你有一定的参考价值。

单播:源地址、目的地址都是单播地址 一对一,点对点

广播:源地址单播地址,目的地址全1 一对多,点对多点

组播: 只给一个有相同需求(组播组)的主机, 被传递的数据到达离用户端尽可能近的时候才会复制多份 分发 (快到组播组的时候数据才散开), 点对特定多点

技术图片

技术图片

单播太占资源了

技术图片

只有最后一步,一个数据报才会被复制成很多数据报,分发给主机。

多播就好多了。并且组播组还可以处于在不同的局域网,比如上图中,每个局域网内的一号主机共同构成一个组播组(通过组播IP地址找到组播组的每一个成员)。

一个组播组内的成员拥有一个相同的组播IP地址,这个组播IP地址和自己原来的唯一性IP地址不是一个地址,是新生成的专门用来组播传送的IP地址。

组播地址范围:

? 224.0.0.0——239.255.255.255 就是D类地址

? 一个D类地址就可以表示一个组播组;组播地址只能作为目的地址,源地址仍然是单播地址

组播特点

  1. 组播数据报也是尽最大努力交付。应用UDP。不可靠交付。速度也就块。看视频、看直播错几个bit无所谓,不影响成像
  2. 组播 数据报不会产生ICMP差错报文
  3. D类地址中的一部分是组播地址。D类地址包含组播地址

组播分类

技术图片

  • 硬件组播 本局域网内多播

    组播数据传到局域网范围内,数据帧的实际传输还是要依靠Mac地址,但是特定待收数据主机的Mac地址我们并不知道(不能ARP协议,那样就成单播了) ,我们可以把组播IP地址的后23位复制到一个Mac地址,这个Mac地址的前25位是固定的,这样的Mac地址叫做 组播Mac地址 ,就能真正收到组播传来的帧了。

    下图:组播IP地址映射成组播Mac地址

    技术图片

? 不同的组播IP地址是可能映射成相同的组播Mac地址的。D类地址后23位一样,中间5位不一样就能做到。 解决办法就是 IP层利用软件进行过滤。

  • 因特网范围组播 因特网内多播

因特网范围内多播,需要使用协议:

  1. IGMP协议 (网际组管理协议)

    路由器内使用IGMP协议,就能知道路由器连接的局域网内是不是还有接收组播数据的主机(哪些主机是加入主播组的,哪些不是组播组的)

    通过IGMP协议知道某个局域网内没有组播组成员,就不会把组播数据发送给该路由器

    技术图片

    网络层的协议,使用IP数据报发送报文

    技术图片

    发送给其他组播路由器就是为了把 这个主机加入组播组的信息 扩散出去

    技术图片

  2. 组播路由选择协议

    就是路由选择协议。

    一个组播组内的成员可以动态变化,加入/离开

技术图片

技术图片

以上是关于IP组播的主要内容,如果未能解决你的问题,请参考以下文章

网络层 4.7 IP组播

IP组播

网络层-第六节:IP组播

计算机网络 王道考研2021 第四章:网络层 -- IP组播单/广/多播IGMP协议与组播路由选择协议

IP组播

C#实现任意源组播与特定源组播