tcp使用什么tcp方式来解析域名交换信息?

1405人阅读
TCP/IP详解(19)
第10章 动态选路协议
10.1& &引言
在前面各章中,我们讨论了静态选路。在配置接口时,以默认方式生成路由表项(对于 直接连接的接口),并通过 route命令增加表项(通常从系统自引导程序文件),或是通过 ICMP 重定向生成表项(通常是在默认方式出错的情况下)。
在网络很小,且与其他网络只有单个连接点且没有多余路由时(若主路由失败,可以使 用备用路由),采用这种方法是可行的。如果上述三种情况不能全部满足,通常使用动态选 路。
本章讨论动态选路协议,它用于路由器间的通信。我们主要讨论&&RIP,即选路信息协议 (Routing Infromation Protocol) ,大多数 TCP/IP实现都提供这个应用广泛的协议。然后讨论两 种新的选路协议, OSPF和BGP。本章的最后研究一种名叫无分类域间选路的新的选路技术, 现在Internet上正在开始采用该协议以保持 B类网络的数量。
10.2&& 动态选路
当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了 动态选路。路由器之间必须采用选路协议进行通信,这样的选路协议有很多种。路由器上有一个进程称为路由守护程序( routing daemon ),它运行选路协议,并与其相邻的一些路由器 进行通信。正如图 9-1所示,路由守护程序根据它从相邻路由器接收到的信息,更新内核中的 路由表。
动态选路并不改变我们在 9.2节中所描述的内核在 IP层的选路方式。这种选路方式称为选 路机制( routing mechanism)。内核搜索路由表,查找主机路由、网络路由以及默认路由的方 式并没有改变。仅仅是放置到路由表中的信息改变了 — 当路由随时间变化时,路由是由路 由守护程序动态地增加或删除,而不是来自于自引导程序文件中的 route命令。
正如前面所描述的那样,路由守护程序将选路策略( &routing policy )加入到系统中,选 择路由并加入到内核的路由表中。如果守护程序发现前往同一信宿存在多条路由,那么它
(以某种方法)将选择最佳路由并加入内核路由表中。如果路由守护程序发现一条链路已经断 开(可能是路由器崩溃或电话线路不好),它可以删除受影响的路由或增加另一条路由以绕过 该问题。
在像Internet这样的系统中,目前采用了许多不同的选路协议。 Internet是以一组自治系统 (AS,AutonomousSystem)的方式组织的,每个自治系统通常由单个实体管理。常常将一个公 司或大学校园定义为一个自治系统。 NSFNET的Internet骨干网形成一个自治系统,这是因为骨干网中的所有路由器都在单个的管理控制之下。
每个自治系统可以选择该自治系统中各个路由器之间的选路协议。这种协议我们称之为 内部网关协议 IGP(Interior Gateway Protocol)或域内选路协议(intradomain routing protocol)。
最常用的 IGP是选路信息协议 RIP。一种新的 IGP是开放最短路径优先 OSPF( Open ShortestPath First )协议。它意在取代 RIP。另一种 1986年在原来 NSFNET骨干网上使用的较早的 IGP 协议—HELLO,现在已经不用了。
新的 RFC [Almquist 1993] 规定,实现任何动态选路协议的路由器必须同时支持
OSPF和RIP,还可以支持其他IGP协议。
外部网关协议EGP(Exterier Gateway Protocol)或域内选路协议的分隔选路协议用于不同自治系统之间的路由器。在历史上,(令人容易混淆)改进的EGP有着一个与它名称相同的 协议:EGP。新EGP是当前在 NSFNET骨干网和一些连接到骨干网的区域性网络上使用的是边界网关协议 BGP(Border Gateway Protocol)。BGP意在取代 EGP。
10.3&Unix选路守护程序
Unix系统上常常运行名为routed路由守护程序。几乎在所有的 TCP/IP实现中都提供该程 序。该程序只使用 RIP进行通信,我们将在下一节中讨论该协议。这是一种用于小型到中型网络中的协议。
另一个程序是 gated。IGP和EGP都支持它。 [Fedor 1998]描述了早期开发的 gated。图
10-1对routed和两种不同版本的 gated所支持的不同选路协议进行了比较。大多数运行路由 守护程序的系统都可以运行 routed,除非它们需要支持 gated所支持的其他协议。
gated, 版本2 gated, 版本3
内部网点协议
外部网点协议
图10-1& &routed 和gated 所支持的选路协议
我们在下一节中描述RIP&版本1,10.5节描述它与RIP版本2的不同点,10.6节描述OSPF,
10.7节描述 BGP。
10.4&& RIP:选路信息协议
本节对RIP进行了描述,这是因为它是最广为使用(也是最受攻击)的选路协议。对于 RIP
的正式描述文件是 RFC 1058 [Hedrick 1988a],但是该RFC是在该协议实现数年后才出现的。
10.4.1&& 报文格式
RIP报文包含中在UDP数据报中,如图10-2所示(在第11章中对UDP进行更为详细的描述)。
图10-3 给出了使用 IP地址时的 RIP报文 格式。
命令字段为 1表示请求, 2表示应答。还
有两个舍弃不用的命令( 3和4),两个非正
首部&&&&&&&&&&&&&& 首部
式的命令:轮询( 5)和轮询表项( 6)。请
求表示要求其他系统发送其全部或部分路由
20字节&&&&&&&&&& 8字节
图10-2&& 封装在UDP数据报中的RIP报文
表。应答则包含发送者全部或部分路由表。
版本字段通常为 1,而第 2版RIP(10.5节)将此字段设置为 2。 紧跟在后面的20字节指定地址系列(address family)(对于IP地址来说,其值是2)、IP地
址以及相应的度量。在本节的后面可以看出, RIP的度量是以跳计数的。
采用这种 20字节格式的 RIP报文可以通告多达 25条路由。上限 25是用来保证 RIP报文的总 长度为 20×25 + 4 = 504 ,小于 512字节。由于每个报文最多携带 25个路由,因此为了发送整 个路由表,经常需要多个报文。
命令&&&&&&&&&&&&&&&&&&&&&&& 版本&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& (必须为0)
地址系列(2)
32位IP地址
(必须为0)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 字节
度量(1-16)
(最多可有24个另外的路由,与前20字节具有相同的格式)
10.4.2&& 正常运行
让我们来看一下采用RIP协议的routed程序正常运行的结果。RIP常用的UDP端口号是520。
o 初始化:在启动一个路由守护程序时,它先判断启动了哪些接口,并在每个接口上发送 一个请求报文,要求其他路由器发送完整路由表。在点对点链路中,该请求是发送给其他终点的。如果网络支持广播的话,这种请求是以广播形式发送的。目的&UDP端口号是
520(这是其他路由器的路由守护程序端口号)。
这种请求报文的命令字段为 1,但地址系列字段设置为 0,而度量字段设置为 16。这是一 种要求另一端完整路由表的特殊请求报文。
o 接收到请求。如果这个请求是刚才提到的特殊请求,那么路由器就将完整的路由表发送 给请求者。否则,就处理请求中的每一个表项:如果有连接到指明地址的路由,则将度量设置成我们的值,否则将度量置为 16(度量为 16是一种称为“无穷大”的特殊值,它 意味着没有到达目的的路由)。然后发回响应。
o 接收到响应。使响应生效,可能会更新路由表。可能会增加新表项,对已有的表项进行 修改,或是将已有表项删除。
o &定期选路更新。每过 30秒,所有或部分路由器会将其完整路由表发送给相邻路由器。发 送路由表可以是广播形式的(如在以太网上),或是发送给点对点链路的其他终点的。
o 触发更新。每当一条路由的度量发生变化时,就对它进行更新。不需要发送完整路由表, 而只需要发送那些发生变化的表项。
每条路由都有与之相关的定时器。如果运行 &RIP的系统发现一条路由在 3分钟内未更新, 就将该路由的度量设置成无穷大( 16 ),并标注为删除。这意味着已经在 6个30秒更新时间里 没收到通告该路由的路由器的更新了。再过 60秒,将从本地路由表中删除该路由,以保证该 路由的失效已被传播开。
10.4.3& &度量
RIP所使用的度量是以跳 (hop)计算的。所有直接连接接口的跳数为 1。考虑图 10-4所示的 路由器和网络。画出的4条虚线是广播 RIP
路由器 R1通过发送广播到 N1通告它与 N 2 之间的跳数是 1(发送给 N 1 的广播中通 告它与 N1之间的路由是无用的)。同时也通 过发送广播给 N2通告它与 N1之间的跳数为
1。同样, R2通告它与 N2的度量为 1,与N3
的度量为 1。 如果相邻路由器通告它与其他网络路
经过R2到N3的一
条跳数为2的路由
图10-4&& 路由器和网络示例
经过R1到N1的一 条跳数为2的路由
由的跳数为 1,那么我们与那个网络的度量就是 2,这是因为为了发送报文到该网络,我们必 须经过那个路由器。在我们的例子中, R2到N1的度量是 2,与R1到N3的度量一样。
由于每个路由器都发送其路由表给邻站,因此,可以判断在同一个自治系统 AS内到每个 网络的路由。如果在该AS内从一个路由器到一个网络有多条路由,那么路由器将选择跳数最 小的路由,而忽略其他路由。
跳数的最大值是 15,这意味着 RIP只能用在主机间最大跳数值为 15 的AS内。度量为 16表 示到无路由到达该IP地址。
10.4.4& &问题
这种方法看起来很简单,但它有一些缺陷。首先, RIP没有子网地址的概念。例如,如果 标准的B类地址中16 bit的主机号不为 0,那么RIP无法区分非零部分是一个子网号,或者是一个 主机地址。有一些实现中通过接收到的 RIP信息,来使用接口的网络掩码,而这有可能出错。
其次,在路由器或链路发生故障后,需要很长的一段时间才能稳定下来。这段时间通常 需要几分钟。在这段建立时间里,可能会发生路由环路。在实现 RIP时,必须采用很多微妙的 措施来防止路由环路的出现,并使其尽快建立。 RFC 1058 [Hedrick 1988a] 中指出了很多实现 RIP的细节。
采用跳数作为路由度量忽略了其他一些应该考虑的因素。同时,度量最大值为 15则限制 了可以使用 RIP的网络的大小。
10.4.5&& 举例
我们将使用 ripquery程序来查询一些路由器中的路由表,该程序可以从 gated中得到。
ripquery程序通过发送一个非正式请求(图 10-3中命令字段为 5的“ poll”)给路由器,要求
得到其完整的路由表。如果在 5秒内未收到响应,则发送标准的 RIP请求( command字段为 1)
(前面提到过的,将地址系列字段置为 0,度量字段置为 16的请求,要求其他路由器发送其完 整路由表)。
图 1 0 - 5 给出了将从 sun主机上查询其路由表的两个路由器。如果在主机&&&& sun上执行
ripquery程序,以得到其下一站路由器 netb的选路信息,那么可以得到下面的结果:
sun % ripquery -n netb
504 bytes from netb (140.252.1.183): 第一份报文包含 504字节 这里删除了许多行
140.252.1.0, metric 1&&&&&&&&& 图10-5中上面的以太网
140.252.13.0, metric 1&&&&&&&& 图10-5中下面的以太网
244 bytes from netb (140.252.1.183): 第二份报文包含剩下的 244字节下面删除了许多行
正如我们所猜想的那样,netb告诉我们子网的度量为 1。另外,与 netb相连的位于机端 的以太网(140.252.1.0)的metric也是1(- n参数表示
直接打印IP 地址而不需要去查看其域名)。在本例中 将netb配置成认为所有位于 140.252.13子网的主机都与 其直接相连— 即, ne t b 并不知道哪些主机真正与
140.252.13子网相连。由于与 140.252.13 子网只有一个 连接点,因此,通告每个主机的度量实际上没有太大意 义。
图 1 0 - 6 给出了使用 tcpdump交换的报文。采用 - i s10选项指定 SLIP接口。
第1个请求发出一个 RIP轮询命令(第 1行)。这个请 求在 5 秒后超时,发出一个常规的 &R I P 请求(第 2 行)
第1行和第 2行最后的 24 表示请求报文的长度: 4个字节 的 R I P首部(包括命令和版本),然后是单个 2 0字节的 地址和度量。
图10-5&& 查询其路由表内容的两个 路由器netb 和gateway
第3行是第一个应答报文。该行最后的 25表示包含了 25个地址和度量对,我们在前面已经 计算过,其字节数为 504。这是上面的 ripquery程序所打印出来的结果。我们为 tcpdump程 序指定 -s600选项,以让它从网络中读取 600个字节。这样,它可以接收整个 UDP数据报(而 不是报文的前半部),然后打印出 RIP响应的内容。该输出结果省略了。
图10-6&& 运行ripquery 程序的tcpdump 输出结果
第4行是来自路由器的第二个响应报文,它包含后面的 12个地址和度量对。可以计算出该 报文的长度为 12×20 + 4=244,这正是 ripquery程序所打印出来的结果。
如果越过 netb路由器,到 gateway,那么可以预测到我们子网( 140.252.13.0)的度量 为2。可以运行下面的命令来进行验证:
sun % ripquery-n gateway
504 bytes from gateway (140.252.1.4):
这里删除了许多行
140.252.1.0, metric 1&&&&&& 图10-5上面的以太网
140.252.13.0, metric 2&&&&&&&&&&&&&&& 图10-5下面的以太网
这里,位于图 10-5上面的以太网( 140.252.1.0)的度量依然是 1,这是因为该以太网直接 与gateway和netb相连。而我们的子网 140.252.13.0正如预想的一样,其度量为 2。
10.4.6& &另一个例子
现在察看以太网上所有非主动请求的RIP更新,以看一看RIP定期给其邻站发送的信息。图10-7 是noao.edu网络的多种排列情况。为了简化,我们不用本文其他地方所采用的路由器表示方式, 而以Rn来代表路由器,其中n是子网号。以虚线表示点对点链路,并给出了这些链路对端的IP地址。
图10-7&& noao.edu 140.252的多个网络
在主机 solaris上运行 Solaris 2.x 的snoop程序,它与 tcpdump相类似。我们可以在不 需要超用户权限的条件下运行该程序,但它只捕获广播报文、多播报文以及发送给主机的报 文。图 10-8给出了在 60秒内所捕获的报文。在这里,我们将大部分正式的主机名以 Rn来表示。
-P标志以非混杂模式捕获报文,- tr打印出相应的时戳,而 udp& port&&& 5只2捕0 获信源 或信宿端口号为 520的UDP数据报。
来自R6、R4、R2、R7、R8和R3的前6个报文,每个报文只通告一个网络。查看这些报文, 可以发现 R2通告前往 140.252.6.0的跳数为 1的一条路由, R4通告前往 140.252.4.0的跳数为 1的 一条路由,等等。
但是, gateway路由器却通告了 15条路由。我们可以通过运行 snoop程序时加上- v参数 来查看 RIP报文的全部内容(这个标志输出全部报文的全部内容:以太网首部、 &IP首部、 UDP 首部以及 RIP报文。我们只保留了 RIP信息而删除了其他信息)。图10-9给出了输出结果。
图10-8&& solaris 在60秒内所捕获到的RIP广播报文
把这些子网 140.252.1上通告报文经过的路由与图 10-7中的拓扑结构进行比较。 使人迷惑不解的一个问题是为什么图 10-8输出结果中, R10通告其有 4个网络而在图 10-7
中显示的只有 3个。如果查看带 snoop的RIP报文,就会得到以下通告路由:
140.251.0.0
16 (not reachable)
140.252.9.0
140.252.10.0
140.252.11.0
前往B类网络140.251的路由是假的,不应该通告它(它属于其他机构而不是 noao.edu)。
删去许多行
图10-9&& 来自gateway 的RIP响应
图10-8中,对于&R10发送的RIP报文,snoop输出“ BROADCAST”符号,它表示目的IP
地址是有限的广播地址 255.255.255.255(12.2节),而不是其他路由器用来指向子网的广播地
址(140.252.1.255)。
10.5&& RIP版本2
RFC 1388 [Malkin 1993a] 中对 RIP定义进行了扩充,通常称其结果为 RIP-2。这些扩充并 不改变协议本身,而是利用图 10-3中的一些标注为“必须为 0”的字段来传递一些额外的信息。 如果RIP忽略这些必须为 0的字段,那么, RIP和RIP-2可以互操作。
图10-10重新给出了由 RIP-2定义的图。对于 RIP-2来说,其版本字段为 2。
命令(1-6)&&&&&&&&&&&&&&&&& 版本(2)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 路由域
32位IP地址
32位子网掩码
32位下一站IP地位
度量(1-16)
(最多超过24个路由,与前20字节具有相同的格式)
图10-10&& RIP-2报文格式
选路域 (routing domain) 是一个选路守护程序的标识符,它指出了这个数据报的所有者。 在一个 Unix实现中,它可以是选路守护程序的进程号。该域允许管理者在单个路由器上运行 多个RIP实例,每个实例在一个选路域内运行。
选路标记 (routing tag) 是为了支持外部网关协议而存在的。它携带着一个 EGP和BGP的自 治系统号。
每个表项的子网掩码应用于相应的 IP地址上。下一站 IP地址指明发往目的 IP地址的报文该 发往哪里。该字段为 0意味着发往目的地址的报文应该发给发送 RIP报文的系统。
RIP-2提供了一种简单的鉴别机制。可以指定 RIP报文的前 20字节表项地址系列为 0xffff , 路由标记为 2。表项中的其余 16字节包含一个明文口令。
最后, RIP-2除了广播(第 12章)外,还支持多播。这可以减少不收听 RIP-2报文的主机 的负载。
10.6&& OSPF:开放最短路径优先
OS P F 是除RI P 外的另一个内部网关协议。它克服了& &R I P 的所有限制。 RFC &1247&[Moy
1991]中对第 2版OSPF进行了描述。
与采用距离向量的 RIP 协议不同的是, OSPF 是一个链路状态协议。距离向量的意思是,
RIP发送的报文包含一个距离向量(跳数)。每个路由器都根据它所接收到邻站的这些距离向
量来更新自己的路由表。
在一个链路状态协议中,路由器并不与其邻站交换距离信息。它采用的是每个路由器主 动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出去。每个路由器接收这些链路状态信息,并建立起完整的路由表。
从实际角度来看,二者的不同点是链路状态协议总是比距离向量协议收敛更快。收敛的 意思是在路由发生变化后,例如在路由器关闭或链路出故障后,可以稳定下来。&&& &[ P e r l m a n
1992]的9.3节对这两种类型的选路协议的其他方面进行了比较。
OSPF与RIP(以及其他选路协议)的不同点在于, OSPF直接使用 IP。也就是说,它并不 使用UDP或TCP。对于 IP首部的 protocol字段, OSPF有其自己的值(图 3-1)。
另外,作为一种链路状态协议而不是距离向量协议, OSPF还有着一些优于 RIP的特点。
1) OSPF 可以对每个 IP 服务类型(图 3-2)计算各自的路由集。这意味着对于任何目的, 可以有多个路由表表项,每个表项对应着一个 IP服务类型。
2) 给每个接口指派一个无维数的费用。可以通过吞吐率、往返时间、可靠性或其他性能 来进行指派。可以给每个 IP服务类型指派一个单独的费用。
3) 当对同一个目的地址存在着多个相同费用的路由时,OSPF在这些路由上平均分配流量。 我们称之为流量平衡。
4) OSPF 支持子网:子网掩码与每个通告路由相连。这样就允许将一个任何类型的 &IP地址 分割成多个不同大小的子网(我们在 &3.7 节中给出了这样的一个例子,称之为变长度子网)。 到一个主机的路由是通过全 1子网掩码进行通告的。默认路由是以 IP地址为 0.0.0.0、网络掩码 为全0进行通告的。
5) 路由器之间的点对点链路不需要每端都有一个 IP地址,我们称之为无编号网络。这样 可以节省 IP地址—现在非常紧缺的一种资源。
6) 采用了一种简单鉴别机制。可以采用类似于 RIP-2机制( 10.5节)的方法指定一个明文 口令。
7) OSPF 采用多播(第 12章),而不是广播形式,以减少不参与 OSPF的系统负载。 随着大部分厂商支持 OSPF,在很多网络中 OSPF将逐步取代 RIP。
10.7&& BGP:边界网关协议
BGP是一种不同自治系统的路由器之间进行通信的外部网关协议。 BGP是ARPANET所使 用的老 EGP的取代品。 RFC1267[Lougheed and Rekhter 1991] 对第3版的BGP进行了描述。
RFC1268 [Rekhter and Gross 1991] 描述了如何在 Internet中使用 BGP。下面对于 BGP的大 部分描述都来自于这两个 RFC文档。同时, 1993年开发第 4版的 BGP (见 RFC 1467 [Topolcic
1993]),以支持我们将在 10.8节描述的 CIDR。
BGP系统与其他 BGP系统之间交换网络可到达信息。这些信息包括数据到达这些网络所 必须经过的自治系统 AS中的所有路径。这些信息足以构造一幅自治系统连接图。然后,可以 根据连接图删除选路环,制订选路策略。
首先,我们将一个自治系统中的 IP数据报分成本地流量和通过流量。在自治系统中,本 地流量是起始或终止于该自治系统的流量。也就是说,其信源 &IP 地址或信宿 IP地址所指定的 主机位于该自治系统中。其他的流量则称为通过流量。在 &Internet中使用 BGP的一个目的就是
减少通过流量。 可以将自治系统分为以下几种类型:
1) 残桩自治系统 (stub AS),它与其他自治系统只有单个连接。 stub AS只有本地流量。
2) 多接口自治系统 (multihomed AS) ,它与其他自治系统有多个连接,但拒绝传送通过流量。
3) 转送自治系统 (transit AS) ,它与其他自治系统有多个连接,在一些策略准则之下,它可以传送本地流量和通过流量。
这样,可以将 Internet的总拓扑结构看成是由一些残桩自治系统、多接口自治系统以及转 送自治系统的任意互连。残桩自治系统和多接口自治系统不需要使用 BGP——它们通过运行 EGP在自治系统之间交换可到达信息。
BGP允许使用基于策略的选路。由自治系统管理员制订策略,并通过配置文件将策略指 定给 BGP。制订策略并不是协议的一部分,但指定策略允许 &BGP 实现在存在多个可选路径时 选择路径,并控制信息的重发送。选路策略与政治、安全或经济因素有关。
BGP与RIP和OSPF的不同之处在于 BGP使用TCP作为其传输层协议。两个运行 BGP的系统 之间建立一条 TCP连接,然后交换整个 BGP路由表。从这个时候开始,在路由表发生变化时, 再发送更新信号。
BGP是一个距离向量协议,但是与(通告到目的地址跳数的) RIP不同的是, BGP列举了 到每个目的地址的路由(自治系统到达目的地址的序列号)。这样就排除了一些距离向量协议的问题。采用 16 bit 数字表示自治系统标识。
BGP通过定期发送 keepalive报文给其邻站来检测 TCP连接对端的链路或主机失败。两个报 文之间的时间间隔建议值为 30秒。应用层的 keepalive报文与 TCP 的keepalive选项(第 23章) 是独立的。
10.8&& CIDR:无类型域间选路
在第 3章中,我们指出了 B类地址的缺乏,因此现在的多个网络站点只能采用多个 &C类网 络号,而不采用单个B类网络号。尽管分配这些 C类地址解决了一个问题( B类地址的缺乏), 但它却带来了另一个问题:每个 C类网络都需要一个路由表表项。无类型域间选路( &CIDR) 是一个防止 Internet 路由表膨胀的方法,它也称为超网( supernetting)。在 RFC 1518 [Rekherand Li 1993] 和RFC
1519 [Fuller et al. 1993] 中对它进行了描述,而 [Ford, Rekhter, and Braun
1993]是它的综述。 CIDR有一个 Internet Architecture Board ’s blessing [Huitema 1993] 。RFC
1467 [Topolcic 1993] 对Internet中CIDR的开发状况进行了小结。
CIDR的基本观点是采用一种分配多个 IP地址的方式,使其能够将路由表中的许多表项总 和(summarization)成更少的数目。例如,如果给单个站点分配 16个C类地址,以一种可以用总 和的方式来分配这 16个地址,这样,所有这 16个地址可以参照 Internet 上的单个路由表表项。 同时,如果有 8个不同的站点是通过同一个 Internet服务提供商的同一个连接点接入 Internet的, 且这 8个站点分配的 8个不同
IP地址可以进行总和,那么,对于这 8个站点,在 Internet上,只需 要单个路由表表项。
要使用这种总和,必须满足以下三种特性:
1) 为进行选路要对多个 IP地址进行总和时,这些 IP地址必须具有相同的高位地址比特。
2) 路由表和选路算法必须扩展成根据 32 bit IP 地址和 32 bit掩码做出选路决策。
3) 必须扩展选路协议使其除了 32 bit地址外,还要有 32 bit掩码。 OSPF(10.6节)和 RIP-2
(10.5节)都能够携带第 4版BGP所提出的 32 bit掩码。
例 如 , RFC &1466&[Gerich &1993]&建 议 欧 洲 新 的 C 类 地 址 的 范 围 是 1 9 4 . 0 . 0 . 0 ~
195.255.255.255。以16进制表示,这些地址的范围是 0xcxc3ffffff。它代表了 65536 个不同的 C类网络号,但它们地址的高 7 bit 是相同的。在欧洲以外的国家里,可以采用 IP地址 为0xc bit 0xfe4.0.0.0) 为掩码的单个路由表表项来对所有这些 65536个 C类网络号选路到单个点上。 C类地址的后面各比特位(即在 194或195后面各比特)也可以进
行层次分配,例如以国家或服务提供商分配,以允许对在欧洲路由器之间使用除了这 &32 bit 掩 码的高 7 bit 外的其他比特进行概括。
CIDR同时还使用一种技术,使最佳匹配总是最长的匹配:即在 &32 bit 掩码中,它具有最 大值。我们继续采用上一段中所用的例子,欧洲的一个服务提供商可能会采用一个与其他欧 洲服务提供商不同的接入点。如果给该提供商分配的地址组是从 194.0.16.0到194.0.31.255 (16 个 C 类网络号 ) ,那么可能只有这些网络的路由表项的&&& &I P 地址是 1 9 4 . 0 . 1 6 . 0 ,掩码为
255.255.240.0 (0xfffff000)。发往 194.0.22.1地址的数据报将同时与这个路由表表项和其他欧洲 C类地址的表项进行匹配。但是由于掩码 255.255.240比254.0.0.0更“长”,因此将采用具有更 长掩码的路由表表项。
“无类型”的意思是现在的选路决策是基于整个 32 bit IP 地址的掩码操作,而不管其 IP地 址是A类、B类或是 C类,都没有什么区别。
CIDR最初是针对新的 C类地址提出的。这种变化将使 Internet路由表增长的速度缓慢下来, 但对于现存的选路则没有任何帮助。这是一个短期解决方案。作为一个长期解决方案,如果将 CIDR应用于所有 IP地址,并根据各洲边界和服务提供商对已经存在的 IP地址进行重新分配(且所有现有主机重新进行编址!),那么[Ford, Rekhter, and Braun 1993] 宣称,目前包含 10 000网 络表项的路由表将会减少成只有
200个表项。
10.9 &小结
有两种基本的选路协议,即用于同一自治系统各路由器之间的内部网关协议( IGP)和用 于不同自治系统内路由器通信的外部网关协议( EGP)。
最常用的 IGP是路由信息协议( RIP),而OSPF是一个正在得到广泛使用的新 IGP。一种新 近流行的 EGP是边界网关协议( BGP)。在本章中,我们讨论了 RIP及其交换的报文类型。第 2 版RIP是其最近的一个改进版,它支持子网,还有一些其他改进技术。同时也对 OSPF、BGP 和无类型域间选路( CIDR)进行了描述。 CIDR是一种新技术,可以减小 Internet路由表的大 小。
你可能还会遇到一些其他的 OSI选路协议。域间选路协议( IDRP)最开始时,是一个为 了使用 OSI地址而不是 IP地址,而进行修改的 BGP版本。 Intermediate System to IntermediateSystem 协议( IS-IS)是OSI的标准IGP。可以用它来选路CLNP(无连接网络协议),这是一 种与IP类似的OSI协议。IS-IS和OSPF相似。
动态选路仍然是一个网间互连的研究热点。对使用的选路协议和运行的路由守护程序进 行选择,是一项复杂的工作。 [Perlman 1992]提供了许多细节。
10.1& &在图10-9中哪些路由是从路由器 kpno进入gateway的?
10.2& &假设一个路由器要使用 RIP通告30个路由,这需要一个包含 25条路由和另一个包含 5条路 由的数据报。如果每过一个小时,第一个包含 25条路由的数据报丢失一次,那么其结果 如何?
10.3& &OSPF报文格式中有一个检验和字段,而 RIP报文则没有此项,这是为什么?
10.4& &像OSPF这样的负载平衡,对于传输层的影响是什么?
10.5& &查阅RFC1058 关于实现 RIP的其他资料。在图 10-8中,140.252.1网络的每个路由器只通 告它所提供的路由,而它并不能通过其他路由器的广播中知道任何其他路由。这种技术 的名称是什么?
10.6 在3.4节中,我们说过除了图10-7中所示的8个路由器外,140.252.1子网上还有超过100个主 机。那么这100个主机是如何处理每30秒到达它们的8个广播信息呢(图10-8)?
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1675326次
积分:23577
积分:23577
排名:第190名
原创:500篇
转载:316篇
译文:43篇
评论:1040条
技术 | 交流 | 娱乐 可以加下博主的群--
<font color="#FF901
大家没事可以在群里闲聊Android, IOS,C/C++, Linux等技术问题,心得,学习体会等
PS:博主仍是计算机行业的一名小学生
文章:52篇
阅读:80630
文章:38篇
阅读:82205
文章:32篇
阅读:47901
文章:33篇
阅读:46678
文章:21篇
阅读:53229
阅读:41470
阅读:50470
文章:56篇
阅读:213355
文章:20篇
阅读:34946
文章:15篇
阅读:29402
文章:30篇
阅读:147995
文章:28篇
阅读:129433}

我要回帖

更多关于 tcp加密方式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信