IGMP:
IGMP:互联网组管理协议
M在主机与其直接连接的路由器之间进行操作
M 也称为组成员协议
M为主机提供通知其连接的路由器他的应用程序的手段。 加入或离开多播组
m注意:IGMP不在组中的所有主机之间运行,而是受限于主机和路由器之间
功能:
M 组建立和终止
m 成员加入和离开
IGMP的消息类型
IGMPv2只有4种消息类型:
具体的成员查询消息
成员报告消息
离开组消息,(可选)
成员报告
m回复一个成员报告
m 当一个应用程序首次加入一个多播组时,它的主机也会主动发送一个成员报告
m 成员报告消息由其路由器接收,也由所连接的接口(LAN)上的所有主机接收
m 注意:路由器并不真正关心局域网内有多少主机和哪些主机加入了同一组,而是是否存在。
IGMP的格式
Maxrespond time:最大响应时间
m如果在最大响应时间过期时没有响应,则考虑局域网中的主机已离开该组。
m当LAN中的多个主机在同一组中时,查询MSG可以由它们同时响应,但只需要一个报告。
m因此,为了反馈抑制,在发送成员资格报告MSG之前,主机必须等待一个随机的时间量:(0~最大响应时间)
m如果主机从另一个主机接收到给定组播组的报告,则放弃其自己的报告。
--避免不必要的传输
--避免内爆
多播架构
IGMP解决了网络边缘问题,这是不够的
m如何在网络核心中组播数据报?
明确需要另一种协议来协调多播路由器以将多播数据报传送给接收者 - 多播路由协议
多播路由:一般情况
R 组播路由的目标是构建一个链接树,它连接了所有具有属于该组播组的主机的路由器
共享树中的基于中心的树
R 首先为多播组定义中心节点
R 加入消息是单播到中心的,它要么到达中心,要么到达已经属于Mtree的路由器
使用基于源的树进行多播路由
R 对于多播组中的每个源,构建一个Mtree
R 最少的单播成本路径树
M 从源到每个目的地的成本最低
m 这是从源到每个目的地的所有最少单播成本路径的结合
-- Dijkstra 算法
M 不需要所有链接状态
m 不同于斯坦纳树
m 不同的来源有不同的树
RPF反向路径转发
Mtree生成算法
(1) 当路由器收到组播报文时,记住源地址(S)及其接口(I);
(2) 如果我属于从I到S的最短路径,则将数据包转发到除I之外的所有接口
(3) 否则,丢弃它
RPF不要求路由器知道自己到源的完整最短路径,它只需要知道发送给它的单播最短路径上的下一跳
RPF修剪
RPF算法:
如果路由器从其所有下游路由器收到修剪信息,请将修剪信息发送给其上游路由器
RPF的缺陷
RPF修剪可能被称为“洪水和修剪”
M 第一个组播数据包在整个网络中泛滥
缺陷:
M 路由器必须知道哪些下游路由器用于接收组播数据包
修剪过的分支如何重新加入该组?
M 通过使用“嫁接信息”恢复分支
m 恢复所有修剪过的分支,然后重新修剪添加的分支
--超时
--定期的洪水和修剪,也可能吸收新人
Internet中的多播路由
当前互联网中使用的主要协议
DVMRP:距离矢量组播路由协议-RFC 1075
MOSPF:多播开放式最短路径优先
CBT:基于核心的树
PIM:协议无关组播
距离向量组播路由
DVMRP包含两个主要组件:
M 传统的距离矢量路由协议(如RIP)用于计算最短的反向路径
基于RPF的数据包转发
M 反向路径最短转发
m 修剪
m 嫁接
简而言之:DVMRP= RIP + RPF
M 用于Mbone
M 启动mrouted
MOSPF:多播OSPF(RFC 1584)
M 多播开放式最短路径优先使用扩展的OSPF在AS中运行
M 链路状态也包括多播组成员资格
M 所有路由器都具有完整的自治系统拓扑结构,并知道哪些边缘路由器连接了属于各种组播组的主机
M 通过此扩展,可以为每个多播组构建源特定的,预先修剪的最短路径树
算法:
M 首先,建立从S到其他AS的最短路径树;
m 其次,修剪没有组员身份的分支。
CBT:基于核心的树(RFC 2201,2189)
M CBT多播协议构建了一个双向的,具有适合稀疏分布的核心的组共享树
R CBT building:
M 边缘路由器将CouthIsQuestMsg单播到核心,成员的核心或路由器响应连接。 M 所有成员共享此树
CBT维护:
M 下游路由器定期发送信使消息(ECHO_REQUEST)到它的直接上游路由器,用ECHO-REST消息应答
M 如果下游路由器在发送后没有收到应答请求多次,刷新和发送消息
M 类似地,如果上游路由器在一段时间内不接收请求消息,则修剪分支。
协议独立组播(PIM rfc2362)
它可以与任何潜在的单播路由协议互操作。
两种模式:
M 密集模式:组播组成员密集
使用洪水和修剪技术,
--数据驱动
M 稀疏模式:群组成员分布广泛,路由器组成员数量少。
RPF不适合
可以使用基于核心或源特定的
接收器驱动:边缘路由器定期发送JOIN消息
不认可加入消息。 核心将通过该树多播STOP-JOIN消息:当没有接收器存在时停止发送到核心
在UUnet中部署PIM
跨域组播路由
不同的AS可能会选择运行不同的多播路由协议
尽管已经为所有主要的Internet多播路由协议定义了互操作性规则,但它仍然是一个活跃的研究领域
IETF的idmr工作组开发了inter-AS路由协议
域间组播路由
评估多播协议的因素
可扩展性
M 增加群体和成员是否容易?
依赖于底层的单播路由
m 什么程度 ?
收到过多(不需要)的流量
m 或多或少?
交通集中
m 负载均衡?
m 最好还是不?
基于Winsock的组播应用程序编程
只有UDP支持多播
第一步:使用socket()设置UDP套接字,bind()
多播应用程序编程
多个进程想要绑定一个端口:
设置接收缓冲区大小:
从组退出:
当多播数据包到达时,Winsock将显示FD_READ事件,并对其进行响应:
网络层:总结
我们所涵盖的内容:
网络层服务
路由选择原则:链路状态和距离矢量
分层路由
IP
Internet路由协议可靠传输
--域内:RIP,OSPF
--域间:BGP
路由器里面有什么?
IPv6
多播路由和应用程序编程
它是实施最广泛的全球编址方案。
它允许两台主机在局域网上共享一个地址。
这是一种分层编址方案,可以将地址分组。
它只在当地具有重要意义,主要用于局域网。
2哪个OSI层定义了路由器的功能?
物理
数据链接
网络
运输
会议
3 IP地址的哪一部分标识网络上的特定设备?
前两个八位字节
第三和第四个八位字节
网络部分
主机部分
只有第四个八位字节
4以下哪些是可用的具有默认子网掩码的A类IP地址? (选择三个)
127.0.39.1
111.9.28.30
123.1.2.132
128.50.38.2
105.1.34.1
0.23.92.3
5以下哪一项将测试节点的内部回送?
ping 10.10.10.1
ping 192.168.1.1
ping 127.0.0.1
ping 223.223.223.223
ping 255.255.255.255
6在TCP / IP协议套件的互联网层有哪些协议功能?
文件传输协议(FTP)
普通文件传输协议(TFTP)
传输控制协议(TCP)
互联网协议(IP)
用户数据报协议(UDP)
简单邮件传输协议(SMTP)
7使用IP地址38.159.163.37和子网掩码255.255.255.240,确定子网地址。
38.159.0.0
38.159.163.0
38.159.163.0
38.159.163.16
38.159.163.32
38.159.163.36
8具有B类许可证的公司需要至少1,000个子网,每个子网能够容纳50台主机。 下面的哪个面具是合适的?
255.255.0.0
255.255.240.0
255.255.255.0
255.255.255.192
255.255.255.224
9以下哪些是Cisco专有路由协议? (选两项)
RIPv2
IGRP
OSPF
BGP
RIPv1
EIGRP
10当网络管理员将子网掩码255.255.255.248应用于A类地址时,对于任何给定的子网,可以将多少个IP地址分配给设备?
1022
510
254
126
30
6
11哪个OSI层将数据封装到数据包中?
会议
运输
网络
数据链接