第7章网络层 第7章网络层 本章基本要求:掌握P地址的规划及子网划分技术,掌握网络层中源到目标分组传输的实 现机理:理解网络层的主要功能,理解数据报和虚电路的区别,理解路径选择的作用与实 现,理解P协议、ARP协议和ICMP协议的作用,理解路由器的功能;了解路拥塞控制的 概念,了解P报文的格式,了解静态路由与动态路由的特点及实现方法。 本章难点:P子网划分技术,网络层中源到目标分组传送的实现机理。 教学时数与实验建议:8-10学时,建议另外开设1.5-2学时的“DHCP服务的配置与管理” 实验以帮助学生掌握动态P地址分配。 在前面的几章中,我们已经学习了物理层和数据链路层的功能及其实现,并对典型的 局域网和广域网技术有了一定的了解。我们说,各种网络技术的主要区别就在于物理层和 数据链路层,那么当这些不同的网络被互连在一起时,就会出现异构网络互连的问题。而 且当互连网络的规模增加时,相互通信的源和目标节点之间可能会存在一系列的中间节点, 从而还会带来路径选择的问题。这些问题都有待于O$I的第三层即网络层去解决。 在这一章中,我们首先介绍OSI第三层的功能和提供的服务,然后着重围绕TCPP的 网络层展开讨论,包括P协议、P地址及其规划,ARP协议和ICMP协议,路由与路由协 议等内容。 7.1网络层功能概述 7.1.1为什么需要网络层 在学习了物理层和数据链路层之后,再来学习网络层,同学们一定会有一个疑问:既 然数据链路层已经能利用物理层所提供的比特流传输服务实现相邻节点之间的可靠数据传 输,为什么还要在数据链路层之上有一个网络层?注意,问题就在于数据链路层所涉及的 “相邻”两字,我们在第四章中曾说明,所谓“相邻”是指位于同一物理网段或物理链路 上的节点。也就是说,数据链路层只能将数据帧由传输介质的一端送到另一端。如图7.1所 示,源主机DTE1和DCEI为相邻节点,而DCE1则分别与DCE2、DCE3和DCE4为相 邻节点,数据链路层可以解决诸如这些相邻节点之间的数据传输问题。但是从图中我们可 以看出,从源主机DTE1到目标主机DTE2要历经许多中间节点,而这些中间节点构成了多 条不同的网络路径,从而必然带来路径选择问题。也就是说,当DCE1收到从DTE1来的
第 7 章 网络层 1 第 7 章 网络层 本章基本要求:掌握 IP 地址的规划及子网划分技术,掌握网络层中源到目标分组传输的实 现机理;理解网络层的主要功能,理解数据报和虚电路的区别,理解路径选择的作用与实 现,理解 IP 协议、ARP 协议和 ICMP 协议的作用,理解路由器的功能;了解路拥塞控制的 概念,了解 IP 报文的格式,了解静态路由与动态路由的特点及实现方法。 本章难点:IP 子网划分技术,网络层中源到目标分组传送的实现机理。 教学时数与实验建议:8-10 学时,建议另外开设 1.5-2 学时的“DHCP 服务的配置与管理” 实验以帮助学生掌握动态 IP 地址分配。 在前面的几章中,我们已经学习了物理层和数据链路层的功能及其实现,并对典型的 局域网和广域网技术有了一定的了解。我们说,各种网络技术的主要区别就在于物理层和 数据链路层,那么当这些不同的网络被互连在一起时,就会出现异构网络互连的问题。而 且当互连网络的规模增加时,相互通信的源和目标节点之间可能会存在一系列的中间节点, 从而还会带来路径选择的问题。这些问题都有待于 OSI 的第三层即网络层去解决。 在这一章中,我们首先介绍 OSI 第三层的功能和提供的服务,然后着重围绕 TCP/IP 的 网络层展开讨论,包括 IP 协议、IP 地址及其规划,ARP 协议和 ICMP 协议,路由与路由协 议等内容。 7.1 网络层功能概述 7.1.1 为什么需要网络层 在学习了物理层和数据链路层之后,再来学习网络层,同学们一定会有一个疑问:既 然数据链路层已经能利用物理层所提供的比特流传输服务实现相邻节点之间的可靠数据传 输,为什么还要在数据链路层之上有一个网络层?注意,问题就在于数据链路层所涉及的 “相邻”两字,我们在第四章中曾说明,所谓“相邻”是指位于同一物理网段或物理链路 上的节点。也就是说,数据链路层只能将数据帧由传输介质的一端送到另一端。如图 7.1 所 示,源主机 DTE1 和 DCE1 为相邻节点,而 DCE1 则分别与 DCE2 、DCE3 和 DCE4 为相 邻节点,数据链路层可以解决诸如这些相邻节点之间的数据传输问题。但是从图中我们可 以看出,从源主机 DTE1 到目标主机 DTE2 要历经许多中间节点,而这些中间节点构成了多 条不同的网络路径,从而必然带来路径选择问题。也就是说,当 DCE1 收到从 DTE1 来的
计算机网络技术 数据后,就马上面临着是从DCE2还是DCE3或者是DCE4进行数据转发的问题,而数据 链路层显然没有提供这种实现源到目标数据传输所必需的路径选择功能。 DCE4 DCE5 DCEI DCE3 DCE6 DTE2 源主机 目的主机 DCE2 图7.1网络中间节点和网络路径的示例 但是有的同学可能会提出反问,既然数据链路层能够以物理地址如MAC地址来标识网 络中的每一个节点,为什么不能绕开路径选择问题而直接利用物理层地址实现主机寻址 呢?我们说,当源和目标位于同一个网桥或交换机的不同端口直接相连的网段时,这种寻 址方式可以非常方便地定位到日标主机。但是,若网桥或交换机的其他瑞口直接所车的网 段没有目标主机时,则网桥和交换机就只能通过向所有其他相连的网桥或交换机进行广播 的方式来间接地找到目标节点。从表面上看,这种方式似乎是可行的,但大家设想一下如 果网络规模增大时,这种“广播找人”的方法是不可想象的,甚至会因为过量的广播导致 网络难痪。所以通过物理地址直接寻址的方式只能适用于规模非常小的网络,在许多情况 下网络路径选择功能是必不可少的。 7.1.2网络层的功能概述 网络层涉及将源主机发出的分组经由各种网络路径到达目的主机,其利用了数据链路 层所提供的相邻节点之间的数据传输服务,向传输层提供了从源到目标的数据传输服务。 网络层是处理端到瑞(end to end)数据传输的最低层,但同时又是通信子网的最高层。如图 72所示,资源子网中的主机具备了OSI模型中所有七层的功能,但通信子网中的主机因为 只涉及通信问题而只拥有OSI模型的下三层。所以网络层被看成是通信子网与资源子网的 接口,即通信子网的边界
2 计算机网络技术 数据后,就马上面临着是从 DCE2 还是 DCE3 或者是 DCE4 进行数据转发的问题,而数据 链路层显然没有提供这种实现源到目标数据传输所必需的路径选择功能。 DCE1 DCE2 DCE3 DCE4 DCE5 DTE1 DTE2 DCE6 源主机 目的主机 图 7.1 网络中间节点和网络路径的示例 但是有的同学可能会提出反问,既然数据链路层能够以物理地址如 MAC 地址来标识网 络中的每一个节点,为什么不能绕开路径选择问题而直接利用物理层地址实现主机寻址 呢?我们说,当源和目标位于同一个网桥或交换机的不同端口直接相连的网段时,这种寻 址方式可以非常方便地定位到目标主机。但是,若网桥或交换机的其他端口直接所连的网 段没有目标主机时,则网桥和交换机就只能通过向所有其他相连的网桥或交换机进行广播 的方式来间接地找到目标节点。从表面上看,这种方式似乎是可行的,但大家设想一下如 果网络规模增大时,这种“广播找人”的方法是不可想象的,甚至会因为过量的广播导致 网络瘫痪。所以通过物理地址直接寻址的方式只能适用于规模非常小的网络,在许多情况 下网络路径选择功能是必不可少的。 7.1.2 网络层的功能概述 网络层涉及将源主机发出的分组经由各种网络路径到达目的主机,其利用了数据链路 层所提供的相邻节点之间的数据传输服务,向传输层提供了从源到目标的数据传输服务。 网络层是处理端到端(end to end)数据传输的最低层,但同时又是通信子网的最高层。如图 7.2 所示,资源子网中的主机具备了 OSI 模型中所有七层的功能,但通信子网中的主机因为 只涉及通信问题而只拥有 OSI 模型的下三层。所以网络层被看成是通信子网与资源子网的 接口,即通信子网的边界
第7章网络层 主机 主机Y APDU 应用层 f........-.......................... 应用层 PPD 表示层 表示层 会话层 会话层 分段 传输层 传输层 分组 网络层 网络层 网络层门 网络层 网络层 数据链路用 数据筛路 数据链路层 数据链路层 對据链路层 位 物理层 物理层 物理层 物理层 物理层 图7.2网络层的地位与作用 为了有效地实现源到目标的分组传输,网络层需要提供多方面的功能。首先,需要规 定该层协议数据单元的类型和格式,网络层的协议数据单元称为分组(packet),和其他各 层的协议数据单元类似,分组是网络层协议功能的集中体现,其中要包括实现该层功能所 必需的控制信息如收发双方的网络地址等。其次,要了解通信子网的拓扑结构,从而能进 行最伴路径的洗择,最伴路径选择又被称为路由(Routing):第三,在选择路径时还要注意 既不要使某些路径或通信线路处于超负载状态,也不能让另一些路径或通信线路处于空闲 状态,即所谓的拥寒控制和负载平衡:当网络带宽或通信子网中的路由设备性能不足时都 可能导致拥塞。另外,当源主机和目标主机的网络不属于同一种类型时,网络层还要能协 周好不同网络间的差异即所谓解决异构网络互车的问颗。同根据分层的原则,网络层在 为传输层提供分组传输服务还要做到:服务与通信子网技术无关,即通信子网的数量、拓 扑结构及类型对于传输层是透明的:传输层所能获得的地址应采用统一的方式,以使其能 跨越不同的LAN和WAN。这也是网络层设计的基本目标。 7.1.3网络层所提供的服务 网络层提供给传输层的服务有面向连接和面向无连接之分。简单地说,所谓面向连接 就是指在数据传输之前双方需要为此建立一种连接,然后在该连接上实现有次序的分组传 输,直到数据传送完毕连接才被释放:面向无连接则不需要为数据传输事先建立连接,其 只提供简单的源和目标之间的数据发送与接收功能。 网络层服务方式的不同主要取决于通信子网的内部结构。面向无连接的服务在通信子 网内通常以数据报(datagram)方式实现。在数据报服务中,每个分组都必须提供关于源和目 标的完整地址信息,通信子网根据地址信息为每一个分组独立进行路径选择。数据报方式 的分组传输可能会出现丢失、重复或或乱序的现象, 面向连接的服务则通常采用虚电路,简称VC方式实现。虚电路是指通信 子网为实现面向连接服务而在源与目标之间所建立的逻辑通信链路。虚电路服务的实现涉 及三个阶段,即虚电路建立、数据传输和虚电路拆除三个阶段。在建立连接时,将从源端
第 7 章 网络层 3 网络层 数据链路层 物理层 应用层 表示层 会话层 传输层 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 网络层 数据链路层 物理层 网络层 数据链路层 物理层 网络层 数据链路层 物理层 APDU PPDU SPDU 分段 分组 帧 位 主机X 主机Y 图 7.2 网络层的地位与作用 为了有效地实现源到目标的分组传输,网络层需要提供多方面的功能。首先,需要规 定该层协议数据单元的类型和格式,网络层的协议数据单元称为分组(packet),和其他各 层的协议数据单元类似,分组是网络层协议功能的集中体现,其中要包括实现该层功能所 必需的控制信息如收发双方的网络地址等。其次,要了解通信子网的拓扑结构,从而能进 行最佳路径的选择,最佳路径选择又被称为路由(Routing);第三,在选择路径时还要注意 既不要使某些路径或通信线路处于超负载状态,也不能让另一些路径或通信线路处于空闲 状态,即所谓的拥塞控制和负载平衡;当网络带宽或通信子网中的路由设备性能不足时都 可能导致拥塞。另外,当源主机和目标主机的网络不属于同一种类型时,网络层还要能协 调好不同网络间的差异即所谓解决异构网络互连的问题。同时根据分层的原则,网络层在 为传输层提供分组传输服务还要做到:服务与通信子网技术无关,即通信子网的数量、拓 扑结构及类型对于传输层是透明的;传输层所能获得的地址应采用统一的方式,以使其能 跨越不同的 LAN 和 WAN。这也是网络层设计的基本目标。 7.1.3 网络层所提供的服务 网络层提供给传输层的服务有面向连接和面向无连接之分。简单地说,所谓面向连接 就是指在数据传输之前双方需要为此建立一种连接,然后在该连接上实现有次序的分组传 输,直到数据传送完毕连接才被释放;面向无连接则不需要为数据传输事先建立连接,其 只提供简单的源和目标之间的数据发送与接收功能。 网络层服务方式的不同主要取决于通信子网的内部结构。面向无连接的服务在通信子 网内通常以数据报(datagram)方式实现。在数据报服务中,每个分组都必须提供关于源和目 标的完整地址信息,通信子网根据地址信息为每一个分组独立进行路径选择。数据报方式 的分组传输可能会出现丢失、重复或或乱序的现象。 面向连接的服务则通常采用虚电路(virtual circuit,简称 VC)方式实现。虚电路是指通信 子网为实现面向连接服务而在源与目标之间所建立的逻辑通信链路。虚电路服务的实现涉 及三个阶段,即虚电路建立、数据传输和虚电路拆除三个阶段。在建立连接时,将从源端
4 计算机网络技术 网络到目标网络的路由作为连接建立的一部分加以保存:在数据传输过程中,在虚电路上 传送的分组总是取相同的路径通过通信子网:数据传输完毕需要拆除连接。 如果我们以生 活化的实例进行类比,数据报有点类似于中国邮政的平信服务,而虚电路则更象是电话服 务。关于数据报与虚电路服务的比较参考表7.1。 表7.1数据报和虚电路的比较 分组交换方式 数据报 虚电路 比较项目 连接设置 不需要 需要 地址 每个分组包含一个虚电路号 状态信息 有路由表,无连接表 连接表 路由选择 每个包独立选择 虚电路建立后勿需路由 路由器失败的影响 丢失失败时的分组 所有经过失败路由器的VC失效 传输质量 7.2 TCP/IP的网络层 TCP/IP的网络层被称为网络互连层或网际层(internet layer),其以数据报形式向传 输层提供面向无连接的服务。如图7.3所示,该层的主要协议包括IP协议、ARP协议、RARP 协议、ICMP协议和一系列路由协议。下面我们分别对其中的几个重要协议进行介绍。 应用层 FTP HTTP SMTP TELNET DNS厂TP 传输层 TCP UDP 网际层 IP ICMP ARP RARP 网络访问层 Ethernet Token Ring FDDI Frame Ralay 图7.3TCPP模型中的网络层
4 计算机网络技术 网络到目标网络的路由作为连接建立的一部分加以保存;在数据传输过程中,在虚电路上 传送的分组总是取相同的路径通过通信子网;数据传输完毕需要拆除连接。如果我们以生 活化的实例进行类比,数据报有点类似于中国邮政的平信服务,而虚电路则更象是电话服 务。关于数据报与虚电路服务的比较参考表 7.1。 表 7.1 数据报和虚电路的比较 分组交换方式 比较项目 数据报 虚电路 连接设置 不需要 需要 地址 每个分组需要完整的源和目 的地址 每个分组包含一个虚电路号 状态信息 有路由表,无连接表 连接表 路由选择 每个包独立选择 虚电路建立后勿需路由 路由器失败的影响 丢失失败时的分组 所有经过失败路由器的 VC 失效 传输质量 同一报文会出现乱序、重复、 丢失 同一报文的不同分组不会出 现乱序、重复、丢失 7.2 TCP/IP 的网络层 TCP/IP 的网络层被称为网络互连层或网际层(internet layer),其以数据报形式向传 输层提供面向无连接的服务。如图 7.3 所示,该层的主要协议包括 IP 协议、ARP 协议、RARP 协议、ICMP 协议和一系列路由协议。下面我们分别对其中的几个重要协议进行介绍。 FTP HTTP SMTP DNS TFTP IP ICMP RARP Ethernet Token Ring TELNET TCP UDP ARP FDDI Frame Ralay 应用层 传输层 网际层 网络访问层 图 7.3 TCP/IP 模型中的网络层
第7章网络层 7.2.1P协议 IP协议是TCP/IP网络层的核心协议,其定义了用以实现面向无连接服务的网络层分组 格式,其中包括P寻址方式。在第5章和第6章的讨论中我们说过,不同网络技术的主要 区别在数据链路层和物理层,如不同的局域网技术和广域网技术。而P协议则能够将不同 的网络技术在TCP/IP的网际层统一在IP协议之下,以统一的IP分组传输提供了对异构网 络互连的支持。 图7.4给出了IP分组的格式,由于P协议实现的是面向无连接的数据报服务,故IP 分组通常又被称为IP数据报。其中有关字段的说明如下: ●版本:数据报协议的版本。通常为IP协议的4.0版本。 ·头标长:数据报报头的长度。以32位(相当于4byte)长度为单位,当报头中无可 选项时,报头的基本长度为5。 ·服务类型:主机要求通信子网提供的服务类型。包括一个3位长度的优先级、3个 标志位D、T和R,D、T、R分别表示延迟(Delay)、吞吐量(Troughput)和可靠性 (Relibility)。另外2位未用。通常文件传输更注重可靠性,而数字声音或图象 的传输更注重延迟。 总长:数据报的总长度,包括头部和数据,以字节为单位。数据报的最大长度为 2-1字节即65535字节。 ●标识:标识数据报。当数据报长度超出网络最大传输单元(Maximum transition unit,MTU)时,必须要进行分割,并且需要为分割段(fragment)提供标识。所 有属于同一数据报的分割段被赋予相同的标识值。 ·标志:指出该数据报是否可分段。DF表示不可分段,例如在工作站无盘启动时, 就要求从服务器端传送一个完整无缺的包含内存映象的单个数据包:MF代表还有 进一步的分段。分段的基本单位为8个字节。 分段偏移:若有分段时,用以指出该分段在数据报中的位置。13位的偏移长度意 味着一个长数据报至多可被分为23个小段。 生存时间或生命期:限定数据报生存期的计时器。推荐以秒来计数,最长为 2-1=255S。生存时间每经过一个路由节点都要递减,当生存时间减到零时,分组 就要被丢弃。设定生存时间是为了防止数据报在网络中无限制地漫游 ·协议:指示传输层所采用的协议,如TCP、DP或ICP等。 头校验和:用于校验头标。采用累加求补再取其结果补码的校验方法。若正确到 达时,校验和应为零。 ·任选字段:支持各种选项,提供扩展余地。根据选项的不同,该字段是可变长的。 ●IP地址:32位的源地址与目标地址分别指出源主机和目的主机的网络地址
第 7 章 网络层 5 7.2.1 IP 协议 IP 协议是 TCP/IP 网络层的核心协议,其定义了用以实现面向无连接服务的网络层分组 格式,其中包括 IP 寻址方式。在第 5 章和第 6 章的讨论中我们说过,不同网络技术的主要 区别在数据链路层和物理层,如不同的局域网技术和广域网技术。而 IP 协议则能够将不同 的网络技术在 TCP/IP 的网际层统一在 IP 协议之下,以统一的 IP 分组传输提供了对异构网 络互连的支持。 图 7.4 给出了 IP 分组的格式,由于 IP 协议实现的是面向无连接的数据报服务,故 IP 分组通常又被称为 IP 数据报。其中有关字段的说明如下: z 版本:数据报协议的版本。通常为 IP 协议的 4.0 版本。 z 头标长:数据报报头的长度。以 32 位(相当于 4byte)长度为单位,当报头中无可 选项时,报头的基本长度为 5。 z 服务类型:主机要求通信子网提供的服务类型。包括一个 3 位长度的优先级、3 个 标志位 D、T 和 R,D、T、R 分别表示延迟(Delay)、呑吐量(Troughput)和可靠性 (Relibility)。另外 2 位未用。通常文件传输更注重可靠性,而数字声音或图象 的传输更注重延迟。 z 总长:数据报的总长度,包括头部和数据,以字节为单位。数据报的最大长度为 2 16-1 字节即 65535 字节。 z 标识:标识数据报。当数据报长度超出网络最大传输单元(Maximum transition unit, MTU)时,必须要进行分割,并且需要为分割段(fragment)提供标识。所 有属于同一数据报的分割段被赋予相同的标识值。 z 标志:指出该数据报是否可分段。DF 表示不可分段,例如在工作站无盘启动时, 就要求从服务器端传送一个完整无缺的包含内存映象的单个数据包;MF 代表还有 进一步的分段。分段的基本单位为 8 个字节。 z 分段偏移:若有分段时,用以指出该分段在数据报中的位置。13 位的偏移长度意 味着一个长数据报至多可被分为 2 13个小段。 z 生存时间或生命期:限定数据报生存期的计时器。推荐以秒来计数,最长为 2 8 -1=255S。生存时间每经过一个路由节点都要递减,当生存时间减到零时,分组 就要被丢弃。设定生存时间是为了防止数据报在网络中无限制地漫游。 z 协议:指示传输层所采用的协议,如 TCP、UDP 或 ICMP 等。 z 头校验和:用于校验头标。采用累加求补再取其结果补码的校验方法。若正确到 达时,校验和应为零。 z 任选字段:支持各种选项,提供扩展余地。根据选项的不同,该字段是可变长的。 z IP 地址:32 位的源地址与目标地址分别指出源主机和目的主机的网络地址