第七章 二层协议标准Word文档格式.docx
《第七章 二层协议标准Word文档格式.docx》由会员分享,可在线阅读,更多相关《第七章 二层协议标准Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
2、生成树算法
生成树算法(SpanningTreeAlgorithm)最初是由DEC公司开发成功的,其主要目标是提高网络循环连接的可用性,同时消除网络循环连接带来的破坏性。
DEC的生成树算法后来由IEEE802进行了一定的修改,发表在IEEE802.1d协议说明中。
DEC的生成树算法与IEEE802.1d算法并不相同,而且它们也互不兼容。
STA算法通过将导致循环连接的网桥端口(如果处于活动状态)设置成阻塞状态,这样就可以指定网络拓扑中没有回路的存在。
在任何时候主数据链路失效时处于阻塞状态的网桥都可以被激活,于是为网间网提供了一条新的路径。
STA算法采用了图论中的结论作为在网络拓扑中建立没有循环路径的子网的理论依据。
图论中有如下结论:
对于任意由节点和连接节点对的边组成的连通图,就会构成一棵由边组成的生成树,生成树保持了原图的连通性,但并不增加循环。
如下图,(D:
知道网桥,R:
根桥),
1生成树示意图
图2说明了生成树算法是如何消除连接循环的过程。
STA算法要求每一个网桥都有一个唯一的标识符,通常标识符由网桥的MAC地址与网桥的优先级组成(在网桥中各个项目的ID数越小,其优先级越高),同时,每一个网桥内的每一个端口也有唯一的标识符,通常是由端口号与该端口优先级组成。
最后,每一个网桥端口与一个路径值联系起来,路径值表示通过该端口将数据桢传递到LAN的代价。
一般路径值=1000/相连的LAN的速度,所以,与该端口相连的LAN的速度越大,则该端口的路径值越小。
生成树的计算过程为:
选择根桥,通常根桥就是具有最低网桥标识符的网桥,在图2中网桥1是根桥。
决定所有除根桥以外的网桥的根端口,根端口就是通过它达到根桥时,路径值最小,达到根桥的最小路径值称为根路径值。
决定指定网桥和指定网桥的指定端口,指定网桥就是每一个LAN中提供最小根路径值的网桥,每一个LAN中的指定网桥是唯一能够为当前LAN转发和接收数据桢的网桥。
每一个LAN的指定端口是连接LAN到指定网桥使用的端口。
在某些情况下,两个或多个网桥可能具有相同的根路径值,在这种情况下使用网桥标识符来决定谁是指定桥。
例如图3中,网桥4和网桥5到达网桥1(根桥)的路径值均为10,这种情况就根据网桥ID来选择,于是网桥4的LANV端口而不是网桥5的LANV端口被选择为知道端口。
图13是运行STA算法后的网络:
图中实线表示活动端口,虚线表示阻塞端口。
使用这样的选择过程,任意网桥与任意网段之间的关系只会是单向连接的,即从某一个网桥
进行生成树算法后的网络
达到某一个网段只存在唯一的路径,这样就消除了两个LAN构成的连接循环。
STA算法同样能消除多个LAN构成的连接循环,同样保持了整个网络拓扑关系的连通性。
对于不允许参加生成树协议的端口,将被设置为阻塞(blocking)状态,而当其它端口出现故障,重新配置生成树时,该端口有可能从blocking状态进入forwarding状态,重新参加生成树。
当开启网桥的电源或者检测到网络的拓扑结构发生变化时,生成树的计算过程就会开始。
生成树的计算过程需要生成树网桥之间的通讯来配合,生成树计算过程通过配置消息或称网桥协议数据单元(BPDU)来完成。
配置消息中包含有假定为根桥的网桥和发送网桥达到根桥的路径值等,配置信息中同时还包含发送端的网桥标识符和发送端的端口标识符。
以及包含在配置消息中的信息所经过的时间。
网桥以一定的时间间隔交换配置消息,如果某一网桥失效将引起网络拓扑结构发生改变,相邻的网桥在一定时间内就会检测到配置消息的空缺,并重新初始化生成树的计算过程。
所有二层交换有关网络拓扑结构的决定都是由二层交换自己进行的,配置消息仅仅在相邻网桥之间交换。
整个网络拓扑结构中没有授权的中央网桥或者专门用于管理的网桥。
3、生成树的使用:
生成树协议最主要的应用是为了避免局域网中的网络环回,解决成环以太网网络的“广播风暴”问题,从某种意义上说是一种网络保护技术,可以消除由于失误或者意外带来的循环连接。
STP也提供了为网络提供备份连接的可能,可与SDH保护配合构成以太环网的双重保护。
新型以太单板支持符合IEEE802.1d标准的生成树协议STP及802.1w规定的快速生成树协议RSTP,收敛速度可达到1s。
但是,由于协议机制本身的局限,STP保护速度慢(即使是1s的收敛速度也无法满足电信级的要求),如果在城域网内部运用STP技术,用户网络的动荡会引起运营商网络的动荡而,且SDH网络本身有比较完善的保护机制,所以城域运营网络可以对外支持STP,提供一定的网络保护功能。
图11STP协议应用示例
如上图:
启动生成树协议后,导致循环连接的网桥端口(如果处于活动状态)将被设置成阻塞状态,这样就可以指定网络拓扑中没有回路的存在。
当环网中原有的以太路由发生故障,即主数据链路失效时,处于阻塞状态的网桥被激活,于是为网间网提供了一条新的路径。
二、组播协议
1、组播协议产生的背景
随着网络带宽资源的丰富,使得很多多媒体的网络应用成为可能,例如电视会议系统,远程教学系统,多媒体点播系统等,很多的多媒体网络应用要求把信息从一个源发送到多个目的地,即一对多的发送方式。
多媒体信息的数据量非常大,使用一对一的方式模拟一对多,不但浪费带宽,而且很可能使数据源所在的网络不堪重负,而使用广播会造成信息泛滥,浪费带宽。
从本质上就提供一对多服务的组播就是根据这种一对多的发送方式需要产生的。
IP组播使得在IP协议栈上实现点到多点的高效传送成为可能,这种组播的服务模型对用户来讲是透明的,使用一个如同单播地址的D类IP地址来标志一个组,向一个组播组内的所有IP主机的报文传送使用如同单播一样的调用访问方式。
参与IP组播主机可以在任意位置、任意时间,成员总数不受限制的加入退出组播组,组播路由器不需要也不可能保存所有主机的成员关系,组播路由器所需要知道的只是物理界面所在的物理子网上是否有主机属于某个组播组,而主机方只需要保存自己加入了哪些组播组。
IGMP协议用来在主机与组播路由器之间建立并且维护这些组成员关系。
主机和路由器之间通过IGMP协议来传递组播组成员关系。
通过IGMP协议,路由器可以得知自己连接的网络中的组成员关系,但是要把组播数据从数据源所在的网络发送到组成员所在的网络,还需要有组播路由协议的支持。
组播路由和单播路由是不同的,组播路由由源地址,组地址,入接口和出接口列表四部分组成,其中源地址指数据包的源地址,组地址指数据包的目的地址,入接口指期望数据包进入的接口,出接口列表中包含需要转发的接口。
一个组播数据包只有匹配源地质,组地址,并且从入接口到达才能说完全匹配一条路由。
组播路由协议就是用于建立和维护组播路由表的。
目前,经常使用的组播路由协议包括DVMRP协议,PIM协议,MOSPF协议。
其中,PIM协议由PIMSM协议和PIMDM协议两个独立的协议组成。
按照组播路由表建立的机制把组播路由协议分为两种类型,数据驱动型和协议驱动型。
数据驱动型指在数据包到达路由器之前,路由器中不保存组播路由,通过数据包触发协议消息来建立组播路由,一般采用的是广播与剪枝技术,DVMRP和PIMDM属于这种类型的协议;
协议驱动型是指路由器通过IGMP消息得知本地子网中存在某个组G的成员后,向上游路由器发送Join消息,加入组播树,PIMSM属于这种类型的协议。
2、组播协议的体系结构
路由器实现组播功能包括两部分功能:
一部分是组播路径信息的获得;
另一部分是依据组播路径信息转发组播数据报文。
组播路由信息的获得功能依赖于组播路由协议,这些协议播包括PIMDM、PIMSM、DVMRP等。
PIMDM等协议运行的结果是获得了指导组播数据转发的组播转发表。
而IP层对组播的支持则使路由器能够正确地根据组播转发表转发组播报文。
组播路由协议主要规定了路由器之间的通信规则,而IGMP协议则规定了路由器和主机之间的通信规则。
路由器利用IGMP协议来获得组成员组成员加入和离开组播组的信息。
组播协议规范可以分为两大部分:
一部分是路由器间的通信协议包括PIMDM、PIMSM、DVMRP等;
另一部分是路由器和主机之间的通信协议——IGMP。
实现完整的组播功能需要众多的协议支持,目前组播的许多规范尚处于不断发展之中。
这些协议规范可以大体上划分为主机和路由器之间的通信协议以及路由器和路由器之间的通信协议。
主机和路由器或者交换机之间的协议包括IGMP、CGMP(CiscoGroupManagementProtocol)、IGMPSnooping等。
其中CGMP、IGMPSnooping属于二层组播协议,它们是交换机和组播组成员之间交换组播组加入、离开信息的协议。
路由器之间的通信协议又分为域内协议和域间协议。
域内协议包括PIMDM、PIMSM、DVMRP、MOSPF、CBT等。
域间协议包括MBGP、MSDP、MASC、BGMP等。
域内协议可以进一步分为两类。
一类是密集模式协议,它们是PIMDM、DVMRP、MOSPF;
另一类是稀疏模式,包括PIMSM、CBT。
PIMDM、PIMSM等组播路由协议在自己的运行域内内不再进一步划分层次。
在同时运行不同组播路由协议的边界路由器上,需要实现不同组播路由协议之间的互操作。
rfc2715定义了D.Thaler组播互操作模型。
组播系列协议中大部分使用UDP报文,少量使用面向连接的TCP报文
3、IGMP
互联网组播组管理协议(InternetGroupManagementProtocol),IGMP是IP协议族中负责IP组播的成员管理的协议。
用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
IGMP不包括组播路由器之间的组成员关系信息的传播与维护。
所有参与组播的主机必须实现IGMP协议,IGMP协议是IP组播路由协议的直接支持协议。
组播IP地址
组播IP地址用于标识一个IP组播组。
IANA把D类地址空间分配给IP组播,其范围是从224.0.0.0到239.255.255.255。
如下图所示(二进制表示),IP组播地址前四位均为1110。
八位组
(1)八位组
(2)八位组(3)八位组(4)
1110XXXXXXXXXXXXXXXXXXXXXXXXXXXX
组成员关系协议(IGMP)
IGMP协议运行于主机和与主机直接相连的组播路由器之间,主机通过此协议告诉本地路由器希望加入并接受某个特定组播组的信息,同时路由器通过此协议周期性地查询局域网内某个已知组的成员是否处于活动状态(即该网段是否仍有属于某个组播组的成员),实现所连网络组成员关系的收集与维护。
IGMP有三个版本,IGMPv1由RFC1112定义,目前通用的是IGMPv2,由RFC2236定义。
IGMPv3目前仍然是一个草案。
IGMPv1中定义了基本的组成员查询和报告过程,IGMPv2在此基础上添加了组成员快速离开的机制,IGMPv3中增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。
这里着重介绍IGMPv2协议的功能。
IGMPv2通过查询器选举机制为所连网段选举唯一的查询器。
查询器周期性的发送普遍组查询消息进行成员关系查询;
主机发送报告消息来应答查询。
当要加入组播组时,主机不必等待查询消息,主动发送报告消息。
当要离开组播组时,主机发送离开组消息;
收到离开组消息后,查询器发送特定组查询消息来确定是否所有组成员都已离开。
通过上述IGMP机制,在组播路由器里建立起一张表,其中包含路由器的各个端口以及在端口所对应的子网上都有哪些组的成员。
当路由器接收到某个组G的数据报文后,只向那些有G的成员的端口上转发数据报文。
至于数据报文在路由器之间如何转发则由路由协议决定,IGMP协议并不负责。
网络二层组播相关协议
网络二层组播相关协议包括IGMPSnooping,IGMPProxy和CGMP协议。
IGMPSnooping的实现机理是:
交换机通过侦听主机发向路由器的IGMP成员报告消息的方式,形成组成员和交换机接口的对应关系;
交换机根据该对应关系将收到组播数据包只转给具有组成员的接口。
IGMPProxy与IGMPSnooping实现功能相同但机理相异:
IGMPsnooping只是通过侦听IGMP的消息来获取有关信息,而IGMPProxy则拦截了终端用户的IGMP请求并进行相关处理后,再将它转发给上层路由器。
CGMP(CiscoGroupManagementProtocol)是Cisco基于客户机/服务器模型开发的私有协议,在CGMP的支持下,组播路由器能够根据接收到的IGMP数据包通知交换机哪些主机何时加入和脱离组播组,交换机利用由这些信息所构建的转发表来确定将组播数据包向哪些接口转发。
GMRP是主机到以太网交换机的标准协议,它使组播用户可以在第二层交换机上对组播成员进行注册。
4、组播的实现
组播由网际网组播管理协议(IGMP)实现,即RFC1112
允许主机加入组以接收多播包
允许用户基于他们运行的应用程序动态登记(加入或离开组),主机可以是任意多个组的成员,也可对同一多播组同时加入多次。
使用UDP数据报传送数据
每个多播组都由一个D类地址所确定
D类IP地址是动态分配的;
多播IP地址代表接收者组,而不是某个单独的接收者。
(因此,多播地址只能用作目的地址,它们不能出现在某个数据报的源地址字段,也不能出现在源路由或源路由记录选项中)
组成员可出现在Internet的任何地方
接收者可在Internet中密集或松散地分布;
接收者可在路由器间使用IGMP协议在任何时间动态加入或离开多播组;
发送者不需要包括在他们发送的多播组内,即不是多播组的主机也可以向多播组发送数据报。
成员加入和离开多播组将此信息通知组播处理程序
发送者和接收者截然不同,如发送者可以不是组成员
路由器“监听”来自所有多播组的报文并使用多播路由协议转发报文至组内成员
组播IP地址使用D类地址空间
D类地址的高三位置1(即224.0.0.0),地址范围从224.0.0.0至239.255.255.255
从224.0.0.0至224.0.0.255,由IANA保留为网络协议使用
从224.0.1.0至238.255.255.255,在整个Internet上动态分配,这一区域的地址可建立组播组。
从239.0.0.0至239.255.255.255,保留为私有域内部使用
2层/3层多播地址重叠
IP多播地址有28位地址空间(32位减去D类地址前缀的前四位1110),但只有23位被映射到IEEEMAC地址,共有5(28-23=5)位重叠,2**5=32,这样映射的一个明显结果是有32个IP多目地址会映射到同一个物理地址上。
例如:
以下所有IP多播地址都映射为同一2层地址:
01-00-5e-0a-00-01
224.10.0.1,225.10.0.1,226.10.0.1,227.10.0.1,
228.10.0.1,229.10.0.1,230.10.0.1,231.10.0.1,
……
236.10.0.1,237.10.0.1,238.10.0.1,239.10.0.1
说明:
我们的设备暂时不能区分,是当作同一个组播组来处理的。
IGMPv1成员查询
IGMP成员查询报文由路由器发至全主机组224.0.0.1,其中TTL置为1,以发现在局域网内哪个多播组存在活动的接收者。
局域网上某一多播路由器被指定或选举为发出查询报文的查询器。
查询间隔为每20~60秒一次。
IGMPv1成员报告
IGMPv1成员报告是由希望接收某一指定多播组的传输数据的主机发出的,成员报告被发至主机想接收传输的组的多播地址,其中的TTL置为1。
主机的成员报告或者在它刚希望加入多播组时异步发出或者是响应成员查询,在后一种情况,响应是用来维护多播组处于活动状态,以便多播组的传输可以被转发到这一网段。
报告抑制
报告抑制用于同一组的成员之间,以便处在一个局域网内的一个组的所有成员不用对一个查询同时都响应,这样可以节省所有系统的CPU资源和带宽。
多播成员的这一规则是因为只要某组在网段内存在一个成员,那么这组的数据包就要转发至这一网段。
因此,成员报告抑制很有效。
此项功能一般由路由器实现,在EFGS系列单板不提供。
TTL
因为成员查询和报告只在本地网才有意义,因此这些包的TTL值都置为1。
这样这些包就不会转发出本地子网从而引起其它子网的混乱。
类型:
在IGMPv1中报文类型
0x11=主机成员查询
0x12=主机成员报告
在IGMPv2中这一字段扩充为8位。
0x11成员查询
0x16版本2成员报告
0x17离开组
异步加入:
成员加入一个多播组不用等待路由器发出成员查询报文时再响应加入,可以主动发动成员报告表示加入。
这样在组内没有其它组成员的情况下缩短了端系统加入多播组的延迟(潜伏期)。
通用查询
通用查询报文发至全主机组多播地址(224.0.0.1),网段上的每个组的一个成员用报告报文应答。
指定组查询:
IGMP版本2中加上了指定组查询以允许路由器只查询某一个组而不是所有组的成员。
这是为找出某组中是否还留有成员的优化办法,不要求所有组发出响应报告]
指定组查询和通用查询的区别就在于通用查询多播到全主机组地址而指定组查询只多播到指定组的多播地址。
离开组报文
IGMP版本2中还加上了一种离开组报文,以允许端系统告诉路由器它们正离开多播组,这样当离开的成员是组中最后一个成员时,就可减小网段上的离开延时(潜伏期)。
说明:
我们的设备不支持离开报文离开通告。
5、组播的运用
IGMP组播协议通过对组播报文的检视,获得网络上各有效端口对组播业务的需求,并据此对各组播业务进行转发,可以有效的减少广播包。
如果不对组播报文进行特殊处理,组播报文将被丢弃;
如果对组播业务直接采用广播的方式,将导致带宽的浪费。
IGMP协议处在三层,完成的功能为管理整个IGMP协议的执行,包括发出查询报文以及路由器之间的协商、组播表项的维护等操作。
而MSTP设备处在二层,以太网单板实现的是IGMPSnooping,即IGMP协议侦听功能,完成的功能为将三层的IGMP报文转化为二层可以识别的协议,包括侦听三层的IP报文,转化为二层地址并在二层进行转发以及在交换机内部维护组播表等操作。
由此可以看出,三层的IGMP包括了主动发出查询报文进行管理等功能,二层的SNOOPING包括被动的侦听、IP报文转化为mac报文、表项维护等功能。
新型以太单板的端口存在PE(接入服务提供商边缘网络的端口)和P(接入服务提供商核心网络的端口)属性,如果组网时,端口的连接是PE属性,则通过IGMP报文中的多播组ID来记录用户的端口,将对应ID的多播组业务发到对应的ID的用户端口。
需要特别指出的是,此时在单板内部,以太网端口与VCTRUNK处于等同的地位,多播组的成员可能是以太网端口,也可能是VCTRUNK,这样从VCTRUNK下到新型以太单板上的组播业务有可能发到对应的以太网端口,也有可能发到另一个VCTRUNK。
如果组网采用P属性端口连接,则由于P属性端口之间存在一个MESH结构,组播/广播的报文的转发有限制:
只能转发到PE属性端口去,不能再转发到P属性端口,否则会因为MESH结构的环路存在,导致网络出现广播风暴的问题。
IGMP组播协议解决多个用户访问同一数据源时的流量问题,能保证多媒体业务占用网络的最小带宽。
以太组播能根据组成员的加入、离开而动态地创建、维护和删除组播地址表。
此时,组播帧依据各自的组播地址表进行转发。
例如视频点播,如下图,三个用户访问一个视频源,如果为一个用户创建一个视频流,则中间转发结点必然会出现带宽不够的情况。
解决方法是只建立一个视频流,在转发结点将数据复制多份送到用户。
图视频点播示例
三、链路聚合