计算机网络笔记22 网际控制报文ICMP、路由选择协议RIP

网际控制报文ICMP

• 为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。
• ICMP 是互联网的标准协议。
• ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
• 但 ICMP 不是高层协议(看起来好像是高层协议,因为 ICMP 报文是装在 IP 数据报中,作为其中的数据部分),而是 IP 层的协议
在这里插入图片描述

ICMP报文的格式

在这里插入图片描述

ICMP报文的类型

• ICMP 报文的种类有两种,即 ICMP 差错报告报文ICMP 询问报文
• 差错报告报文共有 4 种:
– 终点不可达
– 时间超过
– 参数问题
– 改变路由(重定向)(Redirect)
• 询问报文有2种:
– 回送请求和回答报文
– 时间戳请求和回答报文

ICMP差错报告报文的内容

在这里插入图片描述

不再发送差错报告报文的情况

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

ICMP应用举例

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

Traceroute
• 在 Windows 操作系统中这个命令是 tracert。
用来跟踪一个分组从源点到终点的路径
• 它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。

路由选择协议RIP

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

代价(度量)

• 在研究路由选择时,需要给每一条链路指明一定的代价,又叫度量
• 这里“代价”并不是指“钱”,而是由一个或几个因素综合决定的一种度量(metric),如链路长度、数据率、链路容量、是否要保密、传播时延等,甚至还可以是一天中某一个小时内的通信量、结点的缓存被占用的程度、链路差错率等。

关于“最佳路由”:
• 不存在一种绝对的最佳路由算法。
• 所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。
• 实际的路由选择算法,应尽可能接近于理想的算法。
• 路由选择是个非常复杂的问题
– 它是网络中的所有结点共同协调工作的结果。
– 路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。

分层次的路由选择协议

互联网采用分层次的路由选择协议。这是因为:
• (1) 互联网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使互联网的通信链路饱和。
• (2) 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到互联网上。

自治系统 AS

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

两大类路由选择协议

内部网关协议 IGP (Interior Gateway Protocol)
– 在一个自治系统内部使用的路由选择协议。
– 目前这类路由选择协议使用得最多,如 RIP 和OSPF 协议。
外部网关协议 EGP (External Gateway Protocol)
– 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。
– 在外部网关协议中目前使用最多的是 BGP-4。
在这里插入图片描述

内部网关协议RIP

(Routing Information Protocol)
• 路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。
• RIP 是一种分布式的基于距离向量的路由选择协议。
• RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录

“距离”的定义:
• 从一路由器到直接连接的网络的距离定义为 1。
• 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
• RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。
• RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”
• RIP 允许一条路径最多只能包含 15 个路由器。
• “距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网
• RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。

RIP 协议的三个要点

实现RIP实际就是实现路由信息的交换
• 仅和相邻路由器交换信息。 (向谁发)
• 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。 (发什么)
– 交换信息的内容(目的网络,距离,下一跳
• 按固定的时间间隔交换路由信息,例如,每隔 30 秒。 (何时发)

路由表的建立

• 路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。
• 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
• 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
• RIP 协议的收敛(convergence)过程较快,收敛即在自治系统中所有的结点都得到正确的路由选择信息的过程。

距离向量算法

收到相邻路由器(其地址为 X)的一个 RIP 报文:
(1) 先修改此 RIP 报文中的所有项目:将**“下一跳”字段中的地址都改为 X,并将所有的“距离”字段的值加 1**。
在这里插入图片描述
在这里插入图片描述
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则将该项目加到路由表中。
否则
下一跳字段给出的路由器地址是同样的,则将收到的项目替换原路由表中的项目。
否则
若收到项目中的距离小于路由表中的距离,则进行更新,
否则,什么也不做。

在这里插入图片描述
在这里插入图片描述
(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则将此相邻路由器记为不可达的路由器,即将距离置为16(距离为16表示不可达)。
(4) 返回。

举例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

RIP协议位置

• RIP 协议使用运输层的用户数据报 UDP进行传送(使用 UDP 的端口 520)。
• 因此 RIP 协议的位置应当在应用层。但转发 IP 数据报的过程是在网络层完成的。
• 路由器也是一个主机,也是有应用层的,但是在分组转发过程中只达到网络层。

RIP协议的优缺点

• RIP 协议最大的优点就是实现简单,开销较小。
• RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
• RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器(坏消息传播慢)。
• 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值