第1章 计算机网络概述 目前,计算机网络的应用已经渗透到我们工作和生活的各个方面,并深刻影响着我们 的工作和生活方式:新闻资讯的获取、在线的娱乐应用、基于即时通信(Instant Message, IM)软件的工作任务的下达、办公自动化(Office Automation,OA)系统的应用,所有这 一切都依托于计算机网络实现。虽然现在很多网络应用都是通过手机上网实现的,例如网 上购物、线上教学、微信等,其实手机就是一个类似计算机的智能终端设备,手机上网也 是依托计算机网络实现的。 什么是计算机网络?计算机网络的基础知识有哪些?本章将对其基本概念进行 介绍。 1.1 计算机网络的定义与组成 计算机网络从字面上理解即为由计算机组成的网络系统。通俗地讲,计算机网络就是 利用通信线路和通信设备将多个具有独立功能的计算机系统连接起来,按照网络通信协议 实现资源共享和信息传递的系统。在这个定义中包含以下4个要素。 (1)网络中的主体是具有独立功能的计算机系统,即计算机对于网络没有依赖性,离 开网络也可以自主运行。 (2)计算机之间在物理上需要使用通信线路和通信设备进行连接。 (3)计算机之间连接的目的是实现资源的共享和信息的传递。 (4)要想实现资源共享和信息传递,需要参与通信的计算机遵循一定的逻辑规则,即 网络通信协议。 通常,计算机网络被分成通信子网和资源子网两部分,分别用来完成信息传递和资源 共享两大功能。其中,通信子网由计算机网络中实现网络通信功能的设备及其软件组成, 包括路由器、交换机、通信线路、网络通信协议以及通信控制软件等;资源子网由计算机 网络中实现资源共享功能的设备及其软件组成,包括用户计算机终端、网络服务器、网络 打印机、网络存储系统以及网络上运行的各种软件资源等。 通信子网和资源子网的划分如图1-1所示。 图1-1 通信子网和资源子网 1.2 计算机网络的分类和拓扑 1.2.1 计算机网络的分类 计算机网络按照覆盖范围的大小,可以分为局域网(Local Area Network,LAN)、城 域网(Metropolitan Area Network,MAN)和广域网(Wide Area Network,WAN)。 1. 局域网 局域网是使用自备通信线路和通信设备,并且覆盖较小地理范围的计算机网络。局域 网的覆盖半径从几米到几千米,覆盖范围局限在房间、大楼或园区内,通常用于连接一个 企业内部的计算机和工作站,以便共享资源和交换信息。 局域网相对于城域网和广域网而言,传输速度快(当前主流为1Gbps)、传输延迟低 (几十微秒以下)、出错率低(低于10–9)。而且由于局域网的覆盖范围较小且归属权明确, 因此相对而言,局域网容易管理和配置、拓扑规划灵活,是实现有限区域内信息交换与共 享的最佳方案。 目前,所有单位内部的网络均为局域网,例如校园网就是一个典型的局域网。 2. 城域网 城域网覆盖范围为中等规模,介于局域网和广域网之间,通常是在一个城市内的网络 连接。城域网作为本地的公共信息服务平台组成部分,负责承载各种多媒体业务,为用户 提供各种接入方式,满足政府部门、企事业单位、个人用户对基于IP的各种多媒体业的需求。 3. 广域网 广域网是租用公用通信线路和通信设备,并且覆盖较大地理范围的计算机网络, Internet就是一个广域网。广域网通过各种类型的串行连接来实现广大地理区域的接 入,通常,企业的局域网通过广域网线路接入当地的网络服务提供商(Internet Service Provider,ISP)。 广域网可以提供全部时间和部分时间的连接,允许通过串行接口在不同的速率工作。 广域网的典型特点是数据传输慢(典型速率为56kbps~155Mbps)、延迟比较大(几毫秒到 几百微秒)、拓扑结构不灵活,并且入网站点无法参与网络的管理。在拓扑结构上,广域 网多采用网状结构,网络连接往往要依赖运营商提供的电信数据网络。这也意味着,如果 想要获得较高的接入速率,就需要企业支付较高的广域网带宽租金。 需要注意的是,局域网、城域网和广域网的概念在提出时是以其覆盖范围来划分的, 而实际上的划分依据是网络所使用的传输技术,与其物理上的覆盖范围并没有直接的关系。 例如某企业的两个办公区可能相距较远,两个办公区的局域网之间需要租用广域网线路连 接;在本课程的实验环境下中需要学习广域网连接,这里的广域网连接是用串行电缆背对 背连接实现的(图1-2),虽然在物理上放置在了同一个机柜中,而实际上属于广域网连接, 只不过将广域网网云压缩在了背对背的连接中。 图1-2 V35线缆背对背连接 1.2.2 计算机网络的拓扑结构 计算机网络的拓扑(Topology)结构是指计算机网络的布局,即将一组设备以什么样 的结构连接起来,分为物理拓扑结构和逻辑拓扑结构两个层面的概念。物理拓扑结构是指 计算机网络的物理布局,逻辑拓扑结构则与网络中数据帧的传送机制有关,具体内容会在 以后章节详细介绍。 基本的网络拓扑结构模型有总线型拓扑、星型拓扑、树型拓扑、环型拓扑和网状拓扑 等。任何一个网络都可以使用其中的一种或几种拓扑结构。 1. 总线型拓扑 在总线型拓扑结构中,所有的计算机使用一条总线连接起来,计算机之间的通信通过 共享该总线来完成。总线型拓扑结构的典型应用是早期的同轴电缆组网,在这种组网方式 中,所有的计算机都连接到一条同轴电缆上,并共享该同轴电缆提供的信道。总线型拓扑 结构如图1-3所示。 总线型拓扑结构是在早期的局域网中应用很广泛的拓扑结构,其突出的特点是结构简 单、成本低、安装使用方便,消耗的电缆长度最短,最经济,便于维护。但总线型拓扑结 构有致命的缺点就是存在单点故障,即主干的线路上如果出现故障,则整个网络都会瘫痪。 另外,总线型拓扑结构由于是共享总线带宽,因此当网络负载过重时,会导致网络传输性 能的下降。总线型结构网络目前除了Wi-Fi(Wireless-Fidelity)接入(共享无线信道)以 外已经见不到了。 2. 星型拓扑 在星型拓扑结构中,所有的计算机都通过一条专用线路连接到中心节点(典型设备: 交换机),中心节点对各计算机间的通信和信息交换进行集中的控制和管理。星型拓扑结 构如图1-4所示。 图1-4 星型拓扑结构 星型拓扑结构的主要特点是系统的可靠性比较高,当某一线路发生故障时,不会影响 网络中的其他主机;而且增加或删除主机比较容易,将主机直接连接到中心节点或从中心 节点断开即可;另外,中心节点可以方便地控制和管理网络,并及时发现和处理系统故障。 但如果中心节点出现故障,则整个网络会陷入瘫痪。 星型(包括扩展星型)拓扑结构是在当前局域网中使用最为广泛的一种拓扑结构。 在总线型拓扑结构向星型拓扑结构过渡的过程中,曾经长时间地存在一种中间状态的 网络,这种网络在物理上使用集线器(HUB)作为中心节点进行星型组网,但在逻辑上依 然是由所有接入网络的计算机共享线路带宽。即物理拓扑结构为星型,但逻辑拓扑结构为 总线型,如图1-5所示。 3. 树型拓扑 树型拓扑结构又称扩展星型拓扑结构,是一个多层级的星型拓扑结构,即网络中存在 多级网络设备的连接。在树型拓扑结构中,终端计算机之间的通信通过一级或多级网络设 备之间的数据交换来实现。在稍具规模的局域网中一般都会采用树型拓扑结构来组网。树 型拓扑结构如图1-6所示。 图1-3 总线型拓扑结构 图1-5 集线器组网拓扑结构 图1-6 树型拓扑结构 4. 环型拓扑 环型拓扑结构是将各个计算机通过一条首尾相连的通信线路连接起来的一个封闭的环 型结构网。在这个环型网中,每一台计算机只能和它的一个或两个相邻节点直接通信,如 果需要与其他节点通信,信息必须依次经过两者之间的每一个节点。环型网络可以是单向 的,也可以是双向的。单向是指所有的传输都是同方向的,每个设备只能和一个邻近节点 通信;双向是指数据能在两个方向上进行传输,设备可以和两个邻近节点直接通信。环型 拓扑结构如图1-7所示。 图1-7 环型拓扑结构 在环型拓扑结构网络中一般采用令牌环的方法来共享通信线路,比较典型的环型拓扑 结构网络为光纤分布式数据接口(Fiber Distributed Data Interface,FDDI)网络。环型拓扑 的网络结构简单,系统中各工作站地位相等;建网容易,增加或减少节点时仅需简单的连 接操作;能实现数据传送的实时控制,可预知网络的性能。但其中任何一个节点发生故障, 都会导致环中的所有节点无法正常通信,因此在实际应用中一般采用多环结构;环型拓扑 的另一个缺点是当一个节点要往另一个节点发送数据时,它们之间的所有节点都需要参与 传输,因此比起总线型拓扑来,更多的时间被花在替别的节点转发数据上。 环型拓扑结构在早期局域网中有部分的应用,但目前已经基本被淘汰,因此在现在的 局域网中一般不会见到环型拓扑结构的存在。 5. 网状拓扑 网状拓扑结构可以分为全网状和部分网状,全网状拓扑结构是指将参与通信的任意两 个节点之间均通过通信线路直接相互连接,这是一种非常安全可靠的方案。由于不再需要 竞争公用线路,通信变得非常简单。而且任意两台设备可以直接通信,而不用涉及其他设 备。但每一对设备直接连接必然造成投资费用的增加,并且会增大后期运维的复杂度。因 此全网状拓扑实现起来费用高、代价大、结构复杂、不易管理和维护,在局域网中实际上 很少采用。在实际的局域网应用中,常常采用部分网状的拓扑结构,即对可靠性要求比较 高的部分通过增加冗余线路进行网状的连接,而其他部分则一般依然采用星型(包括扩展 星型)连接。网状拓扑结构如图1-8所示。 图1-8 网状拓扑结构 1.3 协议与分层 1.3.1 网络通信协议 在介绍网络通信协议之前,首先我们需要了解什么是通信。所谓通信,究其根本是人 们相互之间的沟通,当然沟通可以采用多种不同的方式。面对面聊天、打电话交流、使用 QQ或者微信等即时通信软件交流等都可以看作一个通信过程。而在任何一个通信过程中, 如果要实现通信的目的(即通信双方能够互相理解对方的意思并且按照达成的意见去执行 某一事项),都需要通信双方在通信过程中遵循一定的规则。这些规则包括以下几点。 (1)标识出发送方和接收方。 (2)双方一致同意的通信方法。 (3)通用语言和语法。 (4)共同约定的传递速度和时间。 (5)证实或确认要求。 在这里我们可以分析一下你与朋友的任何一种形式的通信是不是都包含了上述的规则 要求。 与现实生活中的通信类似,网络通信中同样需要通信双方遵循一定的规则,而这些规 则就是通信协议。所谓的网络通信协议就是为使计算机之间能够正确通信而制定的通信规 则、约定和标准。网络通信协议通常由语义、语法和时序(定时关系)三部分组成,其中 语义定义做什么,语法定义怎么做,时序定义什么时候做。 1.3.2 网络的分层 计算机网络本身是一个非常庞大和复杂的系统,其通信的约束和规则很显然不是一个 网络通信协议可以描述清楚的。这就需要将计算机网络系统进行详细的功能划分,进而针 对每一部分功能使用相应的协议进行描述和约束,因此计算机网络中实际上存在大量的协 议,每一种协议用于实现计算机网络中的某一个特定的功能目标。 计算机网络按照实现功能的不同可以划分成若干个不同的层次,其层次划分的原则是 “层内功能内聚,层间耦合松散”,即在网络中将功能相似或者紧密相关的功能模块放置在 同一层中,层与层之间保持松散的耦合。 计算机网络采用层次化结构的优越性包括以下几点。 (1)各层之间相互独立,高层并不需要知道低层是如何实现的,仅需要知道该层通过 层间的接口所提供的服务。 (2)灵活性好,当任何一层发生变化时,只要该层的接口保持不变,则在该层以上或 以下的各层均不受影响。 (3)各层都可以采用最合适的技术来实现,各层实现技术的改变不会影响其他层。 (4)易于实现和维护,整个计算机网络系统已被分解为若干个易于处理的部分,这种 结构使得一个庞大而又复杂的系统的实现和维护变得容易控制。 (5)有利于网络的标准化,因为每一层的功能和所提供的服务都已有了精确的说明, 所以标准化变得较为容易。 1.4 计算机网络的体系结构 1.4.1 开放系统互连参考模型 开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM)由 国际标准化组织(International Organization for Standardization,ISO)于1984年提出,并 很快成为计算机网络通信的基础模型。OSI模型是一个理论模型,它给出了网络的架构体 系和标准,并描述了网络中的信息是如何传输的。在OSI模型中,网络被分为七层,自 下而上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,每一层 负责完成某些特定的通信任务,并只与相邻的层进行数据交换。OSI的分层模型如图1-9 所示。 图1-9 OSI的分层模型 1. OSI各层的主要功能 1)物理层 物理层是OSI参考模型的最底层,其主要功能是利用物理传输介质为数据链路层提供 物理连接,负责处理数据传输速率并监控数据出错率,以便透明地传送比特流。物理层定 义了激活、维护和关闭终端用户之间电气的、机械的、过程的和功能的特性。物理层的特 性包括电压、频率、数据传输速率、最大传输距离、物理连接器及其相关的属性等。 2)数据链路层 在物理层提供比特流传输服务的基础上,数据链路层通过在通信的实体之间建立数据 链路连接,传送以“帧”为单位的数据,使有差错的物理线路变成无差错的数据链路,保 证点到点的可靠的数据传输。数据链路层关心的主要问题包括物理地址、网络拓扑、线路 规划、错误通告等。 3)网络层 网络层的主要功能是为处在不同网络中的两个节点之间的通信提供一条逻辑通道,其 基本任务包括路由选择、拥塞控制和网络互联等。 4)传输层 传输层的主要任务是为用户提供可靠的端到端的服务,透明地传送报文。该层的主要 任务包括在通信双方之间建立端到端的连接、数据报文的有序传输和流量控制等。 5)会话层 会话层用于建立、管理和终止应用程序进程之间的会话和数据交换。这种会话关系是 由两个或多个表示层实体之间的对话构成的。 6)表示层 表示层保证一个系统应用层发出的信息能被另一个系统的应用层所理解。如有必要, 表示层会用一种通用的数据表示格式在多种数据表示格式之间进行转换。表示层的功能包 括数据格式的转换、数据的加密与解密、数据的压缩与恢复等。 7)应用层 应用层是OSI参考模型中最靠近用户的一层,它为用户的应用程序提供网络服务。应 用层识别并证实目的通信方的可用性,使协同工作的应用程序之间进行同步,建立传输错 误纠正和数据完整性控制方面的协定,判断是否为所需的通信过程留有足够的资源。 2. OSI参考模型中数据的封装与传递 在OSI参考模型中,通信双方进行通信需要在对等层之间进行信息的交换,在对等层 之间交换的信息单元被称为协议数据单元(Protocol Data Unit,PDU)。在实际的通信过程 中,对等层之间是无法直接进行通信的,而是需要通过下一层为其提供服务。因此,实际 的通信过程如图1-9所示。在发送方,数据从最上层开始,每一层都需要对数据进行封装, 即在原数据的基础上增加封装头(有些还会有封装尾),在封装头中包含有相应封装协议 的信息,然后将数据再传递给下一层,这样通过层层的封装和传递,最后通过物理层的线 路将二进制比特流以信号的形式传送给接收方;接收方在接收到数据后,从最下层开始一 层一层地解封装并传递给上一层,每一层都会将发送方对等层的封装解掉,并对封装中的 协议相关信息进行核对以确保信息最终被送往正确的应用进程。从整个过程来看,实际的 数据传输过程如图1-10中的实线箭头所示,但在逻辑上,通信双方对等层发送和接收的 PDU是一致的,因此可以看作是对等层之间的逻辑通信(即虚线箭头所示)。 图1-10 OSI参考模型中数据的封装与传递 实际上,OSI参考模型中数据的封装与传递的过程类似于通过邮局发送信件的过程。 当需要发送信件时,首先需要将写好的信纸放入信封中,然后按照一定的格式书写收信人 姓名、收信人地址以及发信人地址,这个过程就是一个封装的过程;当收信人收到信件后, 需要将信封拆开,取出信纸,这就是解封装的过程。区别在于信件只需要一次封装,而网 络中的数据信息在每一层都需要进行封装。 需要注意的是,OSI是一个参考模型,所谓的参考模型是为各类网络协议和服务之间 保持一致性提供通用的参考,即对发生在网络设备间的信息传输过程的一种理论化描述, 它并不是一种实现规范,没有定义如何通过软件和硬件实现每一层的功能。而在实际的网 络通信中,需要有与特定协议簇结构精确匹配的协议模型,当前网络广泛使用的协议模型 为TCP/IP模型。 1.4.2 TCP/IP模型 TCP/IP模型是一个商业化的开放式模型,在TCP/ IP模型中,网络被分为4层,自下而上分别是网络接入 层(又称为网络接口层)、Internet层(又称为网络层或 互联层)、传输层和应用层。 TCP/IP模型与OSI模型之间存在着层次间的对 应关系,具体的对应为:TCP/IP模型的网络接入层 对应OSI模型的物理层和数据链路层,TCP/IP模型 的Internet层对应OSI模型的网络层,TCP/IP模型的 传输层对应OSI模型的传输层,TCP/IP模型的应用层 对应OSI模型的会话层、表示层和应用层,如图1-11 所示。 1. TCP/IP模型各层的主要功能 1)网络接入层 与OSI模型中的物理层和数据链路层详细论述了接入介质所需的步骤以及通过网络发送 数据的物理手段不同,TCP/IP模型在网络接入层并没有指定通过物理介质传输时使用的协议, 而只是描述了从Internet层到物理网络协议的传递。即TCP/IP主机必须通过某种下层协议连 接到网络,而具体的协议则有很多种。 典型的网络接入层技术包括常见的以太网、FDDI等局域网技术,用于串行连接的 高级数据链路控制(High-level Data Link Control,HDLC)、点到点协议(Point-to-Point, P2P)技术以及X.25、帧中继(Frame Relay)和异步传输模式(Asynchronous Transfer Mode,ATM)等分组交换技术。 2)Internet层 Internet层的主要功能是使主机能够将信息发往任何网络并传送到正确的目标。基于 这些要求,Internet层定义了报文格式及其协议(Internet Protocol,IP协议)。在Internet 层,使用IP地址来标识网络节点;使用路由协议生成路由信息并根据这些路由信息实现 报文的转发,使数据报文能够准确地传送到目的地;使用互联网控制报文协议(Internet Control Message Protocol,ICMP协议)协助管理网络。 3)传输层 传输层位于应用层和Internet层之间,主要负责为两台主机上的应用程序提供端到 端的连接。TCP/IP模型中传输层上的协议主要包括传输控制协议(Transmission Control Protocol,TCP)和用户数据报协议(User Datagram Protocol,UDP)。传输层协议的主要 作用包括以下几点。 (1)提供面向连接或无连接的服务,传输层协议定义了通信两端点之间是否需要建立 图1-11 TCP/IP模型与OSI模型的 对应关系