第1 章 计算机网络的基本概念 计算机网络的基本概念 物理网络与互联网络 ISO/OSI的层次结构和各层功能 TCP/IP体系结构与各层功能 计算机网络的发展与计算机技术和通信技术的发展密不可分。早期的每台计算机都独 立于其他计算机,拥有的硬件资源和数据资源也只能自己使用。例如,如果计算机连接了打 印机,那么只有该计算机上的用户能够使用它打印文档;如果在计算机上建立了数据库,那 么只有该计算机上的用户能够访问数据库中的数据。随着计算机得到更加广泛和深入的应 用,人们发现这种方式既不高效也不经济,资源浪费非常严重。在用户这种共享计算机资源 需求的推动下,计算机网络诞生了。 1.1 计算机网络的概念 计算机网络的出现,使人们进行在线通信和信息共享成为可能。本节介绍计算机网络 的定义、计算机网络的组成和计算机网络的分类。 1.1.1 认识计算机网络 所谓计算机网络就是利用通信线路将具有独立功能的计算机连接起来而形成的计算机 集合,计算机之间可以借助于通信线路传递信息,共享软件、硬件和数据等资源。图1-1所 示为计算机网络的简单示意图。 从以上的定义可以看出,计算机网络建立在通信网络的基础上,是以资源共享和在线通 信为目的的。利用计算机网络,单位不必花费大量的资金为每一位员工配置打印机,因为网 络使共享打印机成为可能;利用计算机网络,用户不但可以利用多台计算机处理数据、文档、 图像等各种信息,而且可以和他人分享这些信息。在信息化高度发达的社会,在“时间就是 金钱,效率就是生命”的今天,计算机网络为团队作业、协同工作提供了强有力的支持平台。 计算机网络的规模有大有小,大的可以覆盖全球,小的仅由两三台计算机构成。在一般 情况下,计算机网络的规模越大,包含的计算机越多,所提供的网络资源和服务就越丰富,价 值也越高。 计算机网络(第4版) 图1-1 计算机网络示意图 1.2 计算机网络的组成部件 1. 计算机网络由三大类部件组成,它们是主机、通信设备和传输介质。 1. 主机 主机是信息资源和网络服务的载体,是对终端处理设备的统称。在计算机网络中,大型 机、小型机、PC 、笔记本电脑、平板电脑等终端设备都被叫作主机。人们既可以通过主机向 网络提供服务,也可以通过主机使用网络的服务。 按照在计算机网络中扮演的角色不同,主机分为服务器和客户机两类。其中,服务器是 网络服务和网络资源的提供者,客户机是网络服务和网络资源的使用者。但是,在对等网络 应用中,主机之间地位平等,一台主机身兼两职,既是网络资源的提供者,又是网络资源的消 费者。 2. 通信设备 通信设备接收源主机或其他通信设备传入的数据,在对数据进行必要的处理(如差错校 验、路由选择等)后转发给下一通信设备或目的主机。 通信设备的种类有很多,常见的通信设备包括交换机、路由器等。这些设备位于计算机 网络连接的交叉口,尽管采用的技术路线和完成的功能不同,但都可以处理接收到的数据, 并指挥这些数据按照正确的路径前进。 3. 传输介质 主机和通信设备之间、通信设备和通信设备之间通过传输介质互联。在传输介质上,主 机和通信设备之间(或通信设备和通信设备之间)会形成一条(或多条)传输数据的信道,一 条信道有时又被称为一条链路。 计算机网络中使用的传输介质可以分为有线和无线两种。有线传输介质包括非屏蔽双 绞线、屏蔽双绞线、光纤、同轴电缆等;无线传输介质包括短波信道、微波信道、红外信道、卫 星信道等。不同的传输介质具有不同的传输特性,它们可以提供的传输距离和传输速度也 第 1 章 计算机网络的基本概念 相差很大。 1.物理网络与互联网络 1.3 计算机网络从技术角度可以细化为物理网络和互联网络。 1.物理网络 在一种物理网络中,联网主机和通信设备需要遵循共同的网络协议和行动准则。它们 拥有相同的地址形式、使用相同的数据格式、运行相同的路由选择算法、采用相同的差错处 理方式……由于不同种类的物理网络采用不同的技术方法进行实现,因此形成的网络特征 和提供的网络服务也各不相同。目前,常用的物理网络包括有线以太网、无线局域网、ATM 网等。 按照覆盖的地理范围,物理网络可以分为广域网(wideareanetwork,WAN )、城域网 (和局域网(LAN )。 metropolitanareanetwork,MAN) localareanetwork, (1)广域网。广域网覆盖的地理范围从几十千米到几千千米,可以覆盖一个国家、一个 地区或横跨几个洲,形成国际性的计算机网络。广域网通常可以利用公用网络(如公用数据 网、公用电话网、卫星通信网等)进行组建,将分布在不同国家和地区的计算机系统连接起 来,达到资源共享的目的。常见的广域网包括ATM 、帧中继、DDN等。 (2)城域网。城域网的设计目标是满足几十千米范围内的大量企业、机关、公司共享资 源的需要,使大量用户之间可以进行高效的数据、语音、图形图像以及视频等多种类型信息 的传输。FDDI曾经是比较典型的城域网。但是随着以太网技术的发展,目前基本上使用 交换式以太网组建城域网。 (3)局域网。局域网用于将有限范围内(如一个实验室、一幢大楼、一个校园)的各种计 算机系统互联成网,具有传输速率高(一般为10Mbps~10Gbps)、误码率低(一般低于10-8) 的特点。局域网通常由一个单位或组织建设和拥有,易于维护和管理。根据采用的技术和 协议标准的不同,局域网分为共享式局域网与交换式局域网。局域网技术的应用十分广泛, 是计算机网络中最活跃的领域之一。典型的局域网包括令牌环网(oeig 令牌总线网 tknrn)、 (tokenbus)、以太网(ethernet)、无线局域网(wirelesLAN)等。在激烈的市场竞争中,交 换式以太网和无线局域网独占鳌头,凭借其实现简单、部署方便等特点,占据了局域网市场 的半壁江山。 2.互联网络 互联网络(k)简称互联网(t),是将物理网络相互连接而形成的计算 机网络。实现互联网的目的是屏蔽各种物理网络的差异,为用户提供统一的、通用的 internetworinterne 服务 I 。 nternet(因特网,国际互联网)是世界上最大、最著名的互联网,由成千上万的、各种各 样的物理网络相互连接而成。Internet互联了遍及全世界的数千万计算机系统,拥有几亿 用户。Internet的发展令人振奋,以至于Internet成了互联网乃至计算机网络的代名词。 人们常说的“上网”,指的就是登录Internet。 物理网、互联网、Internet之间既有区别也有联系。例如,有线以太网是一种物理网,无 线局域网也是一种物理网。将一个有线以太网与一个无线局域网通过网络设备连接起来, 就形成了一个小型互联网。如果将这个小型的互联网连入Internet,那么这个小型互联网 就成为Internet这个大型互联网的一部分,可以共享Internet上的资源。 1.2 分组交换、网络协议与网络的层次结构 分组交换、网络协议和层次结构是计算机网络中三个重要的概念。 1.2.1 分组交换 在计算机网络中,数据的传递通常采用存储转发方式。在存储转发方式中,数据从源主 机出发,经若干通信节点到达目的主机。途中的通信节点接收整个数据,将数据短暂存储, 然后选择合适的路径转发给下一个通信节点(或目的主机)。为了使通信节点能够为接收到 的数据选择合适的转发路径,存储转发方式要求主机在发送前将数据信息的源地址、目的地 址等控制信息添加到信息的前部(或后部),形成所谓的封装数据。 图1-2显示了采用存储转发方式时,主机A 向主机B发送数据IAB,主机C向主机D发 送数据ICD的情形。从图1-2中可以看到,通信节点A 接收主机A 和主机C发送的信息IAB 和ICD,并将收到的信息在自己内存中排队。只要通信节点A 和通信节点C之间的信道空 闲,通信节点A 就依次将IAB和ICD转发给通信节点C。同样,通信节点C接收和缓存IAB和 ICD,并将IAB转发给通信节点E,将ICD转发给通信节点D。最终,通信节点E和通信节点D 分别将收到的IAB和ICD转发给主机B和主机D。 图1-2 存储转发示意图 在存储转发方式下,如果主机A 和主机B的通信断断续续,那么主机C和主机D就能 充分利用其空闲时间发送信息,而不必等待主机A 和主机B的通信结束。但是,如果主机 A 发送的IAB非常大(如IAB数据块的大小为10GB),那么通信节点A 在向通信节点C发送 IAB时,主机C发送的ICD就需要等待,而且需要等待很长时间。 为了避免一台主机一次发送大量数据,致使另一台主机长时间等待情况的发生,现代计 算机网络通常要求发送主机将大块的用户数据分割成多个小块,并为每一小块数据添加源 地址、目的地址等控制信息,封装成所谓的数据分组(packet,也称数据包),如图1-3所示。 作为一个数据单元,数据分组经通信节点存储转发到达目的主机,并在目的主机重组成分割 前的大块数据。 分组交换本质上是一种存储转发交换。由于将大块的数据分割成小块的数据分组,因 此与传统的存储转发相比,分组交换具有以下特点。 4 计算机网络(第4 版) 第 1章 计算机网络的基本概念 图1-3 数据分组封装 (1)并发性高。在分组交换中,由于节点按照数据分组到达的先后顺序进行排队转发, 而每个分组的长度较短,因此即使一个节点需要传送大量的数据,另一个节点也可以将其数 据穿插其中,不会出现类似死机的现象。 (2)出错后重传量小。发现差错时,可以重传出错的数据分组。由于数据分组的长度 比较短,因此重传数据量和重传时间相对较少,差错重传的效率比较高。 (3)缓存要求低。在分组交换中,通信节点需要缓存的是数据分组。由于数据分组比 较短,因此对缓存的要求也比较低。例如,主机在传送大块数据时,会分解成很多的数据分 组。通信节点只要能缓存一定量的数据分组,就能边收边发,将所有数据转发出去。 (4)传输延迟小。在分组交换中,中间的通信节点只要收到数据分组就能立即开始转 发,无须等待发送方的所有数据到来。通信节点一边接收后续的分组,一边转发缓存的分 组,整体上形成了一个流水线,降低了传输延迟。 根据处理环境的不同,数据分组有不同的表现形式。本书后面提到的数据链路层的 “帧”、互联层的“数据报”、传输层的“段”等都是数据分组。 2.网络协议 1.2 网络协议是通信双方为了实现通信所进行的约定或所做的对话规则。实际上,为了实 现人与人之间的交互,通信规约无处不在。例如,在使用邮政系统发送信件时,信封必须按 照一定的格式书写(如收信人和发信人的地址必须按照一定的位置书写), 否则可能会造成 投递错误;同时,信件的内容也必须遵守一定的规则(如使用中文书写), 否则可能会造成收 信人理解偏差。在计算机网络中,信息的传输与交换也必须遵守一定的协议,而且协议的优 劣直接影响网络的性能,因此网络协议的制定和实现是计算机网络的重要组成部分。 网络协议通常由语义、语法和定时关系3个部分组成。语义定义做什么,语法定义怎么 做,定时关系则定义何时做。 计算机网络是一个庞大、复杂的系统。网络的通信规约和规则不是一个网络协议可以 描述清楚的。因此,在计算机网络中存在多种协议,每一种协议都有其设计目标和需要解决 的问题,同时,每一种协议也都有其优点和使用限制,这样做的主要目的是使协议的设计、分 析、实现和测试简单化。 网络协议的划分应保证目标通信系统的有效性和高效性。为了避免重复工作,每个协 议应该处理没有被其他协议处理过的那部分通信问题,同时,这些协议之间也可以共享数据 和信息。例如,有些协议工作在网络的较低层次,保证数据信息通过网络接口卡到达通信电 缆;而有些协议工作在网络的较高层次,保证数据到达对方的应用进程。这些协议相互作 用,协同工作,完成整个网络的信息通信和处理规约,解决所有的通信问题和其他异常情况。 1.2.3 网络的层次结构 化繁为简、各个击破是人们解决复杂问题常用的方法。对网络进行层次划分就是将计 算机网络这个庞大的、复杂的问题划分成若干较小的、简单的问题。通过“分而治之”,解决 这些较小的、简单的问题,从而解决计算机网络这个大问题。 计算机网络的层次结构一般按照层内功能内聚,层间耦合松散的原则进行划分。也就 是说,在网络中,功能相似或紧密相关的模块放置在同一层;层与层之间保持松散的耦合关 系,使信息在层与层之间的流动降到最小。 计算机网络采用层次结构的优越性包括以下几个方面。 (1)各层之间相互独立。高层仅需要知道低层提供的服务,不需要知道低层是如何实 现的。 (2)灵活性好。当一层发生变化时,只要这层与其他层的接口保持不变,其他层就不会 受到影响。这样,每层都可以采用最合适的技术进行实现,各层实现技术的改变不影响其 他层。 (3)易于实现和维护。整个计算机网络系统被分解为若干个易于处理的部分,使庞大 而复杂的系统实现变得容易控制。 (4)有利于网络标准化。因为每一层的功能和所提供的服务都进行了精确的说明,所 以标准化变得较为容易。 1.3 OSI 参考模型 随着网络应用的广泛和深入,人们逐渐认识到网络技术在提高生产效率、节约成本等方 面的重要性。但是,由于计算机网络发展初期没有规范的标准,因此很多网络系统不能相互 兼容,用户很难在不同的网络之间进行通信。 为了解决这些问题,人们迫切盼望网络标准的出台。为此,科研机构、网络企业和标准 化组织进行了大量的工作。其中,开放式系统互联参考模型(opensysteminterconnect referencemodel,OSIRM)和TCP/IP体系结构的提出和应用就是其中最重要的成就。 1.3.1 OSI参考模型的结构 开放式系统互联参考模型OSI 由国际标准化组织(internationalstandards organization,ISO)提出,所以也称为ISO/OSI参考模型,是一个描述网络层次结构的模型。 OSI参考模型的主要目标是保证各种类型网络技术的兼容性和互操作性,它定义了网络的 层次结构、信息在网络中的传输过程和各层主要功能。 OSI参考模型描述了信息如何从一台主机的应用进程到达网络中另一台主机的应用进 程。当信息在一个OSI参考模型中逐层传送的时候,它越来越偏离人类的语言,变为只有 计算机才能明白的数字0和1。 在OSI参考模型中,主机之间传送信息的问题被分为7个较小且更容易管理和解决的 6 计算机网络(第4 版) 第 1 章 计算机网络的基本概念 小问题。每个小问题由参考模型中的一层解决。之所 以划分为7个小问题是因为它们中的任何一个都囊括了 问题本身,不需要太多的额外信息就能很容易地解决。 将这7个易于管理和解决的小问题映射为不同的网络功 能就叫做分层。OSI参考模型的7层从低到高分别为物 理层(physicallayer)、数据链路层(datalinklayer)、网络 层(networklayer)、传输层(transportlayer)、会话层 (sesionlayer)、表示层(presentationlayer)和应用层 (applicationlayer)。图1-4显示了OSI的7层结构和每 一层需要解决的主要问题。 OSI参考模型并非指一个现实的网络,它只规定了 每层应有的功能,为网络的设计规划出一张蓝图。按照 这张蓝图,标准化组织可以制定具体的实现标准,而网 络企业再按照实现标准设计和生产自己的网络设备或 软件。尽管设计和生产出的网络产品的式样、外观各不相同,但它们都具有相同的功能,能 够协同工作。 按照OSI参考模型,网络中各节点的同等层具有相同的功能,同一节点内相邻层之间 通过接口通信。每一层可以使用它的下一层提供的服务,并向它的上层提供服务。不同节 点的同等层按照协议进行对等层之间的通信,如图1-5所示。 图1-4 OSI参考模型的7层结构 图1-5 OSI参考模型中两节点的层次结构 1.2 OSI参考模型各层的主要功能 3. 下面简单介绍OSI参考模型各层的主要功能。 (1)物理层。物理层处于OSI参考模型的最底层。物理层的主要功能是利用物理传输 介质为数据链路层提供物理连接,负责处理数据传输并监控数据出错率,透明地传送比特 流。物理层关心的主要问题是如何激活、维护和关闭终端用户之间电气的、机械的、过程的 和功能的特性。这些特性包括电压、频率、数据传输速率、最大传输距离、物理连接器及其相 计算机网络(第 4 版) 关属性等。 (2)数据链路层。在物理层提供比特流传输服务的基础上,数据链路层通过在通信的 实体之间建立数据链路连接,传送以“帧”为单位的数据分组。它使有差错的物理线路变成 无差错的数据链路,保证点到点(point-to-point)可靠的数据传输。数据链路层关心的主要 问题包括物理地址、网络拓扑、线路规划、错误通告、数据帧的有序传输和流量控制等。 (3)网络层。网络层的主要功能是为处在不同物理网络中的节点提供一条逻辑传输通 道。最基本的任务包括路由选择、拥塞控制与网络互联等。 (4)传输层。传输层的主要任务是向用户提供可靠的端到端(end-to-end)服务,透明地 传送数据分组。由于传输层向高层屏蔽下层数据通信的细节,因而是计算机通信体系结构 中最关键的一层。该层关心的主要问题包括建立、维护和中断虚电路、传输差错校验和恢 复,以及信息流量控制机制等。 (5)会话层。会话层建立、管理和终止应用进程之间的会话和数据交换。这种会话关 系由两个或多个表示层实体之间的对话构成。 (6)表示层。表示层保证一个系统应用层发出的信息能被另一个系统的应用层读出, 并进行正确解释。如有必要,表示层用一种通用的数据表示格式在多种数据表示格式之间 进行转换。它需要完成数据格式变换、数据加密与解密、数据压缩与恢复等功能。 (7)应用层。应用层是OSI 参考模型中最靠近用户的一层,它为用户的应用进程提供 网络服务。这些应用包括电子数据表格应用、字处理应用、银行终端应用、在线通信应用等。 应用层识别并证实目的通信方的可用性,使协同工作的应用进程之间进行同步,建立传输错 误纠正和数据完整性控制方面的协定,判断是否为所需的通信过程留有足够的资源。 3.数据的封装与传递 1.3 在OSI 参考模型中,对等层之间经常需要交换信息单元。对等层协议之间交换的信息 单元通常叫作协议数据单元(protocoldataunit,PDU )。因为节点对等层之间的通信并不 是直接通信(如两个节点的传输层之间进行通信), 它们需要借助下层提供的服务来完成,所 以将对等层之间的通信称为虚通信,如图1-6所示。 图1-6 直接通信与虚通信 第 1 章 计算机网络的基本概念 事实上,在某一层需要使用下一层提供的服务传送自己的PDU 时,其当前层的下一层 总是将上一层的PDU 变为自己PDU 的一部分,然后利用更下一层提供的服务将信息传递 出去。例如在图1-6中,节点A的传输层需要将某一信息T-PDU 传送到节点B的传输层, 这时传输层就需要使用网络层提供的服务,首先将T-PDU 交给节点A的网络层。节点A 的网络层在收到T-PDU 之后,将T-PDU 变为自己PDU(N-PDU)的一部分,然后再次利用 其下层数据链路层提供的服务将数据发送出去。以此类推,最终将这些信息变为能够在传 输介质上传输的数据,并通过传输介质将信息传送到节点B。 在网络中,对等层可以相互理解和认识对方信息的具体意义(如节点B的传输层收到 节点A的T-PDU 时,可以理解该T-PDU 的信息并知道如何处理该信息)。如果不是对等 层,双方的信息就不可能(也没有必要)相互理解。例如,在节点B的网络层收到节点A的 N-PDU 时,它不可能也没有必要理解N-PDU 包含的T-PDU 代表什么意思。它仅需要将 N-PDU 中包含的T-PDU 通过层间接口提交给上面的传输层。 为了实现对等层通信,当数据需要通过网络从一个节点传送到另一个节点前,必须在数 据的头部(和尾部)加入特定的协议头(和协议尾)。这种增加数据头部(和尾部)的过程叫做 数据打包或数据封装。同样,在数据到达接收节点的对等层后,接收方将识别、提取和处理 发送方对等层增加的数据头部(和尾部)。接收方这种将增加的数据头部(和尾部)去除的过 程叫做数据拆包或数据解封。图1-7显示了数据的封装与解封过程。 图1-7 网络中数据的封装与解封 实际上,数据封装和解封的过程与通过邮局发送信件的过程非常相似,如图1-8所示。 当需要发送信件时,发信人首先需要将写好的信纸放入信封中,然后按照一定的格式书写收 信人姓名、收信人地址及发信人地址。发信人的这种处理过程就相当于应用层的封装过程。 当收到信件后,收信人将信封拆开,取出写有具体内容的信纸。收信人的这种处理过程就相 当于应用层的解封过程。在信件通过邮局传递的过程中,邮局的工作人员只需要识别和理 解信封上的内容。对于信封中信纸上书写的内容,他们不可能也没有必要了解。 计算机网络(第4版) 图1-8 邮政信件的封装、传递与解封 图1-9给出了一个完整的OSI 数据传递与流动过程。从图1-9中可以看出,OSI 环境 中数据流动过程如下。 图1-9 OSI 中数据的传递与流动 (1)当发送进程需要发送数据DATA 至网络中另一节点的接收进程时,应用层为数据 加上本层控制报头AH 后传递给表示层。 (2)表示层接收到这个数据单元后,加上本层的控制报头PH,然后传送到会话层。 10