icmp报文有哪几种类型?(icmp报文的种类有两种即什么和什么)

icmp报文有哪几种类型?(icmp报文的种类有两种即什么和什么)span style font size 18px nbsp nbsp ICMP 报文的种类有两种 即 ICMP 差错报告报文和 ICMP 询问报文 span span style font size 18px nbsp nbsp span

大家好,我是讯享网,很高兴认识大家。



<span style="font-size:18px;">&nbsp; &nbsp;ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。</span> 

讯享网

讯享网<span style="font-size:18px;">&nbsp; &nbsp;ICMP报文的前4个字节是统一的格式,E5CN-HQ2HB共有三个字段:即类型:代码和检验和。接着</span><span style="font-size:18px;">的4个字节的内容与ICMP的类型有关。最后面是数据字段,其长度取决于ICMP的类</span><span style="font-size:18px;">型。表4-8给出了几种常用的ICMP报文类型。</span> 

<span style="font-size:18px;">&nbsp; &nbsp;现在已不再使用的ICMP报文有“信息请求与回答报文”、“地址掩码请求与回答报文”</span><span style="font-size:18px;">和“路由器请求与通告报文”[COME06],这些报文就没有出现在表4-8中。</span> 

讯享网<span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="https://www.51dzw.com/UploadFiles//.jpg" /></span> 

<span style="font-size:18px;">&nbsp; &nbsp;ICMP报文的代码字段是为了进一步区分某种类型中的几种不同的情况。</span> 

讯享网<p> <span style="font-size:18px;">&nbsp; 检验和字段用来检验整个ICMP报文。我们应当还记得,IP数据报首部的检验和并不</span><span style="font-size:18px;">检验IP数据报的内容,因此不能保证经过传输的ICMP报文不产生差错。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;ICMP差错报告报文共有五种,即:</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;(1)终点不可达 &nbsp; &nbsp;当路由器或主机不能交付数据报时就向源点发送终点不可达报文。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;(2)源点抑制 &nbsp; &nbsp;当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报</span><span style="font-size:18px;">文,使源点知道应当把数据报的发送速率放慢。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;(3)时间超过 &nbsp; &nbsp;当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向</span><span style="font-size:18px;">源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片</span><span style="font-size:18px;">时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;(4)参数问题 &nbsp; &nbsp;当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,</span><span style="font-size:18px;">就丢弃该数据报,并向源点发送参数问题报文。</span> </p> <p> <br /> </p> <p> <br /> </p> 

<span style="font-size:18px;">&nbsp;&nbsp; 改变路由(重定向) &nbsp; &nbsp;路由E5CN-HQ2HB-W器把改变路由报文发送给主机,让主机知道下次应将</span><span style="font-size:18px;">数据报发送给另外的路由器(可通过更好的路由)。</span> 

讯享网<span style="font-size:18px;">&nbsp; &nbsp;下面对改变路由报文进行简短的解释。我们知道,在因特网的主机中也要有一个路由</span><span style="font-size:18px;">表。当主机要发送数据报时,首先是查找主机自己的路由表,看应当从哪一个接口把数据报</span><span style="font-size:18px;">发送出去。在因特网中主机的数墨远大于路由器的数量,出于效率的考虑,这些主机不和连</span><span style="font-size:18px;">接在网络上的路由器定期交换路由信息。在主机刚开始工作时,一般都在路由表中设置一个</span><span style="font-size:18px;">默认路由器的IP地址。不管数据报要发送到哪个目的地址,都一律先将数据报传送给网络</span><span style="font-size:18px;">上的这个默认路由器,而这个默认路由器知道到每一个目的网络的**路由(通过和其他路</span><span style="font-size:18px;">由器交换路由信息)。如果默认路由器发现主机发往某个目的地址的数据报的**路由不应</span><span style="font-size:18px;">当经过默认路由器而是应当经过网络上的另一个路由器R时,就用改变路由报文把这情况</span><span style="font-size:18px;">告诉主机。于是,该主机就在其路由表中增加一个项目:到某某目的地址应经过路由器R</span><span style="font-size:18px;">(而不是默认路由器)。</span> 

<span style="font-size:18px;">&nbsp; &nbsp;所有的ICMP差错报告报文中的数据字段都具有同样的格式(图4-28)。把收到的需要</span><span style="font-size:18px;">进行差错报告的IP数据报的首部和数据字段的前8个字节提取出来,作为ICMP报文的数</span><span style="font-size:18px;">据字段。再加上相应的ICMP差错报告报文的前8个字节,就构成了ICMP差错报告报文。</span><span style="font-size:18px;">提取收到的数据报的数据字段的前8个字节是为了得到运输层的端口号(对于TCP和</span><span style="font-size:18px;">UDP)以及运输层报文的发送序号(对于TCP)。这些信息对源点通知高层协议是有用的</span> 

讯享网<span style="font-size:18px;">&nbsp;(端口的作用将在下一章的5 .1.3节中介绍),整个ICMP报文作为IP数据报的数据字段发</span><span style="font-size:18px;">送给源点。</span> 

<span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="https://www.51dzw.com/UploadFiles//.jpg" /></span> 

讯享网<span style="font-size:18px;">&nbsp;&nbsp;&nbsp; 下面是不应发送ICMP差错报告报文的几种情况。</span> 

<span style="font-size:18px;">&nbsp; &nbsp;· &nbsp;对ICMP差错报告报文E5CN-HQ2HH03D-FLK不再发送ICMP差错报告报文。</span> 

讯享网<span style="font-size:18px;">&nbsp; &nbsp;· &nbsp;对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。</span> 

<span style="font-size:18px;">&nbsp; &nbsp;· &nbsp;对具有多播地址的数据报都不发送ICMP差错报告报文。</span> 

讯享网<span style="font-size:18px;">&nbsp; &nbsp;· &nbsp;对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。</span> 

<span style="font-size:18px;">&nbsp; &nbsp;常用的ICMP询问报文有两种,即:</span> 


讯享网

讯享网<span style="font-size:18px;">&nbsp; &nbsp;(1)回送请求和回答 &nbsp; &nbsp;ICMP回送请求报文是由主机或路由器向一个特定的目的主机</span><span style="font-size:18px;">发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询</span><span style="font-size:18px;">问报文用来测试目的站是否可达以及了解其有关状态。</span> 

<span style="font-size:18px;">&nbsp; &nbsp;(2)时间戳请求和回答 &nbsp; &nbsp;ICMP时间戳请求报文是请某个主机或路由器回答当前的日</span><span style="font-size:18px;">期和时间。在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900年</span><span style="font-size:18px;">1月1日起到当前时刻一共有多少秒。时间戳请求与回答可用来进行时钟同步和测量时间。</span> 

讯享网<span style="font-size:18px;">&nbsp; &nbsp;ICMP的一个重要应用就是分组网间探测PING (Packet InterNet Groper),用来测试两个</span><span style="font-size:18px;">主机之间的连通性。PING使用了ICMP回送请求与回送回答报文。PING足应用层直接使</span><span style="font-size:18px;">用网络层ICMP的一个例子。它没有通过运输层的TCP或UDP。</span> 

<span style="font-size:18px;">&nbsp; &nbsp;Windows操作系统的用户可在接入因特网后转入MS DOS(点击“开始”,点击“运</span><span style="font-size:18px;">行”,再键入“cmd”)。 E5CN-HQ2HH03-FLK看见屏幕上的提示符后,就键入“ping hostname”(这里的hostname</span><span style="font-size:18px;">是要测试连通性的主机名或它的IP地址),按回车键后就可看到结果。</span> 

讯享网<span style="font-size:18px;">&nbsp; &nbsp;图4-29给出了从南京的一台PC到新浪网的邮件服务器mail.sina.com.cn的连通性的测</span><span style="font-size:18px;">试结果。PC -连发出四个ICMP回送请求报文。如果邮件服务器mail.sina.com.cn正常工作</span><span style="font-size:18px;">而且响应这个ICMP回送请求报文(有的主机为了防止恶意攻击就不理睬外界发送过来的这</span><span style="font-size:18px;">种报文),那么它就发回ICMP回送回答报文。由于往返的ICMP报文上都有时间戳,因此</span><span style="font-size:18px;">很容易得出往返时间。最后显示出的是统计结果:发送到哪个机器(IP地址),发送的、收</span><span style="font-size:18px;">到的和丢失的分组数(但不给出分组丢失的原因)。往返时间的最小值、最大值和平均值。</span><span style="font-size:18px;">从得到的结果可以看出,第三个测试分组丢失了。</span> 

<span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="https://www.51dzw.com/UploadFiles//.jpg" /></span> 

讯享网<span style="font-size:18px;">&nbsp;&nbsp; 另一个非常有用的应用是traceroute(这是UNIX操作系统申名字),它用来跟踪一个分</span><span style="font-size:18px;">组从源点到终点的路径。在Windows操作系统中这个命令是tracert。E5CN-HQ2-W下面简单介绍这个程</span><span style="font-size:18px;">序的工作原理。</span> 

<span style="font-size:18px;">&nbsp; &nbsp;Traceroute从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的</span><span style="font-size:18px;">UDP用户数据报u一。第一个数据报Pl的生存时间TTL设置为1。当Pl到达路径上的第一个</span><span style="font-size:18px;">路由器Ri时,路由器Ri先收下它,接着把TTL的值减1。由于TTL等于零了,Ri就把Pl</span><span style="font-size:18px;">丢弃了,并向源主机发送一个ICMP时间超过差错报告报文。</span> 

讯享网<p> <span style="font-size:18px;">&nbsp; &nbsp;源主机接着发送第二个数据报P2,并把TTL设置为2。P2先到达路由器Ri,Ri收下后</span><span style="font-size:18px;">把TTL减1再转发给路由器R2。R2收到P2时TTL为1,但减1后TTL变为零了。R2就丢</span><span style="font-size:18px;">弃P2,并向源主机发送一个ICMP时间超过差错报告报文。这样一直继续下去。当最后一</span><span style="font-size:18px;">个数据报刚刚到达目的主机时,数据报的TTL是1。主机不转发数据报,也不把TTL值减</span><span style="font-size:18px;">l。但因IP数据报中封装的是无法交付的运输层的UDP用户数据报,因此目的主机要向源</span><span style="font-size:18px;">主机发送ICMP终点不可达差错报告报文(见下一章的5.2.2节)。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;这样,源主机达到了自己的目的,因为这些路由器和最后目的主机发来的ICMP报文</span><span style="font-size:18px;">正好给出了源主机想知道的路由信息——到达目的主机所经过的路由器的IP地址,以及至0</span><span style="font-size:18px;">达其中的每一个路由器的往返时间。图4-30是从南京的一个PC向新浪网的邮件服务器</span><span style="font-size:18px;">mail.sina.com.cn发出的tracert俞令后所获得的结果。图中每一行有三个时间出现,是因为</span><span style="font-size:18px;">对应于每一个TTL值,源主机要发送三次同样的IP数据报。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;图4-30用tracert命令获得到目的主机的路由信息</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;我们还应注意到,从原则上讲,IP数据报经过的路由器越多,所花费的时间也会越</span><span style="font-size:18px;">多。但从图4-30可看出,有时正好相反。这是因为因特网的拥塞程度随时都在变化,也很</span><span style="font-size:18px;">难预料到。因此,完全有这样的可能:经过更多的路由器反而花费更少的时间。</span> </p> <p> <br /> </p> <p> <br /> </p> 

<span style="font-size:18px;">&nbsp; &nbsp;本节将讨论几种常用的路由选择协议, E5CN-H201D-FLK也就是要讨论路由表中的路由是怎样得出的。</span> 

讯享网<span style="font-size:18px;">&nbsp;&nbsp; 有关路由选择协议的几个基本概念</span> 

<span style="font-size:18px;">&nbsp;&nbsp; 理想的路由算法</span> 

讯享网<span style="font-size:18px;">&nbsp;&nbsp; 路由选择协议的核心就是路由算法,即需要何种算法来获得路由表中的各项目。一个</span><span style="font-size:18px;">理想的路由算法应具有如下的一些特点[BELL86]:</span> 

<p> <span style="font-size:18px;">&nbsp; &nbsp;(1)算法必须是正确的和完整的。这里,“正确”的含义是:沿着各路由表所指引的路</span><span style="font-size:18px;">由,分组一定能够最终到达目的网络和目的主机。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;(2)算法在计算上应简单。路由选择的计算不应使网络通信量增加太多的额外开销。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;(3)算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。当网络中的通</span><span style="font-size:18px;">信量发生变化时,算法能自适应地改变路由以均衡各链路的负载。当某个或某些结点、链路</span><span style="font-size:18px;">发生故障不能工作,或者修理好了再投入运行时,算法也能及时地改变路由。有时称这种自</span><span style="font-size:18px;">适应性为“稳健性”(robustness)"JJ。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;(4)算法应具有稳定性。在网络通信量和网络拓扑相对稳定的情况下,路由算法应收敛</span><span style="font-size:18px;">于一个可以接受的解,而不应使得出的路由不停地变化。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;(5)算法应是公平的。路由选择算法应对所有用户(除对少数优先级高的用户)都是平等</span><span style="font-size:18px;">的。例如,若仅仅使某一对用户的端到端时延为最小,但却不考虑其他的广大用户,这就明</span><span style="font-size:18px;">显地不符合公平性的要求。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;(6)算法应是**的。路由选择算法应当能够找出最好的路由,使得分组平均时延最小</span><span style="font-size:18px;">而网络的吞吐量最大。虽然我们希望得到“**”的算法,但这并不总是最重要酌。对于某</span><span style="font-size:18px;">些网络,网络的可靠性有时要比最小的分组平均时延或最大吞吐量更加重要。因此,所谓</span><span style="font-size:18px;">“**”只能是相对于某一种特定要求下得出的较为合理的选择而已。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;一个实际的路由选择算法,应尽可能接近于理想的算法。在不同的应用条件下,对以</span><span style="font-size:18px;">上提出的六个方面也可有不同的侧重。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;应当指出,路由选择是个非常复杂的问题,因为它是网络中的所有结点共同协调工作的</span><span style="font-size:18px;">结果。其次,路由选择的环境往往是不断变化的,而这种变化有时无法事先知道,例如,网</span><span style="font-size:18px;">络中出了某些故障。此外,当网络发生拥塞时,就特别需要有能缓解这种拥塞的路由选择策</span><span style="font-size:18px;">略,但恰好在这种条件下,很难从网络中的各结点获得所需的路由选择信息。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;倘若从路由算法能否随网络的通信量或拓扑自适应地进行调整变化来划分,则只有两大</span><span style="font-size:18px;">类,即静态路由选择策略与动态路由选择策略。静态路由选择也叫做非自适应路由选择,其</span><span style="font-size:18px;">特点是简单和开销较小,但不能及时适应网络状态的变化。对于很简单的小网络,完全可以</span><span style="font-size:18px;">采用静态路由选择,用人工配置每一条路由。动态路由选择也叫做自适应路由选择,其特点</span><span style="font-size:18px;">是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。因此,动态路由选</span><span style="font-size:18px;">择适用于较复杂的大网络。</span> </p> <p> <br /> </p> <p> <br /> </p> 

讯享网<span style="font-size:18px;">&nbsp;&nbsp; 因特网采用的路由选择协议主要是自适应的(即动态的)、分布式路由选择协议。由于E5CN-H201-FLK</span><span style="font-size:18px;">以下两个原因,因特网采用分层次的路由选择协议:</span> 

<span style="font-size:18px;">&nbsp; &nbsp;(1)因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路</span><span style="font-size:18px;">由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会</span><span style="font-size:18px;">使因特网的通信链路饱和。</span> 

讯享网<span style="font-size:18px;">&nbsp; &nbsp;(2)许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议</span><span style="font-size:18px;">①注:Robustness -词在自动控制界的标准译名是“鲁棒性”,但在[MINGC194]则译为“稳健性”。</span><span style="font-size:18px;">这属于本部门内部的事情),但同时还希望连接到因特网上。</span> 

<p> <span style="font-size:18px;">&nbsp; &nbsp;为此,因特网将整个互联网划分为许多较小的自治系统(autonomous system),一般都记</span><span style="font-size:18px;">为AS。RFC 4271对自治系统AS有下面这样的描述:</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;“自治系统AS的经典定义是在单一的技术管理下的一组路由器,而这些路由器使用一</span><span style="font-size:18px;">种AS内部的路由选择协议和共同的度量,以确定分组在该AS内的路由;同时还使用一种</span><span style="font-size:18px;">AS之间的路由选择协议,用以确定分组在AS之间的路由。自从有了这个经典定义后,使</span><span style="font-size:18px;">用多种内部路由选择协议和多种度量的AS也是很常见的。因此,现在对自治系统AS的定</span><span style="font-size:18px;">义是强调下面的事实:尽管一个AS使用了多种内部路由选择协议和度量,但重要的是一个</span><span style="font-size:18px;">AS对其他AS表现出的是一个单一的和一致的路由选择策略。”</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;在目前的因特网中,一个大的ISP就是一个自治系统。这样,因特网就把路由选择协议</span><span style="font-size:18px;">划分为两大类,即:</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;(1)内部网关协议IGP (Interior Gateway Protocol) &nbsp; &nbsp;即在一个自治系统内部使用的路由</span><span style="font-size:18px;">选择协议,而这与在互联网中的其他自治系统选用什么路由选择协议无关。目前这类路由选</span><span style="font-size:18px;">择协议使用得最多,如RIP和OSPF协议。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;(2)外部网关协议EGP (External Gateway Protocol) &nbsp; &nbsp;着源主机和目的主机处在不同的</span><span style="font-size:18px;">自治系统中(这两个自治系统可能使用不同的内部网关协议),当数据报传到一个自治系统</span><span style="font-size:18px;">的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是</span><span style="font-size:18px;">外部网关协议EGP。目前使用最多的外部网关协议是BGP的版本4(BGP-4)。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;自治系统之间的路由选择也叫做域间路由选择(interdomain routing),而在自治系统内部</span><span style="font-size:18px;">的路由选择叫做域内路由选择(intradomain routing).</span> </p> <p> <span style="font-size:18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="https://www.51dzw.com/UploadFiles//.jpg" /></span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;图4-31是两个自治系统互连在一起的示意图。每个自治系统自己决定在本自治系统内</span><span style="font-size:18px;">部运行哪一个内部路由选择协议(例如,可以是RIP,也可以是OSPF)。但每个自治系统都</span><span style="font-size:18px;">有一个或多个路由器(图中的路由器Ri和R2)除运行本系统的内部路由选择协议外,还要</span><span style="font-size:18px;">运行自治系统间的路由选择协议(BGP-4)。</span> </p> <p> <br /> </p> <p> <br /> </p> 

讯享网<span style="font-size:18px;">&nbsp;&nbsp; 这里我们要指出两点:</span> 

<span style="font-size:18px;">&nbsp; &nbsp;(1)因特网的早期RFC文档中未使用“路由器”而是使用“网关”这一名词。但是在</span><span style="font-size:18px;">新的RFC文档中又使用了“路由器”这一名词,因此有的书把原来的IGP和EGP分剐改为</span><span style="font-size:18px;">IRP(内部路由器协议)和ERP(外部路由器协议)。 E5CN-H203D-FLK为了方便读者查阅RFC文档,本书仍</span><span style="font-size:18px;">使用RFC原先使用的名字IGP和EGP。</span> 

讯享网<span style="font-size:18px;">&nbsp; &nbsp;(2) RFC采用的名词IGP和EGP是协议类别的名称。但RFC在使用名词EGP时出现了</span><span style="font-size:18px;">一点混乱,因为最早的一个外部网关协议的协议名字正好也是EGP [RFC 827]。后来发现该</span><span style="font-size:18px;">RFC提出的EGP有不少缺点,就设计了一种更好的外部网关协议,叫做边界网关协议BGP</span> 

<span style="font-size:18px;">(Border Gateway Protocol),用来取代旧的RFC 827外部网关协议EGP。实际上,1日协议</span><span style="font-size:18px;">EGP和新协议BGP都属于外部网关协议EGP这一类别。因此在遇到名词EGP时,应弄清</span><span style="font-size:18px;">它是指旧协议EGP(即RFC 827)还是指外部网关协议EGP这个类别。</span> 

讯享网<p> <span style="font-size:18px;">&nbsp; &nbsp;总之,使用分层次的路由选择方法,可将因特网的路由选择协议划分为:</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;· &nbsp;内部网关协议IGP:具体的协议有多种,如RIP和OSPF等。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;· &nbsp;外部网关协议EGP:目前使用的协议就是BGP。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;对于比较大的自治系统,还可将所有的网络再进行一次划分。例如,可以构筑一个链</span><span style="font-size:18px;">路速率较高的主干网和许多速率较低的区域网。每个区域网通过路由器连接到主干网。在一</span><span style="font-size:18px;">个区域内找不到目的站时,就通过路由器经过主干网到达另一个区域网,或者通过外部路由</span><span style="font-size:18px;">器到别的自治系统中去查找。下面对这两类协议分别进行介绍。</span> </p> <p> <br /> </p> <p> <br /> </p> 

<span style="font-size:18px;">&nbsp; &nbsp;RIP协议的特点是:</span> 

讯享网<span style="font-size:18px;">&nbsp; &nbsp;(1)仅和相邻路由器交换信息。 E5CN-H203-FLK如果两个路由器之间的通信不需要经过另一个路由器,</span><span style="font-size:18px;">那么这两个路由器就是相邻的。RIP协议规定,不相邻的路由器不交换信息。</span> <p> <span style="font-size:18px;">&nbsp; &nbsp;(2)路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表。也就是</span><span style="font-size:18px;">说,交换的信息是:“我到本自治系统中所有网络的(最短)距离,以及到每个网络应经过</span><span style="font-size:18px;">的F-跳路由器”。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;(3)按固定的时间间隔交换路由信息,例如,每隔30秒。然后路由器根据收到的路由</span><span style="font-size:18px;">信息更新路由表。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路</span><span style="font-size:18px;">由信息。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;这里要强调一点:路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离</span><span style="font-size:18px;">定义为1)。接着,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。</span><span style="font-size:18px;">但经过若干次的更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短</span><span style="font-size:18px;">距离和下一跳路由器的地址。看起来RIP协议有些奇怪,因为“我的路由表中的信息要依</span><span style="font-size:18px;">赖于你的,而你的信息又依赖于我的。”然而事实证明,在一般情况下,RIP协议可以收敛</span> </p> <p> <span style="font-size:18px;">(convergence),并且过程也较快。“收敛”就是在自治系统中所有的结点都得到正确的路由</span><span style="font-size:18px;">选择信息的过程。</span> </p> <p> <span style="font-size:18px;">&nbsp; &nbsp;路由表中最主要的信息就是:到某个网络的距离(即最短距离),以及应经过的下一到6</span><span style="font-size:18px;">地垃。路由表更新的原则是找出到每个目的网络的最短距离。这种更新算法又称为距离向量</span><span style="font-size:18px;">算法。下面就是RIP协议使用的距离向量算法。</span> </p> <p> <br /> </p> 

<span style="font-size:18px;">&nbsp; &nbsp;对每一个相邻路由器发送过来的RIP报文,进行以下步骤:</span> 

讯享网<span style="font-size:18px;">&nbsp; &nbsp;(1)对地址为x的相邻路由器发来的RIP报文,先修改此报文中的所有项目: E5CN-H2B把“下一</span><span style="font-size:18px;">跳”字段中的地址都改为x,并把所有的“距离”字段的值加1(见后面的解释1)。每一个</span><span style="font-size:18px;">项目都有三个关键数据,即:到目的网络N,距离是d,下一跳路由器是X。</span> 

<span style="font-size:18px;">&nbsp; &nbsp;(2)对修改后的RIP报文中的每一个项目,进行以下步骤:</span> 

讯享网<span style="font-size:18px;">&nbsp; &nbsp;若原来的路由表中没有目的网络N,则把该项目添加到路由表中(见解释2)。</span> 

<span style="font-size:18px;">&nbsp; &nbsp;否则(即在路由表中有目的网络N,这时就再查看下一跳路由器地址)</span><span style="font-size:18px;">若下一跳路由器地址是X,则把收到的项目替换原路由表中的项目(见解释3)。</span> 

讯享网<span style="font-size:18px;">&nbsp; &nbsp;否则(即这个项目是:到目的网络N,但下一跳路由器不是X)</span> 

<span style="font-size:18px;">&nbsp; &nbsp;若收到的项目中的距离d小于路由表中的距离,则进行更新(见解释4),</span><span style="font-size:18px;">否则什么也不做(见解释5)。</span> 

讯享网<span style="font-size:18px;">&nbsp; &nbsp;(3)若3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达的路</span><span style="font-size:18px;">由器,即把距离置为16(距离为16表示不可达)。</span> 

<span style="font-size:18px;">&nbsp; &nbsp;(4)返回。</span> 

讯享网<span style="font-size:18px;">&nbsp; &nbsp;上面给出的距离向量算法的基础就足Bellman-Ford算法(或Ford-Fulkerson算法)。这</span><span style="font-size:18px;">种算法的要点是这样的:</span> 

<span style="font-size:18px;">&nbsp; &nbsp;设X是结点A到B的最短路径上的一个结点。若把路径A—B拆成两段路径A-X和</span><span style="font-size:18px;">X—B,则每一段路径A—X和X—B也都分别是结点A到X和结点X到B的最短路径。</span> 

讯享网<span style="font-size:18px;">&nbsp; 下面是对上述距离向量算法的五点解释。</span> 

小讯
上一篇 2025-05-07 09:08
下一篇 2025-05-13 07:54

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/165579.html