《计算机网络教学资料》第7章.ppt
Chapter 7 Internet*117.4 因特网控制报文协议因特网控制报文协议 ICMPq为了提高为了提高 IP 数据报交付成功的机会,在网际数据报交付成功的机会,在网际层使用了因特网控制报文协议层使用了因特网控制报文协议 ICMP(Internet Control Message Protocol)。qICMP 允许主机或路由器报告差错情况和提供允许主机或路由器报告差错情况和提供有关异常情况的报告。有关异常情况的报告。qICMP 不是高层协议,而是不是高层协议,而是 IP 层的协议。层的协议。qICMP 报文作为报文作为 IP 层数据报的数据,加上数据层数据报的数据,加上数据报的首部,组成报的首部,组成 IP 数据报发送出去。数据报发送出去。Chapter 7 Internet*22ICMP 报文的格式报文的格式 首 部ICMP 报文0数 据 部 分检验和类型代码(这 4 个字节取决于 ICMP 报文的类型)81631IP 数据报前 4 个字节都是一样的ICMP 的数据部分(长度取决于类型)Chapter 7 Internet*33ICMP 报文报文qICMP 报报文文的的种种类类有有两两种种,即即 ICMP 差差错错报报告告报报文文和和 ICMP 询问报文。询问报文。qICMP 报报文文的的前前 4 个个字字节节是是统统一一的的格格式式,共共有有三三个个字字段段:即即类类型型、代代码码和和检检验验和和。接接着着的的 4 个个字字节节的的内容与内容与 ICMP 的类型有关。的类型有关。Chapter 7 Internet*44ICMP 差错报告报文共有差错报告报文共有 5 种种 q终点不可达终点不可达 q源站抑制源站抑制 q时间超过时间超过 q参数问题参数问题 q改变路由(重定向)改变路由(重定向)Chapter 7 Internet*55ICMP 差错报告报文的数据字段的内容差错报告报文的数据字段的内容 首部IP 数据报ICMP 的前 8 字节装入 ICMP 报文的 IP 数据报IP 数据报首部ICMP 差错报告报文8字节收到的 IP 数据报IP 数据报首部8字节ICMP 差错报告报文IP 数据报的数据字段Chapter 7 Internet*66不应发送不应发送 ICMP 差错报告报文差错报告报文的几种情况的几种情况 q对对 ICMP 差差错错报报告告报报文文不不再再发发送送 ICMP 差差错错报告报文。报告报文。q对对第第一一个个分分片片的的数数据据报报片片的的所所有有后后续续数数据据报报片都不发送片都不发送 ICMP 差错报告报文。差错报告报文。q对对具具有有多多播播地地址址的的数数据据报报都都不不发发送送 ICMP 差差错报告报文。错报告报文。q对对具具有有特特殊殊地地址址(如如或或)的的数数据据报报不不发发送送 ICMP 差错报告报文。差错报告报文。Chapter 7 Internet*77ICMP 询问报文有四种询问报文有四种 q回送请求和回答报文回送请求和回答报文q时间戳请求和回答报文时间戳请求和回答报文q掩码地址请求和回答报文掩码地址请求和回答报文q路由器询问和通告报文路由器询问和通告报文 Chapter 7 Internet*88PING(Packet InterNet Groper)qPING 用来测试两个主机之间的连通性。用来测试两个主机之间的连通性。qPING 使使用用了了 ICMP 回回送送请请求求与与回回送送回回答答报报文。文。qPING 是是应应用用层层直直接接使使用用网网络络层层 ICMP 的的例例子,它没有通过运输层的子,它没有通过运输层的 TCP 或或UDP。Chapter 7 Internet*997.5 因特网的路由选择协议因特网的路由选择协议7.5.1 有关路由选择协议的几个基本概念有关路由选择协议的几个基本概念1.理想的路由算法理想的路由算法q算法必须是正确的和完整的。算法必须是正确的和完整的。q算法在计算上应简单。算法在计算上应简单。q算算法法应应能能适适应应通通信信量量和和网网络络拓拓扑扑的的变变化化,这这就是说,要有自适应性。就是说,要有自适应性。q算法应具有稳定性。算法应具有稳定性。q算法应是公平的。算法应是公平的。q算法应是最佳的。算法应是最佳的。Chapter 7 Internet*1010代价代价 q在在研研究究路路由由选选择择时时,需需要要给给每每一一条条链链路路指指明明一定的一定的代价代价。q这这里里“代代价价”并并不不是是指指“钱钱”,而而是是由由一一个个或或几几个个因因素素综综合合决决定定的的一一种种度度量量(metric),如如链链路路长长度度、数数据据率率、链链路路容容量量、是是否否要要保保密密、传传播播时时延延等等,甚甚至至还还可可以以是是一一天天中中某某一一个个小小时时内内的的通通信信量量、结结点点的的缓缓存存被被占占用用的的程程度、链路差错率等。度、链路差错率等。Chapter 7 Internet*1111最佳路由最佳路由 q不存在一种绝对的最佳路由算法。不存在一种绝对的最佳路由算法。q所所谓谓“最最佳佳”只只能能是是相相对对于于某某一一种种特特定定要要求求下得出的较为合理的选择而已。下得出的较为合理的选择而已。q实实际际的的路路由由选选择择算算法法,应应尽尽可可能能接接近近于于理理想想的算法。的算法。q路由选择是个非常复杂的问题路由选择是个非常复杂的问题它是网络中的所有结点共同协调工作的结果。它是网络中的所有结点共同协调工作的结果。路路由由选选择择的的环环境境往往往往是是不不断断变变化化的的,而而这这种种变变化化有时无法事先知道。有时无法事先知道。Chapter 7 Internet*1212从路由算法从路由算法 的自适应性考虑的自适应性考虑q静静态态路路由由选选择择策策略略即即非非自自适适应应路路由由选选择择,其其特特点点是是简简单单和和开开销销较较小小,但但不不能能及及时时适适应应网络状态的变化。网络状态的变化。q动动态态路路由由选选择择策策略略即即自自适适应应路路由由选选择择,其其特特点点是是能能较较好好地地适适应应网网络络状状态态的的变变化化,但但实现起来较为复杂,开销也比较大。实现起来较为复杂,开销也比较大。Chapter 7 Internet*13132.分层次的路由选择协议分层次的路由选择协议q因特网采用分层次的路由选择协议。因特网采用分层次的路由选择协议。q因因特特网网的的规规模模非非常常大大。如如果果让让所所有有的的路路由由器器知知道道所所有有的的网网络络应应怎怎样样到到达达,则则这这种种路路由由表表将将非非常常大大,处处理理起起来来也也太太花花时时间间。而而所所有有这这些些路路由由器器之之间间交交换换路路由由信信息息所所需需的的带带宽宽就就会会使因特网的通信链路饱和。使因特网的通信链路饱和。q许许多多单单位位不不愿愿意意外外界界了了解解自自己己单单位位网网络络的的布布局局细细节节和和本本部部门门所所采采用用的的路路由由选选择择协协议议(这这属属于于本本部部门门内内部部的的事事情情),但但同同时时还还希希望望连连接到因特网上。接到因特网上。Chapter 7 Internet*1414自治系统自治系统(autonomous system)q因因特特网网将将整整个个互互联联网网划划分分为为许许多多较较小小的的自自治治系统系统 AS。q一一个个自自治治系系统统是是一一个个互互联联网网,其其最最重重要要的的特特点点就就是是自自治治系系统统有有权权自自主主地地决决定定在在本本系系统统内内应采用何种路由选择协议。应采用何种路由选择协议。q一一个个自自治治系系统统内内的的所所有有网网络络都都属属于于一一个个行行政政单单位位(例例如如,一一个个公公司司,一一所所大大学学,政政府府的的一个部门,等等一个部门,等等)来管辖。来管辖。q一一个个自自治治系系统统的的所所有有路路由由器器在在本本自自治治系系统统内内都必须是连通的。都必须是连通的。Chapter 7 Internet*1515因特网有两大类路由选择协议因特网有两大类路由选择协议 q内内部部网网关关协协议议 IGP(Interior Gateway Protocol)即即在在一一个个自自治治系系统统内内部部使使用用的的路路由由选选择择协协议议。目目前前这这类类路路由由选选择择协协议议使使用用得得最最多多,如如 RIP 和和 OSPF 协议。协议。q外外部部网网关关协协议议EGP(External Gateway Protocol)若若源源站站和和目目的的站站处处在在不不同同的的自自治治系系统统中中,当当数数据据报报传传到到一一个个自自治治系系统统的的边边界界时时,就就需需要要使使用用一一种种协协议议将将路路由由选选择择信信息息传传递递到到另另一一个个自自治治系系统统中中。这这样样的的协协议议就就是是外外部部网网关关协协议议 EGP。在在外外部部网网关协议中目前使用最多的是关协议中目前使用最多的是 BGP-4。Chapter 7 Internet*1616R1H1H2内部网关协议IGP(例如,RIP)自治系统 A自治系统 B自治系统 CIGPIGPIGPIGPIGPIGPIGPIGPIGPIGPIGPIGPEGPEGPEGP内部网关协议IGP(例如,OSPF)外部网关协议EGP(例如,BGP-4)IGPR3R2自治系统和自治系统和内部网关协议、外部网关协议内部网关协议、外部网关协议 Chapter 7 Internet*1717因特网的路由选择协议因特网的路由选择协议 q内部网关协议内部网关协议 IGP:具体的协议有多:具体的协议有多种,如种,如 RIP 和和 OSPF 等。等。q外部网关协议外部网关协议 EGP:目前使用的协议:目前使用的协议就是就是 BGP。Chapter 7 Internet*18187.5.2 内部网关协议内部网关协议 RIP(Routing Information Protocol)1.工作原理工作原理q路由信息协议路由信息协议 RIP 是内部网关协议是内部网关协议 IGP中最先得到广泛使用的协议。中最先得到广泛使用的协议。qRIP 是一种分布式的基于是一种分布式的基于距离向量距离向量的路的路由选择协议。由选择协议。qRIP 协议要求网络中的每一个路由器都协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络要维护从它自己到其他每一个目的网络的距离记录。的距离记录。Chapter 7 Internet*1919“距离距离”的定义的定义 q从从一一路路由由器器到到直直接接连连接接的的网网络络的的距距离离定定义为义为 1。q从从一一个个路路由由器器到到非非直直接接连连接接的的网网络络的的距距离定义为所经过的路由器数加离定义为所经过的路由器数加 1。qRIP 协协议议中中的的“距距离离”也也称称为为“跳跳数数”(hop count),因因为为每每经经过过一一个个路路由由器器,跳数就加跳数就加 1。Chapter 7 Internet*2020“距离距离”的定义的定义 qRIP 认认为为一一个个好好的的路路由由就就是是它它通通过过的的路路由由器器的的数目少,即数目少,即“距离短距离短”。qRIP 允许一条路径最多只能包含允许一条路径最多只能包含 15 个路由器。个路由器。q“距距离离”的的最最大大值值为为16 时时即即相相当当于于不不可可达达。可见可见 RIP 只适用于小型互联网。只适用于小型互联网。qRIP 不不能能在在两两个个网网络络之之间间同同时时使使用用多多条条路路由由。RIP 选选择择一一个个具具有有最最少少路路由由器器的的路路由由(即即最最短短路路由由),哪哪怕怕还还存存在在另另一一条条高高速速(低低时时延延)但但路路由器较多的路由。由器较多的路由。Chapter 7 Internet*2121RIP 协议的三个要点协议的三个要点 q仅和相邻路由器仅和相邻路由器交换信息。交换信息。q交交换换的的信信息息是是当当前前本本路路由由器器所所知知道道的的全全部信息部信息,即自己的路由表。,即自己的路由表。q按按固固定定的的时时间间间间隔隔交交换换路路由由信信息息,例例如如,每隔每隔 30 秒。秒。Chapter 7 Internet*2222路由表的建立路由表的建立 q路路由由器器在在刚刚刚刚开开始始工工作作时时,只只知知道道到到直直接接连连接接的网络的距离(此距离定义为的网络的距离(此距离定义为1)。)。q以以后后,每每一一个个路路由由器器也也只只和和数数目目非非常常有有限限的的相相邻路由器交换并更新路由信息。邻路由器交换并更新路由信息。q经经过过若若干干次次更更新新后后,所所有有的的路路由由器器最最终终都都会会知知道道到到达达本本自自治治系系统统中中任任何何一一个个网网络络的的最最短短距距离和下一跳路由器的地址。离和下一跳路由器的地址。qRIP 协协议议的的收收敛敛(convergence)过过程程较较快快,即即在在自自治治系系统统中中所所有有的的结结点点都都得得到到正正确确的的路路由由选选择信息的过程。择信息的过程。Chapter 7 Internet*23232.距离向量算法距离向量算法收到相邻路由器(其地址为 X)的一个 RIP 报文:(1)先修改此 RIP 报文中的所有项目:将“下一跳”字段中的地址都改为 X,并将所有的“距离”字段的值加 1。(2)对修改后的 RIP 报文中的每一个项目,重复以下步骤:若项目中的目的网络不在路由表中,则将该项目加到路由表中。否则 若下一跳字段给出的路由器地址是同样的,则将收到的项目替换原路由表中的项目。否则 若收到项目中的距离小于路由表中的距离,则进行更新,否则,什么也不做。(3)若 3 分钟还没有收到相邻路由器的更新路由表,则将此相邻路由器记为不可达的路由器,即将距离置为16(距离为16表示不可达)。(4)返回。Chapter 7 Internet*2424路由器之间交换信息路由器之间交换信息 qRIP协协议议让让互互联联网网中中的的所所有有路路由由器器都都和和自自己己的的相相邻邻路路由由器器不不断断交交换换路路由由信信息息,并并不不断断更更新新其其路路由由表表,使使得得从从每每一一个个路路由由器器到到每每一一个个目目的的网网络络的的路路由由都都是是最最短短的(即跳数最少)。的(即跳数最少)。q虽虽然然所所有有的的路路由由器器最最终终都都拥拥有有了了整整个个自自治治系系统统的的全全局局路路由由信信息息,但但由由于于每每一一个个路路由由器器的的位位置置不不同同,它它们们的的路路由由表表当当然然也应当是不同的。也应当是不同的。Chapter 7 Internet*25251 1 2 1 3 1 FEDCBA5 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”“”表示“直接交付”Chapter 7 Internet*26261 1 2 1 3 1 FEDCBA5 1 6 1 2 1 5 1 3 1 4 1 4 1 6 1 1 1 5 1 路由器 B 收到相邻路由器 A 和 C 的路由表网 3网 2网 4网 6网 5网 11 1 2 1 3 1 4 1 6 1 1 2 A2 2 A3 1 4 1 6 2 C更新后A 说:“我到网 1 的距离是 1。”因此 B 现在也可以到网 1,距离是 2,经过 A。”Chapter 7 Internet*27271 1 2 1 3 1 FEDCBA5 1 6 1 2 1 5 1 3 1 4 1 4 1 6 1 1 1 5 1 路由器 B 收到相邻路由器 A 和 C 的路由表网 3网 2网 4网 6网 5网 11 1 2 1 3 1 4 1 6 1 1 2 A2 2 A3 1 4 1 6 2 C更新后A 说:“我到网 2 的距离是 1。”因此 B 现在也可以到网 2,距离是 2,经过 A。”Chapter 7 Internet*28281 1 2 1 3 1 FEDCBA5 1 6 1 2 1 5 1 3 1 4 1 4 1 6 1 1 1 5 1 路由器 B 收到相邻路由器 A 和 C 的路由表网 3网 2网 4网 6网 5网 11 1 2 1 3 1 4 1 6 1 1 2 A2 2 A3 1 4 1 6 2 C更新后A 说:“我到网 3 的距离是 1。”但 B 没有必要绕道经过路由器 A再到达网 3,因此这一项目不变。Chapter 7 Internet*29291 1 2 1 3 1 FEDCBA5 1 6 1 2 1 5 1 3 1 4 1 4 1 6 1 1 1 5 1 路由器 B 收到相邻路由器 A 和 C 的路由表网 3网 2网 4网 6网 5网 11 1 2 1 3 1 4 1 6 1 1 2 A2 2 A3 1 4 1 6 2 C更新后C 说:“我到网 4 的距离是 1。”但 B 没有必要绕道经过路由器 C再到达网 4,因此这一项目不变。Chapter 7 Internet*30301 1 2 1 3 1 FEDCBA5 1 6 1 2 1 5 1 3 1 4 1 4 1 6 1 1 1 5 1 路由器 B 收到相邻路由器 A 和 C 的路由表网 3网 2网 4网 6网 5网 11 1 2 1 3 1 4 1 6 1 1 2 A2 2 A3 1 4 1 6 2 C更新后C 说:“我到网 6 的距离是 1。”因此 B 现在也可以到网 6,距离是 2,经过 C。”Chapter 7 Internet*3131最终所有的路由器的路由表都更新了FEDCBA1 1 2 1 3 1 4 2 B5 2 E6 3 B1 1 2 2 A3 2 A4 3 A5 1 6 2 F1 2 E2 2 D3 3 C4 2 C5 1 6 1 1 3 B2 3 B3 2 B4 1 5 2 F6 1 网 2网 6网 5网 1网 3网 41 2 A2 1 3 2 A4 3 A5 1 6 2 F1 2 A2 2 A3 1 4 1 5 3 C6 2 CChapter 7 Internet*3232RIP 协议的优缺点协议的优缺点 qRIP 存存在在的的一一个个问问题题是是当当网网络络出出现现故故障障时时,要要经经过过比比较较长长的的时时间间才才能能将将此此信信息息传传送送到到所所有有的路由器。的路由器。q RIP 协协议议最最大大的的优优点点就就是是实实现现简简单单,开开销销较较小。小。qRIP 限限制制了了网网络络的的规规模模,它它能能使使用用的的最最大大距距离离为为 15(16 表示不可达)。表示不可达)。q路路由由器器之之间间交交换换的的路路由由信信息息是是路路由由器器中中的的完完整整路路由由表表,因因而而随随着着网网络络规规模模的的扩扩大大,开开销销也也就增加。就增加。Chapter 7 Internet*3333R2R1网 1网 3网 2正常情况1 1 1 2 R1R1 说:“我到网 1 的距离是 1,是直接交付。”“1”表示“从本路由器到网 1”“1”表示“距离是 1”“”表示“直接交付”Chapter 7 Internet*3434R2R1网 1网 3网 2正常情况1 1 1 2 R1R2 说:“我到网 1 的距离是 2,是经过 R1。”“1”表示“从本路由器到网 1”“2”表示“距离是 2”“R1”表示经过 R1Chapter 7 Internet*3535R2R1网 1网 3网 2R2R1网 1网 3网 2网 1出了故障正常情况1 1 1 16 1 2 R11 2 R1R1 说:“我到网 1 的距离是 16(表示无法到达),是直接交付。”但 R2 在收到 R1 的更新报文之前,还发送原来的报文,因为这时 R2 并不知道 R1 出了故障。Chapter 7 Internet*3636R2R1网 1网 3网 2R2R1网 1网 3网 2网 1出了故障正常情况1 1 1 16 1 2 R11 2 R1R1 收到 R2 的更新报文后,误认为可经过 R2 到达网1,于是更新自己的路由表,说:“我到网 1 的距离是 3,下一跳经过 R2”。然后将此更新信息发送给 R2。1 3 R2Chapter 7 Internet*3737R2R1网 1网 3网 2R2R1网 1网 3网 2网 1出了故障正常情况1 1 1 16 1 2 R11 2 R1R2 以后又更新自己的路由表为“1,4,R1”,表明“我到网 1 距离是 4,下一跳经过 R1”。1 3 R21 4 R1Chapter 7 Internet*3838R2R1网 1网 3网 2R2R1网 1网 3网 2网 1出了故障正常情况1 1 1 16 1 3 R21 5 R21 16 R21 2 R11 2 R11 4 R11 16 R1这样不断更新下去,直到 R1 和 R2 到网 1 的距离都增大到 16 时,R1 和 R2 才知道网1是不可达的。这就是好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。Chapter 7 Internet*3939q1979年,距离年,距离-向量算法被链路状态路由算法所代替向量算法被链路状态路由算法所代替q原因:原因:距离距离-向量路由算法没有考虑物理线路的带宽向量路由算法没有考虑物理线路的带宽存在慢收敛问题:路由器不可能得到有关全网的拓存在慢收敛问题:路由器不可能得到有关全网的拓扑结构及状态,算法只是在相邻路由器之间交换的扑结构及状态,算法只是在相邻路由器之间交换的部分路由信息。部分路由信息。路由更新消息对每个目的地都有相应的项,该更新路由更新消息对每个目的地都有相应的项,该更新消息的大小与网络规模成正比,同时距离向量算法消息的大小与网络规模成正比,同时距离向量算法要求所有的节点都参加,交换的信息量是非常巨大要求所有的节点都参加,交换的信息量是非常巨大的。的。7.5.3 内部网关协议内部网关协议 OSPF(Open Shortest Path First)Chapter 7 Internet*40407.5.3 内部网关协议内部网关协议 OSPF(Open Shortest Path First)1.OSPF 协议的基本特点协议的基本特点q“开放开放”表明表明 OSPF 协议不是受某一家厂商控协议不是受某一家厂商控制,而是公开发表的。制,而是公开发表的。q“最短路径优先最短路径优先”是因为使用了是因为使用了 Dijkstra 提出提出的最短路径算法的最短路径算法SPFqOSPF 只是一个协议的名字,它并不表示其他只是一个协议的名字,它并不表示其他的路由选择协议不是的路由选择协议不是“最短路径优先最短路径优先”。q是分布式的是分布式的链路状态协议链路状态协议。Chapter 7 Internet*4141三个要点三个要点 q向本自治系统中向本自治系统中所有路由器所有路由器发送信息,这里使发送信息,这里使用的方法是洪泛法。用的方法是洪泛法。q发送的信息就是与本路由器相邻的所有路由器发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的的链路状态,但这只是路由器所知道的部分部分信息。信息。“链路状态链路状态”就是说明本路由器都和哪些路由器相就是说明本路由器都和哪些路由器相邻,以及该链路的邻,以及该链路的“度量度量”(metric)。q只有当链路状态只有当链路状态发生变化发生变化时,路由器才用洪泛时,路由器才用洪泛法向所有路由器发送此信息。法向所有路由器发送此信息。Chapter 7 Internet*4242链路状态数据库链路状态数据库(link-state database)q由于各路由器之间频繁地交换链路状态信息,由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态因此所有的路由器最终都能建立一个链路状态数据库。数据库。q这个数据库实际上就是全网的拓扑结构图,它这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据在全网范围内是一致的(这称为链路状态数据库的同步)。库的同步)。qOSPF 的链路状态数据库能较快地进行更新,的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。使各个路由器能及时更新其路由表。OSPF 的的更新过程收敛得快是其重要优点。更新过程收敛得快是其重要优点。Chapter 7 Internet*4343OSPF 的区域的区域(area)q为了使为了使 OSPF 能够用于规模很大的网络,能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的将一个自治系统再划分为若干个更小的范围,叫作范围,叫作区域区域。q每一个区域都有一个每一个区域都有一个 32 bit 的区域标识符(用的区域标识符(用点分十进制表示)。点分十进制表示)。q区域也不能太大,在一个区域内的路由器最好区域也不能太大,在一个区域内的路由器最好不超过不超过 200 个。个。Chapter 7 Internet*4444自治系统 ASOSPF 划分为两种不同的区域划分为两种不同的区域 区域 区域 主干区域 至其他自治系统R9R7R6R5R4R3R2R1网 8网 6网 3网 2网 1网 7区域 网 4网 5R8Chapter 7 Internet*4545划分区域划分区域 q划分区域的好处就是将利用洪泛法交换链路状划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。自治系统,这就减少了整个网络上的通信量。q在一个区域内部的路由器只知道本区域的完整在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情网络拓扑,而不知道其他区域的网络拓扑的情况。况。qOSPF 使用层次结构的区域划分。在上层的区使用层次结构的区域划分。在上层的区域叫作域叫作主干区域主干区域(backbone area)。主干区域的。主干区域的标识符规定为。主干区域的作用是用来连通其标识符规定为。主干区域的作用是用来连通其他在下层的区域。他在下层的区域。Chapter 7 Internet*4646自治系统 AS主干路由器主干路由器区域 区域 主干区域 至其他自治系统R9R7R6R5R4R3R2R1网 8网 6网 3网 2网 1网 7区域 网 4网 5R8Chapter 7 Internet*4747自治系统 AS区域边界路由器区域边界路由器 区域 区域 主干区域 至其他自治系统R9R7R6R5R4R3R2R1网 8网 6网 3网 2网 1网 7区域 网 4网 5R8Chapter 7 Internet*4848OSPF 直接用直接用 IP 数据报传送数据报传送 qOSPF 不用不用 UDP 而是直接用而是直接用 IP 数据报传送,数据报传送,可见可见 OSPF 的位置在网络层。的位置在网络层。qOSPF 构成的数据报很短。这样做可减少路由构成的数据报很短。这样做可减少路由信息的通信量。信息的通信量。q数据报很短的另一好处是可以不必将长的数据数据报很短的另一好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就就无法组装成原来的数据报,而整个数据报就必须重传。必须重传。Chapter 7 Internet*4949OSPF 的其他特点的其他特点 qOSPF 对不同的链路可根据对不同的链路可根据 IP 分组的不同服务类分组的不同服务类型型 TOS 而设置成不同的代价。因此,而设置成不同的代价。因此,OSPF 对于对于不同类型的业务可计算出不同的路由。不同类型的业务可计算出不同的路由。q如果到同一个目的网络有多条相同代价的路径,如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。路径间的负载平衡。q支持可变长度的子网划分和无分类编址支持可变长度的子网划分和无分类编址 CIDR。q每一个链路状态都带上一个每一个链路状态都带上一个 32 bit 的序号,序号的序号,序号越大状态就越新。越大状态就越新。Chapter 7 Internet*5050IP 数据报OSPF 分组分组 IP数据报首部OSPF 分组OSPF 分组首部类型 1 至类型 5 的 OSPF 分组24 字节081631版 本路 由 器 标 识 符类 型分 组 长 度检 验 和鉴 别比特鉴 别区 域 标 识 符鉴 别 类 型Chapter 7 Internet*51512.OSPF 的五种分组类型的五种分组类型 q类型类型1,问候,问候(Hello)分组。分组。q类型类型2,数据库描述,数据库描述(Database Description)分组。分组。q类型类型3,链路状态请求,链路状态请求(Link State Request)分组。分组。q类型类型4,链路状态更新,链路状态更新(Link State Update)分组,分组,用洪泛法对全网更新链路状态。用洪泛法对全网更新链路状态。q类型类型5,链路状态确认,链路状态确认(Link State Acknowledgment)分组。分组。Chapter 7 Internet*5252OSPF的基本操作的基本操作 问候问候数据库描述数据库描述数据库描述数据库描述链路状态请求链路状态更新链路状态确认确定可达性达到数据库的同步新情况下的同步Chapter 7 Internet*5353OSPF 使用的是可靠的洪泛法使用的是可靠的洪泛法 t更新报文ACK报文RRRRt1t2t3t4Chapter 7 Internet*5454 基本功能:基本功能:qOSPF算法要求每个路由器都有整个网算法要求每个路由器都有整个网络的拓扑信息络的拓扑信息q每个路由器都要测量所有邻居节点的每个路由器都要测量所有邻居节点的状态状态,定期把链路状态信息传播给所有定期把链路状态信息传播给所有其他路由器其他路由器 Chapter 7 Internet*5555链路状态路由选择q基本工作过程基本工作过程发现邻居结点发现邻居结点测量到邻居结点的线路开销测量到邻居结点的线路开销构造链路构造链路-状态报文状态报文广播链路广播链路-状态报文状态报文计算新路由计算新路由Chapter 7 Internet*5656该算法涉及问题该算法涉及问题:q如何保存整个路由器拓扑结构的信息如何保存整个路由器拓扑结构的信息?q如何测试与之直接相连的邻居节点状态如何测试与之直接相连的邻居节点状态?测量状态时是否要考虑负载因素测量状态时是否要考虑负载因素?q如何进行链路状态信息的分发如何进行链路状态信息的分发?Chapter 7 Internet*5757q发现邻居结点:当某个路由器启动后,它要做的第一发现邻居结点:当某个路由器启动后,它要做的第一件事是要知道它的邻居是谁。这可以通过向其邻居发件事是要知道它的邻居是谁。这可以通过向其邻居发送问候送问候(hello)报文来实现。路由器通过邻居结点返回的报文来实现。路由器通过邻居结点返回的应答报文就可以知道它是谁。应答报文就可以知道它是谁。q测量线路开销:测量线路开销:链路状态路由算法要求每个路由器知道它到邻居结链路状态路由算法要求每个路由器知道它到邻居结点的延迟或延迟的估计值。获得线路延迟的最直接点的延迟或延迟的估计值。获得线路延迟的最直接方式就是发送一个要求对方立即响应的特殊的回应方式就是发送一个要求对方立即响应的特殊的回应(Echo)报文,通过计算来回延迟再除以报文,通过计算来回延迟再除以2,就可以得,就可以得到一个可靠的延迟估计值。到一个可靠的延迟估计值。Chapter 7 Internet*5858q构造链路构造链路-状态报文:一旦路由器获取到所有邻居结状态报文:一旦路由器获取到所有邻居结点的延迟,下一步就是构造链路点的延迟,下一步就是构造链路-状态报文中包含构状态报文中包含构造该报文的路由器标识以及到每个邻居结点的延迟造该报文的路由器标识以及到每个邻居结点的延迟q构造链路构造链路-状态报文状态报文定期进行定期进行当网络出现大的变化时(如线路断开或重新连通、邻居结点当网络出现大的变化时(如线路断开或重新连通、邻居结点故障或恢复等情况)就构造新的链路故障或恢复等情况)就构造新的链路-状态报文状态报文Chapter 7 Internet*5959图图1:构造链路:构造链路-状态报文状态报文A序号序号生存时间生存时间B4F5ABCDEF42378516B序号序号生存时间生存时间A4C2E6C序号序号生存时间生存时间B2D3F1D序号序号生存时间生存时间C3E7E序号序号生存时间生存时间A5C1F8F序号序号生存时间生存时间B6D7E8(a)子网拓扑结构子网拓扑结构(b)链路链路-状态报文状态报文Chapter 7 Internet*6060q广播链路广播链路-状态报文:状态报文:如何可靠地将链路如何可靠地将链路-状态报文广播到网络中的每一个路由器上状态报文广播到网络中的每一个路由器上泛洪式路由算法泛洪式路由算法为了控制重复报文的数量,在每个链路为了控制重复报文的数量,在每个链路-状态报文中加上一个状态报文中加上一个序号,该序号在每次广播新的链路序号,该序号在每次广播新的链路-状态报文时加状态报文时加1。每个路由。每个路由器记录它所接收过的链路状态报文中的信息对(源路由器,器记录它所接收过的链路状态报文中的信息对(源路由器,序号),当路由器接收到一个链路状态报文时,先查看一下序号),当路由器接收到一个链路状态报文时,先查看一下该报文是否已收到过。如果路由器已收到过该报文,它就将该报文是否已收到过。如果路由器已收到过该报文,它就将新接收到的报文的序号与路由器记录的最大序号进行比较。新接收到的报文的序号与路由器记录的最大序号进行比较。如果前者小于或等于后者,则说明该报文是重复报文,将其如果前者小于或等于后者,则说明该报文是重复报文,将其丢弃;否则该报文就是新的,应将它扩散到所有的输出线路丢弃;否则该报文就是新的,应将它扩散到所有的输出线路上(除了接收该报文的线路外)。上(除了接收该报文的线路外)。Chapter 7 Internet*6161q问题:问题:1)顺序号循环使用,产生冲突;)顺序号循环使用,产生冲突;2)路由器崩溃丢失顺序号)路由器崩溃丢失顺序号信息;信息;3)顺序号传送可能出现错误)顺序号传送可能出现错误q解决:解决:使用使用32位的顺序号位的顺序号在报文中加上生存时间在报文中加上生存时间(age)字段,且每隔字段,且每隔1秒钟生存时间字段秒钟生存时间字段值减值减1。当生存时间字段变为。当生存时间字段变为0时,所有来自于那个路由器的报时,所有来自于那个路由器的报文都将被丢弃。这样可保证没有任何报文会无限制地生存下去。文都将被丢弃。这样可保证没有任何报文会无限制地生存下去。改进:路由器接收到链路状态报文后,并不立即将它放入输出改进:路由器接收到链路状态报文后,并不立即将它放入输出队列等待转发,而是首先将它送到一个缓冲区等待一会儿。如队列等待转发,而是首先将它送到一个缓冲区等待一会儿。如果已有来自同一路由器的其它链路果已有来自同一路由器的其它链路-状态报文先行到达,则比较状态报文先行到达,则比较它们的序号。如果序号相等,丢弃任何一个重复报文;否则丢它们的序号。如果序号相等,丢弃任何一个重复报文;否则丢弃老的报文。为了防止路由器之间的线路故障而导致链路弃老的报文。为了防止路由器之间的线路故障而导致链路-状态状态报文的丢失,所有的链路状态报文都要进行应答。一旦通信线报文的丢失,所有的链路状态报文都要进行应答。一旦通信线路空闲,路由器就会循环扫描缓冲区以选择发送一个链路路空闲,路由器就会循环扫描缓冲区以选择发送一个链路-状态状态报文或应答报文。报文