目录
第一章 · 计算机网络体系结构
1.1 计算机网络的概念
本节我们主要解决以下两个问题:1. 什么是计算机网络?2. 计算机网络、互连网、互连网的区别是什么?
1. 计算机网络指的是
一个众多分散的、自治的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
2. 计算机网络、互连网、互连网的区别
计算机网络由若干个结点(结点可以是计算机、集线器、交换机、路由器等)和连接这些结点的链路(链路可以是有线链路、无线链路)组成。
用集线器、交换机或路由器连接不同的结点或计算机网络,就形成了互连网。而把全球范围内的计算机网络连接起来,形成一个覆盖全球范围的互连网,就形成了互联网(因特网)。
互连网可以使用任意协议通信,大小可大可小。但互联网必须使用 TCP/IP 协议通信,由各大 ISP(互联网服务提供商,如中国电信/移动等)和国际机构组建。
集线器、交换机可以把多个结点连接起来,组成一个计算机网络。其中交换机现在使用的更加频繁。而路由器可以将多个计算机网络连接起来,形成规模更大的计算机网络。
请注意,这里说的路由器不是常说的家用路由器。家用路由器一般可以认为是由路由器、交换机和其它一些功能综合而成的一个机器。
1.2 计算机网络的组成和功能
本节我们将从不同角度看计算机网络的组成,并了解计算机网络的主要功能。
1. 计算机网络的组成
从三种不同角度看,计算机网络的组成有不同的分类方式。
这里我们解释协议为什么是由硬件和软件共同实现。网卡在出厂时会内置一些固件,也可以理解为厂商会将一些软件存在网卡的 ROM 芯片中。通过这些固件和网卡等硬件就可以实现网络通信协议。
核心部分将边缘部分连通比较容易理解。至于交换服务是指如果边缘部分中两个结点之间需要传递信息,而在核心部分中的一条通路处于繁忙状态,那么核心部分就会选择另一条不太繁忙的通路来传递信息。这就是所谓的交换服务。
2. 计算机网络的功能
这部分不需要强硬记忆,只需要知道数据通信是最基本、最重要的功能。 其余部分理解即可。
1.3 三种信息交换方式及其优缺点分析
在计算机网络刚刚提出的时候,科学家们需要给出一种合理的将信息在网络中传输的方式。在此之前,人类已有的通信网络包括最早的邮政网络,通过邮递员和信件传递信息;电报网络,通过报文交换传递信息;以及电话网络,通过电路交换传递信息。
科学家希望能通过借鉴已有的交换方式来构建计算机网络,自然,我们需要先分析这些交换方式的优缺点:
1. 电路交换
电路交换的过程可以概括为:
- 建立连接(尝试占用通信资源)
- 通信(一直占用通信资源)
- 释放连接(归还通信资源)
在此过程中,从主叫端到被叫端会建立一条专用的物理通路,在通信的全部时间内,两个用户始终占用端到端的线路资源,数据直送,传输速率高。因此,电路交换更适用于,低频次,大量的数据传输。
但电路交换的缺点也很明显:
- 建立/释放连接,都需要额外的时间开销。而计算机之间的数据往往是“突发式”传输,即往往会高频次,少量地传输数据。
- 线路被通信双方独占,利用率较低。
- 线路分配的灵活性差,每次都需要重新建立连接线路。
- 交换结点不支持“差错控制”,无法发现传输过程中的发生的数据错误。
2. 报文交换
报文交换中,两个用户之间传递的信息由下图中的两部分组成。而传输过程中采用存储转发的思想,先把传送的数据单元先存储在中间节点,再根据目的地地址转发到下一个结点。
控制信息 | 用户数据 |
---|---|
发送方和接收方 | 需要发送的信息 |
使用存储转发的方式有一些很显然的优点:
- 通信前无需建立连接。
- 数据以“报文”为单位被交换节点间“存储转发”,因此通信线路可以灵活分配。
- 在通信时间内,两个用户无需独占一整条物理线路,相比于电路交换,线路利用率高。
- 交换节点之间因为有存储,因为可以使用奇偶校验等校验技术来支持“差错控制”。
但由于报文的大小不一,且会存在很多数据量极大的报文,因此也带来了一些缺点:
- 报文不定长,不方便存储转发管理。因为若想传递更大的报文,所有中间结点都要加大。
- 长报文的存储转发时间开销大,缓存开销也大。
- 长报文容易出错,重新传送的代价高。
3. 分组交换
分析之后可以发现,电路交换显然不合适,而报文交换似乎比较合适,但需要减少由于长报文而产生的一些缺点。
分组交换的想法就是将一个长报文划分成长度一致的短报文。这样既解决了不定长报文的问题,又解决了报文过长的问题。因此,分析分组交换的优点:
- 继承了报文交换的优点。
- 相比报文交换,分组定长,方便存储转发管理。分组的存储转发时间开销小,缓存开销小。分组也不易出错,重传代价低。
但依旧还有一些缺点:
- 相比报文交换,控制信息占比增加。
- 相比电路交换,依然存在存储转发时延。
- 报文被拆分为多个分组,传输过程中可能出现失序、丢失等问题,增加了问题处理的复杂度。
1.4 计算机网络的分类
本节我们要探讨的是计算机网络有哪些类型,具体见下图。标红的分类要着重注意,其余仅作了解即可。
按照分布范围分类,广域网一般范围可达几十~几千公里,而局域网的范围一般是几十米~几千米。其中局域网的通信通常采用以太网技术,因此有时也将局域网称为以太网。
城域网采用的也是以太网技术。个域网往往采用无线技术将个人设备连接起来,因此也常被称为无线个域网(WPAN)。
按照传输技术分类,广播式网络指的是当一台计算机发送数据时,广播范围内所有的计算机都会收到该分组,但需要根据分组目的地址决定是否接收该分组。点对点网络,数据只为从发送方“点对点”到达接收方。
按照拓扑结构分类,总线型结构中数据“广播式”传输,存在“总线争用”问题。
注意,集线器实际上是总线型结构,因为存在总线争用问题。
环形结构,数据“广播式”传输,通过“令牌”解决总线争用问题,令牌顺环形依次传递,拿到令牌者可以使用总线。
星型结构,由中央设备实现数据“点对点”传输,不存在“总线争用”问题。以太网交换机连接的设备就是星型结构。
网状结构,数据通过各中间节点逐一存储转发,属于“点到点”传输。由众多路由器构建的“广域网”就是网状结构。
1.5 计算机网络的性能指标
本节主要讲解以下七个性能指标:
1. 速率
指连接到网络上的结点在信道上传输数据的速率,也称数据传输速率、数据率、比特率。速率的单位一般是 bit/s,b/s,或 bps,其中 bps 最常用。
信道:表示向某一方向传送信息的通道。信道不等于通信线路,一条通信线路在逻辑上往往对应一条发送信道和一条接收信道。
1 B/s = 8 b/s = 8 bps。例如:1.2 MB/s = 1.2 * 8 * 10^6 bps。一些计算机网络中常用的数据前缀见下。注意这里和操作系统和计算机组成原理中的前缀不同,操作系统和计算机组成原理中以 2 为底,这里以 10 为底。
2. 带宽
指某信道所能传送的最高数据率。例如:下行信道的下行带宽可能是 1000 Mbps。结点间通信是实际能达到的最高速率,由带宽、节点(例如:计算机网卡最高速率)性能共同限制。
带宽还有一种含义,表示某信道允许通过的信号频带范围,单位是 Hz。
3. 吞吐量
指单位时间内通过某个网络(或信道、接口)的实际数据量。吞吐量受带宽限制、复杂的网络负载情况等影响。
4. 时延
指数据从网络的一端传送到另一端所需的时间。有时也被称为延迟或迟延。
以上不同时延可以通过下图帮助理解。
5. 时延带宽积
时延带宽积 = 传播时延 * 带宽(单位:bit)。对于这个量的含义,我们可以理解为一条链路中,已从发送端发出但尚未到达接收端的最大比特数。
6. 往返时延
往返时延 RTT 表示从发送方发送完数据,到发送方收到来自接收方的确认总共经历的时间。具体可以见下图。
我们常说的游戏延迟,反映的就是手机 - 服务器之间的往返时延 RTT。
7. 信道利用率
信道利用率不能太低,这样会浪费资源。信道利用率也不能太高,容易导致网络拥塞。
1.6 计算机网络的分层结构
我们可以将一个复杂的计算机网络分成多个层次,每个层次实现某些特殊的功能。当然,分层结构的设计可以是不唯一的,并且有些功能可能在多个层次实现。
由于分层结构不唯一,由此就引出了三种常见的计算机网络体系结构:
网络的体系结构是计算机网络的各层及其协议的集合。就是这个计算机网络及其构建所应完成的功能的精确定义。
在计算机网络的分层结构中,第 n 层中的活动元素(软件 + 硬件)通常被称为第 n 层实体。不同机器上的同一层称为对等层,同一层的实体称为对等实体。
网络协议是控制对等实体之间进行通信的规则的集合,是水平的。接口是同一节点内相邻两层的实体交换信息的逻辑接口,又称为服务访问点。服务是指下层为紧邻的上层提供的功能调用(一些函数),它是垂直的。
另外,我们还要介绍三个概念:
- 协议数据单元(PDU):对等层次之间传送的数据单位。第 n 层的 PDU 记为 n - PDU。
- 服务数据单元(SDU):为完成上一层实体所要求的功能而传送的数据。第 n 层的 SDU 记为 n - SDU。
- 协议控制信息(PCI):控制协议操作的信息。第 n 层的 PCI 记为 n - PCI。
具体可以见下帮助理解。三者的关系可以概括为:n-SDU + n-PCI = n-PDU = (n-1)-SDU。
最后,我们还要介绍协议的三要素:语法、语义和同步。
- 语法,数据与控制信息的格式。例如,协议控制信息(首部)部分占几个字节、每个字节是什么含义;协议的数据部分最多由多少字节。
- 语义,即需要发出何种控制信息、完成何种动作及做出何种应答。例如,协议中需要明确规定:发送方完数据后,接收方是否需要 “应答”,以及应答的种类有哪些(如:传输成功、传输失败)
- 同步(或时序),执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。例如,发送方发完数据后,接收方需要立即应答。如果发送方在 10 秒内未收到 “传输成功” 应答,则发送方会再次发送数据。
1.7 OSI 参考模型和 TCP/IP 参考模型
本节主要介绍 OSI 参考模型和 TCP/IP 参考模型中不同层次的主要任务。
1.7.1 OSI 参考模型
- 物理层:实现相邻节点之间比特的传输。
- 链路层:确保相邻节点之间的链路逻辑上无差错。包含以下功能:差错控制(检错 + 纠错)、流量控制(协调两个节点的速率)。
- 网络层:把“分组”从源节点转发到目的节点。包含以下功能:路由选择(构造并维护路由表,决定分组到达目的节点的最佳路径)、分组转发(将分组从合适的端口转发出去)、拥塞控制(发现网络拥塞,并采取措施缓解拥塞)、网际互联(实现异构网络互联)以及一些差错控制、流量控制、连接建立与释放、可靠传输管理等功能。
- 传输层:实现端到端通信(即实现进程到进程的通信)。
- 会话层:管理进程间会话。采用检查点机制,当通信失效时从检查点继续恢复通信。
- 表示层:解决不同主机上信息表示不一致的问题。格式转换之类的问题。
- 应用层:实现特定的网络应用。
1.7.2 TCP/IP 参考模型
TCP/IP 模型的四个层次的功能和 OSI 参考模型基本可以对应,这里可以将两者对比观察。
下图总结了 TCP/IP 模型各层主要的任务和功能实现。标蓝是 TCP/IP 和 OSI 不同的地方。