第3章计算机网络体系结构与IP 协议 本章学习目标 .了解计算机网络协议与网络体系结构。 .了解OSI/RM 模型。 .了解TCP/IP 模型。 .了解IP 协议。 .掌握子网的划分。 .了解IPv6的特点。 本章首先介绍计算机网络的协议及特点,然后介绍计算机网络参考模型,包括OSI/ RM 模型和TCP/IP 模型,接着介绍IPv4协议和子网的划分,最后介绍IPv6协议的特点。 3.计算机网络协议与体系结构 1 1.计算机网络协议与体系结构概述 3.1 1. 计算机网络协议扫一扫 网络上的计算机之间要进行通信,就必须遵循一定的规则或约定,这些为网络数据交换 而制定的规则或约定称为协议。就像人们说话用某种语言一样,在网络上的各台计算机之 间也有一种相互交流信息的规则,这就是网络协议,不同的计算机之间必须使用相同的网络 协议才能进行通信。网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防 火墙等)之间的通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。 网络协议是由以下3个要素组成的。 (1)语义。解释控制信息每个部分的意义。它规定了通信双方“讲什么”,即需要发出 何种控制信息以及完成的动作与做出的响应。 (2)语法。用户数据与控制信息的结构与格式以及数据出现的顺序。它规定了通信双 方“如何讲”,即协议元素的格式、数据及控制信息的格式、编码和信号电平等。 (3)时序。时序也称为同步,是对事件发生顺序的详细说明。它规定了通信双方“做的 顺序”,主要涉及传输速度匹配和顺序问题。 2. 计算机网络体系结构 不同系统之间的相互通信建立在各层实体之间能够相互通信的基础上,因此一个系统 的通信协议是各层通信协议的集合。计算机网络由若干层来实现,每一层都有自己的协议。 计算机网络的层次模型及其协议的集合称为网络的体系结构。 在网络体系结构中,每一层协议都实现了与另一层中对等实体之间的通信,所以称之为 对等层协议。另外,每一层协议还要向相邻上层协议提供服务接口。网络体系结构的描述 必须包含足够的信息,使实现者可以为每一层编写程序和设计硬件,并使之符合有关协议。 计算机网络基础与实训教程(第2 版·微课版) 38 网络体系结构具有以下特点。 (1)以功能作为划分层次的基础。 (2)第N 层的实体在实现自身定义的功能时,只能使用第N -1层的功能。 (3)第N 层向第N +1层提供服务时,此服务不仅包含第N 层本身的功能,还包含由 其下层提供的功能。 (4)仅在相邻层之间有接口,且下层所提供的服务的具体细节对上一层完全屏蔽。 图3-1显示了计算机网络体系结构的层次模型。其中,实体是指在每一层中实现该层 功能的活动元素,如终端、应用程序以及进程等。 图3-1 计算机网络体系结构的层次模型 3.1.2 计算机网络体系的产生与发展 在计算机网络的发展过程中,存在专用网络体系结构,如IBM 公司的系统网络体系结 构(systemsnetworkarchitecture,SNA);也存在开放网络体系结构,如OSI/RM。 1.SNA SNA 是IBM 公司开发的网络体系结构,在IBM 公司的主机环境中得到广泛的应用。 SNA 主要是IBM 公司的大型机(ES/9000、S/390等)和中型机(AS/400)的主要联网协议, SNA 于1974年首次公布,是IBM 公司为了连接3270系列产品而推出的方案。 SNA 设计在与IBM 主机系统相连的大多数终端是不可编程终端的年代。SNA 在互 连的主机之间提供了静态路由选择,所以用户在一个终端上可以访问其他任何互连的主机。 在SNA 出台之前,用户要访问主机,必须登录到一个单独的终端上。SNA 只是针对集中化 的IBM 主机计算环境设计的,所以它不适用于现在对等、客户/服务器、多供应商产品和多 协议的环境。一般这些环境建立在部门级,每个管理者设计和建立自己的局域网。 为了提供程序间通信功能,IBM 公司引进了高级程序对程序通信(advancedprogramto- programcommunication,APPC),并且为了对抗TCP/IP的威胁,还推出了高级对等自 治网(advancedpeer-to-peernetworking,APPN)。APPN 在保持主机系统多样性的同时提 供了一个企业范围内的非集中网络计算环境。在APPN 上,大型和小型系统相互对等操 作。IBM 公司的最新策略是,在包容工业标准协议(如TCP/IP和OSI协议)的同时继续支 持APPN。这个思想在联网方案中体现出来了,并且已有遵守该标准的产品。MPTN(多协 议传输网)就是一个例子,它使应用程序从基层网络协议解脱开,允许应用程序使用其他 协议。 SNA 最大的特性就是封闭性,它是IBM 公司开发的专有协议。如果SNA 要在其他主 机系统中应用,需在网络的每一个节点增加支持SNA 的软件和硬件。SNA 环境具有COS (服务分类)与安全的能力,但SNA 的安全仅仅是基于主机的XID(交换ID)。XID 类似于 第3 章 计算机网络体系结构与IP 协议 39 用户的口令,在SNA 会话建立过程中要交换XID来确认用户的合法性。XID 需要在主机 中静态配置,网络逻辑单元需要与主机上的逻辑单元在建立会话时进行XID交换;在SNA 环境中,除XID交换外,没有其他安全方面的考虑。由于SNA 协议的封闭性,大多数人不 熟悉它,使用SNA 协议的网络也因此很少受到攻击;但对于熟悉它的人来说,SNA 的安全 机制并不严密。基于SNA 设计和开发的安全系统也不常见。单单依靠封闭性实际上是不 可靠的。由于SNA 协议的非开放性及开发的复杂性,在SNA 环境下开发应用系统比较复 杂,而且系统的迁移性比较弱,这不符合业界开放的潮流。维持一大批专家来支持SNA 网 络也日趋困难。随着因特网的发展和普及,越来越多的用户采用开放的TCP/IP,IBM 公司 也不例外。现在,在IBM 公司传统的只支持SNA 环境的计算机上也开始支持TCP/IP,包 括ES/9000和AS/400。越来越多的SNA 用户向TCP/IP环境迁移。 2.开放系统互连参考模型 OSI是ISO 制定的网络体系结构模型,为开放式互联信息系统提供了一种功能结构的 框架。它包括7层,从低到高分别是物理层、数据链路层、网络层、传输层、会话层、表示层和 应用层。 OSI参考模型还保持在模型阶段,它并不是一个已经被完全接受的国际标准。考虑到 大量现存的事实上的标准,许多厂商只能支持许多在工业界使用的不同协议,而不是仅仅接 受一个国际标准。 3.1.3 计算机网络体系的分层结构 由于计算机网络的复杂性,很难用一个单一的协议来为网络中的所有通信规定一套完整 的规则。因此,把通信问题划分为许多小问题,然后给每个小问题设计一个单独的协议,从而 使得每个协议的设计、分析、编码和测试都变得容易,这就是网络体系结构中使用的分层概念。 计算机网络体系采用分层结构主要是基于以下几点考虑。 (1)各层之间相互独立。高层不需要知道低层的功能是采取何种硬件技术来实现的, 它只需要知道通过与低层的接口就可以获得需要的服务。 (2)灵活性好。各层都可以采用最适当的技术来实现。例如,某一层的实现技术发生 了变化,用硬件代替了软件,只要这一层的功能与接口保持不变,实现技术的变化并不会对 其他各层以及整个系统的工作产生影响。 (3)易于实现和标准化。由于采用规范的层次结构去组织网络功能与协议,因此可以 将计算机网络复杂的通信过程划分为有序的连续动作与有序的交互过程,有利于将网络复 杂的通信工作过程分解为一系列可以控制和实现的功能模块,使得复杂的计算机网络系统 变得易于设计、实现和标准化。如果想加上一些新的服务,只需要修改一层的功能即可。中 间层可以使用低层提供的服务以及为高层提供服务。 下面以邮政通信系统为例说明分层的概念。一个邮政通信系统由用户(写信人和收信 人)、邮局、运输部门和运输工具组成,可以将邮政通信系统按照功能分为4层,各层分工明 确,功能独立,如图3-2所示。 分层之后,还需要在对等层之间约定一些通信规则,即对等协议。例如,通信双方写信 时,必须约定用同样的语言,这样对方收到信后才能看懂信的内容。另外,一个邮局将用户 的信件收集起来后,要进行分拣、打包等操作,而分拣和打包等规则必须在邮局之间事先协 扫一扫 计算机网络基础与实训教程(第2 版·微课版) 40 图3-2 邮政通信系统的分层模型 商好,这就是邮局层次的协议。同样,在运输部门之间也应该有一致的协议。 当信写好之后,写信人把信装入信封中,信封上按照邮局规定顺序写上收信人的邮政编 码、地址、姓名和发信人的地址、姓名和邮编,贴好邮票后把信封投入邮筒。这些就是写信人 和邮局之间的约定,这些约定就是相邻层之间的接口。这封信如何传递到收信人的手中呢? 写信人不需要去考虑,而是交给邮局去处理。 邮局将信件打包后交付运输部门进行运输,如民航、铁路或者公路运输部门等。这时, 邮局和运输部门也存在着接口的问题,如到站地点、时间、包装形式等。信件运送到目的地 后经历相反的过程,最终将信件送到收信人手中,收信人依照约定的格式才能读懂信件。 从一封信的运输过程可以看出,虽然两个用户、两个邮局、两个运输部门分处甲乙两地, 但它们是两两对等的实体,即对等层实体。而处于同一地的不同实体则是上下层关系,存在 着服务与被服务的关系。对等层实体间的约定称为协议,而上下层实体间的约定称为接口。 采用分层模型的网络系统结构主要有两个优点。 (1)它将建造一个网络的问题分解为几层,每一层解决一部分问题。当所有层的问题 都解决了,整个网络的问题也就解决了。 (2)它提供了一种模块化的设计。如果想加上一些服务,只需要修改某一层的功能即 可,其他层不需要修改。 3.2 OSI参考模型 3.2.1 OSI参考模型概述 OSI一般都称OSI参考模型,是国际标准化组织在1985年研究的网络互联模型。OSI 参考模型定义了开放系统的层次结构、层次之间的相互关系及各层所包含的可能的服务。 OSI参考模型并不是一个标准,而是一个在制定标准时使用的概念性框架,其作为一个框架 来协调和组织各层协议的制定。 OSI参考模型制定过程中所采用的方法是将整个庞大而复杂的问题划分为若干个容易 处理的小问题,这就是分层的体系结构方法。OSI中采用了三级抽象,即体系结构、服务定 义和协议规定说明。 OSI参考模型的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其 下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实 扫一扫 第3 章 计算机网络体系结构与IP 协议 41 现的无关。同时,各种服务定义还定义了层与层之间的接口和各层所使用的原语,但是不涉 及接口是怎么实现的。 OSI参考模型中的各种协议精确定义了应当发送什么样的控制信息,以及应当用什么 样的过程来解释这个控制信息。协议的规程说明具有最严格的约束力。 OSI参考模型并没有提供一个可以实现的方法,而只是描述了一些概念,用来协调进程 间通信标准的制定。在OSI参考模型范围内,只有在各种协议是可以被实现的,而各种产 品只有和OSI参考模型的协议相一致时才能互联。也就是说,OSI参考模型并不是一个标 准,只是一个在制定标准时所使用的概念性的框架。 3.2.2 OSI参考模型各层功能 OSI参考模型定义了网络互联的7层框架,包括物理层、数据链路层、网络层、传输层、 图3-3 OSI参考模型的 7层框架 会话层、表示层和应用层,如图3-3所示。 OSI参考模型各层的功能如下。 (1)物理层(physicallayer)是OSI参考模型的最底层,它利 用传输介质为数据链路层提供物理连接。为此,该层定义了与物 理链路的建立、维护和拆除有关的机械、电气、功能和规程特性。 物理层包括信号线的功能、0和1信号的电平表示、数据传 输速率、物理连接器规格及其相关的属性等。物理层的作用是通 过传输介质发送和接收二进制比特流。 (2)数据链路层(datalinklayer)是为网络层提供服务的,解 决两个相邻节点之间的通信问题,传送的协议数据单元称为数据 帧。数据帧中包含物理地址(又称MAC 地址)、控制码、数据及 校验码等信息。该层的主要作用是通过校验、确认和反馈重发等手段,将不可靠的物理链路 转换成对网络层来说无差错的数据链路。此外,数据链路层还要协调收发双方的数据传输 速率,即进行流量控制,以防止接收方因来不及处理发送方发来的高速数据而导致缓冲器溢 出及线路阻塞。 (3)网络层(networklayer)是为传输层提供服务的,传送的协议数据单元称为数据包 或分组。该层的主要作用是解决如何使数据包通过各节点传送的问题,即通过路径选择算 法(路由)将数据包送到目的地。另外,为避免通信子网中出现过多的数据包而造成网络阻 塞,需要对流入的数据包数量进行控制(拥塞控制)。当数据包要跨越多个通信子网才能到 达目的地时,还要解决网际互联的问题。 (4)传输层(transportlayer)的作用是为上层协议提供端到端的可靠、透明的数据传输 服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高 层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的 数据通路。 (5)会话层(sessionlayer)的主要功能是管理和协调不同主机上各种进程之间的通信 (会话),即负责建立、管理和终止应用程序之间的会话。会话层得名的原因是它很类似于两 个实体间的会话概念。例如,一个交互的用户会话以登录到计算机开始,以注销结束。 (6)表示层(presentationlayer)。处理流经节点的数据编码的表示形式问题,以保证一 计算机网络基础与实训教程(第2 版·微课版) 42 个系统应用层发出的信息可被另一系统的应用层读出。如果必要,该层可提供一种标准表 示形式,用于将计算机内部的多种数据表示形式转换成网络通信中采用的标准表示形式。 数据压缩和加密也是表示层可提供的转换功能之一。 (7)应用层(applicationlayer)。是OSI参考模型的最高层,是用户与网络的接口。该 层通过应用程序来完成网络用户的应用需求,如文件传输、收发电子邮件等。 因此,OSI参考模型是一个定义良好的协议规范集,并有许多可选部分完成类似的任 务。它定义了开放系统的分层结构、层之间的相互关系以及各层所包括的可能的任务,是作 为一个框架来协调和组织各层所提供的服务的。OSI参考模型并没有提供一个可以实现的 方法,而是描述了一些概念,用来协调进程间通信标准的制定。 图3-4显示了OSI各层的主要功能,图3-5显示了OSI各层传送的协议数据单元。 OSI分层模型自顶向下分别是应用层、表示层、会话层、传输层、网络层、数据链路层、物理 层。其中低三层称为通信子网,提供路由完成和数据传输、转发的功能。高三层为资源子 网,负责全网的数据处理业务,并向网络用户提供网络资源共享服务,并且低层通过接口向 高层提供服务。 图3-4 OSI各层的主要功能 图3-5 OSI各层传送的协议数据单元 在OSI参考模型中,物理层的协议数据单元是比特(b),数据链路层的协议数据单元是 第3 章 计算机网络体系结构与IP 协议 43 帧,网络层的协议数据单元是分组,传输层的协议数据单元是段或数据报,会话层、表示层和 应用层的协议数据单元是报文。 3.2.3 OSI参考模型通信过程 通过OSI参考模型,信息可以从一台计算机的应用程序传输到另一台计算机的应用程 序上。例如,系统A 上的应用程序要将信息发送到系统B的应用程序,则系统A 中的应用 程序需要将信息先发送到其应用层(第7层),然后此层将信息发送到表示层(第6层),表示 层将数据转送到会话层(第5层),如此继续,直至物理层(第1层)。在物理层,数据被放置 在物理传输信道中,并被发送至系统B。系统B的物理层接收来自物理媒介的数据,然后将 信息向上发送至数据链路层(第2层),数据链路层再转送给网络层,依次继续,直到信息到 达系统B的应用层。最后,计算机B的应用层再将信息传送给应用程序接收端,从而完成 通信过程。 此外,OSI参考模型的7层模型还可以运用各种各样的控制信息,来和其他计算机系统的 对应层通信。这些控制信息包含特殊的请求和说明,它们在对应的OSI层间进行交换。对于 从上一层传送下来的数据,附加在前面的控制信息称为头,附加在后面的控制信息称为尾。 值得注意的是,OSI参考模型的1个特定层通常是与另外3个OSI层联系:与之直接 相邻的上一层和下一层还有目标联网计算机系统的对应层。例如,系统A 的数据链路层应 与其网络层、物理层以及对应系统B 的数据链路层进行通信。 图3-6显示了OSI参考模型的通信过程。 图3-6 OSI参考模型的通信过程 计算机网络基础与实训教程(第2 版·微课版) 44 3.3 TCP/IP模型 计算机网络体系结构采用分层结构。OSI参考模型是严格遵循分层模型的典范,自推出 之日起就成为网络体系结构的蓝本。但是在OSI参考模型推出之前,便捷、高效的TCP/IP 体系结构就已经随着因特网的流行而成为事实上的国际标准。 3.3.1 TCP/IP概述 传输控制协议/互联网协议(transmissioncontrolprotocol/internetprotocol,TCP/ IP),又名网络通信协议,是因特网最基本的协议,也是Internet国际互联网络的基础。 1.TCP/IP简介 TCP/IP是用于计算机通信的一组协议,通常称为TCP/IP协议簇。它是70年代中期 美国国防部为其ARPANET广域网开发的网络体系结构和协议标准,以它为基础组建的 Internet是目前国际上规模最大的计算机网络,正因为Internet广泛使用,使得TCP/IP成 了事实上的标准。之所以说TCP/IP是一个协议簇,是因为TCP/IP包括TCP、IP、UDP、 ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCP/IP 协议簇,而TCP/IP主要由网络层的IP和传输层的TCP而得名。 TCP/IP的目的不是推行一种标准,而是在承认已有不同标准的基础上解决这些不同 导致的问题。因此,网络互联是TCP/IP的核心。TCP/IP在设计时的侧重点不是具体的 通信实现,也没有定义具体的网络接口协议,因此,TCP/IP允许任何类型的通信子网参与 通信。总体来看,TCP/IP定义了电子设备如何连入因特网,以及数据在它们之间传输的 标准。 2.TCP/IP结构 TCP/IP采用了4层的层级结构,分别是网络接口层、网际层、传输层和应用层,每一层 都呼叫它的下一层所提供的协议来完成自己的需求。OSI/RM 参考模型与TCP/IP模型的 对比如图3-7所示。 图3-7 OSI/RM 参考模型与TCP/IP模型的对比 扫一扫 第3 章 计算机网络体系结构与IP 协议 45 3.3.2 TCP/IP各层功能 TCP/IP各层的主要功能如下。 1.应用层 应用层对应OSI参考模型的高层,为用户提供所需要的各种服务,例如FTP、Telnet、 DNS、SMTP等。应用层包含所有的高层协议,比如远程登录协议(telecommunications network,Telnet);FTP;简单邮件传输协议(simplemailtransferprotocol,SMTP);域名服 务(domainnameservice,DNS);网络新闻传输协议(netnewstransferprotocol,NNTP)和 HTTP等。Telnet允许一台机器上的用户登录远程机器进行工作,FTP提供将文件从一台 机器上移到另一台机器上的有效方法,SMTP用于电子邮件的收发,DNS 用于把主机名映 射到网络地址,NNTP 用于新闻的发布、检索和获取,HTTP 用于在WWW 上获取主页。 2.传输层 传输层对应OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数 据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用 户数据报协议(UDP)。 TCP是面向连接的协议,它提供可靠的报文传输和对上层应用的连接服务。为此,除 了基本的数据传输外,它还有可靠性保证、流量控制、多路复用、优先权和安全性控制等功 能。UDP 是面向无连接的不可靠传输协议,主要用于不需要TCP的排序和流量控制等功 能的应用程序。 TCP和UDP 最不同的地方是TCP 提供了一种可靠的数据传输服务。TCP 是面向连 接的,也就是说,利用TCP 通信的两台主机首先要经历一个建立连接的过程,等到连接建 立后才开始传输数据,而且传输过程中采用“带重传的肯定确认”技术来实现传输的可靠性。 此外,TCP 还采用了一种称为“滑动窗口”的方式进行流量控制,发送完成后还会关闭连接。 所以TCP 要比UDP 可靠得多。 具体实现中,TCP采用三次握手策略,以确保数据的准确传输。发送端首先发送一个 带有SYN 标志的数据包给对方;接收端收到之后,回传一个带有SYN/ACK 标志的数据 包,以示传达确认信息;最后发送端再回传一个带ACK 标志的数据包,代表握手结束。图 3-8显示了TCP采用的三次握手策略。 表3-1显示了TCP中常见的标志位和序列号。 表3-1 TCP中常见的标志位和序列号 术 语说 明 SYN TCP报文标志位,该位为1时,表示发起一个新连接 ACK TCP报文标志位,该位为1时,确认序号有效,确认接收到消息 seq 报文初始序列号,代表发送的第一个字节的序号 ack 报文确认序号,代表希望收到的下一个数据的第一个字节的序号 三次握手的目的是连接服务器指定端口,建立连接,并同步连接双方的序列号和确认 号,交换窗口大小信息。图中SYN=1表示这是一个连接请求或连接接受报文,当SYN=1 计算机网络基础与实训教程(第2 版·微课版) 46 图3-8 TCP的三次握手 而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,则响应的报文段中 使SYN=1、ACK=1。 第一次握手时,客户端将标志位SYN 置为1,随机产生一个值seq=x,并将该数据包 发送给服务器端,客户端进入SYN_SENT 状态,等待服务器端确认。第二次握手时,服务 器端收到数据包后,由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN 和ACK都置为1,ack=x+1,随机产生一个值seq=Y,并将该数据包发送给客户端以确认 连接请求,服务器端进入SYN_RCVD 状态。第三次握手时客户端收到确认后,检查ack是 否为Y+1,ACK 是否为1,如果正确,则将该数据包发送给服务器端,服务器端检查ACK 是否为K+1,ACK 是否为1,如果正确,则连接建立成功,客户端和服务器端进入 ESTABLISHED 状态,完成三次握手,随后客户端与服务器端之间即可以开始传输数据了。 图3-9显示了TCP的各种状态。 图3-9 TCP的各种状态 第3 章 计算机网络体系结构与IP 协议 47 3.网际层 网际层也称为网际互联层,对应OSI参考模型的网络层,主要解决主机到主机的通信 问题。它所包含的协议设计数据包在整个网络上的逻辑传输,赋予主机一个IP地址来完成 对主机的寻址,还负责数据包在多种网络中的路由。该层有3个主要协议:网际协议、互联 网组管理协议和互联网控制报文协议。 IP协议是网际层最重要的协议,它提供的是一个不可靠、无连接的数据报传递服务。 互联网组管理协议(internetgroupmanagementprotocol,IGMP)是TCP/IP协议簇中负责 IPv4组播成员管理的协议。互联网控制报文协议(internetcontrolmessageprotocol, ICMP)是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。 4.网络接口层 网络接口层与OSI参考模型中的物理层和数据链路层相对应。它负责监视数据在主 机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互联的各网络 使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接口层进行连接。地址解析 协议(ARP)工作在此层,即OSI参考模型的数据链路层。 3.4 IPv4 3.4.1 IPv4简介 1.IP的主要功能 IP是英文internetprotocol的缩写,意思是网络互联协议,是为计算机网络相互连接进 行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信 的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算 机系统,只要遵守IP就可以与因特网互联互通。正是因为有了IP,因特网才得以迅速发 展,成为世界上最大的、开放的计算机通信网络。因此,IP也可以叫作因特网协议。 IP的基本任务是屏蔽下层各种物理网络的差异,向上层提供统一的IP数据报。由IP 控制传输的协议单元称为IP数据报,各个IP数据报是相互独立的。IP的基本功能是对数 据报进行寻址和路由,并从一个网络转发到另一个网络。它屏蔽了形形色色的物理网络的 差异,向上一层提供无连接的IP数据报服务。IP在每个发送的数据报前加入一个控制信 息,其中包含了源主机的IP地址和其他的一些信息。IP的另一项工作是分割和重编在传 输层被分割的数据报。由于数据报要从一个网络转发到另一个网络,当两个网络支持的数 据报大小不同时,IP就要在发送端将数据报分割,然后在分割的每一分片前再加入控制信 息进行传输。当接收端接收到数据报的所有分片后,IP将这些分片重新组合形成原始的数 据报。 2.IP的特征 IP是一个无连接的协议。无连接是指主机之间不建立用于可靠通信的端到端的连接, 源主机只是简单地将IP数据报发送出去,但是IP数据报在传输的过程中可能会丢失、重 复、延迟或者失序(顺序混乱)等,因此要实现数据报的可靠传输,必须依靠高层的协议或者 应用程序,如传输层的TCP。 计算机网络基础与实训教程(第2 版·微课版) 48 IP的重要特性是非连接和不可靠。非连接是指经过IP处理过的数据报是相互独立 的,可以按照不同的路径传输到目的地,到达的顺序可以不一致。不可靠是指没有提供对数 据流在传输时的可靠性控制,是尽力传送的数据报协议。它没有任何质量保证体系,对底层 子网也没有提供任何纠错功能,用户数据报可能发生丢失、重复或者失序。IP无法保证数 据报传输的结果,IP服务本身也不关心这些结果,也不将结果通知收发双方。 3.IP数据报的格式 TCP/IP定义了一个在因特网上传输的包,称为IP数据报(IPdatagram)。这是一个与 硬件无关的虚拟包,由首部和数据两部分组成。首部的前一部分是固定长度的20B,是所有 IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部 中的源地址和目的地址都是IP协议地址。IP数据报格式如图3-10所示。 图3-10 IP数据报格式 IP数据报各字段功能如下。 (1)版本号:占4个二进制位,表示该IP数据报使用的IP版本。目前因特网中使用的 主要是TCP/IP协议族中版本号为6的IP协议。 (2)首部长度:占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单 位是32位字(1个32位字长是4B),因此,当IP的首部长度为二进制的1111(即十进制的15) 时,首部长度就达到60B。当IP数据报的首部长度不是4B的整数倍时,必须利用首部最后的 填充字段加以填充。因此数据部分永远从4B的整数倍开始,这样在实现IP时较为方便。首 部长度限制为60B的缺点是有时可能不够用。这样做的目的是希望用户尽量减少开销。最常 用的首部长度就是20B(即首部长度为二进制的0101),这时不使用任何选项。 (3)服务类型(typeofservice,TOS):占8位,用于规定本数据报的处理方式。服务类 型字段的8位分成5个子域,如图3-11所示。 图3-11 服务类型 ① 优先权的取值为0~7,数越大,表示该数 据报优先权越高。在网络中,路由器可以使用优 先权进行拥塞控制,例如,当网络发生拥塞时,可 以根据数据报的优先权来决定数据报的取舍。 ② 短延迟位D(delay):该位置1时,数据报请求以短延迟信道传输;0表示正常延迟。 ③ 高吞吐量位T(throughput):该位置1时,数据报请求以高吞吐量信道传输;0表示 普通吞吐量。 第3 章 计算机网络体系结构与IP 协议 49 ④ 高可靠位R(reliability):该位置1时,数据报请求以高可靠性信道传输;0表示普通 可靠性。 ⑤ 保留位占两位。 (4)总长度:占16位,总长度字段是指整个IP数据报的长度(首部+数据区),以字节 为单位。利用首部长度字段和总长度字段就可以计算出IP数据报中数据部分的起始位置 和长度。由于该字段占16位,因此理论上IP数据报最长可达65536B(事实上受物理网络 的限制,要比这个数值小很多)。 (5)标识(identification):占16位。IP在存储器中运行一个计数器,每产生一个数据报, 计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接的服务, 数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU(maximumtransferunit, 最大传送单元)而必须分片时,标识字段的值就被复制到所有数据报的标识字段中。相同的标 识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。 (6)标志(flag):占3位,但目前只有2位有意义。标志字段中的最低位记为MF (morefragment)。MF=1表示后面还有分片的数据报。MF=0表示这已是若干数据报分 片中的最后一个。标志字段中间的一位记为DF(don..tfragment),意思是不能分片。只有 当DF=0时才允许分片。 (7)片偏移:占13位。用于指出较长的数据报在分片后,某片在原数据报中的相对位 置,也就是相对于用户数据部分的起点,该分片从何处开始。片偏移以8B为偏移单位。这 就是说,每个分片的长度一定是8B(64b)的整数倍。 (8)生存时间(timetolive,TTL):占8位,它指定了数据报可以在网络中传输的最长 时间。实际应用中把生存时间字段设置成数据报可以经过的最大路由器数。TTL的初始 值由源主机设置(通常为32、64、128或256),一旦经过一个处理它的路由器,它的值就 减1。当该字段为0时,数据报就丢弃,并发送ICMP报文通知源主机,因此可以防止数据 报进入一个循环回路时无休止地传输下去。 (9)协议:上层协议标识,占8位。IP可以承载各种上层协议,目的端根据协议标识就 可以把收到的IP数据报送到TCP或UDP等处理此报文的上层协议了。 表3-2显示了常用的网际协议。 表3-2 常用的网际协议 十进制编号协议说 明十进制编号协议说 明 0 无保留 1 ICMP 互联网控制报文协议 2 IGMP 互联网组管理协议 3 GGP 网关-网关协议 4 无保留 5 ST 流 6 TCP 传输控制协议 8 EGP 外部网关协议 9 IGP 内部网关协议 11 NVP 网络声音协议 17 UDP 用户数据报协议 (10)首部校验和:占16位,用于IP数据报首部有效性的校验,可以保证IP数据报首 部在传输时的正确性和完整性。首部校验和字段是根据IP数据报首部计算出的校验和,它 计算机网络基础与实训教程(第2 版·微课版) 50 不对首部后面的数据进行计算。 (11)源地址:占32位,表示发送端IP地址。 (12)目的地址:占32位,表示目的端IP地址。 (13)可选字段:用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可 变,为1~40B,取决于所选择的项目。某些选项只需要1B,只包括1B的选项代码,但还有 些选项需要多个字节。这些选项一个个拼接起来,中间不需要分隔符,最后用全0的填充字 段补齐为4B的整数倍。 (14)填充:可选字段大小要求是4B的整数倍,否则要用填充字段来补齐,通常用0来 填充。 3.4.2 IPv4地址 1.IP地址简介 在网络中,对于主机的识别要依靠地址。大多数局域网通过网卡的物理地址,来标识一 个联网的计算机或其他设备。所谓物理地址,是指固化在网卡EPROM 中的地址,这个地 址应该保证在全网是唯一的。如果固化在网卡中的地址为112233445566,那么这块网卡插 到主机A 中,主机A 的地址就是112233445566,不管主机A 是连接在局域网1上还是在局 域网2上,也不管这台主机移到什么位置,它的物理地址一直是112233445566,是不变的, 而且不会和世界上任何一台计算机相同。使用物理地址,当主机A 发送一帧时,网卡执行 发送程序,直接将这个地址作为源地址写入该帧。当主机A 接收一帧时,直接将这个地址 与接收帧目的地址比较,以决定是否接收。 使用物理地址寻址有以下问题。 (1)物理地址被固化在网络设备(网卡)中,通常不能被修改。 (2)物理地址属于非层次化的地址,它只能标识出单个设备,不能标识出该设备连接的 是哪一个网络。 针对物理地址存在的问题,采用逻辑地址的编址方案,使用网络层的IP地址。IP地址 通过上层软件对各个物理地址进行统一编址,这种软件的方式没有改变物理地址,而是屏蔽 了它们,建立了一种IP地址与物理地址的映射关系。这样,在网络层使用IP地址,到了底 层,通过映射得到物理地址。 IP地址作为互联网的逻辑地址是有层次的,IP地址为32位长,理论上可以有232个地 址。互联网给每一台上网的计算机分配一个32位长的二进制数字编号,这个编号就是IP 地址。 IP地址由地址类别、网络号和主机号3部分组成,其结构如图3-12所示。其中,地址类 别用来标识网络类型,网络号用来标识一个逻辑网络,主机号用来标识网络中的一台主机。 互联网中的主机至少有一个IP地址,而且这个IP地址是全网唯一的。 图3-12 IP地址的结构 用二进制数表示的IP地址不方便记忆和阅读,所以采用点分十进制的方法来表示IP 地址。即,将32个二进制位每8位单独转成一个十进制数,共4个十进制数,中间用点隔 第3 章 计算机网络体系结构与IP 协议 51 开。例如,某主机IP地址是11001010001010010000100000010000,按上面的规则写成 202.41.8.16。 2.IP地址的分类 IP协议把IP地址分为5类,即A 类、B类、C类、D 类和E类。5类IP地址的格式如 图3-13所示。 图3-13 A~E类IP地址的格式 A 类地址适用于大型网络,B类地址适用于中型网络,C类地址适用于小型网络,D 类 地址用于多播,E类地址预留。地址的类别可以从IP地址的最高8位判断,如表3-3所示。 表3-3 IP地址分类 IP地址分类高8位数值范围IP地址分类高8位数值范围 A类0~127 D类224~239 B类128~191 E类240~255 C类192~223 1)A 类地址 A 类地址用最高位为0表示网络类别,接下来的7位表示网络号,低24位表示主机号。 通过网络号和主机号的位数可以知道,A 类地址的网络数为27=128个,每个网络中包含的 主机数为224=16777216个,A 类网络地址的范围是0.0.0.0~127.255.255.255,如图3-14 (a)所示。 图3-14 A类地址 由于网络号全0和全1保留用于特殊目的,所以A 类地址的有效网络数为126个,每 个网络中包含的主机数是224-2=16777214。因此,一台主机能使用的A 类地址有效范 计算机网络基础与实训教程(第2 版·微课版) 52 围为1.0.0.1~126.255.255.254,如图3-14(b)所示。 2)B类地址 B类地址用最高两位为10表示网络类别,接下来的14位表示网络号,低16位表示 主机号。因此,B类地址的有效网络数为214-2=16382个,每个网络中包含的主机数为 216-2=65534个。B类地址的范围为128.0.0.0~191.254.254.255,一台主机可以使用的B 类地址的有效范围是128.1.0.1~191.255.255.254,如图3-15所示。 图3-15 B类地址 3)C类地址 C类地址用最高3位为110表示网络类别,接下来的21位表示网络号,低8位表示主 机号。因此,C类地址网络个数为221个,每个网络中包含主机256个。C类地址的范围是 192.0.0.0~223.255.255.255,同理,一台主机能够使用的有效范围是192.0.1.1~ 223.255.254.254,如图3-16所示。 图3-16 C类地址 4)D类地址 D类地址用于多播。多播就是同时把数据发送给一组主机,只有那些已经登记可以接 收多播地址的主机才能接收多播数据。 5)E类地址 E类地址是预留的,同时也可以用于实验目的,但它们不能分配给主机。 3.特殊IP地址 在IP中,规定了一些特殊的IP地址,这些IP地址具有特别的作用,不能分配给主机。 特殊IP地址如表3-4所示。 (1)网络地址。网络地址又称为网段地址,是网络号不空而主机号全0的IP地址,即 网络本身。例如地址222.220.32.0为网络地址,表示整个网络。 (2)直接广播地址。网络号不空而主机号全1的IP地址,表示这一网段下的所有用 户。例如,222.220.32.255就是直接广播地址,表示222.220.32网段下的所有用户。若其他 第3 章 计算机网络体系结构与IP 协议 53 表3-4 特殊IP地址 地址类型网络号主机号说 明 本机地址全0 全0 启动时使用 网络地址有网络号全0 标识一个网络 直接广播地址有网络号全1 在网络外向网络内的所有主机进行广播 内网广播地址全1 全1 在本地网进行广播 回环测试地址127 任意回环测试 网络中的主机要向222.220.32网段下的所有用户进行广播,则向地址222.220.32.255进行 广播即可。 (3)内网广播地址。也叫有限广播地址,是网络号和主机号都是1的IP 地址。向 255.255.255.255这个地址发送的数据会在本地网络进行广播。 (4)回环测试地址。网络号为127而主机号任意的IP地址。最常用的回环测试地址 是127.0.0.1。 4.私有地址 私有地址专门用于企业内部网络中,不能作为互联网上的地址。内部网络由于不与外 部互联,因而可以使用任意IP地址。使用私有地址的内部网络在接入因特网时,要使用地 址翻译(NAT)将私有地址翻译成合法IP地址。在因特网上,这类地址是不能出现的。A、 B、C类地址都有私有地址段。 (1)A 类地址可以使用的私有地址段为10.0.0.0~10.255.255.255。 (2)B类地址可以使用的私有地址段为172.16.0.0~172.131.255.255。 (3)C类地址可以使用的私有地址段为192.168.0.0~192.168.255.255。 3.4.3 子网技术 出于对管理、性能和安全方面的考虑,可以把单一网络划分为多个物理网络,并使用路 由器将它们连接起来,子网划分技术能够使单个网络地址包含几个物理网络。 1.划分子网的原因 划分子网的原因主要有以下几方面。 (1)充分使用地址。由于A 类网络和B类网络的地址空间太大,根本无法在单一网络 中用完全部地址。因此,为了能够有效地利用地址空间,必须把可用地址分配给多个较小的 网络。 (2)划分管理职责。当一个网络被划分为多个子网后,每个子网的管理可以由子网管 理人员负责,使网络变得更加容易控制。 (3)提高网络性能。在一个网络中,随着网络用户的增长和主机的增加,网络通信也将 变得非常繁忙。如果将一个大型网络划分为若干个子网,并通过路由器将其连接起来,就可 以减少网络拥塞。 2.划分子网的方法 IP地址共32位,分为网络号和主机号两部分。为了划分子网,可以将单个网络的主机 计算机网络基础与实训教程(第2 版·微课版) 54 号分为两个部分,一部分用于子网号的编址,另一部分用于主机号编址,如图3-17所示。 图3-17 子网的划分 子网号的位数取决于具体的需要。子网号占用的位越多,则可以分配给主机的位数就 越少,也就是在一个子网中包含的主机越少。假设一个B类网络地址为172.16.0.0,将主机 号分为两部分,其中8位用于子网号,8位用于主机号,那么这个B类地址就被分为254个 子网,每个子网可以容纳254台主机。 3.子网掩码 将网络地址分为子网络号和主机号,那么网络中各个节点如何知道哪几位是网络号,哪 几位是主机号呢? 方法是通过子网掩码来识别网络号和主机号。一个网络有一个子网掩 码。子网掩码也是一个用点分十进制表示的32位二进制数,其取值的设置规则为:对应IP 地址中网络号和子网号的位置设置为1,对应主机号的位置设置为0。通过判断是否为1即可 知道哪几位是网络号。标准的A类、B类、C类地址都有一个默认的子网掩码,如表3-5所示。 表3-5 A 类、B类、C类地址默认的子网掩码 地址类型十进制表示子网掩码的二进制位 A 255.0.0.0 11111111 00000000 00000000 00000000 B 255.255.0.0 11111111 11111111 00000000 00000000 C 255.255.255.0 11111111 11111111 11111111 00000000 为了识别网络地址,TCP/IP对子网掩码进行按位与操作。按位与就是两个二进制数 的对应位进行与运算。若两个值均为1,则结果为1;若其中一个值为0,则结果为0。例如, 对于B类地址172.16.31.55,若使用B类地址的默认子网掩码255.255.0.0,则其网络号为 172.16.0.0;若使用划分了子网的子网掩码255.255.255.0,则其网络号为172.16.31.0。具体运 算过程如图3-18所示。 图3-18 使用不同子网掩码时网络号不同 第3 章 计算机网络体系结构与IP 协议 55 在图3-18中,子网掩码使用一个字节用于划分子网,这种子网掩码叫边界子网掩码,其 特点是子网掩码的取值不是0就是255,非常整齐。但在实际的子网划分中,还会使用一个 字节的某几位作为子网号,这就是非边界子网掩码。非边界子网掩码的取值除了255外,还 有其他值。 4.划分子网的规则 在RFC950文档中规定了子网划分的规范,其中对网络地址中的子网号做了如下规定。 (1)由于网络号全为0代表的是本网络,所以网络地址中的子网号不能全为0。 (2)由于网络号全为1表示广播地址,所以网络地址中的子网号也不能全为1。 例如,划分子网的时候使用3位二进制数作为子网号,可以划分为8个子网(000、001、 010、011、100、101、110、111),但根据上述规则,全0和全1的子网不能使用,所以只有6个 子网可以使用。 RFC950禁止使用全0和全1的子网号,全0子网会给早期的路由器选择协议带来麻 烦,全1子网与所有子网的直接广播地址冲突。随着网络技术的发展,很多供应商主机的产 品可以支持全0和全1的子网。所以,当用户要使用全0或者全1的子网时,需要确认网络 中的主机或者路由器是否支持。另外,对于可变长子网划分VLSM 和无类域间路由CIDR, 由于它们属于现代网络技术,已经不再按照传统的A 类、B类、C类地址的方式工作,因而不 存在全0子网和全1子网的问题,全0和全1的子网都可以使用。 5.子网划分实例 为了将网络划分为不同的子网,必须为每一个子网分配一个网络号。在划分子网前,需 要确定需要的子网数和每个子网的最大主机数,有了这些信息后,就可以定义每个子网的子 网掩码、网络地址的范围和主机号范围。划分子网的步骤如下。 (1)确定需要多少个子网号来标识网络中的每一个子网。 (2)确定需要多少个主机号来标识每个子网中的每一台主机。 (3)定义一个符合网络要求的子网掩码。 (4)确定标识每一个子网的网络地址。 (5)确定每一个子网所使用的主机地址范围。 接下来用一个实例说明子网划分的过程。 假设某企业内部有5个部门:市场部、行政部、营销部、财务部和后勤部。该企业申请 到一个C类网络地址192.99.20.0/24,要对该网络进行子网划分,以确保不同部门的主机处 于不同的子网中,提升网络的性能和确保通信的安全,请进行子网的规划。 该企业有5个部门,至少需要5个子网,则需要从第4个字节中划分出3位二进制数作 为子网号。假设全0和全1的子网号不可用,则3位二进制数可以划分成6个子网,取其中 的5个子网即可。 第4个字节划分出3位二进制数作为子网号,则剩下5位二进制数作为主机号,一共可 以容纳的主机数目为25-2=30,符合要求。 该划分子网的方案可行,接下来确定子网掩码。子网掩码为255.255.255.224,如 图3-19所示。 确定了子网掩码后,就可以确定可用的网络地址了。子网号为3位二进制数可以有8 种取值组合,去掉全0和全1的两种组合后,还有6种组合,即001、010、011、100、101、110, 计算机网络基础与实训教程(第2 版·微课版) 56 图3-19 子网掩码划分 把前5种组合分配给公司的5个部门,网络地址分配如图3-20所示。 图3-20 网络地址分配 根据每个子网的网络地址就可以确定每个子网的主机地址范围,如表3-6所示。 表3-6 子网划分及主机地址范围 部 门子网网络地址子网号子网主机号范围子网主机地址范围 市场部192.99.20.32 001 00001~11110 192.99.20.33~192.99.20.62 行政部192.99.20.64 010 00001~11110 192.99.20.65~192.99.20.94 营销部192.99.20.96 011 00001~11110 192.99.20.97~192.99.20.126 财务部192.99.20.128 100 00001~11110 192.99.20.129~192.99.20.158 后勤部192.99.20.160 101 00001~11110 192.99.20.161~192.99.20.190 6.可变长子网划分 除了用点分十进制法表示外,子网掩码还可以用网络前缀标记法来表达。前面使用的 C类地址默认子网掩码255.255.255.0就是点分十进制表示法。网络前缀法是一种表示子 网掩码中网络地址长度的方法。由于网络号是从IP地址高字节以连续的方式从左到右选 取若干位作为网络号,因此可以用“IP地址/网络号位数”这种方式来表示。 一个子网掩码为255.255.0.0的B类网络地址172.16.0.0用网络前缀标记法可以表示 为172.16.0.0/16。若对这个B类网络进行子网划分,使用主机号的前8位用于子网号,网 络号和子网号共计24位,因此,该网络地址的子网掩码为255.255.255.0,使用网络前缀法 表示时,子网172.16.20可以表示为172.16.20.0/24。