Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >速读原著-TCP/IP(ICMP路由器发现报文)

速读原著-TCP/IP(ICMP路由器发现报文)

作者头像
cwl_java
发布于 2020-03-09 09:46:31
发布于 2020-03-09 09:46:31
1.2K0
举报
文章被收录于专栏:cwl_Javacwl_Java

第9章 IP选路

9.6 ICMP路由器发现报文

在本章前面已提到过一种初始化路由表的方法,即在配置文件中指定静态路由。这种方法经常用来设置默认路由。另一种新的方法是利用 I C M P路由器通告和请求报文。

一般认为,主机在引导以后要广播或多播传送一份路由器请求报文。一台或更多台路由器响应一份路由器通告报文。另外,路由器定期地广播或多播传送它们的路由器通告报文,允许每个正在监听的主机相应地更新它们的路由表。

RFC 1256 [Deering 1991]确定了这两种I C M P报文的格式。I C M P路由器请求报文的格式如图9 - 6所示。I C M P路由器通告报文的格式如图 9 - 7所示。

路由器在一份报文中可以通告多个地址。地址数指的是报文中所含的地址数。地址项大小指的是每个路由器地址 32 bit字的数目,始终为 2。生存期指的是通告地址有效的时间(秒数)。

接下来是一对或多对 I P地址和优先级。 I P地址必须是发送路由器的某个地址。优先级是一个有符号的32 bit整数,指出该I P地址作为默认路由器地址的优先等级,这是与子网上的其他路由器相比较而言的。值越大说明优先级越高。优先级为 0 x 8 0 0 0 0 0 0 0说明对应的地址不能作为默认路由器地址使用,尽管它也包含中通告报文中。优先级的默认值一般为 0。

9.6.1 路由器操作

当路由器启动时,它定期在所有广播或多播传送接口上发送通告报文。准确地说,这些通告报文不是定期发送的,而是随机传送的,以减小与子网上其他路由器发生冲突的概率。

一般每两次通告间隔4 5 0秒和6 0 0秒。一份给定的通告报文默认生命周期是 3 0分钟。使用生命周期域的另一个时机是当路由器上的某个接口被关闭时。在这种情况下,路由器可以在该接口上发送最后一份通告报文,并把生命周期值设为 0。

除了定期发送主动提供的通告报文以外,路由器还要监听来自主机的请求报文,并发送路由器通告报文以响应这些请求报文。 如果子网上有多台路由器,由系统管理员为每个路由器设置优先等级。例如,主默认路由器就要比备份路由器具有更高的优先级。

9.6.2 主机操作

主机在引导期间一般发送三份路由器请求报文,每三秒钟发送一次。一旦接收到一个有效的通告报文,就停止发送请求报文。 主机也监听来自相邻路由器的请求报文。这些通告报文可以改变主机的默认路由器。另外,如果没有接收到来自当前默认路由器的通告报文,那么默认路由器会超时。

只要有一般的默认路由器,该路由器就会每隔 1 0分钟发送通告报文,报文的生命周期是3 0分钟。这说明主机的默认表项是不会超时的,即使错过一份或两份通告报文。

9.6.3 实现

路由器发现报文一般由用户进程(守护程序)创建和处理。这样,在图 9 - 1中就有另一个修改路由表的程序,尽管它只增加或删除默认表项。守护程序必须把它配置成一台路由器或主机来使用。

这两种I C M P报文是新加的,不是所有的系统都支持它们。在我们的网络中,只有Solaris 2.x支持这两种报文(i n . r d i s c守护程序)。尽管RFC建议尽可能用IP多播传送,但是路由器发现还可以利用广播报文来实现。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
速读原著-TCP/IP(IGMP 协议)
多播的基础就是一个进程的概念(使用的术语进程是指操作系统执行的一个程序),该进程在一个主机的给定接口上加入了一个多播组。在一个给定接口上的多播组中的成员是动态的—它随时因进程加入和离开多播组而变化。
cwl_java
2020/03/11
5710
速读原著-TCP/IP(ICMP重定向差错)
当I P数据报应该被发送到另一个路由器时,收到数据报的路由器就要发送 I C M P重定向差错报文给I P数据报的发送端。这在概念上是很简单的,正如图 9 - 3所示的那样。只有当主机可以选择路由器发送分组的情况下,我们才可能看到 I C M P重定向报文(回忆我们在图 7 - 6中看过的例子)。
cwl_java
2020/03/08
1.2K0
速读原著-TCP/IP(ICMP重定向差错)
速读原著-TCP/IP(RIP:选路信息协议)
本节对R I P进行了描述,这是因为它是最广为使用(也是最受攻击)的选路协议。对于 R I P的正式描述文件是RFC 1058 [Hedrick 1988a],但是该R F C是在该协议实现数年后才出现的。
cwl_java
2020/03/06
6190
速读原著-TCP/IP(RIP:选路信息协议)
速读原著-TCP/IP(广播的示例)
广播是怎样传送的?路由器及主机又如何处理广播?很遗憾,这是难以回答的问题,因为它依赖于广播的类型、应用的类型、 T C P / I P实现方法以及有关路由器的配置。
cwl_java
2020/03/09
8930
速读原著-TCP/IP(广播的示例)
速读原著-TCP/IP(IP选路)
选路是I P最重要的功能之一。图 9 - 1是I P层处理过程的简单流程。需要进行选路的数据报可以由本地主机产生,也可以由其他主机产生。在后一种情况下,主机必须配置成一个路由器,否则通过网络接口接收到的数据报,如果目的地址不是本机就要被丢弃(例如,悄无声息地被丢弃)。
cwl_java
2020/03/08
1.4K0
速读原著-TCP/IP(IP选路)
速读原著-TCP/IP(ICMP的差错)
让我们来看一下 T C P是怎样处理一个给定的连接返回的 I C M P的差错。T C P能够遇到的最常见的I C M P差错就是源站抑制、主机不可达和网络不可达。
cwl_java
2020/03/12
5000
速读原著-TCP/IP(RIP版本2)
RFC 1388 [Malkin 1993a]中对R I P定义进行了扩充,通常称其结果为 R I P - 2。这些扩充并不改变协议本身,而是利用图1 0 - 3中的一些标注为“必须为0”的字段来传递一些额外的信息。如果R I P忽略这些必须为0的字段,那么,R I P和R I P - 2可以互操作。
cwl_java
2020/03/06
5560
速读原著-TCP/IP(RIP版本2)
速读原著-TCP/IP(ICMP主机与网络不可达差错)
当路由器收到一份I P数据报但又不能转发时,就要发送一份 I C M P“主机不可达”差错报文(I C M P主机不可达报文的格式如图 6 - 1 0所示)。可以很容易发现,在我们的网络上把接在路由器s u n上的拨号S L I P链路断开,然后试图通过该 S L I P链路发送分组给任何指定 s u n为默认路由器的主机。
cwl_java
2020/03/08
1.9K0
速读原著-TCP/IP(ICMP主机与网络不可达差错)
速读原著-TCP/IP(IGMP示例)
现在我们已经了解了一些 I P多播的细节,再来看看所包含的信息。我们使 s u n主机能够支持多播,并将采用一些多播软件所提供的测试程序来观察具体的过程。
cwl_java
2020/03/11
5010
速读原著-TCP/IP(ICMP报文的类型)
各种类型的I C M P报文如图6 - 3所示,不同类型由报文中的类型字段和代码字段来共同决定。图中的最后两列表明 I C M P报文是一份查询报文还是一份差错报文。因为对 I C M P差错报文有时需要作特殊处理,因此我们需要对它们进行区分。例如,在对 I C M P差错报文进行响应时,永远不会生成另一份 I C M P差错报文(如果没有这个限制规则,可能会遇到一个差错产生另一个差错的情况,而差错再产生差错,这样会无休止地循环下去)。
cwl_java
2020/03/03
3730
速读原著-TCP/IP(ICMP时间戳请求与应答)
I C M P时间戳请求允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计算的毫秒数,协调的统一时间( Coordinated Universal Time, UTC)(早期的参考手册认为U T C是格林尼治时间)。这种I C M P报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间(如某些 U n i x系统提供的r d a t e命令)只能提供秒级的分辨率。由于返回的时间是从午夜开始计算的,因此调用者必须通过其他方法获知当时的日期,这是它的一个缺陷。
cwl_java
2020/03/03
2K0
《TCP/IP具体解释卷2:实现》笔记–ICMP:Internet控制报文协议
ICMP在IP系统间传递差错和管理报文,是不论什么IP实现必须和要求的组成部分。能够把ICMP分成两类:差错和查询。查询报文
全栈程序员站长
2022/07/10
5350
《TCP/IP具体解释卷2:实现》笔记–ICMP:Internet控制报文协议
速读原著-TCP/IP(广播)
受限的广播地址是 2 5 5 . 2 5 5 . 2 5 5 . 2 5 5。该地址用于主机配置过程中 I P数据报的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的 I P地址也不知道。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。
cwl_java
2020/03/09
4450
速读原著-TCP/IP(OSPF:开放最短路径优先)
O S P F是除R I P外的另一个内部网关协议。它克服了 R I P的所有限制。 RFC 1247 [Moy1 9 9 1 ]中对第2版O S P F进行了描述。
cwl_java
2020/03/09
8030
速读原著-TCP/IP(IP记录路由选项)
p i n g程序为我们提供了查看 I P记录路由(R R)选项的机会。大多数不同版本的 p i n g程序都提供-R选项,以提供记录路由的功能。它使得 p i n g程序在发送出去的I P数据报中设置I P
cwl_java
2020/03/06
1.3K0
路由协议——RIP、OSPF协议[通俗易懂]
在互联网中,一个自治系统(AS)是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。 一个自治系统将会分配一个全局的唯一的16位号码,有时我们把这个号码叫做自治系统(ASN)
全栈程序员站长
2022/11/01
16.3K0
路由协议——RIP、OSPF协议[通俗易懂]
ICMP报文详解
3>16位的检验和字段:包括数据在内的整个ICMP数据包的检验和;其计算方法和IP头部检验和的计算方法一样的。
全栈程序员站长
2022/06/29
2.6K0
ICMP报文详解
TCP/ip详解_TCP/IP详解
在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。
全栈程序员站长
2022/11/17
1.1K0
速读原著-TCP/IP(动态选路协议)
在前面各章中,我们讨论了静态选路。在配置接口时,以默认方式生成路由表项(对于直接连接的接口),并通过r o u t e命令增加表项(通常从系统自引导程序文件),或是通过I C M P重定向生成表项(通常是在默认方式出错的情况下)。
cwl_java
2020/03/09
6490
速读原著-TCP/IP(ICMP地址掩码请求与应答)
I C M P地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码( 3 . 5节)。系统广播它的I C M P请求报文(这一过程与无盘系统在引导过程中用 R A R P获取I P地址是类似的)。无盘系统获取子网掩码的另一个方法是 B O O T P协议,我们将在第 1 6章中介绍。 I C M P地址掩码请求和应答报文的格式如图6 - 4所示。
cwl_java
2020/03/03
9100
相关推荐
速读原著-TCP/IP(IGMP 协议)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档