第一章 概述
1.1 计算机网络在信息时代的作用
计算机网络已经由一种通信基础设施发展成一种重要的信息服务基础设施。
计算机网络已经像水、电、煤气这些基础设施一样,成为我们生活中不可或缺的一部分。
1.2 因特网概述

1.网络、互连网(互联网)和因特网
网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。
多个网络可以通过路由器互连起来,这样构成了一个覆盖范围更大的网络,即互联网(互连网)。因此,互联网是“网络的网络”。
因特网(Internet)是世界上最大的互连网络。
Internet和internet和区别:
internet(互联网/互连网):通用名词,泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议可以是任意的。
Internet(因特网):专用名词,指目前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络。采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET。
2.因特网发展的三个阶段

因特网服务提供商ISP

基于ISP的三层结构因特网

相隔较远的两个主机之间的通信可能需要经过多个ISP。(一个用户可以接入因特网,就可以成为一个ISP,只需要购买一些如解调器、路由器等设备,让其他用户可以和他相连)
3.因特网的标准化工作
- 因特网的标准化工作对因特网的发展起到了非常重要的作用
- 因特网在制定其标准上的一个很大的特点是面向公众
- 因特网所有的RFC(Request For Comments)技术文档都可以从因特网上免费下载。
- 任何人都可以随时用电子邮件发表对某个文档的意见或者建议。
- 因特网协会ISOC是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围促进其发展和使用。

- 因特网体系结构委员会IAB,负责管理因特网有关协议的开发。
- 因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化
- 因特网研究部IRTF,从事理论方面的研究和开发一些需要长期考虑的问题。
- 制定因特网的正式标准要经过以下四个阶段:
- 因特网草案(在这个阶段还不是RFC文档)
- 建议标准(在这个阶段开始成为RFC文档)
- 草案标准
- 因特网标准
(注意:并非所有的RFC文档都是因特网标准,只有一小部分RFC文档最后能变成因特网标准。)
4.因特网的组成
- 从功能(工作方式)上划分

- 边缘部分:由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传输数据、音频或者视频)和资源共享。在网络边缘部分的端系统之间的通信方式可以分为两大类:
- 客户-服务器方式(C/S方式):请求与被请求
- 对等方式(P2P方式):本质上是C/S方式,只是对等连接中的每一台主机即是客户又是服务器。
- 核心部分:由大量网络和连接这些网络的路由器(在网络核心部分起特殊作用的是路由器,是一种专用计算机,但不称其为主机。路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。)组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
- 从硬件与软件构成方面划分:
- 硬件
- 软件
1.3 三种变换方式:电路交换、分组交换和报文交换

电路交换(Circuit Switching)
- 背景
- 两两相连

- 使用中间设备——电话交换机

- 电话交换机接通电话线的方式称为电路交换
- 从通信资源的分配角度来看,交换(switching)就是按照某种方式动态地分配传输线路的资源

- 电路交换的三个步骤:
- 建立连接(分配通信资源):从主叫端到被叫端建立一条连接,即一条专用的物理通路。保证了双方通信时需要的通信资源,而这些资源在双方通信时不会被其他用户占用。
- 通话(一直占用通信资源):整个通信期间,第一步建立连接所分配的通信资源始终被占用。
- 释放连接(归还通信资源):电话交换机释放刚才使用的专用的物理通路。
- 是否可以使用电路交换来传输计算机数据?
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。因为计算机数据是突发式的出现在传输线路上的。
分组交换(Packet Switching)
- 表示消息的整块数据是报文。将报文进行划分,并添加首部(也叫“包头”),构成分组。
- 分组交换机收到一个分组后,先将分组暂时存储下来(存储转发技术),在检查其首部,按照首部中的目的地址进行查表转发,找到合适的转发接口,通过该接口将分组转发给下一个分组交换机。
- 主机收到分组后,去除首部,将各数据段组合还原出原始报文。
- 此处只说明了分组传输过程中的两种情况(希望在学完相应内容之后,自己补充上出现“分组丢失、误码、重复、失序”等问题时应该怎么办):
- 一种是各分组从源站到达目的站可以走不同的路径(也就是不同的路由);
- 另一种是分组乱序,也就是分组到达目的站的顺序不一定与分组在源站的发送顺序相同。
- 各个部分任务:

- 发送方任务:构造分组和发送分组
- 路由器(分组交换机)任务:缓存分组和转发分组,简称“存储转发”
- 接收方任务:接受分组和还原报文
报文交换
交换节点也采用存储转发方式,但是报文交换对报文的大小没有限制,这就要求交换节点需要有较大的缓存空间。
需要注意,报文交换主要用于早期的电报通信网,现在较少使用,通常被较为先进的分组交换方式取代。
电路交换、报文交换、分组交换的对比

若要连续传送大量的数据,并且数据传送时间>>建立连接的时间,则使用电路交换有较高的传输效率,然而,计算机的数据传送往往是突发式的,采用电路交换通信线路的利用率过低。
报文交换和分组交换都不需要建立连接(即,预先分类通信资源),在传送计算机的突发数据时,可以提高通信线路的利用率。
分组交换相对报文交换,减少了转发时延,还可以避免过长的报文长时间占用链路,同时也有利于进行差错控制(学到相关内容后,请在旁边进行总结),并具有更好的灵活性。
三种交换方式各自的优缺点:
电路交换 | 报文交换 | 分组交换 | ||||
优点 | 缺点 | 优点 | 缺点 | 优点 | 缺点 | |
通信时延小(因为通信线路为通信双方用户专用,数据直达,因此通信时延非常小。当连续传输大量数据时,这一优点非常明显) | 建立连接时间长 | 无需建立连接(不存在建立连接的时延,用户可以随时发送报文。) | 引起转发时延(因为报文在结点交换机要经历存储转发的过程) | 无需建立连接(不需要为通信双方预先建立一条专用的通信线路,不存在建立连接时延,用户可以随时发送分组) | 引起转发时延(因为分组在结点交换机要经历存储转发的过程) | |
有序传输(因为通信双方只有一条专用的通信线路,数据值在这一条线路上传输,因此不存在失序问题。) | 线路独占,使用效率低(一旦建立连接,物理通路就被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用率很低。) | 动态分配线路(当发送方把报文发送给结点交换机时,节点交换机先存储整个报文,然后选择一条合适的空闲线路,将报文发送出去。) | 需要较大的存储缓存空间(因为报文交换对报文的大小没有限制。) | 线路利用率高(通信双方不是固定占用一条通信线路,而是在不同的时间分段部分占用物理线路) | 需要传输额外的信息量(将原始报文分割成等长的数据块,每个数据块都要加上源地址、目的地址等控制信息,从而构成分组,使得传输的信息量增大。) | |
没有冲突(不同的通信双方拥有不同的信道,不会出现争用物理信道的问题) | 灵活性差(只要连接所建立的物理通路中任何一点出现故障,就必须重新拨号建立新的连接,对于紧急且重要的通信不利。) | 提高线路可靠性(如果某条传输线路出现故障,会重新选择另一条传输路径进行传输数据。) | 需要传输额外的信息量(因为报文需要携带目标地址、源地址等信息。) | 简化存储管理(相对报文交换而言,因为分组大小固定,相应的缓冲区大小也固定) | ①分组交换使用数据报服务,存在失序、丢失、重复分组,分组到达目的结点时必须还原成原始报文,相对麻烦; ②若分组交换使用虚电路服务,虽无分组失序问题,但存在呼叫建立、数据传输和虚电路释放三个过程。 | |
适用范围广(既适用于传输模拟信号,也适用于传输数字信号。) | 难以规格化(电路交换时,数据直达,不同规格、不同类型、不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。) | 提高线路利用率(通信双方不是固定占用一条通信线路,而是在不同的时间分段部分占用物理线路) | 加速传输(分组逐个传输,使得后一个分组的存储操作以前一个分组的存储操作可以同时进行) | 无法确保通信时端到端通信资源全部可用,在通信量较大的时候可能会造成网络拥塞。 | ||
实时性强(主要得益于其通信时延小的优点。) | 提供多目标服务(一个报文可以同时发送给多个目的地址,这在电路交换中很难实现。) | 减少出错概率和重发数据量(因为分组比报文小,出错概率必然减少,即使分组出错,也只需要重传出错的分组,比重传整个报文的数据量小很多,提高可靠性,也减少传输时延。) | ||||
控制简单(电路交换的结点交换机及其控制都比较简单。) | 交换节点可以为每一个分组独立选择转发路由,使得网络有很好的生存性。 |
1.4 计算机网络的定义和分类

计算机网络的定义
- 计算机网络的精确定义并未统一
- 计算机网络的简单定义为:一些互相连接的、自治的计算机的集合。
- 互联:计算机之间可以通过有线或者无线的方式进行数据通信
- 自治:独立的计算机,有自己的硬件和软件,可以单独运行使用
- 集合:至少需要两台计算机。

该图并非一个计算机网络。原因:图中所示的各终端机只是具有显示和输入设备的终端,并非自治的计算机。这只是一个运行分时系统的大型机系统。
- 现阶段计算机网络较好的定义:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(eg,传送数据或者视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
- 可编程硬件:计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机登智能硬件,这些硬件中一定包含中央处理单元(CPU)。
- 各类应用:计算机网络并非专门用于传送数据,而是能够基于数据传送,支持多种的应用(包括今后可能出现的各种应用)。
计算机网络的分类
- 按照交换技术分类
- 电路交换网络
- 报文交换网络
- 分组交换网络
- 按照使用者分类
- 公用网(公众网)
- 专用网(不向本单位以外的人提供服务)
- 按照传输介质分类
- 有线网络
- 双绞线网络
- 光纤网络
- ……
- 无线网络
- 有线网络
- 按照覆盖范围分类
- 广域网WAN:有时也叫远程网,是因特网的核心组成部分,其任务是为核心路由器提供远距离的高速连接。
- 城域网MAN:通常作为城市骨干网,互连大量企业、机构和校园局域网。
- 局域网LAN:一般用于微型计算机或者工作站通过高速通信线路相连,但局限于较小的范围内。通常为某单位单独拥有、使用和维护。eg,校园网(有多个局域网)。
- 个域网PAN(也叫WPAN):在个人工作的地方把属于个人使用的电子设备用无线技术连接起来的网络。若多个中央处理机相距过近,一般称为多处理机系统,而非计算机网络。
- 按照拓扑结构分类:以下四种基本的网络拓扑可以互连成更复杂的网络
- 总线型网络:用单根传输线把计算机连接起来

- 优点:建网容易、增减结点方便、节省线路
- 缺点:重负载时通信效率不高,总线任意一处出现故障,则全网瘫痪
- 星型网络:每个计算机都以单独的线路与中央设备相连。中央设备早期是计算机,后来是集线器,现在一般为交换机或者路由器。

- 优点:便于网络的集中控制和管理,因为端用户之间的通信必须经过中央设备。
- 缺点:成本高,中央设备对故障敏感。
- 环形网络:将所有计算机的网络接口连接成一个环。eg,令牌环局域网。环可以是双环,也可以是单环,环中信号是单向传输的。

- 优点:结构简单且成本低;传输效率与延迟可控;公平带宽分配,避免带宽争用
- 缺点:不可靠(单点故障——>整个网络瘫痪);扩展性与维护困难;传输性能受限;应用场景局限
- 网状型网络:一般情况下,每个结点至少有两条路径与其他结点相连,多用在广域网中。

- 优点:可靠性高
- 缺点:控制复杂、线路成本高
1.5 计算机网络的性能


计算机网络的性能指标
- 性能指标可以从不同方面度量计算机网络的性能
- 常用的计算机网络性能指标有以下8个:
- 速率
- 比特:计算机中数据量的单位,也就是信息论中信息量的单位。一个比特就是二进制数字中的一个1或0。
- 速率

- 速率:连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或者数据率

- 带宽
- 带宽在模拟信号系统中的意义:信号所包含的不同频率成分所占据的频率范围;单位:Hz(kHz、MHz、GHz)
- 带宽在计算机网络中的意义:用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”;单位与速率相同:b/s(kb/s、Mb/s、Gb/s、Tb/s)
- 带宽的这两种表述之间有着密切的联系。一条通信线路的“频带宽度”越宽,其所能传输数据的“最高数据率”也就越高。
- 吞吐量
- 吞吐量表示在单位时间内通过某个网络(或者信道、接口)的数据量
- 吞吐量经常被用于对现实世界中的网络的一种测量,以便知道世界上到底有多少数据量能够通过网络。
- 吞吐量受到网络的带宽或者额定速率的限制
- 时延(3个)

- 发送时延:在构建网络时,因做到各设备间以及传输介质间的速率匹配,这样才能完全发挥出本应具有的传输性能

- 传播时延:计算传播时延,首先需要确定采用什么传输媒体,进而确定电磁波在该传输媒体中的传播速率

- 处理时延(有时包括排队时延):一般不方便计算,一般可以忽略不计
- 问:在忽略处理时延的前提下,网络中是传播时延占主导还是发送时延占主导?

- 时延带宽积=传播时延×带宽

- 若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特
- 链路的时延带宽积又称为以比特为单位的链路长度
- 往返时间RTT
- 卫星距离地球较远,耗时较多

- 利用率
- 分类:信道利用率【表示某信道有百分之几的时间是被利用的(有数据通过)】;网络利用率:全网络的信道利用率的加权平均
- 信道利用率增加——>该信道引起的时延也增大,因此,信道利用率并非越高越好。也不能使信道利用率过低,这会浪费通信资源。应使用一些机制,根据情况动态调整输入到网络中的通信量,使网络利用率保持在一个合理的范围内。
- D和U的关系:


- 丢包率
- 丢包率即分组丢失率,指在一定时间范围内,传输过程中丢失的分组数量与总分组数量的比率
- 丢包率可以分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等
- 丢包率是网络运维人员关心的网络指标,普通用户不关心,因为意识不到网络丢包
- 分组丢失主要的的两种情况:①分组在传输过程中出现误码,被节点丢弃;②分组到达一台队列已经满的分组交换机时被丢弃,在通信量较大时可能造成网络拥塞(事实上,路由器会根据自身的拥塞控制方法,在输入缓存还没满的时候就主动丢弃分组)
- 因此,丢包率反映了网络的拥塞情况:无拥塞时,丢包率为0;轻度拥塞时为1%~4%;严重时为5%~15%。丢包率过高会导致网络应用无法正常工作。
计算机网络的非性能指标
1.6 计算机网络体系结构
1.6.1 常见的计算机网络体系结构
- OSI体系结构:法律上的国际标准

- OSI专家缺乏实际经验,无商业驱动力
- OSI协议实现过分复杂,且运行效率低
- OSI标准制定周期过长,使得按照OSI标准生产的设备无法及时进入市场
- OSI的层次划分不够合理,有些功能在多个层次中重复出现
- TCP/IP体系结构:事实上的国际标准

- 相关的协议:

- 五层协议的原理体系结构

1.6.2 计算机网络体系结构分层的必要性
- 计算机网络是一个非常复杂的系统,在ARPANET就提出分层思想
- “分层”可以把庞大复杂的问题转化为若干较小的局部问题,便于研究处理
- 下面按照简单到复杂的顺序,看看实现计算机网络要面临的主要问题,以及如何将这些问题划分到相应的层次,层层处理。(解决物理层——>解决两台主机之间的通信;解决物理层+数据链路层——>可以在一个网络中传输;解决物理层+数据链路层+网络层——>实现分组在网络间传输的问题;解决物理层+数据链路层+网络层+运输层——>实现进程之间基于网络的通信;最后加上应用层不同协议即可)

- 物理层:

- 采用什么传输媒体(介质):实际上不属于物理层内容
- 采用什么物理接口
- 使用什么信号表示比特0和1
- 数据链路层:(这里举例用的总线型网络已淘汰,现在使用的大多是以太网交换机把多台主机互连形成的交换式以太网,这里只为了方便理解)


- 如何标识网络中的各个主机(主机编址问题,eg,MAC地址)
- 如何从信号所表示的一连串比特流中区分出地址和数据,即要解决分组的封装格式问题
- 如何协调各主机争用总线,即要解决碰撞问题
- 网络层:

- 如何标识各个网络以及网络中的各个主机,即网络和主机共同编址的问题,eg,IP地址
- 分组从源主机到目的主机可以走不用的路径——>路由器如何转发分组,如何进行路由选择
- 运输层:

- 如何解决进程之间基于网络的通信问题
- 出现传输错误,如何处理
- 应用层:

- 在此基础上,只需要指定各种应用层协议,并按照协议标准编写相应的应用程序,通过应用进程之间的交互来完成特定的网络应用
1.6.3 计算机网络体系结构分层思想举例

1.6.4 计算机网络体系结构中的专用术语(源于OSI体系结构)

- 实体:任何可发送或者接受信息的硬件或者软件进程
- 对等实体:收发双方相同层次中的实体

- 协议:控制两个对等实体进行逻辑通信(实际上不存在)的规则的集合

- 协议的三要素:
- 语法:定义通信双方所交换信息的格式,即定义了所交换信息由哪些字段以及何种顺序构成
- 语义:定义收发双方所要完成的操作
- 同步:定义收发双方的时序关系≠始终频率同步。
- 服务

- 在协议的控制下,两个对等实体之间的逻辑通信使得本层能够向上一层提供服务。
- 要实现本层协议,还需要使用下一层提供的服务
- 协议是“水平”的,服务是“垂直”的。
- 实体看得见相邻下层提供的服务,单兵不知道实现该服务的具体协议。即,下面的协议对上面的实体是“透明”的。
- 服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
- 数据链路层的服务访问点为帧的“类型”字段
- 网络层的服务访问点为IP数据报首部中的“协议字段”
- 运输层的服务访问点为“端口号”。
- 服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令成为服务原语。

- 协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元。
- 服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元。
- 多个SDU可以合成一个PDU;一个SDU也可以划分成几个PDU。

本章典型题目:
例1:

例2:



例3:

例4:


例5:

例6:

例7:

例8:

例9:

例10:

例11:

例12:

例13:




例14:



例15:

