TCP IP路由技术(第一卷)(第二版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-29 12:48:54

点击下载

作者:[美]Jeff Doyle

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

TCP IP路由技术(第一卷)(第二版)

TCP IP路由技术(第一卷)(第二版)试读:

前言

路由技术即使在最小的数据通信网络中也是基本的要素。在某种程度上,路由技术和路由器的配置是相当简单的。但是,当网络的规模越来越大,并且越来越复杂的时候,路由选择问题就变得比较突出和难以控制了。或许,有点不恰当地说,作为一名网络系统顾问,我应该感谢当前出现的大规模路由技术难题,这些问题给了我谋生的手段。假设没有它们,“你何以为生?”这句习语可能就会不幸地成为我每天生活词汇的一部分了。

Cisco认证互联网专家(CCIE)在大型网络的设计、故障排除和管理能力方面得到广泛的认同。这种广泛的认同来自于这样一个事实:一个网络工作人员仅仅依赖参加一些课程的培训,并反复依赖记忆一些书面测试的内容是不可能成为一名CCIE的。一名CCIE必须通过一个众所周知、难度非常大的、并且需要亲自动手操作的实验室考试,从而使他或者她的专业技能得到提高。本书的目标

本书是专门讨论TCP/IP路由问题的两卷书中的第一本。在早期撰写本书的第一版时,Cisco Systems的前CCIE项目经理Kim Lew说过:“我们的目标是使人们成为CCIE,而不是使人们通过CCIE实验室考试。”作者完全赞同这种观点,并且把它作为一种指导原则贯穿到本书的写作当中。虽然这本书包括了很多案例研究和练习可以帮助读者准备CCIE实验室考试,但是作者的主要目的还是提高读者对IP路由技术的理解——能有一个普通的水平并能够在Cisco的路由器上进行实现。读者对象

本书的读者可以是任何需要完整理解TCP/IP内部路由选择协议的网络设计人员、管理人员或者工程人员。虽然本书的具体实践方面针对Cisco IOS,但是本书的内容也可以应用于

任何路由选择平台。

这本书不仅仅是写给那些计划成为Cisco认证互联网专家的读者阅读的,而且是写给任何希望提高自己的TCP/IP路由技能的读者。这些读者可以划分为以下三类:● “初学者”——具有基本的网络知识,并且希望开始深入学

习网络互连的读者;● 中级水平的网络专业人员——具有一定的路由器(Cisco或

其他厂商的产品)操作经验,并且计划提高自己的技能达到专家

水平的读者;● 经验丰富的网络专家——这些读者具有丰富和广泛的Cisco

路由器的实践经验和专业技能,并且准备参加CCIE实验室考

试。但是,这类读者需要自己制定一个复习表和一系列检验与确

认自己技能的练习。

本书主要面向具有中级水平的网络专业人员。同时,对于初学者,本书提供了一个网络基本知识的概要。而对于网络方面的专家而言,本书也提供了一些磨炼他们的专业技能所需要的挑战性内容。对第一版所做的改动

第二版所进行的改动受到几个因素的影响。第一个因素是CCIE本身。当笔者撰写本书的第一版的时候,CCIE——现在称为路由选择与交换专业的CCIE——还是Cisco公司提供的惟一的认证考试。目前,已经形成了将CCIE作为塔尖的认证途径的一系列认证。此外,标准的网络互连专业人员也要比1997年具备更多的知识。考虑到这一点,我们删除了原书的第一章,其中包括网桥、路由器和网络地址的最基本的概念(读者在网络中看到网桥设备的最后时间是什么时候?)。

影响本书第二版所做变化的第二个因素是Cisco公司的IOS软件系统的变化。在撰写本书第一版的时候,IGRP协议还经常使用,而现在它已经是一个过时的协议,存在的主要意义就是作为EIGRP协议的前身。因此,在第二版中删除了有关IGRP协议的章节,并在讲述EIGRP协议的章节中将IGRP协议作为历史回顾的一部分来讲述。IOS软件系统的命令集本身也进行了扩展,以便适应新的功能和选项;我们也增加了在20世纪90年代后期还不存在的协议扩展和命令。

最后,IPv6协议在1997年还主要是建议草案,现在却已经处于全球部署的早期阶段了。读者需要了解有关这个协议更为细节的知识,以及在不远的将来支持IPv6的IP路由选择协议扩展方面所需要的知识;如果读者还没有准备好,那么本书深入地探讨了IPv6的路由选择技术。

这个版本的其他一些变化是语法和语义方面的。例如,在第一版中,笔者对作为数据链路的“网络”和作为由路由器连接的网络集的“互连网络”进行了区分。虽然这些术语的确很精确,但也有些呆板,现在已经很少使用“互连网络”这样的术语了。相反,“网络”经常用来表示从本地链路到像Level 3、NTT和Sprint这样的全球自主系统的网络。我们尝试在这个新的版本中带给读者比较现代和通用的术语描述。本书的内容组织

本书共有14章,分为3个部分。

第一部分“路由选择的基本知识”介绍了IPv4协议和IPv6协议的基本知识,以及路由技术的基本概念。虽然一些水平较高的读者可能希望跳过第1章,但是我建议这些读者至少应该浏览一下第3章“静态路由”和第4章“动态路由选择协议”的内容。当然,如果读者还不熟悉IPv6协议的话,也必须阅读第2章“IPv6介绍”。

第二部分“内部路由选择协议”包括了IP路由选择的各种内部网关协议。针对具体协议的每一章都是从该协议的基本原理、实现机制以及参数讲解开始的,并在读者对该协议有了一个总体的了解后,接着通过多个不同的网络拓扑环境中的案例研究,详细地讲述了该协议在Cisco路由器上的配置和故障诊断方法。

外部网关协议,BGP协议,还有组播路由选择、服务质量保证、路由器的安全与管理以及网络地址转换等一些主题,将在“TCP/IP路由技术 第二卷”中介绍。

第三部分“路由控制和互操作性”介绍了多种有效的工具,用来创建和管理多个IP路由选择协议的互操作性,例如缺省路由、路由过滤等。同样地,最后部分的这些章节对创建复杂的路由选择策略所需的必要工具做了一个初步介绍,这些策略将会在本书卷二中详细介绍。这些章节和第二部分的章节一样,也是先从概念开始讲解,并以案例研究作为结束。本书的风格

大多数章节在结束时都配有一组复习题、配置练习和故障诊断练习。复习题主要侧重于每章主题的基本理论方面,而配置和故障诊断练习主要侧重于每章主题在Cisco设备上的实际实现。

在每章末尾还列出了一张命令总结表,简要介绍了在这一章中使用到的Cisco IOS中的所有重要命令。这些命令使用的惯例和Cisco IOS命令参考中使用的惯例是一样的。本书使用的图标命令语法约定

本书在介绍命令语法时使用的约定与《IOS命令参考手册》相同,这些约定如下:● 粗体字表示实际需要键入的命令和关键字,在实际的配置示

例和输出信息(不是一般的命令语法)中,粗体字表示用户手工

输入的命令(例如show命令);● 斜体字表示需要用实际数值替换的参数;● 竖线(|)表示在几个选项中选择一项,并且这些项是互相

排斥的;● 方括号[ ]表示可选的参数;● 大括号{}表示一个必需的选项;● 方括号内嵌大括号[{}]表示在一个可选项中的必选项。

译者注:本书第一版出版后,受到了广大读者的关注与厚爱,译者收到许多读者的来信,本书新版对第一版中出现的错误进行了修正,在此感谢读者的批评指正,欢迎广大读者来信交流,译者E-mail:cfa35@126.com。第一部分路由选择的基本知识● 第1章 ICP/IP回顾● 第2章 IPv6概述● 第3章 静态路由● 第4章 动态路由选择协议第1章TCP/IP 回顾本章包括以下主题:● TCP/IP协议层;● IP包头(IP Packet Header);● IPv4地址;● 地址解析协议(ARP);● Internet控制消息协议(ICMP);● 主机到主机层。

考虑到这本书的书名是《TCP/IP路由技术》,有必要从回顾TCP/IP的基本知识开始讲起,然后再讲述如何进行TCP/IP路由选择。如果读者正在准备Cisco认证互连网专家(Cisco Certified Internetwork Expert,CCIE)的考试,或者仅仅把本书作为路由选择技术方面的参考书,那么读者大概已经了解了本章所要讲述的大部分内容。但是,如果读者阅读一下本章,作为对基本知识的复习也不是一件坏事,有时还会有所帮助。

本章主要回顾了启用、控制或帮助TCP/IP路由选择的协议,对TCP/IP协议簇并不作深入讨论。本章最后列出的几本参考读物均对TCP/IP进行了深入详细的讲解,读者可以至少选择其中的一本进行阅读。

早在20世纪70年代初期,Vint Cerf和Bob Kahn就对TCP/IP及其分层协议框架进行了构思,它的提出先于ISO的OSI参考模型。本章对TCP/IP协议层的简单回顾有助于读者理解TCP/IP的多种功能与服务是如何进行相互关联的。1.1 TCP/IP协议层[1]

图1-1展示了TCP/IP协议簇与OSI参考模型的相互关系。 在TCP/IP协议簇中,网络接口层对应于OSI的物理和数据链路层,但实际上在规范中并不存在这一层。如图1-1所示,作为对物理和数据链路层的表示,它已经成为事实上的一个层次。在本节中,我们将使用OSI的术语——物理和

数据链路层来描述它。图1-1 TCP/IP协议簇

物理层包含了多种与物理介质相关的协议,这些物理介质用以支撑TCP/IP通信。物理层的协议按照正式的分类可以分为4类,这4类涵盖了物理介质的所有方面:● 电子/光学协议——描述了信号的各种特性。例如,电压或光强

度、位定时、编码和信号波形。● 机械协议——规定了连接器的尺寸或导线的金属成分。● 功能性协议——描述了做什么。例如,在EIA-232-D连接器第4

管脚上的功能描述是“请求发送”。● 程序性协议——描述了如何做。例如,在EIA-232-D导线上,二

进制1表示电压小于−3V。

数据链路层包含了控制物理层的协议:如何访问和共享介质、怎样标识介质上的设备,以及在介质上发送数据之前如何完成数据成帧。典型的数据链路协议有IEEE 802.3/以太网、帧中继、ATM以及SONET。

Internet层与OSI的网络层相对应,主要负责定义数据包格式和地址格式,为经过逻辑网络路径的数据进行路由选择。当然,网络层也是本书内容涉及最多的一层。

与OSI传输层相对应的是主机到主机层,它指定了控制Internet层的协议,这就像数据链路层控制物理层一样。主机到主机层和数据链路层都定义了流控和差错控制机制。二者不同之处在于,数据链路层协议强调控制数据链路上的流量,即连接两台设备的物理介质上的流量;而传输层控制逻辑链路上的流量,即两台设备的端到端连接,这种逻辑连接可能跨越一连串数据链路。

应用层与OSI的会话层、表示层、应用层相对应。虽然一些路由选择协议使用这一层,例如边界网关协议(BGP)、路由选择信息协[2]议(RIP)等 ,但是应用层最常用的服务是向用户应用提供访问网络的接口。

对于图1-1中所示的协议簇和其他协议簇来说,各层之间多路复用是一个通用功能。许多应用可以使用主机到主机层的一个服务,同样许多主机到主机层的服务也可以使用Intenret层。多个协议簇(如IP、IPX、AppleTalk)还可以通过数据链路协议共享一条物理链路。1.2 IP包头

图1-2给出了IP包头(Packet Header)的格式,相应标准见RFC791。数据包中的大多数字段对路由选择都很重要。图1-2 IP数据包协议● 版本(Version)——标识了数据包的IP版本号。这个4位字段的

值设置为二进制的0100表示IP版本4(IPv4),设置为0110表示

IP版本6(IPv6)。本章主要涉及的是IPv4,在第2章中主要讲述

IPv6。在表1-1中列出了所有已分配的现行版本号及相关RFC。

除4和6(早期提出的简单Internet协议——即SIP协议,也使用版

本号6)之外,其他的所有版本号仅作为“历史产物”而存在,

感兴趣的读者可以阅读相关的RFC。表1-1 IP版本号版本号版本RFC0保留1~3未分配4Internet协议版本4(IPv4)7915ST数据报(Datagram)模式11906简单Internet协议(SIP)6IPv618837TP/IX14758P Internet协议(PIP)16219使用更大地址的TCP和UDP(TUBA)134710~14未分配15保留● 报头长度(header length)——字段长度为4位,正如字段名所

示,它表示32位字长的IP报头长度。设计报头长度字段是因为数

据包的可选项字段(在本节后面部分将会讨论)的大小会发生变

化。IP报头最小长度为20个八位组,最大可以扩展到60个八位组

——通过这个字段也可以描述32位字的最大长度。● 服务类型(Type of Service,ToS)——字段长度为8位,它用来

指定特殊的数据包处理方式。服务类型字段实际上被划分为两个

子字段:优先权和ToS。优先权用来设置数据包的优先级,这就

像邮寄包裹一样,可以是平信、隔日送到或两日内送到。ToS允

许按照吞吐量、时延、可靠性和费用方式选择传输服务。虽然

ToS字段通常不用(所有位均被设置为0),但是在开放式最短路

径优先(OSPF)协议的早期规范中还是称为ToS路由选择的。

优先权位偶尔在服务质量(QoS)应用中使用。图1-3的a部分简

要地说明了8个ToS位,更详细的信息可以参见RFC1340和

RFC1349。图1-3 服务类型字段(a)或区分服务和ECN(b)字段

在最近几年,ToS字段已经作为区分服务(Diffserv)架构的一部[3]分被重新定义了。1区分服务架构为IP数据包所创建的处理比通过相对严格的ToS定义所允许的处理灵活得多。 在DiffServ下,我们能够在一台路由器上定义服务分类,将数据包归类到这些分类中去。路由器可以根据它们的分类使用不同的优先级对数据包进行排序和转发。每一个排序和转发的处理称为一个Per-Hop Behavior(PHB)。虽然DiffServ定义了这个架构或体系,但这个机制本身称为区分服务类别或简单地称为服务类别(CoS)。

图1-3中的(b)部分显示了ToS字段是如何重新定义的,开始的6个位现在构成了区分代码点(DiffServ Code Point,DSCP)。利用这6个位,我们可以使用任意数值或根据在区分服务体系结构中预先定义的服务类别,最多可以定义64个不同的服务类别,并可整理到PHB中。请注意,在IP报头中的这个字段保留了8位;区分服务体系结构重新定义了路由器对这个字段中数值的解释。● 显式拥塞通知(Explicit Congestion Notification,ECN)——在

图1-3中的显式拥塞通知是某些路由器用来支持显式拥塞通知

的,当它支持该特性时,这些位可以用于拥塞信号(ECN=[4]

11)。● 总长度(Total Length)——数据包总长度字段的长度为16位,

以八位组为单位计,其中包括IP报头。 接收者用IP数据包总长

度减去IP报头长度,就可以确定数据包数据有效载荷的大小。16

位长的二进制数用十进制表示最大可以为65 535,所以IP数据包

的最大长度是65 535。● 标识符(Identifier)——字段长度为16位,通常与标记字段和分

段偏移字段一起用于数据包的分段。如果数据包原始长度超过数

据包所要经过的数据链路的最大传输单元(MTU),那么必须将

数据包分段为更小的数据包。例如,一个大小为5 000字节的数

据包在穿过网络时,如果遇到一条MTU为1 500字节的数据链路,

即数据帧最多容纳大小为1 500字节的数据包。路由器需要在数

据成帧之前将数据包分段成多个数据包,其中每个数据包长度不

得超过1 500字节;然后路由器在每片数据包的标识字段上打上

相同的标记,以便接收设备可以识别出属于一个数据包的分段。

[5]● 标记字段(Flag)——长度为3位,其中第1位没有使用。第2位

是不分段(DF)位。当DF位被设置为1时,表示路由器不能对

数据包进行分段处理。如果数据包由于不能被分段而未能被转发,

那么路由器将丢弃该数据包并向源点发送错误消息。这一功能可

以在网络上用于测试MTU值。参见示例1-1所示,在IOS软件系

统中,使用扩展Ping工具可以对DF位进行设置。

示例1-1 为了测试穿越网络的MTU值,IOS软件中的扩展Ping工具允许设置DF位。在ping的输出信息中,到达目的地172.16.113.17的路径的最大MTU为1 478字节  ● 第3位表示还有更多分段(MF)位,当路由器对数据包进行分段

时,除了最后一个分段的MF位设置为0外,其他所有分段的MF

位均设置为1,以便接收者直到收到MF位为0 的分段为止。● 分段偏移(Fragment Offset)——字段长度为13位,以8个八位[6]

组为单位,用于指明分段起始点相对于报头起始点的偏移量。

由于分段到达时可能错序,所以分段偏移字段可以使接收者按照

正确的顺序重组数据包。● 请注意,如果一个分段在传输中丢失,那么必须在网络中同一点

对整个数据包重新分段并重新发送。因此,容易发生故障的数据

链路会造成时延不成比例。另外,如果由于网络拥塞而造成分段

丢失,那么重传整组分段会进一步加重网络拥塞。● 生存时间(Time To Live,TTL)——字段长度为8位,在最初创

建数据包时TTL即被设置为某个特定值。当数据包逐个沿路由器

被传输时,每台路由器都会降低TTL的数值。当TTL值减为0

时,路由器将会丢弃该数据包并向源点发送错误信息。这种方法

可以防止数据包在网络上无休止地被传输。● 按照最初构想,TTL值以s(秒)为单位。如果数据包在路由器

上被延迟的时间超过1s,路由器将会相应地调整TTL值。然而,

这种方法实施起来十分困难,从来没有被广泛地支持。现代的路

由器不管实际时延是多少,统统将TTL值减1,所以TTL实际上是[7]

表示跳数。虽然TTL常见的值为15和32,但是建议的缺省值是

64。● 像IOS软件中的trace命令这样的一些追踪工具使用的是TTL字

段。如果路由器被告知需要追踪到达主机地址为10.11.12.13的路

径,路由器将发送3个数据包,其中TTL值被设置为1;第1台路

由器将会把TTL值减少到0,而且在丢弃数据包的同时向源点发

送错误信息。源点路由器通过阅读错误信息从而得知发送错误信

息的路由器即为路径上的第1台路由器。再一次被路由器发送的

3个数据包的TTL值被设置为2。第1台路由器将TTL值减1,第2台

路由器将TTL值再减1后为0,此时源点路由器将会接收到第2台

路由器发送来的错误信息。第3次发送的数据包TTL值被设置为3,

依此类推,直到目的地被发现。最终,沿着网络路径所有的路由

器都会被标识出来。示例1-2中显示了IOS软件中路由追踪的输出

结果。

示例1-2 追踪工具使用TTL字段来标识沿途路由器。星号表示超时数据包 ● 协议(Protocol)——字段长度为8位,它给出了主机到主机层

或传输层协议的“地址”或协议号,协议字段指定了数据包中信

息的类型。当前已分配了100多个不同的协议号,表1-2给出了其

中一些较常用的协议号。表1-2 一些众所周知的协议号协议号主机到主机层协议1Internet消息控制协议(ICMP)2Internet组管理协议(IGMP)4被IP协议封装的IP6传输控制协议(TCP)17用户数据报协议(UDP)45域间路由选择协议(IDRP)46资源预留协议(RSVP)47通用路由选择封装(GRE)54NBMA下一跳解析协议(NHRP)88Cisco Internet网关路由选择协议(IGRP)89开放式最短路径优先(OSPF)

 ● 报头校验和(Header Checksum)——是针对IP报头的纠错字

段。校验和不计算被封装的数据,UDP、TCP和ICMP都有各自

的校验和。报头校验和字段包含一个16位二进制补码和,这是

由数据包发送者计算得到的。接收者将连同原始校验和重新进行

16位二进制补码和计算。如果数据包传输中没有发生错误,那

么结果应该16位全部为1。回忆前面所述内容,由于每台路由器

都会降低数据包的TTL值,所以每台路由器都必须重新计算校验

和。RFC1141讨论了一些简化计算的策略。● 源地址和目的地址(Source and Destination Address)——字段

长度为32位,分别表示发送者数据包源点和目的地的IP地址。IP

地址的格式将会在1.3节中讨论。● 可选项(Options)——是一个长度可变的字段,并像其名字所

表示的,它是可选的。可选项被添加在包头中,包括源点产生的

信息和其他路由器加入的信息;可选项字段主要用于测试。常用

的可选项如下:● 松散源路由选择(Loose Source Routing)——它给出了一连串

路由器接口的IP地址序列。数据包必须沿着IP地址序列传送,但

是允许在相继的两个地址之间跳过多台路由器。● 严格源路由选择(Strict Source Routing)——它也给出了一系

列路由器接口的IP地址序列。不同于松散源路由选择,数据包必

要严格按照路由转发。如果下一跳不再列表中,那么将会发生错

误。● 记录路由(Record Route)——当数据包离开时为每台路由器提

供空间记录数据包的出站接口地址,以便保存数据包经过的所有

路由器的记录。记录路由选项提供了类似于路由追踪的功能,但

是不同点在于这里记录了双向路径上的出站接口信息。● 时间戳(Timestamp)——除了每台路由器还会记录一个时间戳

之外,时间戳选项十分类似于记录路由选项,这样数据包不仅可

以知道自己到过哪里,而且还可以记录到达的时间。

在Cisco路由器上使用扩展的Ping工具可以调用所有这些选项。示例1-1中使用了记录路由选项,示例1-3使用了松散源路由选择和时间戳选项,严格源路由选择选项在示例1-4中被使用。

示例1-3 使用Cisco的扩展Ping工具来设置IP报头中的可选项字段的各项参数。在这个例子中,用到了松散源路由选择选项和时间戳选项 

示例1-4 这里使用扩展Ping在ping数据包中设置严格源路由选择选项  ● 填充(Padding)——该字段通过在可选项字段后面添加0来补

足32位,这样保证报头长度是32位的倍数。

示例1-5显示了协议分析器捕获到的IP报头的信息。请与图1-2中的信息作一下比较。

示例1-5 在协议分析器的窗口中,可以看到IP包头各字段及每个字段的值 1.3 IPv4 地 址

IPv4地址长度为32位。像所有其他网络层地址一样,IPv4地址也包括网络号和主机号两部分。网络号部分惟一地标识了一条物理链路或逻辑链路,对于与该链路相连的所有设备来说网络号部分是共同的。而主机号部分惟一地标识了该链路上连接的具体设备。

有几种方式可以表示IP地址的32位。举例来说,32位的IP地址 00001010110101100101011110000011可以用十进制表示为181 819 267。

由此可见用二进制表示IP地址十分麻烦,而全部32位数字用十进制格式表示计算起来又很耗时。图1-4给出了一种更好的表示方法。

32位的地址包含4个字节,每个字节均可以用0~255之间的十进制数表示,而每个十进制数之间用点号分隔。在图1-4中,将32位的[8]地址映射到用点分十进制法表示的地址上。图1-4 虽然使用点分十进制表示法书写IP地址十分方便,但是不要将它与路由器(或主机)所看到的32位字符串混淆起来

在使用IPv4地址时需要记住一点,点分十进制表示法便于人们阅读和书写,而路由器更适合使用32位的二进制串,而不是按照4个八位组的方式读取地址。牢记这一点可以避免许多易犯的错误。如果读者没有接触过二进制数,特别是二进制与十进制之间的转换方法,那么建议读者在继续学习这一章的内容之前可以阅读一下附录A的内容。

IP地址与众不同的特性可能就是,IPv4地址不像其他网络层地址的网络号和主机号是固定不变的,IP地址的网络号和主机号可以在32位的界线内发生变化。也就是说,IP地址的网络号和主机号都有可能占据32位中的大多数位,也可能两者平分32位。例如NetWare和AppleTalk协议,由于它们主要用于相对较小的网络,所以协议的网络层地址的网络号和主机号长度是固定。这样的安排的确使得工作更加容易,接收设备可以从地址中读入固定的位来获取网络号,剩下的位便是主机号。

然而,TCP/IP从最初设计出来到现在可以灵活地应用于任何网络,从很简单的几个功能发展成为一个庞大的协议簇。TCP/IP这种适应性使得IP地址的管理更加困难。本节仅介绍了IP地址管理的一些基本内容,在第6章中将会介绍一些更高级的技术。1.3.1 首个八位组字节规则

如果不对网络作太过精确的划分,那么网络可以按照主机数量分为3类:大型网络、中型网络和小型网络。● 大型网络——可以定义为包含大量主机的网络。大型网络的数

量相对很少。● 小型网络——作为大型网络的对照,它仅仅包含很少数量的主

机,但小型网络的数目很多。● 中型网络——相对于大型和小型网络来说,包含的主机数量中

等,而且中型网络的数量也中等。

对于这3种规模的网络,高层的地址划分要求有3种类型的网络地址。面向大型网络的地址需要有能力为大量的主机编址,但是由于大型网络的数量有限,所以大型网络仅需要少量的网络地址。

而对小型网络来说情况又颠倒过来了,因为小型网络数量庞大,所以需要大量的小型网络的网络地址。但是小型网络主机有限,所以仅需要少量主机地址。

对于中等规模的网络来说,网络地址和主机地址的需求量均趋于中等水平。

图1-5显示了3类IPv4地址的网络号和主机号是怎样划分的。图1-5 A、B和C类IPv4地址格式

迄今为止,对于所描述的大型、中型和小型网络,是按照如下方式映射到各类地址的:● A类地址——用于大型网络,第1个八位组是网络号,后3个八位

组是主机号。8位的网络号最多可以表示256个网络,而每个网24

络地址的主机号可以提供的主机数量为2或16 777 216。● B类地址——用于中型网络。前2个八位组表示网络号,后2个八16

位组表示主机号。网络号和主机号的数量均为2或65 536个。● C类地址——对应于A类IP地址。前3个八位组表示网络号,最后

1个八位组表示主机号。

因为所有的IPv4地址都是32位二进制字符串,所以需要某种方法来区分一个特定地址到底是属于哪一类地址。表1-3所示的首个八位组规则提供了这种方法,如下所述:● 对于A类地址,首个八位组的第1位,即32位字符串最左边的1位,

总是被设置为0。因此,通过设置首个八位组的剩余位为0(最

小)或为1(最大),我们可以找到A类地址范围中的最小数和最

大数。于是我们可以得到最小数和最大数分别为0和127,但是

这里有几个例外:0被保留作为缺省地址部分(参见第12章),[9]

127被保留为内部回送地址。 剩下的十进制数则是1~126。因

此任何首个八位组落在1和126之间的IP地址均属于A类地址。表1-3 首个八位组字节规则规则最小值与最大值十进制范围00000000=0*A类:第一位恒为01~12601111111=12710000000=128B类:第一、二位恒为10128~19110111111=19111000000=192C类:第一、二、三位恒为192~22311011111=223110

  * 0和127保留。● B类地址总是把左边的第1位设置为1,第2位设置为0。那么再次

通过设置首个八位组的剩余位为0或为1,我们依然可以找到最

小数和最大数。在图1-4中,我们可以看到首个八位组落在128和

191之间的IP地址属于B类地址。● 在C类地址中,前2位均被设置为1,第3位被设置为0。这样设置[10]

的结果是首个八位组在192和223之间。

到目前为止,IPv4的编址看上去并不是十分困难。路由器和主机通过首个八位组字节规则能够很容易地确定IP地址的网络号。如果第1位是0,需要读取前8位才能获取网络地址;如果前两位是10,那么需要读取16位;如果前3位是110,则需求读取24位才能获取网络号。不幸的是,事情并不会这样简单。1.3.2 地址掩码(Address Mask)

表示整个数据链路的地址——非特指某台主机的网络地址,可以用IP地址的网络部分来表示,其中主机位全部为0。例如,IP地址[11][12]管理机构可以将172.21.0.0分配给一个申请者。因为172在128和191之间,所以这是一个B类地址,其中后两个八位组作为主机位,全部被设置为0。虽然前16位(172.21.)已经被指定,但是地址所有者有权决定后16位主机位的使用。

每一台设备和接口都将被分配一个惟一的、主机号明确的地址,例如172.21.35.17。不管设备是路由器还是主机,显然都需要知道自身的地址,而且它还需要能够确定它所属的网络,在这个案例中,它属于172.21.0.0。

这一任务通常由地址掩码来完成。地址掩码是一个32位的字符串,与IPv4地址的每一位相对应。掩码也可以像IPv4地址一样用点分十进制表示。这种表示方法会成为某些初学者的绊脚石。虽然地址掩码可以用点分十进制书写,但是它并不是一个地址。表1-4给出了对应于3类IPv4地址的标准地址掩码。表1-4 A类、B类和C类IPv4地址的地址掩码类掩码点分十进制表示11111111000000000000000000000A255.0.0.000011111111111111110000000000000B255.255.0.000011111111111111111111111100000C255.255.255.0000

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载