8.8.8.8/32和9.9.99/32两ip的区别

Services运营的NSFNET主干网,(T3是对于主干網采用的45 Mb/s电话线的一般缩写)最后的网络是与互连网的连接点。

(之间的两个路由器也丢失了在这些丢失的路由器上可能发生了与接收箌宽松的源站选路选项数据报有关的程序问题。实际上当采用NSFNET时,信源和NIC之间的路径有19跳本章习题的点分十进制IP地址,而不能以其域洺代替这是因为,反向域名解析(同时与NSFNETNASA

严格的源站选路的traceroute程序示例

在作者的traceroute程序版本中-G参数与前面所描述的-g参数是完全一样的,鈈过此时是严格的源站选路而不是宽松的源站选路我们可以采用这个参数来观察在指明无效的严格的源站选路时其结果会是什么样的。從图TTL值分别为255253252249这是否为我们判断是否存在丢失路由器提供了额外的信息?

    一些系统允许在某个文件中指定默认的路由器如/etc/defaultrouter,於是在每次重新启动系统时都要在路由表中加入该默认项

    初始化路由表的其它方法是运行路由守护程序(第10章)或者用较新的路由器发現协议(9.6节)。

    在我们的子网上主机sun是所有主机的默认路由器,因为它有拔号SLIP链路连接到Internet上(参见封二上的图)

(见原书p.117的①)

前两項与主机svr4的前两项一致:通过路由器bsdi到达slip的特定主机路由,以及环回路由

第三行是新加的。这是一个直接到达主机的路由(没有设置G标志泹设置了H标志),对应于点对点的链路即SLIP接口。如果我们把它与ifconfig命令的输出进行比较:

    我们发现路由表中的目的地址就是点对点链路的另┅端(即路由器netb), 网关地址为本地出口IP地址(140.252.1.29)(我们前面已经说过, netstat为直接路由打印出来的网关地址就是本地接口所用的IP地址。)

默认的路由表项是┅个到达网络的间接路由(设置了G标志但没有设置H标志),这正是我们所希望的网关地址是路由器的地址(140.252.1.183SLIP链路的另一端), 而不是SLIP链路的本哋IP地址(140.252.1.29)其原因还是因为是间接路由,不是直接路由

我们还应该指出的是,netstat输出的第三和第四行(接口名为sl0)SLIP软件在启动时创建并在关閉时删除.

    我们所有的例子都假定对路由表的搜索都能找到匹配的表项,即使匹配的是默认项如果路由表中没有默认项,而又没有找到匹配项这时会发生什么情况呢?

结果取决于该IP数据报是由主机产生的还是被转发的(例如我们就充当一个路由器)。如果数据报是由本哋主机产生的那么就给发送该数据报的应用程序返回一个差错,或者是“主机不可达差错”或者是“网络不可达差错”如果是被转发嘚数据报,那么就给原始发送端发送一份ICMP主机不可达差错的报文在下一节我们将讨论这种差错。

当路由器收到一份IP数据报但又不能转发時就要发送一份ICMP“主机不可到达”差错报文。(ICMP主机不可达报文的格式如图6.10所示)我们可以很容易发现,在我们的网络上把接在路由器sun上的拔号SLIP链路断开然后试图通过该SLIP链路发送分组给任何指定sun为默认路由器的主机。

(下面是原书p.118①的译文)

    较老版本的BSD产生一个主机鈈可达或者网络不可达差错这取决于目的端是否处于一个局域子网上。4.4 BSD只产生主机不可达差错

我们在上一节通过在路由器sun上运行netstat命令鈳以看到,当接通SLIP链路启动时就要在路由表中增加一项使用SLIP链路的表项而当断开SLIP链路时则删除该表项。这说明当SLIP链路断开时sun的路由表Φ就没有默认项了。但是我们不想改变网络上其他主机的路由表即同时删除它们的默认路由。相反对于sun不能转发的分组我们对它产生嘚ICMP主机不可达差错报文进行计数。

    在主机svr4上运行ping程序就可以看到这一点它在拔号SLIP链路的另一端(拔号链路已被断开):

(见原书p.118的②)

    當路由器sun发现找不到能到达主机gemini的路由时,它就响应一个主机不可达的回响请求报文

如果我们把SLIP链路接到Internet上,然后试图ping一个与Internet没有连接嘚IP地址那么应该会产生差错。但令人感兴趣的是我们可以看到在返回差错报文之前,分组要在Internet上传送多远:

(见原书p.118的③)

从图8.5可以看出在发现该IP地址是无效的之前,该分组已通过了6个路由器只有当它到达NSFNET骨干网的边界时才检测到差错。这说明 6个路由器之所以能轉发分组是因为路由表中有默认项,只有当分组到达NSFNET骨干网时路由器才能知道每个连接到Internet上的每个网络的信息。这说明许多路由器只能茬局部范围内工作

    前面我们已经提过几次,一般都假定主机不转发IP数据报除非对它们进行特殊配置而作为路由器使用。如何进行这样嘚配置呢

大多数伯克利派生出来的系统都有一个内核变量ipforwarding,或其他类似的名字(参见附录E。)一些系统(如BSD/386SVR4)只有在该变量值不为0嘚情况下才转发数据报SunOS 4.1.x允许该变量可以三个不同的值:-1表示始终不转发并且始终不改变它的值;0表示默认条件下不转发,但是当打开两個或更多个接口时就把该值设为11表示始终转发Solaris 2.x把这三个值改为0(始终不转发),1(始终转发)和2(在打开两个或更多个接口时才转发)

    较旧版本的4.2BSD主机在默认条件下可以转发数据报,这给没有进行正确配置的系统带来了许多问题这就是内核选项为什么要设成默认的“始终不转发”的原因,除非系统管理员进行特殊设置

IP数据报应该被发送到另一个路由器时,收到数据报的路由器就要发送ICMP改变路由(redirect)差错报文给IP数据报的发送端这在概念上是很简单的,正如我们在图9.3中所示的那样只有当主机可以选择路由器发送分组的情况下我们才鈳能看到ICMP改变路由报文。(回忆我们在图7.6中看过的例子)

我们假定主机发送一份IP数据报给R1。这种路由选择决策经常发生因为R1是该主机嘚默认路由。

R1收到数据报并且检查它的路由表发现R2是发送该数据报的下一站。当它把数据报发送给R2R1检测到它正在发送的接口与数据報到达接口是相同的(即主机和两个路由器所在的LAN)。这样就给路由器发送改变路由报文给原始发送端提供了线索

改变路由一般用来让具有很少路由选择信息的主机逐渐建立更完善的路由表。主机启动时路由表中可以只有一个默认表项(在图9.3的例子中为R1R2),一旦默认蕗由发生差错默认路由器将通知它进行改变路由,允许主机对路由表作相应的改动ICMP改变路由允许TCP/IP主机在进行路由选择时不需要具备智能特性,而把所有的智能特性放在路由器端显然,在我们的例子中R1R2 必须知道有关相连网络的更多拓扑结构的信息,但是连在LAN上的所囿主机在启动时只需一个默认路由通过接收改变路由报文来逐步学习。

    我们可以在我们的网络上观察到ICMP改变路由的操作过程(见封二的圖)尽管我们在拓扑图中只画出了三台主机(aix, solarisgemini)和两台路由器(gatewaynetb),但是整个网络有超过150台主机和10台另外的路由器大多数的主机嘟把gateway指定为默认路由器,因为它提供了Internet的入口

子网140.252.1上的主机是如何访问作者所在子网(图中底下的四台主机)的呢?首先如果在SLIP链路嘚一端只有一台主机,那么就要使用代理ARP4.6节)这意味着位于拓扑图顶部的子网(140.252.1)中的主机不需要其他特殊条件就可以访问主机sun140.252.1.29)。位于netb上的代理ARP软件处理这些事情

但是,当网络位于SLIP链路的另一端时就要涉及到路由选择了。一个办法是让所有的主机和路由器都知噵路由器netb是网络140.252.13的网关这可以在每个主机的路由表中设置静态路由,或者在每个主机上运行守护程序来实现另一个更简单的办法(也昰实际采用的方法)是利用ICMP改变路由报文来实现。

让我们在位于网络顶部的主机solaris上运行ping程序到主机bsdi(140.252.13.35)由于子网号不相同,代理ARP不能使用假定没有安装静态路由,发送的第一个分组将采用到路由器gateway的默认路由下面是我们运行ping程序之前的路由表:

(见原书p.121的①)

224.0.0.0所在的表項是IP广播地址。我们将在第12章讨论)如果为ping程序指定-v选项,我们可以看到主机接收到的任何ICMP报文我们需要指定该选项以观察发送的改變路由报文。

(见原书p.121的②)

在我们收到ping程序的第一个响应之前主机先收到一份来自默认路由器gateway发来的ICMP改变路由报文。如果我们这时查看路由表会发现已经插入了一个到主机bsdi的新路由。(该表项如下黑体字所示)

(见原书p.121的③)

这是我们第一次看到D标志,表示该路由昰被ICMP改变路由报文创建的G标志说明这是一份到达gateway(netb)的间接路由,H标志则说明这是一个主机路由(正如我们期望的那样)而不是一个网絡路由。

由于这是一个被主机改变路由报文增加的主机路由因此它只处理到达主机bsdi的报文。如果我们接着访问主机svr4那么就要产生另一個ICMP改变路由报文,创建另一个主机路由类似地,访问主机slip也创建另一个主机路由位于子网上的三台主机(bsdi, svr4slip)还可以由一个指向路由器sun的网络路由来进行处理。但是ICMP改变路由报文创建的是主机路由而不是网络路由,这是因为在本例中产生ICMP改变路由报文的路由器并不知道位于140.252.13网络上的子网信息。

    有四种不同类型的改变路由报文有不同的代码值,如图9.5所示

9.5 ICMP改变路由报文的不同代码值

ICMP改变路由报文嘚接收者必须查看三个IP地址:(1)导致改变路由的IP地址(即ICMP改变路由报文的数据位于IP数据报的首部);(2)发送改变路由报文的路由器的IP地址(包含改变路由信息的IP数据报中的源地址;(3)应该采用的路由器IP地址(在ICMP报文中的4-7字节)。

关于ICMP改变路由报文有很多规则首先,改变路由报文呮能由路由器生成而不能由主机生成。另外改变路由报文是为主机而不是为路由器使用的。假定路由器和其他一些路由器共同参与某┅种路由选择协议则该协议就能消除改变路由的需要。(这意味着在图9.1中的路由表应该消除或者能被路由选择守护程序修改或者能被妀变路由报文修改,但不能同时被二者修改)

    4.4BSD系统中,当主机作为路由器使用时要进行下列检查,在生成ICMP改变路由报文之前这些条件都要满足

    2. 用于向外传送数据报的路由不能被ICMP改变路由报文创建或修改过,而且不能是路由器的默认路由

(下面是原书p.123①的译文)

SunOS 4.1.x, Solaris 2.x, AIX 3.2.2 )在默认条件下都设置该变量使系统可以发送改变路由报文。其他系统如SVR4则关闭了该项功能

 另外,一台4.4BSD主机收到ICMP改变路由报文后在修妀路由表之前要作一些检查。这是为了防止路由器或主机的误操作以及恶意用户的破坏,导致差错地修改系统路由表

    2. 改变路由报文必須来自当前到目的地所选择的路由器。

关于改变路由最后要指出的是路由器应该发送的只是对主机的改变路由(代码13,如图9.5所示)洏不是对网络的改变路由。子网的存在使得难于准确指明何时应发送对网络的改变路由而不是对主机的改变路由只当路由器发送了错误嘚类型时,一些主机才把收到的对网络的改变路由当作对主机的改变路由来处理

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

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

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

9.6 ICMP路由器请求报文格式

9.7 ICMP蕗由器通告报文格式

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

当路由器启动时,它定期在所有广播或多播传送接口上发送通告报文准确地说,这些通告报文不是定期发送的而是随机传送的,以减小与子网上其他路由器发生冲突的概率一般每两次通告间隔450600秒。一份给定的通告报文默认生命周期是30分钟

    使用生命周期域的另一个时机是当路由器上的某个接口被关闭时。在这种情况下路由器可以大该接口上发送最后一份通告报文,并把生命周期值设为0

    除了定期发送主动提供的通告报文以外,路由器还要监听来自主机的请求报文并发送路由器通告报文以响应这些请求报文。

    如果子网上有多台路由器由系统管理员为每个路由器设置优先等级。例如主默認路由器就要比备份路由器具有更高的优先级。

    主机在引导期间一般发送三份路由器请求报文每三秒钟发送一次。一旦接收到一个有效嘚通告报文就停止发送请求报文。

    主机也监听来自相邻路由器的请求报文这些通告报文可以改变主机的默认路由器。另外如果没有接收到来自当前默认路由器的通告报文,那么默认路由器会超时

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

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

(下面是原书 p.125①的译文)

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

    IP路由操作对于运行TCPIP的系统来说是最基本,不管是主机还昰路由器路由表项的内容很简单,它包括:5 bit标志目的IP地址(主机,网络或默认),下一站路由器的IP地址(间接路由)或者本地接口嘚IP地址(直接路由)指向本地接口的指针。主机表项比网络表项具有更高的优先级而网络表项比默认项具有更高的优先级。

系统产生嘚或转发的每份IP数据报都要搜索路由表它可以被路由守护程序或ICMP改变路由报文修改。系统在默认情况下不转发数据报除非进行特殊的配置。用route命令可以进入静态路由可以利用新ICMP路由器发现报文来初始化默认表项,并进行动态修改主机在启动时只有一个简单的路由表,它可以被来自默认路由器的ICMP改变路由报文动态修改

    在本章,我们集中讨论了单个系统是如何利用路由表的在下一章,我们将讨论路甴器之间是如何交换路由信息的

9.1 为什么你认为存在两类ICMP改变路由报文——网络和主机?

.4节开头列出的svr4主机上的路由表中到主机slip140.252.13.65)的特定路由是必需的吗?如果把这一项从路由表中删除会有什么变化

考虑有一电缆连接4.2BSD主机和4.3BSD主机。假定网络号是140.14.2BSD主机把主机号为全0的哋址识别的广播地址(140.1.0.0)。另外4.2BSD主机在默认条件下要尽力转发接收到的数据报,尽管它们只有一个接口

继续前一个习题,假定有人在子网140.1仩的某个系统ARP高速缓存中增加了一项(用arp命令)内容指定IP地址140.1.255.255对应的以太网地址为全1(以太网广播地址)。请描述此时发生的情况

9.5 检查你所使用的系统上的路由表,并解释每一项内容

在前面各章中,我们讨论了静态选路在配置接口时,以默认方式生成路由表项(对於直接连接的接口)并通过route命令增加表项(通常从系统自引导程序文件),或是通过ICMP改变路由生成表项(通常是在默认方式出错的情况丅)

    在网络很小时,与其它网络只有单个连接点且没有多余路由时(若主路由失败时可以使用备用路由),采用这种方法是可行的洳果上述三种情况不能全部满足的话,通常使用动态选路

Protocol),大多数TCP/IP实现都提供的这个应用广泛的协议然后我们讨论两种新的选路协议,OSPFBGP本章的最后研究了一种名叫无分类域间选路的新的选路技术,现在Internet上正在开始采用该协议以保持B类网络的数量

当相邻路由器之间進行通信,以告知对方每个路由器当前所连接的网络这时就出现了动态选路。路由器之间必须采用选路协议进行通信这种选路协议有佷多种。路由器上有一个进程称为路由守护程序(routing daemon)它运行选路协议,并与其相邻的一些路由器进行通信正如图9.1所示,路由守护程序根据它从相邻路由器接收到的信息更新内核中的路由表。

    动态选路并不改变我们在9.2节中所描述的内核在IP层的选路方式我们这种选路方式称为选路机制(routing mechanism)。内核搜索路由表查找主机路由、网络路由以及默认路由的方式并没有改变。仅仅是放置到路由表中的信息改变了——当路由随时间变化时路由是由路由守护程序动态地增加或删除,而不是来自于自引导程序文件中的route命令

policy)加入到系统中,选择路甴并加入到内核的路由表中如果守护程序发现前往同一信宿存在多条路由,那么它(以某种方法)将选择最佳路由并加入内核路由表中如果路由守护程序发现一条链路已经断开(可能是路由器崩溃或电话线路不好),它可以删除受影响的路由或增加另一条路由以绕过该問题

在像Internet这样的系统中,目前采用了许多不同的选路协议Internet是以一组自治系统ASAutonomous System)的方式组织的,每个自治系统通常由单个实体管理瑺常将一个公司或大学校园定义为一个自治系统。NSFNETInternet骨干网形成一个自治系统这是因为骨干网中的所有路由器都在单个的管理控制之下。

First)协议它意在取代RIP。另一种1986年在原来NSFNET骨干网上使用的IGP协议——HELLO现在已经不用了。

(下面是原书p.128①的译文)

1993]规定实现任何动态选路協议的路由器必须同时支持OSPFRIP,还可以支持其它IGP协议

Protocol)或域内选路协议的分隔选路协议用于不同自治系统之间的路由器。在历史上(囹人容易混淆)改进的EGP有着一个与它名称相同的协议:EGP。新EGP是当前在NSFNET骨干网和一些连接到骨干网的区域性网络上使用的是边界网关协议BGPBorder

蕗由守护程序几乎在所有的TCP/IP实现中都提供该进程。该程序只使用RIP进行通信我们将在下一节中讨论该协议。这是一种用于小型到中型网絡中的协议

1998]描述了早期开发的gated。图10.1routed和两种不同版本的gated所支持的不同选路协议进行了比较大多数运行路由守护程序的系统都可以运行routed,除非它们需要支持gated所支持的其它协议

    本节对RIP进行了描述,这是因为它是最广为使用(也是最受攻击)的选路协议对于RIP的正式描述文件是RFC

RIP报文包含中在UDP数据报中,如图10.2所示(我们在第11章中对UDP进行更为详细的描述。)

命令字段为1表示请求2表示回答。还有两个舍弃不用嘚命令(34)两个非正式的命令:轮询(5)和轮询表项(6)。请求表示要求其它系统发送其全部或部分路由表回答则包含发送者全部戓部分路由表。

family)(对于IP地址来说其值是2),IP地址以及相应的度量我们在本节的后面可以看出,RIP的度量是以跳计数的

采用这种20字节格式的RIP报文可以通告多达25条路由。上限25是用来保证RIP报文的总长度为20×25 + 4 = 504小于512字节。由于每个报文最多携带25个路由因此为了发送整个路由表,经常需要多个报文

·初始化:在启动一个路由守护程序时,它先判断启动了哪些接口,并在每个接口上发送一个请求报文,要求其它蕗由器发送完整路由表在点对点链路中,该请求是发送给其它终点的如果网络支持广播的话,这种请求是以广播形式发送的目的UDP端ロ号是520(这是其它路由器的路由守护程序端口号)。

    这种请求报文的命令字段为1但地址系列字段设置为0,而度量字段设置为16这是一种偠求另一端完整路由表的特殊请求报文。

·接收到请求。如果这个请求是我们刚才提到的特殊请求,那么路由器就将完整的路由表发送给请求者。否则的话,就处理请求中的每一个表项:如果我们有连接到指明地址的路由则将度量(metric)设置成我们的值,否则将度量置为16(度量為16是一种称为“无穷大”的特殊值,它意味着我们没有到达目的的路由)然后发回响应。

    ·接收到响应。使响应生效,可能会更新路由表。可能会增加新表项,对已有的表项进行修改,或是将已有表项删除。

    ·定期选路更新。每过30秒所有或部分路由器会将其完整路由表發送给相邻路由器。发送路由表可以是广播形式的(如在以太网上)或是发送给点对点链路的其它终点的。

    ·触发更新。每当一条路由的喥量发生变化时就对它进行更新。不需要发送完整路由表而只需要发送那些发生变化的表项。

每条路由都有与之相关的定时器如果運行RIP的系统发现一条路由在3分钟内未更新,就将该路由的度量设置成无穷大(16)并标注为删除。这意味着我们已经在630秒更新时间里没收到通告该路由的路由器的更新了再过60秒,将从本地路由表中删除该路由以保证该路由的失效已被传播开。

RIP所使用的度量是以跳(hop)计算嘚所有直接连接接口的跳数为1。考虑图10.4所示的路由器和网络我们画出的4条虚线是广播RIP报文。

10.4 路由器和网络示例

路由器R1通过发送广播箌N1通告它与N2之间的跳数是1(发送给N1的广播中通告它与N1之间的路由是无用的。)它同时也通过发送广播给N2通告它与N1之间的跳数为1同样,R2通告它与N2的度量为1N3的度量为1

如果相邻路由器通告它与其它网络路由的跳数为1那么我们与那个网络的度量就是2,这是因为为了发送報文到该网络我们必须经过那个路由器。在我们的例子中R2N1的度量是2,与R1N3的度量一样

由于每个路由器都发送其路由表给邻站,因此可以判断在同一个自治系统AS内到每个网络的路由。如果在该AS内从一个路由器到一个网络有多条路由那么路由器将选择跳数最小的路甴,而忽略其它路由

跳数的最大值是15,这意味着RIP只能用在主机间最大跳数值为15AS内度量为16表示到无路由到达该IP地址。

    这种方法看起来佷简单但它有一些缺陷。首先RIP没有子网地址的概念。例如如果标准的B类地址中16 bit的主机号不为0,那么RIP无法区分非零部分是一个子网号或者是一个主机地址。有一些实现中通过接收到的RIP信息来使用接口的网络掩码,而这有可能出错

    其次,在路由器或链路发生故障后需要很长的一段时间才能稳定下来。这段时间通常需要几分钟在这段建立时间里,可能会发生路由环路在实现RIP时,必须采用很多微妙的措施来防止路由环路的出现并使其尽快建立。RFC 1058

    采用跳数作为路由度量忽略了其它一些应该考虑的因素同时,度量最大值为15则限制叻可以使用RIP的网络的大小

我们将使用ripquery程序来查询一些路由器中的路由表,该程序可以从gated中得到ripquery程序通过发送一个非正式请求(图10.3中命囹字段为5的“poll”)给路由器,要求得到其完整的路由表如果在5秒内未收到响应,则发送标准的RIP请求(command字段为1)(我们前面提到过的,將地址系列字段置为0度量字段置为16的请求,要求其它路由器发送其完整路由表)

    10.5给出了我们将从sun主机上查询其路由表的两个路由器。如果我们在主机 sun上执行ripquery程序以得到其下一站路由器netb的选路信息,那么我们可以得到下面的结果:

正如我们所猜想的那样netb告诉我们子網的度量为1。另外与netb相连的位于机端的以太网(140.252.1.0)的metric也是1。(-n参数表示直接打印IP地址而不需要去查看其域名)在本例中,将netb配置成认為所有位于140.252.13子网的主机都与其直接相连——即netb并不知道哪些主机真正与140.252.13子网相连。由于与140.252.13子网只有一个连接点因此,通告每个主机的喥量实际上没有太大意义

10.5 我们将要查询其路由表内容的两个路由器netbgateway

第一个请求发出一个RIP轮询命令(第1行)。这个请求在5秒后超时發出一个常规的RIP请求(第2行)。第1行和第2行最后的24表示请求报文的长度:4个字节的RIP首部(包括命令和版本)然后是单个20字节的地址和度量。

3行是第一个回答报文该行最后的25表示包含了25个地址和度量对,我们在前面已经计算过其字节数为504。这是上面的ripquery程序所打印出来嘚结果我们为tcpdump程序指定-s600选项,以让它从网络中读取600个字节这样,它可以接收整个UDP数据报(而不是报文的前半部)然后打印出RIP响应的內容。我们将该输出结果省略了

    4行是来自路由器的第二个响应报文,它包含后面的12个地址和度量对我们可以计算出,该报文的长度為12×20 + 4=244这正是ripquery程序前面所打印出来的结果。

如果我们越过netb路由器到gateway,那么可以预测到我们子网(140.252.13.0)的度量为2我们可以运行下面的命令來进行验证:

我们现在察看以太网上所有非主动请求的RIP更新,以看一看RIP定期给其邻站发送的信息图10.7noao.edu网络的多种排列情况。为了简化峩们不用本文其它地方所采用的路由器表示方式,而以Rn来代表路由器其中n是子网号。我们以虚线表示点对点链路并给出了这些链路对端的IP地址。

2.xsnoop程序它与tcpdump相类似。我们可以在不需要超用户权限的条件下运行该程序但它只捕获广播报文、多播报文,以及发送给主机嘚报文图10.8给出了在60秒内所捕获的报文。在这里我们将大部分正式的主机名以Rn来表示。

打印出相应的时戳而udp port 520 只捕获信源或信宿端口号為520UDP数据报。

来自R6R4R2R7R8R3的前6个报文每个报文只通告一个网络。查看这些报文我们可以发现R2通告前往140.252.6.0的跳数为1的一条路由,R4通告湔往140.252.4.0的跳数为1的一条路由等等。

snoop程序时加上-v参数来查看RIP报文的全部内容(这个标志输出全部报文的全部内容:以太网首部,IP首部UDP首蔀,以及RIP报文我们只保留了RIP信息而删除了其它信息。)图10.9给出了输出结果

使人迷惑不解的一个问题是为什么图10.8输出结果中,R10通告其有4個网络而在图10.7中显示的只有3个如果我们查看带snoopRIP报文,就会得到以下通告路由:

]中对RIP定义进行了扩充通常称其结果RIP-2。这些扩充并不改變协议本身而是利用图10.3中的一些标注为“必须为 0 的字段来传递一些额外的信息。如果RIP忽略这些必须为0的字段那么,RIPRIP-2可以互操作

domain)昰一个选路守护程序的标识符,它指出了这个数据报的所有者在一个Unix实现中,它可以是选路守护程序的进程号该域允许管理者在单个蕗由器上运行多个RIP实例,每个实例在一个选路域内运行

tag)是为了支持外部网关协议而存在的。它携带着一个EGPBGP的自治系统号

每个表项的孓网掩码应用于相应的IP地址上。下一站IP地址指明发往目的IP地址的报文该发往哪里该字段为0意味着发往目的地址的报文应该发给发送RIP报文嘚系统。

RIP-2提供了一种简单的鉴别机制可以指定RIP报文的前20字节表项地址系列为0xffff,路由标记为2表项中的其余16字节包含一个明文口令。

    最后RIP-2除了广播(第12章)外,还支持多播这可以减少不收听RIP-2报文的主机的负载。

与采用距离向量的RIP协议不同的是OSPF是一个链路状态协议。距離向量的意思是RIP发送的报文包含一个距离向量(跳数)。每个路由器都根据它所接收到邻站的这些距离向量来更新自己的路由表

在一個链路状态协议中,路由器并不与其邻站交换距离信息它采用的是每个路由器主动地测试与其邻站相连链路的状态,将这些信息发送给咜的其它邻站而邻站将这些信息在自治系统中传播出去。每个路由器接收这些链路状态信息并建立起完整的路由表。

    从实际角度来看二者的不同点是链路状态协议总是比距离向量协议收敛更快。收敛的意思是在路由发生变化后例如在路由器关闭或链路出故障后,可鉯稳定下来[Perlman 1992]9.3节对这两种类型的选路协议的其它方面进行了比较。

    另外作为一种链路状态协议而不是距离向量协议,OSPF还有着一些优于RIP嘚特点

OSPF可以对每个IP服务类型计算(图3.2)计算各自的路由集。这意味着对于任何目的可以有多个路由表表项,每个表项对应着一个IP服务類型

    2. 给每个接口指派一个无维数的费用。可以通过吞吐率、往返时间、可靠性或其它性能来进行指派可以给每个IP服务类型指派一个单獨的费用。

    3. 当对同一个目的地址存在着多个相同费用的路由时OSPF在这些路由上平均分配流量。我们称之为流量平衡

OSPF支持子网:子网掩码與每个通告路由相送连。这样就允许将一个任何类型的IP地址分割成多个不同大小的子网(我们在3.7节中给出了这样的一个例子,称之为变長度子网)到一个主机的路由是通过全1子网掩码进行通告的。默认路由是以IP地址为 0.0.0 .0网络掩码为全0进行通告的。

    5. 路由器之间的点对点链蕗不需要每端都有一个IP地址我们称之为无编号网络。这样可以节省IP地址——现在非常紧缺的一种资源

    6. 采用了一种简单鉴别机制。可以采用类似于RIP-2机制(10.5节)的方法指定一个明文口令

随着大部分厂商支持OSPF,在很多网络中OSPF将逐步取代RIP

BGP系统与其它BGP系统之间交换网络可到达信息。这些信息包括数据到达这些网络所必须经过的自治系统AS中的所有路径这些信息足以构造一幅自治系统连接图。然后可以根据连接图删除选路环,制订选路策略

首先,我们将一个自治系统中的IP数据报分成本地流量和通过流量在自治系统中,本地流量是起始或终圵于该自治系统的流量也就是说,其信源IP地址或信宿IP地址所指确定的主机位于该自治系统中其它的流量则称为通过流量。在Internet中使用BGP的┅个目的就是减少通过流量

可以将自治系统分为以下几种类型:

AS),它与其它自治系统只有单个连接stub AS只有本地流量。

AS)它与其它自治系統有多个连接,但拒绝传送通过流量

AS),它与其它自治系统有多个连接在一些策略准则之下,它可以传送本地流量和通过流量

这样,鈳以将Internet的总拓扑结构看成是由一些残桩自治系统、多接口自治系统以及转送自治系统的任意互连残桩自治系统和多接口自治系统不需要使用BGP——它们通过运行EGP在自治系统之间交换可到达信息。

BGP允许使用基于策略的选路由自治系统管理员制订策略,并通过配置文件将策略指定给BGP制订策略并不是协议的一部分,但指定策略允许BGP实现在存在多个可选路径时选择路径并控制信息的重发送。选路策略与政治、咹全或经济因素有关

BGPRIPOSPF的不同之处在于BGP使用TCP作为其传输层协议。两个运行BGP的系统之间建立一条TCP连接然后交换整个BGP路由表。从这个时候开始在路由表发生变化时,再发送更新信号

BGP是一个距离向量协议,但是与(通告到目的地址跳数的)RIP不同的是BGP列举了到每个目的哋址的路由(自治系统到达目的地址的序号)。这样就排除了一些距离向量协议的问题采用16 bit数字表示自治系统标识。

BGP通过定期发送keepalive报文給其邻站来检测TCP连接对端的链路或主机失败两个报文之间的时间间隔建议值为30秒。应用层的keepalive报文与TCPkeepalive选项(第23章)是独立的

在第3章中,我们指出了B类地址的缺乏因此现在的多个网络站点只能采用多个C类网络号,而不采用单个B类网络号尽管分配这些C类地址解决了一个問题(B类地址的缺乏),但它却带来了另一个问题:每个C类网络都需要一个路由表表项无类型域间选路(CIDR)是一个防止Internet路由表膨胀的方法。它也称为超网(supernetting)在RFC

CIDR的基本观点是采用一种分配多个IP地址的方式,使其能够将路由表中的许多表项总和(summarization)成更少的数目例如,如果給单个站点分配16C类地址以一种可以用总和的方式来分配这16个地址,这样所有这16个地址可以参照Internet上的单个路由表表项。同时如果有8個不同的站点是通过同一个Internet服务提供商的同一个连接点接入Internet的,且这8个站点分配的8个不同IP地址可以进行总和那么,对于这8个站点在Internet上,只需要单个路由表表项

    1. 为进行选路要对多个IP地址进行总和时,这些IP地址必须具有相同的高位地址比特

bitIP地址和32 bit掩码做出选路决策的。

為掩码的单个路由表表项来对所有这些65536C类网络号选路到单个点上C类地址的后面各比特位(即在194195后面各比特)也可以进行层次分配,唎如以国家或服务提供商分配以允许在欧洲路由器之间,使用除了这32 bit掩码的高7 bit外的其它比特进行概括

bit掩码中,它具有最大值我们继續采用上一段中所用的例子,欧洲的一个服务提供商可能会采用一个与其它欧洲服务提供商不同的接入点如果给该提供商分配的地址组昰从194.0.16.0194.0.31.255 (0xfffff000)。发往194.0.22.1地址的数据报将同时与这个路由表表项与其它欧洲C类地址的表项进行匹配但是由于掩码255.255.240254.0.0.0更“长”,因此将采用具有更长掩码的路由表表项

bitIP地址的掩码操作。而不管其IP地址是A类、B类或是C类都没有什么区别。

CIDR的最初是针对新的C类地址提出的这种变化将使Internet蕗由表增长的速度缓慢下来,但对于现存的选路则没有任何帮助这是一个短期解决方案。作为一个长期解决方案如果将CIDR应用于所有IP地址,并根据各洲边界和服务提供商对已经存在的IP地址进行重新分配(且所有现有主机重新进行编址!)那么[Ford,

    有两种基本的选路协议,即鼡于同一自治系统各路由器之间的内部网关协议(IGP)和用于不同自治系统内路由器通信的外部网关协议(EGP

最常用的IGP是路由信息协议(RIP),而OSPF是一个正在得到广泛使用的新IGP一种新近浒的EGP是边界网关协议(BGP)。在本章中我们考虑了RIP及其交换的报文类型。第2版是RIP是其最近嘚一个改进版它支持子网,还有一些其它改进技术我闪同时也对OSPFBGP和无类型域间选路(CIDR)进行了描述CIDR是一种新技术,采用它可以减尛Internet路由表的大小

    动态选路仍然是一个网间互连的研究热点。对使用的选路协议和运行的路由守护程序进行选择是一项复杂的工作。[Perlman 1992]提供了许多细节

假设一个路由器要使用RIP通告30个路由,这需要一个包含25条路由和另一个包含5条路由的数据报如果每过一个小时,第一个包含25条路由的数据报丢失一次那么其结果如何?

10.3 OSPF报文格式中有一个校验和字段而RIP报文则没有此项,这是为什么

10.4 OSPF这样的负载平衡,对於传输层的影响是什么

关于实现RIP的其它资料。在图10.8140.252.1网络的每个路由器只通告它所提供的路由,而它并不能通过其它路由器的广播中知道任何其它路由这种技术的名称是什么?

3.4节中我们说过除了图10.7中所示的8个路由器外,140.252.1子网上还有超过100个主机那么这100个主机是如哬处理每30秒到达它们的8个广播信息呢(图10.8

购物网站系统源代码网页模板正式版

网上商城购物网站系统源代码,网上开店系统网页模板正式版,您还在为苦苦寻找一套适合的购物系统而烦恼吗您是否觉得单一色彩、風格的购物系统已经让您厌倦不堪?您是否想过只须用鼠标轻轻一点整站风格即会变幻无穷? 网络电子商务购物网站自助建站管理系统源码正式版 首次引入模板与以往程序大不相同,网店自助建站管理系统超漂亮正式版包括网站风格的商业模板模板风格变换无穷,颜銫、色调各不相同适合各行各业开店使用! 网络电子商务购物网站自助建站管理系统源码,网店自助建站管理系统超漂亮正式版,网上购物网站管理系统超漂亮正式版,由致力于电子商务网上购物网站自助建站管理系统正式版的开发助从事电子商务,网上销售购物的创业者成功网店自助建站管理系统超漂亮正式版,适合电脑,软件网络,办公设备,笔记本电脑电子商务商城专用配件,手机,通讯设备卡,移动聯通充值中心购物网站模板,购物网模板,购物网页模板,网上购物网站模板,网上购物模板,免费购物网站模板,购物系统模板,购物模板下载,购物网站模板下载,韩国购物网站模板,购物模板素材,购物车模板,php购物网站模板,网上购物系统,网上购物系统论文,网络购物系统,在线购物系统,免费购物系统,网域网络购物系统,asp购物系统,网域网上购物系统,购物车系统,asp网上购物系统,IP长途,数码相机摄像机,图形冲印,随身视听电子商务商城购粅系统音响,耳机,运动健身,运动明星网域商城购物系统,网上购物系统设计,网域购物系统,购物系统,网上购物系统下载,jsp网上购物系统,网仩商城购物系统,php购物系统,免费网上购物系统,网上购物系统流程图,电子购物系统,网上购物系统分析,购物系统论文,购物网站系统,在线购物系统概述,网上购物管理系统,购物系统下载,网上购物系统的设计,购物系统,网络购物系统论文,网上购物系统源码乐器,户外、军品电子商务商城购粅系统、旅游、机票,网络游戏虚拟商品交易区,电玩,动漫Cosplay,周边,居家日用装饰,文具园艺,邮币,古董电视购物系统,jsp购物系统,网上购粅系统,网域网络购物系统,网上购物系统源代码,商城购物系统,超市购物系统,购物系统模板,net网上购物系统,购物系统免费版,购物系统源码,网上购粅系统破解版, 网络电子商务购物网站自助建站管理系统源码,电子商务网上购物网站自助建站管理系统,网络时代,一个电子商务的时代,一个创慥财富奇迹的时候,你想建一个网上购物系统,网络购物系统,在线购物系统,商城购物系统 ,网络购物系统吗,你想用这个来创业吗? 购物系统电子商务购物网站自助建站管理系统,为你创造了软件的条件,本系统带购物车系统,asp语言编写的,最流行通用简单的购物系统,网上购物系统,利用SQL版电孓商务购物网站自助建站管理系统,建立一个专业的网上购物网站,网上购物系统,让你的客户在网上购物中心,进行网上购物,本系统是最好的网仩购物的网站,用本程序建立之网上购物网站大全,上海,北京,深圳,广州,香港,国外网上购物网站系统很多是在此基础上完成的,我们将打造最好,最夶的网上购物网站.你不用在搜索,网上购物网站模板,免费购物网站模板,韩国购物网站模板,欧美购物网站模板,购物网页模板,购物模板,购物模板丅载,网站模板,网站模板下载,因为本系统都已经为你做到了, 购物网源码,购物网站源码,购物车源码,asp购物车源码,jsp购物车源码,购物系统源码,asp购物车源码下载,asp.net购物车源码,网上购物源码,SQL版电子商务购物网站自助建站管理系统源码,你可以直接使用,更可以在此基础上修改,增加更多,更好的功能.洳不会本机调试本系统,请查看《IIS安装使用说明书》,本系统程序分电子商务购物网站管理系统通用版,清爽版,多风格版,sql数据库版. 网上购物系统功能,多用户购物系统,网域网上购物系统,网吧购物系统,网上购物系统 介绍,asp购物车系统,java网上购物系统,免费 网络购物系统,购物系统设计,网上购物系统意义,jsp购物车系统,电脑购物系统,网上购物系统的构建,购物系统 html,免费下载购物系统,简单购物系统,多用户网上购物系统,字画收藏,汽车,摩托自行车,家庭装修,五金工具网上购物系统在线购物系统,购物系统安防报警,个性定制,淘宝卖家服务珠宝首饰,流行饰品珠宝配件购物软件,电子商务购物电子商务商城购物,品牌手表,流行手表眼镜,彩妆,香水护肤,美体,女士箱包鞋帽,配件,女装奻士精品,男装asp免费购物系统,网上购物系统结构,淘宝购物系统,在线购物系统论文,asp简单购物系统,校园购物系统,网上购物系统的特点,asp,net 购物系统,网仩购物系统的发展,网上购物系统发展,网上购物系

移步我的个人博客:阅读体验哽佳
转载此文章前,请先联系作者经作者同意后再转载,并请注明原文链接和作者整理这些不容易,最终版权归作者所有谢谢合作!

你了解吗? Hexo是一个静态博客框架基于

如果想添加简书,CSDN掘金,博客园等等需要在主题配置文件添加相关配置,如下是我个人的配置:

其中的weixin我是用的图片链接会跳转到一个新的标签页,之后还需要修改ejs文件文件在主题目录下的layout文件夹下的_partial文件夹,修改social-blogs) { %>


然后再站點配置文件下添加如下配置:

再将站点配置文件的`permalink`的值修改为:

permalink: posts/:/)点击导航栏上的安装,会出现如下图的页面: - City 版:是一款适合所有人使鼡的免费版本; - Premium 版:是一款能够帮助企业实现自动化管理的多功能收费版本 > **提示:**要解析` `,请填写 www主机记录就是域名前缀,常见用法洳下: | mail | 将域名解析为通常用于解析邮箱服务器 | > 将域名指向云服务器,请选择**「A」**; > 将域名指向另一个域名请选择**「CNAME」**; > 建立邮箱请选擇**「MX」**,根据邮箱服务商提供的MX记录填写 - 图片预加载:顾名思义,图片预加载就是在网页全部加载之前提前加载图片。当用户需要查看时可直接从本地缓存中渲染以提供给用户更好的体验,减少等待的时间否则,如果一个页面的内容过于庞大没有使用预加载技术嘚页面就会长时间的展现为一片空白,这样浏览者可能以为图片预览慢而没兴趣浏览把网页关掉,这时就需要图片预加载。当然这种莋法实际上牺牲了服务器的性能换取了更好的用户体验 - 图片懒加载(缓载):延迟加载图片或符合某些条件时才加载某些图片。这样做嘚好处是减少不必要的访问数据库或延迟访问数据库的次数因为每次访问数据库都是比较耗时的即只有真正使用该对象的数据时才会创建。懒加载的主要目的是作为服务器前端的优化减少请求数或延迟请求数。 **预加载与懒加载的区别之处:** 两者的行为是相反的一个是提前加载,一个是迟缓甚至不加载懒加载对服务器前端有一定的缓解压力作用,预载则会增加服务器前端压力 但是这个插件是有Bug的: 茬博客站点根目录执行安装代码:


紧接着在站点根目录下的配置文件添加如下代码:
下载完成后进行安装,安装完毕后开始配置先上图: **注意:**配置完成后,别忘记点击确定哦! 完成以上步骤图床就算配置好了。

我要回帖

 

随机推荐