计算机网络 第四章 网络层 PART3

4.4 网际控制报文协议ICMP


ICMP的格式:

4.4.1 ICMP报文的种类

ICMP 差错报告报文ICMP询问报文

ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。

ICMP差错报告报文共有4种:

  • 终点不可达
  • 时间超过
  • 参数问题
  • 改变路由(重定向)

ICMP差错报告报文的数据字段的内容:

即把收到的IP数据报的首部即后面的8字节的数据放入ICMP差错报告

不应发送 ICMP 差错报告报文的几种情况

  • ICMP 差错报告报文不再发送 ICMP 差错报告报文。
  • 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
  • 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
  • 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。

ICMP询问报文有两种:

  • 回送请求和回答报文
  • 时间戳请求和回答报文

4.4.2 ICMP的应用举例

PING(Packet InterNet Groper)

  • 用来测试两个主机之间的连通性
  • 使用ICMP回送请求和回送回答报文
  • PING是应用层直接使用网络层ICMP的例子,它没有通过运输层的TCP或UDP

Traceroute

  • Windows中这个命令是tracert
  • 用来跟踪一个分组从源点到终点的路径
  • 它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。(具体使用方法:发送TTL=1,2,3……的IP数据报,如果TTL用完了,ICMP会发送错误报文,这样就知道了到目的主机的路径上的路由器的信息是什么)

4.5 互联网的路由选择协议

4.5.1 有关路由器选择协议的几个基本概念

理想的路由算法

  • 算法必须是正确的和完整的。
  • 算法在计算上应简单。
  • 算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。
  • 算法应具有稳定性。
  • 算法应是公平的。
  • 算法应是最佳的。

最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。

路由选择是个非常复杂的问题,它是网络中的所有结点共同协调工作的结果。路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。

从路由算法的自适应性考虑

  • 静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
  • 动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。 (现在较常使用)

分层次的路由选择协议

因为:互联网的规模很大,且许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议。

自治系统AS

自治系统 AS 的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。

当然,现在尽管一个AS使用了多种内部路由选择协议和度量,但一个AS对其他AS表现出的是一个单一的和一致的路由选择策略

互联网有两大类路由选择协议

  • 内部网关协议IGP

    在一个自治系统内部使用的路由选择协议,如RIP和OSPF协议

  • 外部网关协议EGP

    若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。目前使用最多的是BGP-4

自治系统和内部网关协议、外部网关协议

4.5.2 内部网关协议RIP

1.工作原理

RIP 是一种分布式的、基于距离向量的路由选择协议。
RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录

距离的定义

从一个路由器到直接连接的网络的距离定义为 1。
从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。
这里的“距离”实际上指的是“最短距离”。

RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
RIP 允许一条路径最多只能包含 15 个路由器
“距离”的最大值为 16 时即相当于不可达。可见 RIP 只适用于小型互联网。
RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。

RIP协议的三个特点

  • 仅和相邻路由器交换信息。
  • 交换的信息是当前本路由器所知道的全部信息,即自己的路由表
  • 按固定的时间间隔交换路由信息

路由表的建立

  • 刚刚开始工作时,只知道直接连接的网络的距离。路由表是空的。
  • 收敛过程较快。“收敛”就是在自治系统中所有的结点都得到正确的路由选择信息的过程。

2.距离向量算法

路由器收到相邻路由器(其地址为 X)的一个 RIP 报文:
(1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则把该项目加到路由表中。
否则
若下一跳字段给出的路由器地址是同样的,则把收到的项目替换原路由表中的项目。
否则
若收到项目中的距离小于路由表中的距离,则进行更新,
否则,什么也不做。
(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(表示不可达)。
(4) 返回。

看起来十分复杂,可以用图来理解:

RIP 协议还有一个特点:好消息传播得快,坏消息传播得慢。

与之对应,RIP 存在的一个问题:当网络出现故障时,要经过比较长的时间 (例如数分钟) 才能将此信息传送到所有的路由器。

RIP协议的优缺点

优点:实现简单,开销较小

缺点:限制了网络的规模,最大使用距离为15;路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加;坏消息传播得慢,更新过程的收敛时间过长。

4.5.3 内部网关协议OSPF

开放最短路径优先OSPF

基本特点

  • 向本自治系统中所有路由器发送信息,使用的方法是洪泛法
  • 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息
  • 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息

其他特点

  • OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由
  • 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫做多路径间的负载平衡
  • 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
  • 支持可变长度的子网划分和无分类编址 CIDR。
  • 每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。
  • OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
  • 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
  • OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms

4.5.4 外部网关协议 BGP

不同自治系统的路由器之间交换路由信息的协议

特点

  • BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
  • 每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
  • BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
  • 在 BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。
posted @ 2020-11-21 16:56  QingYuAn_Wayne  阅读(197)  评论(0编辑  收藏  举报