




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
下载 下载 第2章 计算机网络教程 本章讨论计算机通信的特点和机制 首先介绍 O S I参考模型 并将其与因特网通信模型进 行对比 接下来考察一下路由技术的概念和因特网在各个子网间传送信息的原理 这些练习 是为后面的章节作准备的 在那些章节中 我们将看到为什么在因特网的选路体系中需要移 动I P这样的技术 不管怎样 本章不可能完整论述计算机通信 要想更全面地了解这方面的技术可以参阅 Ta n e 9 6 C o m e 9 5 或 S t e v 9 4 如果你已经对计算机连网和 I P路由技术有了基本了解 就可 以跳过本章直接转入下一章 2 1 计算机是如何进行通信的 计算机通过在网络上发送和接收数字信息进行通信 这些信息包括二进制数字 称为比 特 它们的取值只能是 0或1 比特被分为8个一组 称为字节 多个字节又捆扎在一起构成帧 或数据包 在后面我们还将对数据包作更详细的描述 两台计算机交换数据包之前 它们首先必须通过某种物理媒介连接起来 例如铜线 光 纤或者电磁波 在少数情况下 两台计算机由同一段不中断的物理线路或无线链路直接连接 这时 它们也就可以直接互相发送数据包了 但是在大多数情况下 计算机发出的数据包通 常要经过一个或者多个中间交换设备才能到达它们的目的地 在实际环境中 两台计算机互相通信可能会变得非常困难 尤其是在它们使用不同的 硬件 不同的操作系统 不同的应用软件时 要使两台计算机能互相通信必须解决下面的 问题 1 计算机互相通信的速率以及使用什么样的物理媒介 2 如果使用的通信媒介是多台计算机共享的 如何决定在某一个时刻该由哪台计算机发 送数据包 3 如何对计算机进行编址 以便唯一地区分开每个数据包的发送者和接收者 4 如果两台计算机不是直连在一起的 数据包如何选出一条从起点到目的地的合适 通路 5 如何检测通信过程中的错误 检测到错误后又如何去校正错误 6 通信过程中使用什么数字格式来表示数据 计算机科学中研究上述这些问题的分支通常称为计算机连网技术 或者简单称为连网技 术 由于同时解决上述所有问题非常困难 计算机科学家们将它们分解成可以分别独立解决 的若干子问题 每个子问题就构成了通信中的一个层 每个层由严格限定的一组原则和规程 来定义 2 1 1 协议层 图2 1所示为国际标准化组织I S O International Organization for Standardization 为计算 机连网所定义的开放系统互连模型 OSI Open System Interconnection 七层中的每一层都完 成一组特定的功能 从而为上一层提供一定的服务 规定各层如何操作的那些原则和规程就 称为协议 从理论上来说 这个模型中每一层的协议都与它的上层或下层的协议无关 这使得每一 层可以独立地采用新技术 而不影响其他层 只要这些新技术提供的服务不少于原来的协议 就可以了 这只是理论上的情况 从本书后面的章节中我们可以看出 考虑到效率等因素 各层之间多多少少有些关联 2 1 2 每一层的功能 图2 1所示各层的功能如下 1 物理层 它通过通信设施或媒介把比特流从一个地方传到另一个地方 物理层协议定义了传输媒 介的电气和机械特性 如比特率 电平等等 2 数据链路层 这一层利用物理层提供的比特传送功能 在同一条链路的相邻两台计算机之间传送数据 帧 一个帧由网络层数据包加上一个较短的数据链路层帧头构成 数据链路层协议确保数据 帧的可靠传送 并在多台计算机共享同一个媒介的情况下 在各台计算机之间作出访问媒介 的仲裁 3 网络层 这一层利用数据链路层提供的帧传送功能 在通信的源和目的之间传送数据包 可能需要 经过一条或多条中间链路 数据包由高层数据加上一个较短的网络层报头构成 网络层协议 规定了一台网络设备如何才能找到网络中的另一台网络设备 并规定了如何选择路由将数据 包送到它的目的地 4 传输层 传输层使得网络层提供的端到端的包传送功能是可靠的 送入传输层 并通过可靠的 端到端传输功能到达对端 然后从对端传输层送出的数据称为数据流 传输层将数据流分 批传送 传输层每一次能传送的一段数据称为数据段 由高层协议数据加上一个较短的传 输层报头构成 因此 一个数据段构成了网络层数据包的净负荷 传输层协议规定了检错 和纠错方法 5 会话层 会话层接收从传输层送来的可靠的数据流 并向高层提供非富的 面向应用的服务 例 如 有的会话层提供周期性的检测点 使得网络发生灾难性的故障后通信仍能恢复 当通过 不可靠的网络来传送一个大文件时 这种功能是非常有用的 由于网络故障 在文件的绝大 部分已经传送完时 又不得不从头开始传送 这是对网络资源的极大浪费 6 表示层 这一层定义了在一个应用中互相交换的信息的语义和语法 也就是说 表示层定义了某 个应用中的整数 文本消息和其他数据是如何进行编码和通过网络传送的 这使得无论它们 各自存储数据的方式是否不同 使用不同硬件和操作系统的计算机之间都可以交换信息 7 应用层 第2章 计算机网络教程使用7 下载 8使用第一部分 导论 下载 这一层传送用户运行的某个计算机程序的特定信息 有的应用层协议定义如何交换电子 邮件 E m a i l 有的应用层协议定义计算机之间如何传送文件 有的则定义 We b客户 浏览 器 如何从We b服务器上取下Word Wide We b页面 图2 1 OSI参考模型 实现一个协议的一部分硬件或软件称为协议实体 计算机的同层协议实体之间利用低几 层提供的服务通过网络传送信息 从逻辑上看 我们可以认为一台计算机的协议实体和另一 台计算机的同层协议实体之间直接进行对话 两个可以通过网络互相通信的协议实体称为对 等实体 例如在图2 1中 从逻辑上讲 计算机 A的网络层与路由器的网络层进行通信 为了完成 这个通信 网络层利用数据链路层 1通过媒介1传送数据包 因此计算机A的网络层实体和路由 器的网络层实体是对等实体 典型的情况下 各层协议从高层接收数据 并通过在前面加上一个较短的报头来实现 本层协议的功能 然后将加了报头的信息传给网络另一端的同等实体 加上的报头告诉 同等实体对接收到的数据做什么处理 这个报头可能包括协议地址 数据部分的长度以 及用于检错和纠错的校验和 同等实体接收到信息后 剥去协议头 恢复出原始数据再 送给高层 最后还有一个术语 如图 2 1中所示 从低到高的一系列协议常称为一个协议栈 当各层 被具体的协议所代替时 如网络层协议采用因特网协议 I P 我们就称这一系列具体的协议为 一个协议簇 例如 I n t e r n e t协议栈各层所采用的协议统称为T C P I P协议簇 2 1 3 本书关系到哪些协议层 本书主要关系到网络层协议 以及将数据包从源计算机传到目的端所需的各种技术 然 而 如前所述 为了传送数据包 网络层依赖于数据链路层提供的服务 因此 本书还将讨 论各种链路的一些重要特性 以及它们对传输层协议产生的影响 想更多地了解其他各层协 议的读者可以参阅 Ta n e 9 6 计算机A计算机B 应用程序应用程序 协议层 应用层 应用层文件 视频 E ma i l 等 表示层表示层 会话层会话层 邮据段 邮据包 帧 比特 传输层传输层 网络层 网络层 网络层 路由器 数据链路层1数据链路层2数据链路层1 数据链路层2 物理层1物理层2 物理层1 媒介1媒介2 物理层2 信息在这一层传送 第2章 计算机网络教程使用9 下载 2 1 4 网络层提供的服务 网络层的目的是隐藏各种链路的具体特性 向传输层提供一个逻辑上的网络 它将数据 包通过一条或多条链路从源计算机传送到目的计算机 一个数据包包括从传输层送来的数据 段和网络层的协议头 因此 从传输层向下看网络层时 看到的是一种将数据段从源端传送 到目的地的服务 1 节点 一个网络设备就是一个节点 为完成网络层的功能 网络层协议为每个网络设备分配一 个或多个逻辑地址 所谓逻辑地址 是指与节点的物理地址无关 有时 为实现一个数据链 路或物理层协议 我们需要物理地址 如以太网地址 如图2 2所示 网络层定义的网络设备 或节点 有两类 1 主机包括P C机 工作站 主机 文件服务器以及其他各种计算机 2 路由器它在主机和其他路由器之间转发数据包 使得主机不必和通信所用的链路直 接相连 转发是路由器将接收到的数据包又发送出去的过程 目的是为了使数据包离它的目的地 更近一些 2 路由 路由器之间通过路由协议交换信息 以报告它们各自所连接的网络和主机每个路由器都 建立有一张路由表 路由器利用路由表为各个数据包选择从源端到目的地的路径 3 逐跳和端到端 如图2 2所示 在任意两台主机之间的路径上可能有多台路由器 每台路由器只负责决定 应将数据包转发到哪一台主机或路由器上 即下一跳 以使它能到达目的地 这种方法称为 逐跳的路由选择 以区别于那些在数据包发送之前就决定好整条路径的技术 回到图2 1 我们可以发现只有协议栈的高层 即从传输层到应用层 才采用端到端的协 议 也就是说 这些层的协议实体只存在于通信的源和目的主机上 比如说图 2 1所示的两台 计算机 协议栈的低层 即从物理层到数据链路层 则采用逐跳的方法 这几层的协议实体 只和同一条链路上与它相邻的下一个对等实体通信 网络层则同时具有端到端和逐跳协议的特性 一方面 网络层的数据包由一个端点产生 并传送到另一个端点 这是端到端协议的特性 另一方面 两端点间沿途的各台路由器都要 检查数据包 这使网络层协议又有了逐跳协议的特性 图2 2 网络实体 主机和路由器 主机主机 主机主机 主机 路由器路由器 路由器主机 10使用第一部分 导论 下载 4 路由器和网桥 最后 为严格起见 本书将路由器定义为运行在网络层的设备 也就是说 路由器根据 数据包中的网络层协议头转发数据包 网桥则运行在数据链路层 即网桥按照数据包的数据 链路层头对数据链路层帧进行中继 如图2 3所示 对网络层来说网桥是不可见的 比如 主机 1和路由器上的网络层软件对 于它们之间有一台网桥一无所知 对它们来说 经过桥接的媒介只是一条链路 网桥将数据 帧从一个物理段中继到另一个物理段上 并使主机 1和路由器相信它们是直连的 图2 3 网桥 路由器和主机 2 2 因特网协议 IP T C P I P协议簇所体现的因特网通信模型与 O S I模型有相似之处 但又有些不同 因特 网通常将 O S I模型中的高三层合并成一个应用层 但就本书而言 这两种模型可以看作是 一样的 因特网网络层协议称为因特网协议 I P RFC 791 第4层 即传输层 因特网中有两 种广泛采用的协议 传输控制协议 T C P RFC 793 它为高层提供可靠的 面向数据流的 服务 而用户数据报协议 U D P RFC 768 则为高层提供没有可靠性保证的 无连接的服务 因特网的网络协议 I P 和有可靠性保证的传输层协议 T C P 一起构成了因特网协议簇的 名称 2 2 1 ICMP I C M P Internet Control Message Protocol RFC 792 网间网控制报文协议定义了一套 差错报文和控制报文 用来表示数据包传输过程中发生了错误 另外还有一些I C M P报文为 节点提供诊断信息 实现 I P的节点必须实现 I C M P 以保证于因特网标准兼容 因此 当我 主机1 应用软件应用软件 应用层 应用层 表示层 表示层 会话层会话层 传输层 传输层 网络层网络层 网络层 物理层 物理层物理层物理层物理层物理层 数据链路层 数据链路层数据链路层 数据链路层 数据链路层 网桥路由器 主机2 第2章 计算机网络教程使用11 下载 们谈到I P时 就表示也同时包括 I C M P 图2 4表明了T C P I P参考模型以及各种因特网协议 间的关系 图2 4 因特网 TCP IP 参考模型 2 2 2 IP的功能 和其他所有的网络层协议一样 I P将数据包从源端发送到目的端点 这种业务有时也称 为 端到端的包传送 I P所提供的可靠性服务称为 尽力而为 也就是说I P将尽力将数据 包传送到目的端 但并不保证它一定能无差错地到达目的端 简而言之 I P和高层达成的服务协定如下 I P将尽力把带有数据的包送到目的地 最终 可能会有一个或多个数据包的拷贝到达目的端 数据包也可能会丢失 而且到达的每一个拷 贝都可能有错误 如果你觉得这种服务质量不可接受 就请自已想办法来保证一定有一个正 确的数据包到达目的端 因此 如果一个应用要求可靠通信 就应由传输层来保证无差错的端到端传输 在因特 网中 传输控制协议 T C P 提供了可靠的端到端的数据传送 2 2 3 IP包格式 I P包包括从传输屋或更高层送来的一段数据 以及加在数据前面的一个I P报头 R F C 7 9 1 中定义的I P报头包括图2 5中所示的各个域 其中最主要的域是源地址和目的地址 这些地址的作用和邮政系统中信封上的地址作用相似 表明了发送者和接收者的地址 1 IP地址 I P地址是一个3 2比特 4字节 的数 每一个节点的每个网络端口都有一个 I P地址 端口 是节点与链路的硬件和软件连接点 像路由器那样具有多个网络端口的节点也就有多个I P地 址 每个端口一个地址 1 带点的十进制标识法 仿真终端 用户接口 TELNETFTPRIPNFSHTTP TCPUDP ICMP 应用协议 传输协议 网络协议 链路协议 应用 操作系统 因特网协议 I P 网络 光纤 PPPFDDI RS 232UTP 802 3 设备驱动和 硬件 远端文件 传送 Web 浏览器 I P地址常被写成由点分开的十进制数 4字节中的每个字节写成一个十进制数 中间用点 分隔开 例如 一个I P地址用十六进制表示为 C0 13 F1 12 用带点的十进制标识法表示时就 成为192 19 241 18 因为 C 0 h e x 1 9 2 d e c 1 3 h e x 1 9 d e c F 1 h e x 2 4 1 d e c 1 2 h e x 1 8 d e c 图2 5 IP包 报头和净荷 2 网络前缀和主机部分 如图2 6所示 I P地址有两个部分 网络前缀部分和主机部分 网络地址是一串连续的比 特 连在同一条链路上的所有节点有相同的网络前缀 因此要求这些节点的I P地址具有唯一 的 不同的主机部分 你可以把网络前缀看成是用来标识一条链路的 而主机部分是用来标 识连接在链路上的一台特定主机或路由器的 这条原则并不是一成不变的 虽然通常给每一条链路分配一个网络前缀 但并不排除给 一条链路分配多个网络前缀 这时 可以把一条物理链路看成包含多条虚拟链路 而每一条 虚拟链路都分配了一个网络前缀 这样我们就可以认为一个网络前缀只对应于一条链路 物 理的或虚拟的 在本书中 忽略了一条链路有多个网络前缀的情况 而假设每条链路只有一 个网络前缀 这种假设并不会失去普遍性 为了更清楚地表示网络前缀的概念 来看一下 I P地址 1 2 9 6 1 1 8 2 6 我们被告知网络 前缀的长度为2 4比特 3字节 这时 p 24 h 8 因此网络前缀为 1 2 9 6 1 1 8 主机部分 为 2 6 图2 6 IP地址格式 3 前缀长度 前缀长度指明了一个 I P地址网络前缀部分的比特数 因此 I P地址主机部分的比特数为 3 2 前缀长度 仍以上一个例子来看 1 2 9 6 1 1 8 2 6的前缀长度为2 4比特 另一种I P地址及其 前缀长度的简写方式为 地址 前缀长度 在这个例子中就写成 1 2 9 6 1 1 8 2 2 4 2 IP报头的其他域 版本域 Ve r s i o n 表明了一个数据包采用的是因特网协议的哪个版本 对于 IPv4 这个 域的值为4 将来对于其他版本的因特网协议这个域也会随版本号增加I H L I n t e r n e 12使用第一部分 导论 下载 版本 IHL 服务类型 标识 生存时间协议 源地址 目的地址 IP Options 传输层 如T CP 报头 应用层 如H T T P 报头 应用层数据 如W e b 主页 总长度 标记片偏移 I P报头 I P负荷 头校验和 p 32 h 比特 网络前缀 主机 h 比特 H e a d e r L e n g t h 域表示以3 2比特 4字节 为计数单位的I P报头的长度 因此 I H L的最小值 为5 即2 0字节 这是一个不带I P可选项的I P报头 服务类型 Type of Service 域决定了I P包在提供多种服务质量 如最小时延 高可靠性 的网络中将受到何种处理 总长度 Total Length 域则给出了整个I P包的字节数 包括I P报 头本身的长度 标记 F l a g 域和片偏移 Fragment Off s e t 用于将大I P包分割成几个称为片的小块 以 保证它可以顺利地穿过无力处理大 I P包的网络 标识 I d e n t i f i c a t i o n 域是发送端填写的值 以便接收端重组那些不得不分成几个片的包 生存时间T T L Time to Live 用于限制一个I P包的转发时间 想想看 当第一台路由器 认为到达某一目的端的路径要经过第二台路由器 而第二台路由器又认为该路径应经过第一 台路由器 这时会发生什么情况呢 当第一台路由器接收到一个发往该目的地址的数据包时 它会将数据包转发给第二台路由器 而第二台路由器就会将数据包重新转发给第一台路由器 然后第一台路由器又将包转发回第二台路由器 如果没有 T T L 这个包就会在这两台路由器 构成的环中永远转下去 这样的环在大的网络中经常会出现 协议类型 P r o t o c o l 被I P层用来区分I P包中的负荷是由哪个高层协议产生的 当接收到 一个I P包时 这个域使得接收节点上的I P软件可以将I P包送给相应的高层协议处理 例如 这 个域取值为1表示 I C M P 6表示T C P 1 7表示U D P 头校验和 Header Checksum 被接收节点用来确认接收到的 I P报头中有没有差错 头校 验和只由I P报头中的各个域计算得来 而与I P包的净荷无关 I P包净荷的校验则是高层协议的 工作 3 IP选项 在上面介绍的各固定长度的域之后 I P报头中有时还有多个可选项 虽然可选项可以用 来实现一些非常有趣的功能 但实际上还是很少用到它 在后面我们将介绍一种可选项 Loose Source and Record Route 其他的可选项包括安全 与时间有关的数据 各种诊断功 能等 2 2 4 节点如何得到一个IP地址 节点可以通过手工和自动两种方法得到它们的 I P地址 手工配置的方法在企业网中比较 通用 在这种网络中 一个网络管理员负责为整个网络中所有主机和路由器分配I P地址 手 工配置时通常只是将 I P地址 或下面章节中将介绍的其他参数 输入到节点的配置文件中 或像在许多个人计算机上能看到的那样 输入到用户端口配置界面的某一个域中 自动配置I P地址通常有两种方法 第一种方法是 用户用调制解调器 电话线和家用个 人计算机拨到I S P Internet Service Provider 上 这时P C机会在点到点协议P P P Point to Point Protocol RFC 1332 的I P C P IP Control Protocol RFC 1661 阶段向I S P的拨入设备请 求一个I P地址 另一种方法是采用动态主机配置协议 D H C P Dynamic Host Configuration P r o t o c o l RFC 2131 在大型的企业网或园区网中常可以看到 D H C P 这些网络有许多节点 而且网络速率比较快 在 D H C P中 节点可以向D H C P服务器发出请求 要求它暂时分配一个 I P地址 D H C P可以和B O O T P Bootstrap Protocol RFC 951 同时使用 B O O T P也是用于动 态I P地址分配的 目前在许多地方仍然用它 第2章 计算机网络教程使用13 下载 2 3 IP路由技术的工作原理 在这一节中 我们将讨论当节点有一个 I P包要发送时如何作出转发决策 我们已经知道 转发主要基于I P报头中的各个域以及节点的I P路由表 为了说明I P路由技术 我们将首先定义 一个I P路由表 并来仔细看一下构成路由表中各项的每一个域 然后 我们将定义一些原则 决定如何在路由表中寻找一个符合 I P转发要求的项 有了这些原则 我们再来看一些例子 最后作出总结 现在 我们暂且忽略节点是如何产生路由表的各项的 先假设它们已经产生 具体产生 的方法将在后面讨论 2 3 1 什么是路由表 对于一个节点来说 有两类 I P包 一类包的目的端点就是这个节点本身 另一类包的目 的端点为别的节点 节点通过比较自己的 I P地址和I P包中的目的地址 判断自己是否是目的 端点 如果I P包的目的地址和节点的某一个 I P地址一样 那么这个节点就是该包的目的节点 被目的节点接收下来的包就不再进行转发了 而是根据 I P报头中的协议类型域送交相应的高 层协议处理 当节点收到一个不以它为目的节点的包时 这个节点必须决定向哪里转发这个包 以使 该包离目的节点更近一些 这就称为 作出一个转发决策 或 为一个包选路由 这里 我 们将I P路由表定义成一种以表的形式组织的软件数据结构 利用这个表 节点可以为那些目 的节点不是自己的包作出一个转发决策 每一个I P节点 无论是主机还是路由器 都需要一个路由表来作转发决策 而且它需要 为发送的每一个包作转发决策 包括由该节点产生的包 如由传输层送来的数据段 以及它 接收到的包 这些包将分别按各自的路径转发到它们的目的节点上 路由表中的每一项 简单地说也就是一条路由 至少包括 4个域 目的地址 Ta rg e t 前 缀长度 P r e f i x L e n g t h 下一跳地址 Next Hop 以及端口 I n t e r f a c e 当节点需要转发一个I P包 时 它就在路由表中查找目的地址 前缀长度这两列与 I P报头中的目的I P地址域相匹配的那 一项 如果发现确实存在匹配的项 就将数据包从路由表中该项所指示的端口转发到下一跳 节点 所谓路由表的表项与 I P包相匹配是指 将该表项中的目的地址与数据包中的 I P目的地 址从左向右逐个比特地比较 相同比特的数目大于或等于前缀长度所指示的值 节点路由表表项中的下一跳地址可能取两种值 如果目的地址与该节点无直连链路 那 么下一跳地址的取值为能够到达目的地址的一台路由器的 I P地址 否则 下一跳地址就取一 个特殊的值 以表示目的地址与节点的某一条链路直接相连 在下面的例子中 我们将路由 表的下一跳地址记为 直连 2 3 2 存在多个匹配表项时怎么办 如果存在多个匹配的表项 节点根据 I P规定的特定原则选择一项作为路由 即选择前缀 长度最长的那一个表项 1 路由表实例 有一个节点要为I P目的地址为7 7 7 1的数据包作一个转发决策 节点的路由表如表2 1所示 14使用第一部分 导论 下载 表2 1 路由表实例 目的地址 前缀长度下一跳地址端口 7 7 7 9 9 3 2路由器1a 7 7 7 0 2 4路由器2a 0 0 0 0 0路由器3a 为了清楚起见 在本书中 目的地址中由前缀长度决定的网络前缀部分用粗体字标示 并将目的地址和前缀长度写在同一列中 因为这两项关系非常密切 为了查找路由表中的匹配项 必须将表中各项目的地址这一列的网络前缀部分与数据包 中目的I P地址的相应比特进行比较 因此我们对表 2 1中的各项逐个检查 1 第一项要求目的地址这一列的 3 2比特 4字节 全部与数据包的目的 I P地址一样 由于 7 7 7 9 9与7 7 7 1不相等 所以路由表中的第一项与 I P包不匹配 2 第二项只要求目的地址与数据包的目的 I P地址的前2 4比特 3字节 相同 由于目的地 址的前2 4比特为7 7 7 数据包的目的I P地址的前2 4比特也为7 7 7 所以路由表的第二项与 I P 包相匹配 3 第三项不要求目的地址的任何比特与数据包的目的 I P地址相同 也就是说 这一项可 以和任何I P包相匹配 显然 第三项也与该I P包匹配 这样 我们有两条合适的路由 第二和第三表项 由于I P规定必须选用前缀长度最长的 那条匹配路由 所以本例中的节点采用了路由表中的第二条路由来转发该数据包 因为2 4显 然要大于0 这样节点就将数据包从端口 a 转发给了路由器2 2 路由表表项的分类 有三类基本的路由表表项 1 特定主机路由是前缀长度为3 2比特的路由表表项 从名字可以看出 特定主机路由 只能匹配一个特定的I P目的地址 也就是该路由中目的地址这一列规定的 I P地址 2 网络前缀路由是前缀长度为1 3 1比特的路由表项 从名字可以看出 对于目的 I P 地址的网络前缀与该路由中目的地址的网络前缀部分一样的I P包来说 该路由都是匹配的 路由 3 缺省路由是前缀长度为0比特的路由表项 从名字可以看出 缺省路由可以匹配所有 的I P包 然而 根据 最长匹配前缀 原则 只有在特定主机路由和网络前缀路由与I P包的 目的I P地址都不匹配时才可能采用缺省路由 3 匹配原则归纳 I P包的选路原则可以归纳如下 1 如果存在一条特定主机路由与数据包的目的 I P地址相匹配 那么必须首先选用这条路 由 而不选用路由表中的任何网络前缀路由 2 如果存在一条网络前缀路由与 I P包的目的I P地址的网络前缀相匹配 那么必须选用这 条路由 而不选用路由表中的缺省路由或前缀长度较短的任何网络前缀路由 3 在没有相匹配的特定主机路由或网络前缀路由时 如果存在一条或多条缺省路由 那 么可以采用缺省路由中的任一条来转发数据包 4 如果前面几条都不成立 即根本没有任何匹配路由 就宣告路由错误 并向数据包的 源端发送一条ICMP Unreachable消息 第2章 计算机网络教程使用15 下载 2 3 3 选路实例 图2 7所示为一个典型的网络配置 本节将以这个网络作为例子 图中有两个以太网 它 们通过路由器连接到 F D D I Fiber Distribution Data Interface 环上 F D D I环则作为高速主 干网 首先要注意的是 图 2 7中每个节点的每个端口都有一个 I P地址 由于图中的主机只有一 个端口 所以它们只有一个 I P地址 图中的路由器有两个端口 所以需要两个 I P地址 还要 注意 在同一条连线上的各节点端口的 I P地址具有相同的网络前缀 图中还给出了主机 1和路 由器B的路由表 在图2 7中 以太网A的网络前缀为1 0 0 前缀长度为2 4比特 地址中的另8比特则作为主 机部分 这样最多可以有 2 5 6台主机 因为28 2 5 6 但是 各比特为全 0 或全 1 十进 制的0和2 5 5 的两个地址具有特殊意义 因此不能作为主机地址 这样最多可以有 2 5 4个独立 节点 以太网 B和光纤主干网的网络前缀长度也为 2 4比特 它们的网络前缀分别为 2 0 0和 3 0 0 为了说明I P路由技术 让我们再看一些例子 现在 我们只考虑网络前缀路由和缺省路 由 而且和前面一样 我们暂且认为各个节点的路由表的各个表项都已经产生 图2 7 IP网络的一个例子 1 同一条链路上的主机 看一下主机1向主机2发送数据包的情况 这两台主机被连到了同一条链路上 以太网 A 包的I P源地址为1 0 0 1 目的I P地址为1 0 0 2 主机1开始将数据包的目的 I P地址与自己的各 个I P地址相比较 由于1 0 0 1与1 0 0 2并不相等 所以它知道这个 I P包不是给自己的 因此它 必须作出一个转发决策将包转发出去 为了做出转发决策 主机 1开始依据前面介绍过的原则查找路由表 首先 它发现路由表 中没有目的地址正好等于 1 0 0 2的主机路由 但发现路由表第一项中的网络前缀路由与所有 网络前缀为1 0 0的I P地址匹配 这一项还说明这些匹配的数据包从端口 a 所连接的链路发 送出去就可以到达目的地 因此主机 1将数据包从端中 a 发送给主机2 2 不同链路上的主机 16使用第一部分 导论 主机2主机3主机4主机1 以太网A以太网B 高速光纤主干 网络前缀 网络前缀网络前缀 路由器A路由器B aaa 1 0 0 254 1 0 0 11 0 0 2 3 0 0 254 3 0 0 2532 0 0 253 2 0 0 3 2 0 0 4 ccb b b 目的地址 1 0 0 0 24 下一跳地址 直连 主机的I P路由表 0 0 0 0 01 0 0 254 l f a a 目的地址 前缀长度 1 0 0 0 24 2 0 0 0 24 3 0 0 0 24 下一跳地址 3 0 0 254 l f c b c 直连 直连 路由器B的I P路由表 下载 第2章 计算机网络教程使用17 下载 再看一下主机1向主机3发数据包的情况 这两台主机没有直接相连的链路 因此它们之 间的通信要依赖一台或多台路由器 在这个例子中 数据包的 I P源地址为1 0 0 1 目的I P地址 为2 0 0 3 这样要经过以下几个步骤 1 主机1发现该数据包不是送给它的 开始查找路由表中与目的 I P地址匹配的项 没有找 到合适的特定主机路由和网络前缀路由 于是主机 1开始查找缺省路由 将找到的缺省路由告 诉主机1 应将包通过端口 a 所接的链路转发给路由器 A 1 0 0 2 5 4 因此主机1将数据包 转发给了路由器A 2 当路由器A收到该包时 它同样也发现这个包的目的地址不是自己 因为目的 I P地址 2 0 0 3与1 0 0 2 5 4和3 0 0 2 5 4都不相等 因此路由器A也必须作出一个转发决策 它开始查找 路由表中的匹配项 路由器 A的路由表 图中没有列出 表明 所有目的 I P地址的网络前缀为 2 0 0的包应通过端口 c 转发给路由器B 3 0 0 2 5 3 因此路由器A通过光纤主干网将数据 包转发给了路由器B 作为一个练习 请写出路由器A路由表的各项 1 3 当路由器B收到该包时 它同样也发现这个包的目的地址不是自己 路由器 B从路由表 的第二项中发现了一条匹配的网络前缀路由 这条路由表明 所有目的 I P地址的网络前缀为 2 0 0的包应从端口 b 直接送到它们的目的地 因此路由器 B将该数据包通过以太网 B发给 了主机3 2 3 4 IP路由技术总结 本节和以上各例阐明的I P路由技术的重要特性可归纳如下 1 各个节点只根据 I P报头中的目的I P地址来作转发决策 只在有错误发生时才去检查源 地址 例如 节点发现没有合适的路由可以进行转发时 2 一般来说 路由决策依赖于目的 I P地址的网络前缀而不是整个目的地址 后面还将介 绍I P地址为什么要这样设计 现在 我们只需记住它就是这样的 3 同一条链路上的所有节点都应有相同的网络前缀 它们可以通过 I P地址中的主机部分 来识别 4 对于同一条链路上的多台主机 可以只用一条网络前缀路由 而无需列出所有的特定 主机路由 对于有几百条链路 每条链路上又有几百台主机的网络来说 采用网络前缀路由 而不是特定主机路由可以极大地简化路由表的表项 2 4 路由表是如何生成的 从根本上说 节点路由表的表项可通过以下三种方式生成 静态生成 手工配置 动态生成 可以通过接收 ICMP 重定向报文 R e d i r e c t s 动态生成 通过路由协议自动交换路由信息 1 静态配置路由表项 许多节点的路由表是由它们的主要用户或网络管理人员手工配置成的 通常配置成两种 路由 目的地为相邻节点则采用网络前缀路由 目的地为其他节点则采用缺省路由 路由表 1 路由器A的路由表为 1 0 0 0 2 4 直连 a 2 0 0 0 2 4 3 0 0 2 5 3 c 3 0 0 0 2 4 d i r e c t c 通过手工配置的节点仍可以接收ICMP 重定向报文 也可以通过动态路由协议学习其他路由 路由器的路由表项也可以通过手工配置 然而 当网络的链路数达到几十或几百条时 这种手工配置的路由表几乎是不可能维护的 另一方面 一些动态路由协议则可以适应具有 上千条链路并且拓扑结构经常变化的网络 拓扑是指网络链路和节点的结构或布局 特别是 主机和路由器之间的互连情况 2 ICMP 重定向 如果一台路由器觉得它的邻接节点 即在同一条链路上的主机 在为某一个目的地址选 择路由时 没有采用最好的下一跳节点 这台路由器可以通过向该主机发送 I C M P重定向报文 告诉那台主机对于这个目的地址可以选另一台路由器作为下一跳节点 重定向报文包括另一 台路由器的I P地址 主机接收到这个报文后就可以修改路由表 为那个目的地址重定一个更 好的下一跳地址 在上面的情况中 主机 路由器和它选出的另一台路由器都是在邻接节点时才可以发送 重定向报文 另外 路由器只能向数据包的源发送 I C M P报文 而不能向中间路由器发送 因 此 I C M P重定向不能作为路由器为网络中所有目的地址动态生成路由的通用方法 3 动态路由协议 虽然动态路由协议直接或非直接地利用 I P在路由器之间传送信息 但我们仍认为动态路 由协议属于网络层 图 2 8给出了一个常用的动态路由协议以及它们在协议栈中与 I P协议的关 系 这些协议包括 O S P F Open Shortest Path First RFC 1583 BGP Border Gateway Protocol RFC 1771 R I P Routing Information Protocol RFC 1058 和 RFC 1723 至于这些协议是如何完成它们的功能的 以及为什么它们中有的直接利用了I P 而有的 利用U D P或T C P 这些都不属于本书的范畴 对这些内容感兴趣的读者可以阅读上面列出的 R F C文件 或者看一下本章总结中列出的书目 在这里 我们还是非常简单地描述一下动态 路由协议的工作机制 1 一些人 通常是网络管理员为网络的各条链路制定网络前缀 2 根据这个网络前缀方案手工配置路由器各端口的 I P地址 以及它们连接的链路的前缀 长度 3 通过手工配置或路由协议的规定 路由器可以了解相邻路由器的情况 所谓相邻路由 器是指发送的数据包只通过一条链路就能到达的那些路由器 如图 2 2和图2 7中所示的所有路 由器都是相邻路由器 4 路由器定期地交换称为路由更新的信息 这些信息包括一个路由表项列表 每个 表项的内容有 目的地址 相应的前缀长度以及到这些地址的距离的度量方法 如经过 的跳数 5 路由器将收集到的路由更新信息中的表项加入到它的路由表中 通过这种方法 路由 器就能动态地学习到到达网络中各个地址的路由 值得指出的是 采用了动态路由协议的 I P协议具有极高的可靠性 这是因为 大多数路 由协议允许路由器为同一个目的地址保留多条路由 如果一台或多台路由器 一条或多条链 路暂时发生了故障 I P可以绕过这些故障 而且通常它可以很快地做到这一点 事实上 在 因特网中 节点和链路的故障是经常发生的 然而信息仍然可以正常传送 大多数情况下用 户都感觉不到故障的发生 18使用第一部分 导论 下载 图2 8 IP路由协议 4 可达性广播 最后 我们来看一下本书中用到的一些术语 当一台路由器向第二台路由器发送路由更 新信息 告诉第二台路由器它可以到达一个或多个目的地址时 我们就说这台路由器在做这 些地址的可达性广播 Advertising Reachability 例如 如果网络管理员允许图 2 7中的网络采用动态路由技术 那么路由器 A就会开始广 播它对网络前缀1 0 0和3 0 0的可达性 而路由器 B就会开始广播它对网络前缀 2 0 0和3 0 0的 可达性 很快 路由器 A就会知道路由器B是到达网络前缀2 0 0的最好路径 而路由器 B会知 道路由器A是到达网络前缀1 0 0的最好路由 2 5 为什么选路依赖于网络前缀 在介绍I P路由技术的工作原理时 我们知道网络前缀路由可以简化节点的 I P路由表 另 外一个选择是采用特定主机路由的方法 这时 每个节点为网络中另外任何一台主机和路由 器在路由表中设立一条表项 对图 2 7中的简单网络这不成什么问题 但是 对于有上亿台主 机和路由器的因特网来说 采用特定主机路由是不可行的 原因主要有以下两点 1 路由器必须要有足够的内存来存储上千条路由表项 路由器转发每一个包时都要查一 遍这几千条路由 这就是说 路由器的绝大多数计算资源被用来查找路由 而只有一小部分 才被用来转发数据 2 为了包含因特网中每台主机和路由器的信息 相邻路由器间交换的路由更新信息可能 会长达几十亿字节 如果这样 许多因特网链路的带宽将被这些路由更新信息消耗掉 只有 极少的带宽可以用来传送真正的用户业务 因此 可扩展性是 I P路由技术要依赖于网络前缀的主要原因 因特网中的最大网络前缀 数目仍然是一个非常大的数 在 I P v 4中大约为2 0 0万条 但这已比最大主机数小得多了 在 I P v 4中大约为4 0亿条 许多人已经意识到了因特网存在 I P地址不够用这个问题 但很少有人 意识到 路由表爆炸 这个问题 这时 现有路由器的内存将被耗尽 这要部分归结为过去 十年中因特网奇迹般的发展 以上并不说明特定主机路由在因特网中从不使用 只是想说明网络前缀路由对于因特网 的正常发展和可扩展性是多么的重要 而特定主机路由应只在极少的特殊情况下应用 2 6 如何将域名解析成地址 I P地址是3 2位的整数 计算机处理起来很简单 可对人来说就比较难办了 记住一个朋 友的名字要比记住他或她的邮政地址要简单 同样的道理 比起 I P地址来 人们更愿意与网 络设备的名字打交道 在因特网中用D N S Domain Name System 将主机名翻译成I P地址 比如 当你让最喜 第2章 计算机网络教程使用19 下载 因特网协议 IP OSPFBGP RIP路由协议 传输层协议 网络层协议 UDPTCP 欢的We b浏览器从 h t t p w w w l p o rg 上取一个文件时 它做的第一件事就是找到主机名为 w w w l p o rg的计算机的I P地址 你的计算机向域名服务器发出一个询问 域名服务器则返回你 想要的主机的I P地址 显然 你的计算机在发出询问前必须知道域名服务器的 I P地址 一般来说 主机获得域名服务器 I P地址的方法与它得到自己的 I P地址的方法相同 比较 常用的一种方法就是通过手工配置 另外 PPP IPCP域名服务器扩展 PPP IPCP Extensions for Name Server Addresses RFC 1877 以及 DHCP Dynamic Host Configuration Protocol 则为节点提供了一种自动得到域名服务器的规程 现在 大多数域名服务器中 I P地址和主机名的对应关系都是手工配置的 当一台主机改 变I P地址
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年生产质量控制与检验标准培训试卷答案详解
- 上海酒会活动策划方案设计
- 香港企业咨询公司调研方案
- 彩色墙绘业务咨询方案
- 信用卡推销活动策划方案
- 压力管理技巧在职场中的应用-洞察及研究
- 索道资产全生命周期成本控制-洞察及研究
- 纤溶酶抑制剂的开发及其在心血管疾病中的应用-洞察及研究
- 税务审计咨询方案哪家好
- 植物基因组编辑技术应用-洞察及研究
- 幼儿园社会《让爱住我家》
- 2024全国职业院校技能大赛ZZ059安全保卫赛项规程+赛题
- 青岛版科学五年级上册全册练习题(含答案)
- 加油站新进员工培训计划方案
- 食品新产品开发 课件 第二章 食品新产品开发流程
- 高中化学374个必备知识点
- 单轴燃气蒸汽联合循环机组调试程序
- 舟山海域赤潮发生特点及成因分析
- 丝杠安全操作保养规定
- 体育测量与评价PPT课件-第九章 运动员选材的测量与评价
- 《情满今生》读书笔记模板
评论
0/150
提交评论