第7章 网络层协议(4)_IGMP协议
4. IGMP协议(Internet Group Management Protocol)
4.1 什么是组播(多播)
(1)单播同一个视频要发送90个副本,但支持收看者“快进”和“倒退”。
(2)组播:同一个多播组的90个成员只需发送一次,路由器在转发分组时复制成多个副本转发出去,即在因特网范围内的多播是靠路由器来实现的,能够运行多播协议的路由器称为多播路由器。当分组到达目的局域网时,由于局部网具有硬件多播功能,因此不需要复制分组,在局部网上的多播组成员都能收到这个视频分组。
4.2 组播IP和组播MAC地址
(1)组播分为两种
①只在本局域上进行硬件组播(使用组播MAC地址)
②在因特网范围进行组播(使用组播IP)
(2)组播IP
D类地址 |
说明 |
备注 |
224.0.0.0 |
基地址(保留) |
INAN指派的永久组地址,不能随意被使用! |
224.0.0.1 |
在本子网上的所有参加多播的主机和路由器 |
|
224.0.0.2 |
在本子网上的所有参加多播的路由器 |
|
224.0.0.4 |
DVMP路由器 |
|
…… |
||
224.0.1.0至 238.255.255.255 |
全球范围都可使用的多播地址 |
|
239.0.0.0至 239.255.255.255 |
限制在一个组织的范围 |
①组播数据报的目的地址不能为某个具体的主机IP,而是多播组的标识符,然后将加入到这个多播组的主机IP与多播组的标识符关联起来。
②多播组的标识符就是D类地址,每一个D类地址标志一个多播组。D类地址范围是224.0.0.0至239.255.255.255,共可标志238个多播组。
③组播数据报使用IGMP协议,“尽最大努力交付”数据报,但并不保证一定能够交付给多播组内的所有成员。
④组播地址只能用于目的地址,而不能用于源地址。此外,组播数据报不产生ICMP差错报文。因此,若ping一个多播地址,将永远得不到响应。
(2)组播MAC地址
①目标地址是组播IP地址的数据包到达以太网,就要使用组播MAC地址进行封装。组播MAC地址使用组播IP地址构造。
②组播MAC地址区间:01-00-5E-00-00-00到01-00-5E-7F-FF-FF。这是一个由48位组成的MAC地址,其中高25位是固定的,而低23位是由IP多播地址的低23位直接映射而来。
③组播IP和组播MAC地址的映射关系不是唯一的。如组播IP(224.168.64.32)和(224.0.64.32)构造出来的MAC地址都是01-00-5E-00-40-20。当收到组播数据报的主机,还要在IP层利用软件根据IP地址进行过滤,把不是本主机要接收的数据报丢弃。
4.3 IGMP:组播管理协议
(1)IGMP协议工作的两个阶段
①当某个主机加入新的多播组时,该主机应向多播组的多播地址发送一个IGMP报文,声明自己要成为该组的成员。本地的多播路由器收到IGMP报文后,还要利用多播路由选择协议把这种组成员关系转发给因特网上的其他多播路由器。
②在多播过程中,一个多播组中的成员是动态变化的。随时会有主机加入或离开这个多播组。本地多播路由器要周期性地查询本地局域网上的主机,以便知道这些主机是否继续是组的成员。只要有一个主机对某个组响应,那么多播路由器就认为这个组是活跃的。但一个组在经过几次的探询后仍然没有一个主机响应,多播路由器就认为本网络上主机己经离开了这个组。因此,也就不再把这个组的成员关系转发给其他多播路由器。
(2)多播路由选择协议
①连接在局域网上的多播路由器还必须与因特网上的其他多播路由器协同工作,以便把多播数据报用最小代价传递给所有的组成员。这需要使用多播路由选择协议。
②多播路由选择实际上就是找出以源主机为根节点的多播转发树。在多播转发树上的路由器不会收到重复的多播数据报(即多播数据报不应在互联网中兜圈子)
③多播路由选择协议的实现有三种方法:洪泛与剪除、隧道技术和基于核心的发现技术等。
4.4 实战:跨网段观看组播视频
(1)网络拓扑图
(2)在Win2003虚拟机上架设流媒体多播服务器
①安装Window Media Services组件。(为方便,这里简称为“WMS”)
②打开“WMS”,新建发布点,这里使用默认的“Sample_Broadcast”。
③在“属性”选项卡→“多播流”→启用“WMS多播数据写入器”。然后查看该写入器的属性,可以看到所使用的多播地址、端口和多播数据包的TTL。
④发布公告:在“公告”选项卡→“运行多播公告向导” →……→“添加流格式”中通过浏览找到“racecar_300.wmv”,然后继续设置直到完成。注意,会生成一个“Sample_Broadcast.nsc”文件。
⑤将“Sample_Broadcast.nsc”文件从Win2003虚拟机拷贝到WinXP,双击运行可观看在Win2003流媒体服务器上正在多播的视频。
(3)路由器配置
①R1启用多播路由,接口为密集模式。R2路由器配置方法相同
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#ip multicast-routing //启用多播路由协议
R1(config)#interface fastEthernet /
R1(config-if)#ip pim dense-mode //接口为密集模式
R1(config-if)#exit
R1(config)#interface serial /
R1(config-if)#ip pim dense-mode //接口为密集模式
R1(config-if)#exit
②查看R2多播路由表
R2#show ip mroute
(192.168.10.30, 239.192.2.67), ::/::, flags: T //多播路由
Incoming interface: Serial2/, RPF nbr 172.16.0.1 //R2要请求239.192.2.67多播数据流,就要找172.16.0.1
Outgoing interface list:
FastEthernet0/, Forward/Dense, ::/::
③查看接口绑定的组播地址
R2#show ip igmp groups
IGMP Connected Group Membership
Group Address Interface Uptime Expires Last Reporter Group Accounted
239.255.255.250 FastEthernet0/ :: :: 192.168.80.50
239.192.2.67 FastEthernet0/ :: :: 192.168.80.50 //流媒体多播组(IP:239.192.2.67),接收者192.168.80.50
224.0.1.40 FastEthernet0/ :: :: 192.168.80.10
④查看启用IGMP协议的接口
R2#show ip igmp interface //本例中会fast0/0和serial2/0接口的启用IGMP的信息
⑤查看IGMP协议工作过程、主机加入和离开组播的报告
R2#debug ip igmp //查看
R2#undebug all //取消
第7章 网络层协议(4)_IGMP协议的更多相关文章
- 《TCP/IP详解卷1:协议》第11章 UDP:用户数据报协议-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 《TCP/IP详解卷1:协议》第5章 RARP:逆地址解析协议-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)
一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端 24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器 想体验服务的时候 ...
- 【RL-TCPnet网络教程】第33章 SMTP简单邮件传输协议基础知识
第33章 SMTP简单邮件传输协议基础知识 本章节为大家讲解SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)的基础知识,方便后面章节的实战操作. (本 ...
- 【RL-TCPnet网络教程】第25章 DHCP动态主机配置协议基础知识
第25章 DHCP动态主机配置协议基础知识 本章节为大家讲解DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通过前面章节对TCP和UDP ...
- (71)一篇文章带你熟悉HTTP协议
作者:涤生_Woo链接:http://www.jianshu.com/p/6e9e4156ece3來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本篇文章篇幅比较长,先 ...
- 第一篇 网站基础知识 第5章 自己动手实现HTTP协议
第5章 自己动手实现HTTP协议 我们知道HTTP协议是在应用层解析内容的,只需要按照它的报文的格式封装和解析数据就可以了,具体的传输还是使用的Socket,在第4章NioServer的基础上自己做一 ...
- 第五章Web应用与应用层协议
Web应用与应用层协议 本篇博文中的主要参考文献是<计算机网络高级教程>,分别是吴功宜老先生和吴英教授合著.这部教程是我研究生老师所推荐的网络必读科目,由于该教程讲解的基础知识详细,但内容 ...
- 【知识强化】第四章 网络层 4.3 IP
这节课我们来学习一下IP数据报的格式.那之所以把路由算法这一小节跳过呢,就是因为我们之后会要讲到路由的选择协议.那在路由选择协议这一块讲路由算法,我觉得是比较合适的.那我们先来看一下这节课要讲的知识. ...
- TCP协议与UDP协议的区别
TCP协议与UDP协议的区别(转) 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! ...
随机推荐
- codeblock设置快捷键
第一步: 第二步: 第三步: 格式化代码设置: 在代码框里点右键,按Format use Astyle就会自动代码格式化了 但是它默认的风格是大括号另起一行,很不习惯,实际上是可以改的 1.Sett ...
- oracle故障解决
修改了字符集,修改错了,然后不能启动 alter system set nls_language='AMERICA'; shutdown immediate; startup 报错 [oracle@o ...
- Git上传空文件夹的方法
之前发现很多项目文件夹下又.gitkeep文件,不知道它的用处. 直到前段时间遇到一个问题,Git如何上传空文件夹? 默认情况下,Git不会上传本地空文件夹,如果有些特殊场合需要的话,一个简单的方法是 ...
- http 2.0 新特性
http 2.0 新特性: 二进制分帧 首部压缩 流量控制 多路复用 请求优先级 服务器推送 出处:https://juejin.im/post/5a4dfb2ef265da43305ee2d0
- KNN手写实践:Python基于数据集整体计算以及排序
1. 距离计算,不要通过遍历每个样本来计算和指定样本距离,而是通过对于指定样本进行广播(复制)成为一个shape和全局一致后,再进行整体计算,这里的广播 / 复制采用的是tile函数来实现的: 2. ...
- 如何在Macbook苹果笔记本上按右键点击(适用小米黑苹果)
1.按下Control键.保持按下Control(Ctrl)键,同时点击鼠标. 这一操作相当于在一个双键鼠标上右击. 点击鼠标后,你可以松开Control键. 该方法适用于单键鼠标或者MacBook ...
- SD-SDI播出系统---使用GTX TX产生恢复时钟
SD-SDI播出系统---使用GTX TX产生恢复时钟 1. 2.SD-SDI恢复时钟的生成
- golang语言并发与并行——goroutine和channel的详细理解(一) 转发自https://blog.csdn.net/skh2015java/article/details/60330785
如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人. Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据. ...
- 支付宝内部功能调用APP的said说明
追加: 支付宝收款码 alipayqr://platformapi/startapp?saId=20000123 微信扫一扫 weixin://scanqrcode (跳转微信扫一扫) 支付宝扫一 ...
- MySQL 内存溢出
select EVENT_NAME ,SUM_NUMBER_OF_BYTES_ALLOC from memory_summary_global_by_event_name order by SUM_N ...