网络互连之因特网控制报文协议ICMP和路由选择协议

继上篇的网络子网的划分


因特网控制报文协议ICMP

含义

因特网控制报文协议也称ICMP(Internet Control Message Protocol)

ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。但ICMP不是高层协议,而是IP层的协议

它就长这个样子:
在这里插入图片描述
其中:类型和代码一起决定具体是哪一种ICMP报文,如类型3终点不可达,包括网络不可到达(Code=0)、主
机不可到达(Code=1)、协议不可到达(Code=2)、端口不可达(Code=3)等。

另外,ICMP报文用IP数据报封装,做法类似运输层报文


报文种类

在这里插入图片描述

上述ICMP报文可分为两种大类:

ICMP差错报文:用于报告差错。

ICMP询问报文:用于查询及测量。

**我                            是                         分                              割                  线**

解释一下具体的几种报文:

(1)源站抑制报文(属于差错报文)

(2)Echo请求,Echo回答报文:用来测试目的站是否可达。PING(Packet Inter Net Groper),用来测试两个主机之间的连通性。

(3)地址掩码请求报文:可使主机由子网掩码服务器得到某个接口的地址掩码。

因特网路由选择协议

基本概念

因特网采用的路由选择协议属于自适应的(即动态的)、分布式路由选择协议。(即某个路由出问题,可以自动选择其他的)

另外,因特网采用分层次的路由选择协议:

(1)因特网将整个互连网划分为许多较小的自治系统(Autonomous System),一般简称为AS。

(2)一个自治系统是一个互连网络,其最重要的特点就是它有权自主地决定在本系统内应采用何种路由选择协议。

(3)一个自治系统内的所有网络都属于一个行政单位(例如,一个公司、一所大学、政府的一个部门等等)来管辖。

(4)路由器使用路由选择协议相互交换路由信息,目的是为自己建立起正确的路由表。

(5)建立路由表的目的是为了从多个接口正确转发IP数据报。**

因特网就把路由选择协议划分为两大类

(1)内部网关协议IGP(Interior Gateway Protocol): 即在一个自治系统内部使用的路由选择协议,如RIP,HELLO,OSPF协议。

(2)外部网关协议EGP(External Gateway Protocol):例如BGP(Border Gateway Protocol )

(3)因特网的早期RFC文档中使用“网关”这一名词, “网关”即“路由器”。

ps:在内部网关协议中,世界上用得最多的是OSPF协议,第二多的是RIP协议。
在这里插入图片描述


内部网关协议RIP

RIP(Routing Information Protocol)是一个基于距离向量的分布式路由选择协议。

距离:到目的网络所经过的路由器数加1,“距离”也称为“跳数”(hop count)。

RIP允许一个通路最多只能包含15个路由器(发送主机自身也算一个) 。因此“距离”的最大值为16时即相当于不可达。可见RIP只适用于小型互连网。

RIP不能在两个网络之间同时使用多条路由。RIP选择一个具有最少路由器的路由,即使还存在另一条高速(低时延)但路由器较多的路由。

RIP的工作原理

(1)每个路由器每隔30秒向相邻路由器广播自己的路由表。所谓相邻路由器就是连接在同一个网络上的路由器。

(2)路由表中最主要的信息就是3项:某网络号,到该网络的距离,以及应经过的下一站。

(3)例如:某一路由器 K,在30秒内收到所有相邻路由器(设为 X,Y,Z)的路由表后,对某一目的网络(设为 N )进行更新运算:

(4)记D(K,N)为路由器 K 至目的网络 N 的距离, 当前D(K,N)=7 。

(5)接着,相邻路由器 X 的路由表告诉 K:X 至 网络 N 的距离为 D(X,N)=5。

(6)然后,又有相邻路由器 Y 的路由表告诉 K:Y 至 网络 N 的距离为 D(Y,N)=3。

(7)紧接着,相邻路由器 Z 的路由表告诉 K: Z 至 网络 N 的距离为 D(Z,N)=13。

(8)此时,路由器K计算D(K,N) = min( 1+D(X,N), 1+D(Y,N), 1+D(Z,N) )  = min(6,4,14) = 4,

(9)于是, 用此值 于是代替K中老的 D(K,N)=7 。K 还把下一站路由器更新为Y。

(10)如果K 中没有到N 的路由项,则创建一新项,并置D(K,N)=4, 下一站 路由器置为Y。

(11)即使路由器K 中老的 D(K,N)=2 比新的D(K,N)更小,新的D(K,N)也要更新为4。K 还把下一站路由器更新为Y。

注意

路由器 K 在30秒钟之内对所有不与K直接相连的目的网络 N 进行上述运算, 更新 D(K,N)及下一站路由器。

路由器 K 对所有与K直接相连的目的网络 N 不进行上述运算及更新,而是根据物理连接的通断进行更新。

所有路由器象 K 一样,每隔30秒,对所有的目的网络进行一次运算及更新。

路由表更新的原则是使到各目的网络的距离最短。
在这里插入图片描述

变化过程

第一列是目的网路,第二列是距离,第三列是下一个路由器,“-”代表直连
在这里插入图片描述
最终
在这里插入图片描述

RIP协议的缺点:

RIP限制了网络的规模,它能使用的最大距离为15(不可达为16)。

路由器之间交换的完整路由信息开销太大。

“坏消息传播得慢”,使许多更新过程的收敛时间过长。


内部网关协议OSPF

开放最短通路优先OSPF(Open Shortest Path First),十分复杂。

使用了Dijkstra提出的最短通路算法

OSPFv2已成为因特网的正式标准

它是一种分布式的链路状态协议(1ink state protocol),而不是像RIP那样的距离向量协议。


OSPF的要点如下:

(1) 所有的路由器都维持一个链路状态数据库(Link-state database),这个数据库实际上就是整个互连网的拓扑结构图

(2)链路状态”就是该路由器都和哪些网络或路由器相邻(即存在链路),以及该链路的费用,费用的正式名字称为“度量”(metric):1至65535中的任何一个无量纲的数,用于衡量时延,吞吐量等。

(3)OSPF让每一个链路状态都带上一个32bit的序号(可用1300多年),序号越大状态就越新。OSPF规定,链路状态序号增长的速率不得超过每5秒钟1次。

(4)每一个路由器用链路状态数据库中的数据,算出自己的路由表(例如,使用Dijkstra的最短通路路由算法)。只要网络拓扑发生任何变化,这种链路状态数据库就能很快地进行更新,使各个路由器能够重新计算出新的路由表。OSPF的更新过程收敛得快是其重要优点。

(5)OSPF依靠各路由器之间的频繁交换信息来建立链路状态数据库,并维持这数据库在全网范围内的一致性(这称为链路状态数据库的同步)。

(6)OSPF不用UDP而是直接用IP数据报传送(其IP数据报首部的协议字段值为89)

OSPF共有以下五种报文类型:

类型1,Hello报文,用来发现和维持邻站的可达性。

类型2,Database Description报文,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。

类型3,Link State Request报文,向对方请求发送某些链路状态项目的详细信息。

类型4,Link State Update报文,用洪泛法向全网更新链路状态。

类型5,Link State Acknowledgment报文,对链路更新报文的确认

在这里插入图片描述

OSPF的工作机制如下:

(1)每两个相邻路由器每隔10秒钟要交换一次Hello报文。

(2)若有40秒钟没有收到某个相邻路由器发来的Hello报文,则可认为该相邻路由器是不相邻的,应立即修改链路状态数据库,并重
新计算路由表。

(3)如果所有的路由器都把自己的本地链路状态信息对全网进行广播,那么各路由器只要将这些链路状态信息综合起来就可得出链路
状态数据库。但这样做开销太大,因此OSPF采用的是另外的办法,该方法如下:

(4)OSPF让每一个路由器用Database Description报文和相邻路由器交换本数据库中已有的所有链路的摘要信息。例如 Table6-4中
路由器 G 和 E 交换摘要信息。

(5)其中,摘要信息指出本路由器知道有哪些链路 (以及其序号)。

(6)经过与相邻路由器交换Database Description报文后,路由器就使用Link State Request报文,向对方请求发送自己所缺少的某些
链路状态项目的详细信息。例如 Table6-4中路由器 G 向 E 索要链路 G—W2、E--W1 的详细信息。

(7)通过一系列的这种报文交换,全网的链路数据库就建立了。

(8)只要一个路由器的链路状态发生变化,该路由器就要使用Link State Update报文,用洪泛法向全网更新链路状态。OSPF使用的
是可靠的带应答的洪泛法(用Link State Acknowledgment报文应答)

(9)每隔一段时间,如30分钟,要刷新一次数据库中的链路状态。

如图:
在这里插入图片描述

OSPF的特点:

(1)没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于100ms。

(2)具有负荷平衡的功能:如在同一费用下,到某个目的站有多条路由,则OSPF协议能使负荷平均地分配给每一个路由。而RIP协议对每一个目的站只算出一条路由。

(3)当互连网络的规模逐渐变大时,OSPF允许进一步地将互连网划分成一些区域(area)。每一个区域内的拓扑结构对区域外部是不可见的。

(4)一个AS由多个区域(Area)组成,其中有一个根区域(主干区域)。

(5)一个区域由多个网络组成。

(6)路由器之间的信息交换必须经过鉴别(authentication),具有较好的安全性。

在这里插入图片描述

OSPF支持三种网络的连接:

(1)两个路由器之间的点对点连接;

(2)具有广播功能的局域网,例如 ETHERNET,TOKEN RING

(3)无广播功能的广域网,例如 X.25,FR


本质:实际上,OSPF中的数据库是一个表,但我们可以用下图所示的有向图表示该数据库。

(1)其中每一个路由器、局域网或广域网都抽象为一个结点,而每条链路则用两条不同方向的边表示。

(2)OSPF规定,从网络到路由器的费用为0,不标注在图上。

(3)每个路由器可从这个链路状态数据库导出路由表。例如,要计算路由器 F 的路由表,先使用Dijkstra的最短通路路由算法算出如图6-20所示的以F为根的最短通路树。由此就很容易地得出路由表来

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

legendaryhaha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值