computer network

1. 计算机网络概述

1.1 计算机网络的概念

一般认为,计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与路线连接起来,由功能完善的软件实现资源共享和信息传递的系统。简而言之,计算机网络就是一些互联的、自治的计算机系统的集合。

在计算机网络发展的不同阶段,人们对计算机网络给出了不同的定义,这些定义反映了当时网络技术发展的水平。这些定义可分为以下三类。

  1. 广义观点

    只要是能实现远程信息处理的系统或能进一步达到资源共享的系统,都是计算机网络。广义的观点定义了一个计算机通信网络,它在物理结构上具有计算机网络的雏形,但资源共享能力弱,是计算机发展的低级阶段。

  2. 资源共享观点

    计算机网络是 “以能够相互共享资源的方式互联起来的自治计算机系统的集合” 。该定义包含三层含义

    • 目的:资源共享
    • 组成单元:分布在不同地理位置的多台独立的 “自治计算机”
    • 网络中的计算机必须遵循的统一规则:网络协议。该定义符合目前计算机网络的基本特征。
  3. 用户透明性观点

    存在一个能为用户自动管理资源的网络操作系统,它能够调用用户所需要的资源,而整个网络就像一个大的计算机系统一样对用户是透明的。用户使用网络就像使用一台单一的超级计算机,无须了解网络的存在、资源的位置信息。用户透明性观点的定义描述了一个分布式系统,它是网络未来发展追求的目标。

1.2 计算机网络的组成

从不同的角度,可以将计算机网络的组成分为如下几类。

  1. 组成部分的角度

    一个完整的计算机网络主要有硬件、软件、协议三大部分组成,缺一不可。硬件主要由主机(也称端系统)、通信链路(如双绞线、光纤)、交换设备(如路由器、交换机等)和通信处理机(如网卡)等组成。软件主要包括各种实现资源共享的软件和方便用户使用的各种工具软件(如网络操作系统、邮件收发程序、FTP 程序、聊天程序等)。软件部分多属于应用层。协议是计算机网络的核心,如同交通规则制约汽车驾驶一样,协议规定了网络传输数据时所遵循的规范。

  2. 工作方式的角度

    计算机网络(这里主要指 Internet)可分为边缘部分和核心部分。边缘部分由所有连接到因特网上、供用户直接使用的主机组成,用来进行通信(如传输数据、音频或视频)和资源共享;核心部分由大量的网络和连接这些网络的路由器组成,它为边缘部分提供连通性和交换服务。

  3. 功能组成的角度

    计算机网络由通信子网和资源子网组成。通信子网由各种传输介质、通信设备和相应的网络协议组成,它使网络具有数据传输、交换、控制和存储的能力,实现联网计算机之间的数据通信。资源子网是实现资源共享功能的设备及其软件的集合,向网络用户提供共享其他计算机上的硬件资源、软件资源和数据资源的服务。

    计算机网络

1.3 计算机网络的功能

计算机网络的功能很多,现今的很多应用都与网络有关。主要有以下五大功能。

  1. 数据通信

    它是计算机网络最基本和最重要的功能,用来实现联网计算机之间的各种信息的传输,并将分散在不同地理位置的计算机联系起来,进行统一的调配、控制和管理。比如,文件传输、电子邮件等服务,离开了计算机网络将无法实现。

  2. 资源共享

    资源共享可以是软件共享、数据共享,也可以是硬件共享。使计算机网络中的资源互通有无、分工协作,从而极大地提高硬件资源、软件资源和数据资源的利用率。

  3. 分布式处理

    当计算机网络中的某个计算机系统负荷过重时,可以将其处理的某个复杂任务分配给网络中的其他计算机系统,从而利用空闲计算机资源以提高整个系统的利用率。

  4. 提高可靠性

    计算机网络中的各台计算机可以通过网络互为替代机。(银行的备份机制)

  5. 负载均衡

    将工作任务均衡地分配给计算机网络中的各台计算机。

除以上几大主要功能外,计算机网络还可以实现电子化办公与服务、远程教育、娱乐等功能,满足了社会的需求,方便了人们学习、工作和生活,具有巨大的经济效益。

1.4 计算机网络的分类

  1. 按分布范围分类

    • 广域网(WAN):广域网的任务就是提供长距离通信,运送主机所发生的数据,其覆盖范围通常为几十千米到几千千米的区域,因而有时也称远程网。广域网是因特网的核心部分。连接广域网的各结点交换机的链路一般都是高速链路,具有较大的通信容量。
    • 城域网(MAN):城域网的覆盖范围可以跨越几个街区甚至整个城市,覆盖范围约为 5~50 km。城域网大多采用以太网技术,因此有时也常并入局域网的范围进行讨论。
    • 局域网(LAN):局域网一般用微机或工作站通过高速路线相连,覆盖范围较小,通常为几十米到几千米的区域。局域网在计算机配置的数量上没有太多的限制,少的可以只有两台,多的可达几百台。传统上,局域网使用广播技术,而广域网使用交换技术。
    • 个人区域网(PAN):个人区域网是指在个人工作的地方将消费电子设备(如平板电脑、智能手机等)用无线技术连接起来的网络,也常称为无线个人区域网(WPAN),其覆盖区域直径约为 10 米。

    注意:若中央处理器很近,就是多处理器系统了,而不称为计算机网络。

  2. 按传播技术分类

    • 广播式网络:所有联网计算机都共享一个公共通信信道。当一台计算机利用共享通信信道发送报文分组时,所有其他的计算机都会 “收听” 到这个分组。接收到该分组的计算机将通过检查目的地址来决定是否接收该分组。
    • 点对点网络:每条物理线路连接一对计算机。如果通信的两台主机之间没有直接连接的线路,那么它们之间的分组传输就要通过中间结点的接收、存储和转发,直至目的结点。

    是否采用分组存储转发与路由选择机制是点对点式网络与广播式网络的重要区别,广域网基本都属于点对点网络。

  3. 按拓扑结构分类

    网络拓扑结构是指由网中结点(路由器、主机等)与通信线路(网线)之间的几何关系(如总线形、环形)表示的网络结构,主要指通信子网的拓扑结构。

    按网络的拓扑结构,主要分为星形、总线形、环形和网状形网络等。星形、总线形和环形网络多用于局域网,网状形网络多用于广域网。

    • 星形网络:每个终端或计算机都以单独的线路与中央设备相连。中央设备早期是计算机,现在一般是交换机或路由器。星形网络便于集中控制和管理,因为端用户之间的通信必须经过中央设备。缺点是成本高、中心结点对故障敏感。
    • 总线形网络:用单根传输线把计算机连接起来。总线形网络的优点是建网容易、增减结点方便、节省线路。缺点是重负载时通信效率不高、总线任意一处对故障敏感。
    • 环形网络:所有计算机接口设备连接成一个环。环形网络最典型的例子是令牌环局域网(??)。环可以是单环,也可以是双环,环中信号是单向传输的。
    • 网状形网路:一般情况下,每个结点至少有两条路径与其他结点相连,多用在广域网中,有规则型和非规则型两种。其优点是可靠性高,缺点是控制复杂、线路成本高。

    以上四种基本的网络拓扑结构可以互连为更复杂的网络。

  4. 按使用者分类

    • 公用网(Public Network):指电信公司出资建造的大型网络。“公用” 的意思是指所有愿意按电信公司的规定交纳费用的人都可以使用这种网络,因此也称公众网。
    • 专用网(Private Network):指某个部门为满足本单位特殊业务的需要而建造的网络。这种网络不向本单位以外的人提供服务。例如铁路、电力、军队等部门的专用网。
  5. 按交换技术分类

    交换技术是指各台主机之间、各通信设备之间或主机与通信设备之间为交换信息所采用数据格式和交换装置的方式。按交换技术可将网络分为如下几种。

    • 电路交换网络。在源结点和目的结点之间建立一条专用的通路用于传送数据,包括建立连接、传输数据和断开连接三个阶段。最典型的电路交换网是传统电话网络。

      该类网络的主要特点是整个报文的比特流连续地从源点直达终点,好像是在一条管道中传送。优点是数据直接传送、时延小。缺点是线路利用率低、不能充分利用线路容量、不便于进行差错控制。

    • 报文交换网络。用户数据加上源地址、目的地址、校验码等辅助信息,然后封装成报文。整个报文传送到相邻结点,全部存储后,再转发给下一个结点,重复这一过程直到到达目的结点。每一个报文可以单独选择到达目的结点的路径。

      报文交换网络也称存储-转发网络,主要特点是整个报文先传送到相邻结点,全部存储后查找转发表,转发到下一个结点。优点是可以较为充分地利用线路容量,可以实现不同链路之间不同数据率的转换,可以实现格式转换,可以实现一对多、多对一的访问,可以实现差错控制。缺点是增大了资源开销(如辅助信息导致处理时间和存储资源的开销),增加了缓冲时延,需要额外的控制机制来保证多个报文的顺序不乱序,缓冲区难以管理(因为报文的大小不确定,接收方在接收到报文之前不能预知报文的大小)

    • 分组交换网络,也称包交换网络。其原理是将数据分成较短的固定长度的数据块,在每个数据块中加上目的地址、源地址等辅助信息组成分组(包),以存储-转发方式传输。

      其主要特点是单个分组(它只是整个报文的一部分)传送到相邻结点,存储后查找转发表,转发到下一个结点。除具备报文交换网络的优点外,分组交换网络还具有自身的优点:缓冲易于管理;包的平均时延更小,网络占用的平均缓冲区更少;更易于标准化;更适合应用。现在的主流网络基本上都可视为分组交换网络。

  6. 按传输介质分类

    传输介质可分为有线和无线两大类,故网络可以分为有线网络和无线网络。有线网络又分为双绞线网络、同轴电缆网络等。无线网络又分为蓝牙、微波、无线电等类型。

1.5 计算机网络的标准化工作及相关组织

计算机网络的标准化对计算机网络的发展和推广起到了极其重要的作用。

因特网的所有标准都以 RFC(Request For Comments)的形式在因特网上发布,但并非每一个 RFC 都是因特网标准,RFC 要上升为因特网的正式标准需经过以下 4 个阶段。

  1. 因特网草案(Internet Draft)。这个阶段还不是 RFC 文档。
  2. 建议协议(Proposed Standard)。从这个阶段开始就成为 RFC 文档。
  3. 草案标准(Draft Standard)。
  4. 因特网标准(Internet Standard)

此外,还有试验的 RFC 和提供信息的 RFC 。各种 RFC 之间的关系如下

RFC

在国际上,负责制定、实施相关网络标准的标准化组织众多,主要有如下几个:

1.6 计算机网络的性能标准

性能指标从不同方面度量计算机网络的性能。常用的性能指标如下。

  1. 带宽(Bandwidth)。本来表示通信线路允许通过的信号频带范围,单位是赫兹(Hz)。而在计算机网路中,带宽表示网络的通信线路所能传送数据的能力,是数字信道所能传送的 “最高数据率” 的同义词,单位是比特/秒(b/s)

  2. 时延(Delay)。指数据(一个报文或分组)从网络(或链路)的一端传送到另一端所需要的总时间,它由 4 部分构成:发送时延、传播时延、处理时延和排队时延。

    • 发送时延。结点将分组的所有比特推向(传输)链路所需的时间,即从发送分组的第一个比特算起,到该分组的最后一个比特发送完所需的时间,因此也称传输时延。计算公式为

      发送时延 = 分组长度/信道宽度
      
    • 传播时延。电磁波在信道中传播一定的距离需要花费的时间,即一个比特从链路的一端传播到另一端所需的时间。计算公式为

      传播时延 = 信道长度/电磁波在信道上的传播速率
      
    • 处理时延。数据在交换结点为存储转发而进行的一些必要的处理所花费的时间。例如,分析分组的头部、从分组中提取数据部分、进行差错检验或查找适当的路由等。

    • 排队时延。分组在进入路由器后要先在输入队列中排队等待处理。路由器确定转发端口后,还要在输出队列中排队等待转发,这就产生了排队时延。

    注意:做题时,排队时延和处理时延一般可忽略不计(除非题目另有说明)。另外,对于高速链路,提高的仅是数据发送速率而非比特在链路上的传播速率。提高数据的发送速率只是为了减少数据的发送时延。

    delay

  3. 时延带宽积。指发送端连续发送数据且发送的第一个比特即将到达终点时,发送端已经发送的比特数。

    时延带宽积 = 传播时延 × 信道带宽
    

    考虑一个代表链路的圆柱形管道,其长度表示链路的传播时延,横截面积表示链路带宽,则时延带宽积表示该管道可以容纳的比特数量。

  4. 往返时延(Round-Trip Time,RTT)。指从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后立即发送确认),总共经历的时延。在互联网中,往返时延还包括各中间结点的处理时延、排队时延及转发数据时的发送时延。

  5. 吞吐量(Throughput)。指单位时间内通过某个网络(或信道、接口)的数据量。吞吐量受网络带宽或网络额定速率的限制。

  6. 速率(Speed)。网络中的速率是指连接到计算机网络上的主机在数字信道上传送数据的速率,也叫数据率或比特率,单位为 b/s(比特/秒)(或 bit/s,有时也写为 bps)。数据率较高时,可用 $kb/s(k=10^3),Mb/s(M=10^6) \ or \ Gb/s(G=10^9)$ 表示。在计算机网络中,通常把最高数据率称为带宽。

1.7 习题

简答题

  1. 试用一句话定义计算机网络。

  2. 计算机网络最基本的功能是:

  3. 计算机网络系统的基本组成?

  4. 计算机网络的资源主要是指:

  5. 下列属于通信子网的是

    网桥;交换机;计算机软件;路由器

  6. 按网络的作用范围分类有几类

  7. 局域网和广域网的差异除了覆盖范围,还有什么?

  8. 计算机网络拓扑结构主要取决于?

  9. n 个结点的星形拓扑结构中有几条物理链路?

  10. 广播式网络中,错误说法是

    共享广播信道;不存在路由选择问题;可以不要网络层;不需要服务访问点

  11. 分组交换网络的缺点?

  12. 1968年 6 月,世界上出现最早的计算机网络是什么?

综合应用题

  1. 考虑一个最大距离为 2 km 的局域网,当宽带等于多大时,传播延时(传播速率为 $2 × 10^8$ m/s)等于 100B 分组的发送延时?对于 512B 分组的最佳值是多少?
  2. 书里还有一些,以后再来看,题目好长

1.8 习题答案

简答题

  1. 由自治的计算机互联起来的集合体
  2. 数据通信
  3. 通信子网和资源子网
  4. 硬件、软件、数据
  5. 除了计算机软件
  6. 广域网、城域网、局域网
  7. 广域网基于交换技术、局域网基于广播技术
  8. 通信子网
  9. n-1
  10. 需要服务访问点
  11. 附加信息开销大
  12. ARPAnet ,这是因特网的前身。

综合应用题

  1. 传播延时 = $2km/(2×10^8)=10^{-5}$ s ,100/传播延时 = $10^7 B/s=8×10^7 b/s$

2. 计算机网络体系结构与参考模型

2.1 计算机网络分层结构

两个系统中实体间的通信时一个很复杂的过程,为了降低协议设计和调试过程的复杂性,也为了便于对网络进行研究、实现和维护,促进标准化工作,通常对计算机网络的体系结构以分层的方式进行建模。

我们把计算机网络的各层及其协议的集合称为网络的体系结构(Architecture)。换言之,计算机网络的体系结构就是这个计算机网络及其所应完成的功能的精确定义,它是计算机网络中的层次、各层的协议及层间接口的集合。需要强调的是,这些功能究竟是用何种硬件或者软件完成的,则是一个遵循这种体系结构的实现(Implementation)问题。体系结构是抽象的,而实现是具体的,是真正在运行的计算机硬件和软件。

计算机网络的体系结构通常都具有可分层的特性,它将复杂的大系统分成若干较容易实现的层次。分层的基本原则如下:

  1. 每层都实现一种相对独立的功能,降低大系统的复杂度。
  2. 各层之间界面自然清晰,易于理解,相互交流尽可能少。
  3. 各层功能的精确定义独立于具体的实现方法,可以采用最合适的技术来实现。
  4. 保持下层对上层的独立性,上层单向使用下层提供的服务。
  5. 整个分层结构应能促进标准化工作。

由于分层后各层之间相互独立,灵活性好,因而分层的体系结构易于更新(替换单个模块),易于调试,易于交流,易于抽象、易于标准化。但层次越多,有些功能在不同层中难免重复出现,产生额外的开销,导致整体运行效率越低。层次越少,就会使每层的协议太复杂。因此,在分层时应考虑层次的清晰程度与运行效率间的折中、层次数量的折中。

依据一定的规则,将分层后的网络从底层到高层依次称为第 1 层、第 2 层 …… 第 n 层,通常还为每层取一个特定的名称,如第 1 层的名称为物理层。

在计算机网络的分层结构中,第 n 层中的活动元素通常称为 n 层实体。具体来说,实体指任何可发送或接收信息的硬件或软件进程,通常时一个特定的软件模块。不同机器上的同一层称为对等层,同一层的实体称为对等实体。n 层实体实现的服务为 n+1 层所利用。在这种情况下,n 层被称为服务提供者,n+1 层则服务于用户。

每一层还有自己传送的数据单位,其名称、大小、含义也各有不同。

在计算机网络体系结构的各层次中,每个报文都可以分为两个部分:一是数据部分,即 SDU;二是控制信息部分,即 PCI,它们共同组成 PDU。

服务数据单元(SDU):为完成用户所要求的功能而应传送的数据。第 n 层的服务数据单元记为 n-SDU。

协议控制信息(PCI):控制协议操作的信息。第 n 层的协议控制信息记为 n-PCI。

协议数据单元(PDU):对等层次之间传送的数据单元称为该层的 PDU。第 n 层的协议数据单元记为 n-PDU。在实际的网络中,每层的协议数据单元都有一个通俗的名称,如物理层的 PDU 称为比特,链路层的 PDU 称为帧,网络层的 PDU 称为分组,传输层的 PDU 称为报文。

在各层间传输数据时,把从第 n+1 层收到的 PDU 作为第 n 层的 SDU,加上第 n 层的 PCI,就变成了第 n 层的 PDU,交给第 n-1 层后作为 SDU 发送,接收方接收时做相反的处理,故可知三者的关系为

n-SDU + n-PCI = n-PDU = (n-1)-SDU

PDU

具体地,层次结构的含义包括以下几方面:

  1. 第 n 层的实体不仅要使用第 n-1 层的服务来实现自身定义的功能,还要向第 n+1 层提供本层的服务,该服务是第 n 层及其下面各层提供的服务总和。
  2. 最底层只提供服务,是整个层次结构的基础;中间各层既是下一层的服务使用者,又是上一层的服务提供者;最高层面向用户提供服务。
  3. 上一层只能通过相邻层间的接口使用下一层的服务,而不能调用其他层的服务;下一层所提供服务的实现细节对上一层透明。
  4. 两台主机通信时,对等层在逻辑上有一条直接信道,表现为不经过下层就把信息传送到对方。

2.2 计算机网络协议、接口、服务的概念

  1. 协议

    协议,就是规则的集合。在网络中要做到有条不紊地交换数据,就必须遵循一些事先约定好的规则。这些规则明确规定了所交换的数据的格式及有关的同步问题。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(Network Protocol),它时控制两个(或多个)对等实体进行通信的规则的集合,是水平的。不对等实体之间是没有协议的,比如用 TCP/IP 协议栈通信的两个结点,结点 A 的传输层和结点 B 的传输层之间存在协议,但结点 A 的传输层和结点 B 的网络层之间不存在协议。网络协议也简称协议。

    协议由语法、语义和同步三部分组成。语法规定了传输数据的格式;语义规定了所要完成的功能,即需要发出何种控制信息、完成何种动作及做出何种应答;同步规定了执行各种操作的条件、时序关系等,即时间实现顺序的详细说明。一个完整的协议通常应具有线路管理(建立、释放连接)、差错控制、数据转换等功能。

  2. 接口

    接口是同一结点内相邻两层间交换信息的连接点,是一个系统内部的规定。每层只能为紧邻的层次之间定义接口,不能跨层定义接口。在典型的接口上,同一结点相邻两层的实体通过服务访问点(service access point,SAP)进行交互。服务是通过 SAP 提供给上一层使用的,第 n 层的 SAP 就是第 n+1 层可以访问第 n 层服务的地方。每个 SAP 都有一个能够识别它的地址。SAP 是一个抽象的概念,它实际上是一个逻辑接口(类似于邮政邮箱),但和通常所说的两个设备之间的硬件接口是很不一样的。

  3. 服务

    服务是指下层为紧邻的上层提供的功能调用,它是垂直的。对等实体在协议的控制下,使得本层能为上一层提供服务,但要实现本层协议还需要使用下一层所提供的服务。

    上层使用下层所提供的服务时必须与下层交换一些命令,这些命令在 OSI 中被称为服务原语。OSI 将原语分为 4 类:

    1. 请求(request)。由服务用户发往服务提供者,请求完成某项工作。
    2. 指示(indication)。由服务提供者发往服务用户,指示用户做某件事情。
    3. 响应(response)。由服务用户发往服务提供者,作为对指示的响应。
    4. 证实(confirmation)。由服务提供者发往服务用户,作为对请求的证实。

    这 4 类原语用于不同的功能,如建立连接、传输数据和断开连接等。有应答服务包括全部 4 类原语,而无应答服务则只有请求和指示两类原语。

    一定要注意,协议和服务在概念上是不一样的。首先,只有本层协议的实现才能保证向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议,即下面的协议对上层的服务用户是透明的。其次,协议是 ”水平的“ 。即协议是控制对等实体之间通信的规则。但服务是 ”垂直的“ ,即服务是由下层通过层间接口向上层提供的。另外,并非在一层内完成的全部功能都能称为服务,只有哪些能够被高一层实体 ”看得见“ 的功能才称为服务。

    protocol

    计算机网络提供的服务可按以下三种方式分类。

    1. 面向连接服务与无连接服务

      在面向连接服务中,通信前双方必须先建立连接,分配相应的资源(如缓冲区),以保证通信能正常进行,传输结束后释放连接和所占用的资源。因此这种服务可以分为连接建立、数据传输和连接释放三个阶段。例如 TCP 就是一种面向连接服务的协议。

      在无线连接服务中,通信前双方不需要先建立连接,需要发送数据时可以直接发送,把每个带有目的地址的包(报文分组)传送到线路上,由系统选定路线进行传输。这是一种不可靠的服务。这种服务常被描述为 ”尽最大努力交付“(Best-Effort-Delivery),它并不保证通信的可靠性。例如 IP、UDP 就是一种无连接服务的协议。

    2. 可靠服务和不可靠服务

      可靠服务是指网络具有纠错、检错、应答机制,能保证数据正切、可靠地传输到目的地。

      不可靠服务是指网络只是尽量正确、可靠地传送,而不能保证数据正确、可靠地传送到目的地,是一种尽力而为的服务。

      对于提供不可靠服务的网络,其网络的正确性、可靠性要由应用或用户来保障。例如,用户收到信息后要判断信息的正确性,如果不正确,那么用户要把出错信息报告给信息的发送者,以便发送者采取纠正措施。通过用户的这些措施,可以把不可靠的服务变成可靠的服务。

      注意:在一层内完成的全部功能并非都称之为服务,只有那些能够被高一层实体 ”看得见“ 的功能才能称为服务。

    3. 有应答服务和无应答服务

      有应答服务是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现,而不由用户实现。所发送的应答既可以是肯定应答,也可以是否定应当,通常在接收到的数据有错误时发送否定应答。例如,文件传输服务就是一种有应答服务。

      无应答服务是指接收方收到数据后不自动给出应答。若需要应答,则由高层实现。例如,对于 WWW 服务,客户端收到服务器发送的页面后不给出应答。

2.3 ISO/OSI 参考模型和 TCP/IP 模型

  1. OSI 参考模型