1、计算机网络,网络层,5 因特网的路由选择协议 5.1 有关路由选择协议的几个基本概念,1. 理想的路由算法 算法必须是正确的和完整的。 算法在计算上应简单。 算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。 算法应具有稳定性。 算法应是公平的。 算法应是最佳的。,代价,在研究路由选择时,需要给每一条链路指明一定的代价。 这里“代价”并不是指“钱”,而是由一个或几个因素综合决定的一种度量(metric),如链路长度、数据率、链路容量、是否要保密、传播时延等,甚至还可以是一天中某一个小时内的通信量、结点的缓存被占用的程度、链路差错率等。,最佳路由,不存在一种绝对的最佳路由算法。 所谓“
2、最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。 实际的路由选择算法,应尽可能接近于理想的算法。 路由选择是个非常复杂的问题 它是网络中的所有结点共同协调工作的结果。 路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。,从路由算法 的自适应性考虑,静态路由选择策略即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。 动态路由选择策略即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。,2. 分层次的路由选择协议,因特网采用分层次的路由选择协议。 因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种
3、路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。,自治系统(autonomous system),因特网将整个互联网划分为许多较小的自治系统 AS。 一个自治系统是一个互联网,其最重要的特点就是自治系统有权自主地决定在本系统内应采用何种路由选择协议。 一个自治系统内的所有网络都属于一个行政单位(例如,一个公司,一所大学,政府的一个部门,等等)来管辖。 一个自治系统的所有路由器在本自治系统内都必须是连通的。,因
4、特网有两大类路由选择协议,内部网关协议 IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。 外部网关协议EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。,R1,H1,H2,内部网关协议 IGP (例如,RIP),IGP,IGP,IGP,IGP,IGP,IGP
5、,IGP,IGP,IGP,IGP,IGP,IGP,EGP,EGP,EGP,内部网关协议 IGP (例如,OSPF),外部网关协议 EGP (例如,BGP-4),IGP,R3,R2,自治系统和 内部网关协议、外部网关协议,这里要指出两点,因特网的早期 RFC 文档中未使用“路由器”而是使用“网关”这一名词。但是在新的 RFC 文档中又使用了“路由器”这一名词。应当把这两个属于当作同义词。 IGP 和 EGP 是协议类别的名称。但 RFC 在使用 EGP 这个名词时出现了一点混乱,因为最早的一个外部网关协议的协议名字正好也是 EGP。因此在遇到名词 EGP 时,应弄清它是指旧的协议 EGP 还是指
6、外部网关协议 EGP 这个类别。,因特网的路由选择协议,内部网关协议 IGP:具体的协议有多种,如 RIP 和 OSPF 等。 外部网关协议 EGP:目前使用的协议就是 BGP。,5.2 内部网关协议 RIP (Routing Information Protocol),1. 工作原理 路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。 RIP 是一种分布式的基于距离向量的路由选择协议。 RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。,“距离”的定义,从一路由器到直接连接的网络的距离定义为 1。 从一个路由器到非直接连接的网络的距离定义
7、为所经过的路由器数加 1。 RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。,“距离”的定义,RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。 RIP 允许一条路径最多只能包含 15 个路由器。 “距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网。 RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。,RIP 协议的三个要点,仅和相邻路由器交换信息。 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
8、按固定的时间间隔交换路由信息,例如,每隔 30 秒。,路由表的建立,路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。 RIP 协议的收敛(convergence)过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。,2. 距离向量算法,收到相邻路由器(其地址为 X)的一个 RIP 报文: (1) 先修改此 RIP 报文中的所有项目:将“下一跳”字段中的地址都改为 X,并将所有的“距离”
9、字段的值加 1。解释一 (2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤: 若项目中的目的网络不在路由表中,则将该项目加到路由表中。否则若下一跳字段给出的路由器地址是同样的,则将收到的项 目 替换原路由表中的项目。否则 若收到项目中的距离小于路由表中的距离,则进行更新,否则,什么也不做。 (3) 若 3 分钟还没有收到相邻路由器的更新路由表,则将此相邻路由器记为不可达的路由器,即将距离置为16(距离为16表 示不可达)。 (4) 返回。,解释一,设从位于地址X的相邻路由器发来的报文“Net2,3,Y”. 若我将下一跳路由器选为在地址X的路由器,则我到网络Net2的距离应为314 本
10、路由器将收到的RIP报文这一个项目修改为“Net2,4,X”,作为下一步比较时使用 收到的项目中的Y对本路由器来说是没有用的,因为Y不是本路由器下一跳地址,解释二,表明这是新的目的网络,应当加入到路由表中 例如本路由器没有到目的网络Net2的路由,加入的新项目为“Net2,4,X”,解释三、四,要以最新的为准。到目的网络的距离有可能增大或减小,但也可能没有改变。 例如,不管原来的路由表中的项目是“Net2,3,X”还是“Net2,5,X”,都要更新为“Net2,4,X” 若路由表中已有项目“Net2,5,P”,就要更新为“Net2,4,X”,路由器之间交换信息,RIP协议让互联网中的所有路由器
11、都和自己的相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)。 虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一个路由器的位置不同,它们的路由表当然也应当是不同的。,1 1 2 1 3 1 ,F,E,D,C,B,A,5 1 6 1 ,2 1 5 1 ,3 1 4 1 ,4 1 6 1 ,1 1 5 1 ,一开始,各路由表只有到相邻路由器的信息,网 3,网 2,网 4,网 6,网 5,网 1,“4”表示“从本路由器到网 4”,“1”表示“距离是 1”,“”表示“直接交付”,F,E,D,C,B,A,5 1 6 1 ,2
12、 1 5 1 ,3 1 4 1 ,1 1 5 1 ,路由器 B 收到相邻路由器 A 和 C 的路由表,网 3,网 2,网 4,网 6,网 5,网 1,1 2 A 2 2 A 3 1 4 1 6 2 C,A 说:“我到网 1 的距离是 1。” 因此 B 现在也可以到网 1, 距离是 2,经过 A。”,F,E,D,C,B,A,5 1 6 1 ,2 1 5 1 ,3 1 4 1 ,1 1 5 1 ,路由器 B 收到相邻路由器 A 和 C 的路由表,网 3,网 2,网 4,网 6,网 5,网 1,1 2 A 2 2 A 3 1 4 1 6 2 C,A 说:“我到网 2 的距离是 1。” 因此 B 现在
13、也可以到网 2, 距离是 2,经过 A。”,F,E,D,C,B,A,5 1 6 1 ,2 1 5 1 ,3 1 4 1 ,1 1 5 1 ,路由器 B 收到相邻路由器 A 和 C 的路由表,网 3,网 2,网 4,网 6,网 5,网 1,1 2 A 2 2 A 3 1 4 1 6 2 C,A 说:“我到网 3 的距离是 1。” 但 B 没有必要绕道经过路由器 A 再到达网 3,因此这一项目不变。,F,E,D,C,B,A,5 1 6 1 ,2 1 5 1 ,3 1 4 1 ,1 1 5 1 ,路由器 B 收到相邻路由器 A 和 C 的路由表,网 3,网 2,网 4,网 6,网 5,网 1,1 2
14、 A 2 2 A 3 1 4 1 6 2 C,C 说:“我到网 4 的距离是 1。” 但 B 没有必要绕道经过路由器 C 再到达网 4,因此这一项目不变。,F,E,D,C,B,A,5 1 6 1 ,2 1 5 1 ,3 1 4 1 ,1 1 5 1 ,路由器 B 收到相邻路由器 A 和 C 的路由表,网 3,网 2,网 4,网 6,网 5,网 1,1 2 A 2 2 A 3 1 4 1 6 2 C,C 说:“我到网 6 的距离是 1。” 因此 B 现在也可以到网 6, 距离是 2,经过 C。”,最终所有的路由器的路由表都更新了,F,E,D,C,B,A,1 1 2 1 3 1 4 2 B 5 2
15、 E 6 3 B,1 1 2 2 A 3 2 A 4 3 A 5 1 6 2 F,1 2 E 2 2 D 3 3 C 4 2 C 5 1 6 1 ,1 3 B 2 3 B 3 2 B 4 1 5 2 F 6 1 ,网 2,网 6,网 5,网 1,网 3,网 4,1 2 A 2 1 3 2 A 4 3 A 5 1 6 2 F,1 2 A 2 2 A 3 1 4 1 5 3 C 6 2 C,RIP 协议的位置,RIP 协议使用运输层的用户数据报 UDP进行传送(使用 UDP 的端口 520)。 因此 RIP 协议的位置应当在应用层。但转发 IP 数据报的过程是在网络层完成的。,4 字节,RIP 报
16、文,3. RIP2 协议的报文格式,路由信息 (20 字节/路由) 可重复出现 最多 25 个,IP 数据报,路由标记,网络地址,地址族标识符,距离 (1-16),IP 首部,UDP 首部,首部,路由部分,必为 0,版本,命令,4 字节,子网掩码,下一跳路由器地址,UDP 用户数据报,RIP2 的报文 由首部和路由部分组成。,RIP2 报文中的路由部分由若干个路由信息组成。每个路由信息需要用 20 个字节。地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。 路由标记填入自治系统的号码,这是考虑使RIP 有可能收到本自治系统以外的路由选择信息。再后面指出某个网络地址、该网络的子网掩码、
17、下一跳路由器地址以及到此网络的距离。,RIP 协议的优缺点,RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。RIP 协议最大的优点就是实现简单,开销较小。 RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。,R2,R1,正 常 情 况,1 1 ,1 2 R1,R1 说:“我到网 1 的距离是 1,是直接交付。”,“1”表示“从本路由器到网 1”,“1”表示“距离是 1”,“”表示“直接交付”,R2,R1,正 常 情 况,1 1 ,1 2 R
18、1,R2 说:“我到网 1 的距离是 2,是经过 R1。”,“1”表示“从本路由器到网 1”,“2”表示“距离是 2”,“R1”表示 经过 R1,R2,R1,正 常 情 况,1 1 ,1 2 R1,R1 说:“我到网 1 的距离是 16 (表示无法到达),是直接交付。”,但 R2 在收到 R1 的更新报文之前,还发送原来的报文, 因为这时 R2 并不知道 R1 出了故障。,R2,R1,正 常 情 况,1 1 ,1 2 R1,R1 收到 R2 的更新报文后,误认为可经过 R2 到达网1,于是更新自己的路由表,说:“我到网 1 的距离是 3,下一跳经过 R2”。然后将此更新信息发送给 R2。,R2
19、,R1,正 常 情 况,1 1 ,1 2 R1,R2 以后又更新自己的路由表为“1, 4, R1”,表明 “我到网 1 距离是 4,下一跳经过 R1”。,R2,R1,R2,R1,网 1出了故障,正 常 情 况,1 1 ,1 16 ,1 5 R2,1 2 R1,1 2 R1,这样不断更新下去,直到 R1 和 R2 到网 1 的距离都增大到 16 时,R1 和 R2 才知道网1是不可达的。,这就是好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。,解决方法,一、设定最大跳数 二、水平分割 限制路由器不能将信息发送回接收信息的方向
20、三、路由毒杀 路由器将故障的网络 设为5或16的表项 四、反转毒杀,5.3 内部网关协议 OSPF (Open Shortest Path First),1. OSPF 协议的基本特点 “开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。 “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。 是分布式的链路状态协议。,三个要点,向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。 “链路状
21、态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。,链路状态数据库 (link-state database),由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。 OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF 的更新过程收敛得快是其重要优点。,OSPF 的区域(area),为了使 OSPF 能够用于规模很大的网络,OSPF 将一个
22、自治系统再划分为若干个更小的范围,叫作区域。 每一个区域都有一个 32 bit 的区域标识符(用点分十进制表示)。 区域也不能太大,在一个区域内的路由器最好不超过 200 个。,OSPF 划分为两种不同的区域,区域 0.0.0.1,区域 0.0.0.3,主干区域 0.0.0.0,至其他自治系统,R9,R7,R6,R5,R4,R3,R2,R1,网 8,网 6,网 3,网 2,网 1,网 7,区域 0.0.0.2,网 4,网 5,R8,划分区域,划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。 在一个区域内部的路由器只知道本区
23、域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。 OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。,主干路由器,区域 0.0.0.1,区域 0.0.0.3,主干区域 0.0.0.0,至其他自治系统,R9,R7,R6,R5,R4,R3,R2,R1,网 8,网 6,网 3,网 2,网 1,网 7,区域 0.0.0.2,网 4,网 5,R8,区域边界路由器,区域 0.0.0.1,区域 0.0.0.3,主干区域 0.0.0.0,至其他自治系统,R9,R7,R6,R5,R4,R3
24、,R2,R1,网 8,网 6,网 3,网 2,网 1,网 7,区域 0.0.0.2,网 4,网 5,R8,OSPF 直接用 IP 数据报传送,OSPF 不用 UDP 而是直接用 IP 数据报传送,可见 OSPF 的位置在网络层。 OSPF 构成的数据报很短。这样做可减少路由信息的通信量。 数据报很短的另一好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。,OSPF 的其他特点,OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。 如果到同一个目
25、的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。 支持可变长度的子网划分和无分类编址 CIDR。 每一个链路状态都带上一个 32 bit 的序号,序号越大状态就越新。,IP 数据报,OSPF 分组,IP数据报首部,OSPF 分组,OSPF 分组首部,类型 1 至类型 5 的 OSPF 分组,24 字节,0,8,16,31,版 本,路 由 器 标 识 符,类 型,分 组 长 度,检 验 和,鉴 别,比特,鉴 别,区 域 标 识 符,鉴 别 类 型,2. OSPF 的五种分组类型,类型1,问候(Hel
26、lo)分组。 类型2,数据库描述(Database Description)分组。 类型3,链路状态请求(Link State Request)分组。 类型4,链路状态更新(Link State Update)分组,用洪泛法对全网更新链路状态。 类型5,链路状态确认(Link State Acknowledgment)分组。,OSPF的基本操作,确定可达性,OSPF 使用的是可靠的洪泛法,t,更新报文,ACK报文,R,R,R,R,t1t2t3t4,OSPF 的其他特点,OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。 由于一个路由器的链路状态只涉及到与相邻路由器的连
27、通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。 OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。,指定的路由器 (designated router),多点接入的局域网采用了指定的路由器的方法,使广播的信息量大大减少。 指定的路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息。,OSPF 支持三种网络的连接,(1) 两个路由器之间的点对点连接 (2) 具有广播功能的局域网 (3) 无广播功能的广域网,局域网L1,局域网L2,(a) 网络拓扑,(b) 有向图,L1,L2
28、,W1,W3,W2,D,B,C,A,I,H,G,F,E,12,4,2,2,2,3,3,3,4,13,12,16,7,7,8,8,8,10,W4,W6,4,W5,6,5,2,2,5,4,4,3,3,3,2,8,8,13,12,12,10,7,6,16,A,B,H,G,F,E,C,D,I,广域网W5,广域网W3,广域网W2,广域网W6,广域网W1,广域网W4,有向图,L1,L2,W1,W3,W2,D,B,C,A,I,H,G,F,E,12,4,2,2,2,3,3,3,4,13,12,16,7,7,8,8,8,10,W4,W6,4,W5,6,5,L1,L2,W1,W3,W2,D,B,A,I,G,F,E
29、,4,3,3,12,16,7,8,8,W4,W6,W5,6,5,4,以路由器F为根的最短路径树,默认的管理距离,管理距离AD是用来衡量接收来自相邻路由器上路由选择信息的可信度,数值越低就越可靠,5.4 外部网关协议 BGP,BGP 是不同自治系统的路由器之间交换路由信息的协议。 BGP 的较新版本是 1995 年发表的 BGP-4(BGP 的第 4 个版本)。 可以将 BGP-4 简写为 BGP。,BGP 使用的环境却不同,因特网的规模太大,使得自治系统之间路由选择非常困难。 对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。 自治系统之间的路由选择必须考虑有关策略。 因此,边界网关协议
30、 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。,BGP 发言人,每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP 发言人” 。 一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。,BGP 交换路由信息,一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。 使用 TCP 连接能提供可靠
31、的服务,也简化了路由选择协议。 使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站或对等站。,BGP 发言人和 自治系统 AS 的关系,BGP 发言人,BGP 发言人,BGP 发言人,BGP 发言人,BGP 发言人,AS1,AS3,AS2,AS5,AS4,自治系统连通图,BGP 发言人互相交换网络可达性的信息后,各 BGP 发言人就可找出到达各自治系统的比较好的路由。,AS1,AS6,AS2,AS3,AS5,AS4,AS7,AS8,BGP 发言人交换路径向量,主干网 (AS1),地区 ISP (AS2),地区 ISP (AS3),本地 ISP(AS6) N5,本地 ISP
32、(AS7) N6, N7,自治系统 AS2 的 BGP 发言人通知主干网的 BGP 发言人:“要到达网络 N1, N2, N3 和 N4 可经过 AS2。”,BGP 发言人交换路径向量,主干网 (AS1),地区 ISP (AS2),地区 ISP (AS3),本地 ISP(AS4) N1, N2,本地 ISP(AS5) N3, N4,主干网还可发出通知:“要到达网络 N5, N6 和 N7 可沿路径(AS1, AS3)。”,BGP 协议的特点,BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。 每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少
33、的。这样就使得自治系统之间的路由选择不致过分复杂。,BGP 协议的特点,BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。 在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。,BGP-4 共使用四种报文,(1) 打开(Open)报文,用来与相邻的另一个BGP发言人建立关系。 (2) 更新(Update)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。 (3) 保活(Keepalive)报文,用
34、来确认打开报文和周期性地证实邻站关系。 (3) 通知(Notificaton)报文,用来发送检测到的差错。,BGP 报文的格式,4 字节,类 型,长 度,标 记,BGP 报文的数据部分,可变长度,首部长度 19 字节,6 IP 组播和因特网组管理协议 IGMP 6.1 IP 组播的基本概念,组播可明显地减少网络中资源的消耗。,复制,复制,R1,R3,R4,R5,R6,R2,X,B,IP 组播的一些特点,(1) 组播使用组地址 IP 使用 D 类地址支持多播。多播地址只能用于目的地址,而不能用于源地址。 (2) 永久组地址由因特网号码指派管理局 IANA 负责指派。 (3) 动态的组成员 (4)
35、 使用硬件进行多播,D 类 IP 地址 与以太网组播地址的映射关系,00000000,00000001,01011110,0,1110,0,8,16,24,31,D 类 IP 地址,多播主机组标识符的低 23 bit 复制到以太网地址中,在多播主机组标识符中的 5 bit 不能用来构成以太网地址,48 bit 以太网地址,0 1 0 0 5 E,目的地址的第 1 字节中的 最低位比特置 1 表示多播,6.2 因特网组管理协议 IGMP (Internet Group Management Protocol),IGMP 是在多播环境下使用的协议,它位于网际层。 IGMP 使用 IP 数据报传递其
36、报文(即 IGMP 报文加上 IP 首部构成 IP 数据报),但它也向 IP 提供服务。 不把 IGMP 看成是一个单独的协议,而是属于整个网际协议 IP 的一个组成部分。,IGMP 可分为两个阶段,第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器。,IGMP 可分为两个阶段,第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。 只要对某个组有一个主机响应,那么多播路由器就认为这个
37、组是活跃的。 但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。,主机在多播中的几种状态,加入组 / 启动计时器,离开组 / 取消计时器,DELAYING MEMBER,计时器时间到 / 发送响应,询问到达 / 启动计时器,其他主机响应 / 取消计时器,参照计数器的值变为零 / 离开组,NON- MEMBER,MEMBER,IGMP 的报文格式,IP数据报首部,IGMP 报文,IP 数据报,0,8,16,31,类 型,组地址(询问时为零),响 应 时 间,检 验 和,比特,6.3 多播路由选择,多播路由选择相当复杂 (1) 即使网络拓扑不发生变化,但
38、由于某个应用程序加入或离开了一个多播组,多播路由都会发生变化。 (2) 多播转发要求路由器不仅要检查目的地址,而且还要检查源地址,以便确定何时需要复制多播数据报和转发多播数据报副本。 (3) 多播数据报可以由不是多播组成员的主机产生,并且可能通过没有任何组成员的网络。,隧道技术(tunneling),不支持多播的网络,隧道,多播数据报,单播 IP 数据报,首部,数 据,首部,数 据,网 1 和网 2 中的多播数据报,隧道中通行的单播 IP 数据报,R2,R1,网 1 (支持多播),网 2 (支持多播),几种多播路由选择协议,距离向量多播路由选择协议 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),