IP 多播的基本概念

  • IP 多播 (multicast,以前曾译为组播) 已成为互联网的一个热门课题。
  • 目的:更好地支持一对多通信
  • 一对多通信:一个源点发送到许多个终点。
    例如,实时信息的交付(如新闻、股市行情等),软件更新,交互式会议及其他多媒体通信。

多播可大大节约网络资源


IP 多播

  • 在互联网上进行多播就叫做 IP 多播
  • 互联网范围的多播要靠路由器来实现。
  • 能够运行多播协议的路由器称为多播路由器(multicast router)。当然它也可以转发普通的单播IP数据报。
  • 从 1992 年起,在互联网上开始试验虚拟的多播主干网 MBONE (Multicast Backbone On the InterNEt)。 现在多播主干网已经有了相当大的规模。

多播 IP 地址

  • IP 多播所传送的分组需要使用多播 IP 地址
  • 在多播数据报的目的地址写入的是多播组的标识符。
  • 多播组的标识符就是 IP 地址中的 D 类地址(多播地址)
  • 每一个 D 类地址标志一个多播组。
  • 多播地址只能用于目的地址,不能用于源地址。

多播数据报

  • 多播数据报和一般的 IP 数据报的区别就是它使用 D 类 IP 地址作为目的地址,并且首部中的协议字段值是 2,表明使用网际组管理协议 IGMP
  • 多播数据报也是“尽最大努力交付”,不保证一定能够交付多播组内的所有成员。
  • 对多播数据报不产生 ICMP 差错报文。因此,若在 PING 命令后面键入多播地址,将永远不会收到响应。

在局域网上进行硬件多播

  • 互联网号码指派管理局 IANA 拥有的以太网地址块的高 24 位为 00-00-5E。
  • 因此 TCP/IP 协议使用的以太网地址块的范围是
         从 00-00-5E-00-00-00
         到 00-00-5E-FF-FF-FF
  • 不难看出,在每一个地址中,只有23位可用作多播。
  • D 类 IP 地址可供分配的有 28 位,在这 28 位中的前 5 位不能用来构成以太网硬件地址。

D 类 IP 地址与以太网多播地址的映射关系

D 类 IP 地址与以太网多播地址的映射关系

由于多播 IP 地址与以太网硬件地址的映射关系不是唯一的,因此收到多播数据报的主机,还要在 IP 层利用软件进行过滤,把不是本主机要接收的数据报丢弃。

网际组管理协议 IGMP 和多播路由选择协议

IP 多播需要两种协议

  • 为了使路由器知道多播组成员的信息,需要利用网际组管理协议 IGMP (Internet Group Management Protocol)。
  • 连接在局域网上的多播路由器还必须和互联网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这就需要使用多播路由选择协议

IGMP 使多播路由器知道多播组成员信息

IGMP 的使用范围

  • IGMP 并非在互联网范围内对所有多播组成员进行管理的协议。
  • IGMP 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。
  • IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组

多播路由选择协议更为复杂

  • 多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化)。请注意,单播路由选择通常是在网络拓扑发生变化时才需要更新路由。
  • 多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去
  • 多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。

网际组管理协议 IGMP

  • 1989 年公布的 RFC 1112(IGMPv1)早已成为了互联网的标准协议。
  • 1997 年公布的 RFC 2236(IGMPv2,建议标准)对 IGMPv1 进行了更新。
  • 2002 年 10 月公布了 RFC 3376(IGMPv3,建议标准),宣布 RFC 2236(IGMPv2)是陈旧的。

IGMP 是整个网际协议 IP 的一个组成部分

  • 和 ICMP 相似,IGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成 IP 数据报),但它也向 IP 提供服务。
  • 因此,我们不把 IGMP 看成是一个单独的协议,而是属于整个网际协议 IP 的一个组成部分。

IGMP 工作可分为两个阶段

  • 第一阶段:加入多播组
  1. 当某个主机加入新的多播组时,该主机应向多播组的多播地址发送 IGMP 报文,声明自己要成为该组的成员。
  2. 本地的多播路由器收到 IGMP 报文后,将组成员关系转发给互联网上的其他多播路由器。
  • 第二阶段:探询组成员变化情况
  1. 因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。
  2. 只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。
  3. 但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。

IGMP 采用的一些具体措施

  • 在主机和多播路由器之间的所有通信都是使用 IP 多播
  • 多播路由器在探询组成员关系时,只需要对所有的组发送一个请求信息的询问报文,而不需要对每一个组发送一个询问报文。默认的询问速率是每 125 秒发送一次。
  • 当同一个网络上连接有几个多播路由器时,它们能够迅速和有效地选择其中的一个来探询主机的成员关系。
  • 在 IGMP 的询问报文中有一个数值 N,它指明一个最长响应时间(默认值为 10 秒)。当收到询问时,主机在 0 到 N 之间随机选择发送响应所需经过的时延。对应于最小时延的响应最先发送。
  • 同一个组内的每一个主机都要监听响应,只要有本组的其他主机先发送了响应,自己就可以不再发送响应了。

多播路由选择

  • 多播路由选择协议尚未标准化。
  • 一个多播组中的成员是动态变化的,随时会有主机加入或离开这个多播组。
  • 多播路由选择实际上就是要找出以源主机为根结点的多播转发树
  • 在多播转发树上的路由器不会收到重复的多播数据报。
  • 对不同的多播组对应于不同的多播转发树。
  • 同一个多播组,对不同的源点也会有不同的多播转发树。
  • 多播路由选择协议在转发多播数据报时使用三种方法:
    (1) 洪泛与剪除
    (2) 隧道技术 (tunneling)
    (3) 基于核心的发现技术

(1) 洪泛与剪除

  • 这种方法适合于较小的多播组,而所有的组成员接入的局域网也是相邻接的。
  • 一开始,路由器转发多播数据报使用洪泛的方法(这就是广播)。
  • 为了避免兜圈子,采用了叫做反向路径广播 RPB (Reverse Path Broadcasting) 的策略。
RPB 的要点
  • 路由器收到多播数据报时,先检查它是否是从源点经最短路径传送来的
  • 若是,就向所有其他方向转发刚才收到的多播数据报(但进入的方向除外),否则就丢弃而不转发。
  • 如果存在几条同样长度的最短路径,那么只能选择一条最短路径,选择的准则就是看这几条最短路径中的相邻路由器谁的 IP 地址最小。
  • 最后就得出了用来转发多播数据报的多播转发树,以后就按这个多播转发树转发多播数据报。避免了多播数据报的兜圈子,同时每一个路由器也不会接收重复的多播数据报。
  • 如果在多播转发树上的某个路由器发现它的下游树枝(即叶节点方向)已没有该多播组的成员,就应把它和下游的树枝一起剪除
  • 当某个树枝有新增加的组成员时,可以再接入到多播转发树上。

(2) 隧道技术 (tunneling)

(3) 基于核心的发现技术

  • 这种方法对于多播组的大小在较大范围内变化时都适合。
  • 这种方法是对每一个多播组 G 指定一个核心(core) 路由器,给出它的 IP 单播地址
  • 核心路由器按照前面讲过的方法创建出对应于多播组 G 的转发树。

几种多播路由选择协议

  • 距离向量多播路由选择协议 DVMRP (Distance Vector Multicast Routing Protocol)
  • 基于核心的转发树 CBT (Core Based Tree)
  • 开放最短通路优先的多播扩展 MOSPF (Multicast Extensions to OSPF)
  • 协议无关多播-稀疏方式 PIM-SM (Protocol Independent Multicast-Sparse Mode)
  • 协议无关多播-密集方式 PIM-DM (Protocol Independent Multicast-Dense Mode)

计算机网络 IP多播相关推荐

  1. 计算机网络课程设计之基于 IP 多播的网络会议程序

    前言 本实验难点在于环境的配置,尤其是多网卡配置,经过查阅资料和多次小伙伴们测试,最后终于找到问题的根源 问题分析和配置主要放在实验结果与分析栏中 结尾附上指导书的IP多播源码 白嫖容易,创作不易,本 ...

  2. 计算机网络——基于IP多播的网络会议程序

    计算机网络--基于IP多播的网络会议程序 一.实验目的 二.总体设计 1. 基本原理 2. 设计步骤 (1)receiver (2)sender 三.详细设计 1. 程序流程图 2. 实验代码 (1) ...

  3. IP多播(计算机网络-网络层)

    目录 一对多通信的应用需求 单播 vs 多播 多播路由器(Multicast Router) IP 多播的一些特点 D 类 IP 地址与以太网多播地址的映射关系 IP多播需要两种协议 互联网组管理协议 ...

  4. 计算机网络——IP协议基础原理

    摘要 IP协议提供的一种统一的地址格式.它为互联网上的每一个网络和主机分配一个逻辑地址所以IP地址也叫逻辑地址,用来屏蔽物理地址的差异,MAC地址每一个机器都有一个编码.IP地址是32位二进制数据分为 ...

  5. 管理active directiory中的用户和计算机管理磁盘,IP多播桌面视频会议系统媒体流管理与安全机制的分析.pdf...

    摘要 摘 要 近年来,随着网络技术的发展和通信技术的进步,人与人的交流日趋频繁. 由此视频会议系统已成为研究的一个热点.本文介绍了利用cOM组件技术开发的 一套基于IP多播的讨论式桌面会议系统,并且介 ...

  6. 【miscellaneous】IP多播技术及其编程

    标  题: IP多播技术及其编程  发信站: 幽幽黄桷兰 (Mon Jun 16 10:35:39 2003)  转信站: SMTH!maily.cic.tsinghua.edu.cn!news2.u ...

  7. 网络编程之---广播和IP多播

    一.广播 1.接收 void main() {SOCKET s = ::socket(AF_INET, SOCK_DGRAM, 0);// 首先要绑定一个本地地址,指明广播端口号SOCKADDR_IN ...

  8. IP多播技术及其应用

    随着全球互联网(Internet)的迅猛发展,上网人数正以几何级数快速增长,以因特网技术为主导的数据通信在通信业务总量中的比列迅速上升,因特网业务已成为多媒体通信业中发展最为迅速.竞争最为激烈的领域. ...

  9. 《IP多播网络的设计与部署(第1卷)》——2.1 多播地址

    本节书摘来异步社区<IP多播网络的设计与部署(第1卷)>一书中的第2章,第2.1节,作者:[美]Beau Williamson,更多章节内容可以访问云栖社区"异步社区" ...

最新文章

  1. DeepSpeed超大规模模型训练工具
  2. Linq to SQL 资源
  3. 中国科学院院士褚君浩:第四次工业革命和智能时代
  4. 微软 microsoft calendar control 11.0 控件下载
  5. python股票交易编程最好的书_用Python 进行股票分析 有什么好的入门书籍或者课程吗?...
  6. 朋友圈有趣的灵魂都去哪了?这几个优质公号给你答案
  7. mysql开启yum search pt-mysql_Centos使用MySQL工具Percona Toolkit
  8. JS Math对象(算数、四舍五入、随机数)
  9. ruby 在 windows 中 新建进程 打开其他程序
  10. python版本可执行可嵌入_Python程序打包成exe可执行文件的方法探究
  11. 2021FME博客大赛 —— 基于FME的土地利用与夜光遥感数据综合统计
  12. 金蝶K3销售订单自动携带客户收货信息并可修改,支持下推关联携带
  13. 微软小娜服务器,微软小娜正在继续被边缘化中:奇妙清单也不再支持小娜连接-...
  14. 算法导论16.2-2
  15. 个人陈述 计算机专业,研究生个人陈述范例,计算机专业
  16. 人大金仓再获太极股份近2亿元增资,剑指中国数据库领域头把交椅
  17. MSDC 4.3 接口规范(13)
  18. 测试ip 或者 ip+端口 是否畅通
  19. 基于Java的社区团购系统丨团购商城系统
  20. ZIP压缩包设置了密码怎么办?

热门文章

  1. 深度|未来电竞产业的新“十倍空间”
  2. stm dfu_如何在Windows上修复dfu-util,STM,WinUSB,Zadig,Bootloader和其他固件刷新问题
  3. 由于找不到vcruntime140_1.dll 、vcruntime140.dll
  4. 分享18个程序员最喜欢逛的国外论坛
  5. 小米4Linux刷机包,小米4官方固件rom系统刷机包下载_小米4原版系统升级包
  6. 微信小程序毕业设计 基于微信菜谱攻略点评小程序系统开题报告
  7. python dataload
  8. 游戏热加载、即时加载、热更新、热补丁原理流程图
  9. U盘防拷贝选择隐大师
  10. 按键精灵html代码,按键精灵键盘代码~