[读书笔记]TCP/IP详解V1读书笔记-9 & 10

选路是I P最重要的功能,木有之一。

--------------------------------

在读选路信息的数据结构叫路由表,存储在内存中,其0号表项为默认表项。

-------------------------------

I P层进行的选路实际上是一种选路机制,它搜索路由表并决定向哪个网络接口发送分组。

这区别于选路策略,它只是一组决定把哪些路由放入路由表的规则。I P执行选路机制,而路由守护程序则一般提供选路策略。

--------------------------------

路由表中标志G是非常重要的,因为由它区分了间接路由和直接路由(对于直接路由来说是不设置

标志G的)。其区别在于,发往直接路由的分组中不但具有指明目的端的I P地址,还具有其链

路层地址(见图3 - 3)。当分组被发往一个间接路由时, I P地址指明的是最终的目的地,但是

链路层地址指明的是网关(即下一站路由器)。

-----------------------------------

当路由器收到一份I P数据报但又不能转发时,就要发送一份I C M P“主机不可达”差错报文"

-----------------------------------

ICMP重定向

------------------------

---------------------------------

主机在引导以后要广播或多播传送一份路由器请求报文。一台或更多台路由

器响应一份路由器通告报文。另外,路由器定期地广播或多播传送它们的路由器通告报文,

允许每个正在监听的主机相应地更新它们的路由表。

----------------------------------

主机在启动时只有一个简单的路由表,它可以被来自默认路由器的I C M P重定向报文动态修改。

-----------------------------------

静态选路。在配置接口时,以默认方式生成路由表项(对于直接连接的接口),

并通过r o u t e命令增加表项(通常从系统自引导程序文件),或是通过I C M P

重定向生成表项(通常是在默认方式出错的情况下)。

--------------------------------------

路由器上有一个进程称为路由守护程序( routing daemon),它运行选路协议,并与其相邻的一些路由器

进行通信。路由守护程序根据它从相邻路由器接收到的信息,更新内核中的路由表。

---------------------------------------

这种协议我们称之为内部网关协议I G P(Interior Gateway Protocol)或域内选路协议(intradomain routing protocol)

R I P,即选路信息协议(Routing Infromation Protocol)是IGP的一种,开放最短路径优先O S P F(Open Shortest

Path First)协议也是一种

外部网关协议E G P(Exterier Gateway Protocol),EGP或边界网关协议(BGP)是EGP的一种

----------------------------------------

RIP报文格式:

最多可以有25个路由在一个RIP报文中被通告。度量16,也就是16跳,在路由选路中是一种无限大值,代表没有路径可以到达。

----------------------------

RIP以跳数来计量距离,直接相连的为一跳。

-------------------------------

让我们来看一下采用R I P协议的r o u t e d程序正常运行的结果。R I P常用的U D P端口号是5 2 0。

• 初始化:在启动一个路由守护程序时,它先判断启动了哪些接口,并在每个接口上发送

一个请求报文,要求其他路由器发送完整路由表。在点对点链路中,该请求是发送给其

他终点的。如果网络支持广播的话,这种请求是以广播形式发送的。目的U D P端口号是

5 2 0(这是其他路由器的路由守护程序端口号)。

这种请求报文的命令字段为1,但地址系列字段设置为0,而度量字段设置为1 6。这是一

种要求另一端完整路由表的特殊请求报文。

• 接收到请求。如果这个请求是刚才提到的特殊请求,那么路由器就将完整的路由表发送

给请求者。否则,就处理请求中的每一个表项:如果有连接到指明地址的路由,则将度

量设置成我们的值,否则将度量置为1 6(度量为1 6是一种称为“无穷大”的特殊值,它

意味着没有到达目的的路由)。然后发回响应。

• 接收到响应。使响应生效,可能会更新路由表。可能会增加新表项,对已有的表项进行

修改,或是将已有表项删除。

• 定期选路更新。每过3 0秒,所有或部分路由器会将其完整路由表发送给相邻路由器。发

送路由表可以是广播形式的(如在以太网上),或是发送给点对点链路的其他终点的。

第10章动态选路协议使用97

下载

命令

地址系列(2)

32位IP地址

(必须为0)

(必须为0)

度量(1-16)

(最多可有24个另外的路由,与前20字节具有相同的格式)

版本(必须为0)

(必须为0)

字节

• 触发更新。每当一条路由的度量发生变化时,就对它进行更新。不需要发送完整路由表,

而只需要发送那些发生变化的表项。

每条路由都有与之相关的定时器。如果运行R I P的系统发现一条路由在3分钟内未更新,

就将该路由的度量设置成无穷大( 1 6),并标注为删除。这意味着已经在6个3 0秒更新时间里

没收到通告该路由的路由器的更新了。再过6 0秒,将从本地路由表中删除该路由,以保证该

路由的失效已被传播开。

---------------------

---------------------------------------------

与采用距离向量的R I P协议不同的是, O S P F是一个链路状态协议。距离向量的意思是,

R I P发送的报文包含一个距离向量(跳数)。每个路由器都根据它所接收到邻站的这些距离向量来更新自己的路由表。

在一个链路状态协议中,路由器并不与其邻站交换距离信息。它采用的是每个路由器主

动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在

自治系统中传播出去。每个路由器接收这些链路状态信息,并建立起完整的路由表。

从实际角度来看,二者的不同点是链路状态协议总是比距离向量协议收敛更快。

--------------------------------------------------

OSPF直接使用IP,而不是使用UDP,在IP首部中协议字段有其对应值。

-------------------------------------------------

B G P与R I P和O S P F的不同之处在于B G P使用T C P作为其传输层协议。是一个距离向量协议

---------------

C I D R是一种新技术,可以减小I n t e r n e t路由表的大小。

------------------------------------

链路状态算法(也称最短路径算法)发送路由信息到互联网上所有的结点,然而对于每个路由器,仅发送它的路由表中描述了其自身链路状态的那一部分。距离向量 算法(也称为Bellman-Ford算法)则要求每个路由器发送其路由表全部或部分信息,但仅发送到邻近结点上。从本质上来说,链路状态算法将少量更新 信息发送至网络各处,而距离向量算法发送大量更新信息至邻接路由器。 ——由于链路状态算法收敛更快,因此它在一定程度上比距离向量算法更不易产生路由循环。但另一方面,链路状态算法要求比距离向量算法有更强的CPU能力和 更多的内存空间,因此链路状态算法将会在实现时显得更昂贵一些。除了这些区别,两种算法在大多数环境下都能很好地运行。

posted @ 2011-09-20 00:31  lifengzhong  阅读(175)  评论(0编辑  收藏  举报