计算机网络体系结构

ZaynPei Lv6

电路交换, 报文交换和分组交换

在计算机网络中,数据交换技术是指在网络节点之间传输数据时所采用的方式。根据数据传输的组织形式,主要分为三种基本类型:电路交换 (Circuit Switching)、报文交换 (Message Switching) 和 分组交换 (Packet Switching), 三种方式的比较如上图

电路交换

电路交换 是一种在通信双方之间建立一条专用物理连接(电路)的技术。在整个通信过程中,这条电路被双方独占,直到通信结束才被释放。电路交换的通信过程严格分为三个阶段:

  • 建立连接 (Circuit Establishment): 在数据传输开始之前,源节点(如打电话的人)向网络发出连接请求。网络通过一系列交换机(节点)为通信双方分配并建立一条专用的物理路径。

此步骤的目的是预留通信所需的所有资源(如信道带宽、交换机端口等),以确保后续数据传输的服务质量 (QoS),如固定的速率和时延。

  • 数据传输 (Data Transfer): 连接建立后,源节点开始沿着这条专用电路向目的节点发送数据。数据以恒定的速率传输,中间节点(交换机)不对数据进行存储而是直接进行转发

由于电路是专用的,数据传输几乎没有时延(仅有传播时延和节点处理时延),且时延是固定的,非常适合实时通信。

  • 释放连接 (Circuit Release): 通信结束后,任何一方(通常是发起方)发出拆除连接的信令。网络收回为该连接分配的所有资源。

释放资源是为了让其他用户可以使用这些空闲的信道和端口,提高网络资源的整体利用率。

优点: - 实时性强: 一旦连接建立,数据传输时延极小且固定,非常适用于对时延敏感的实时业务(如语音、视频通话)。 - 服务质量保证: 通信双方独占带宽,数据传输速率恒定,不会出现网络拥塞导致的速率波动。

缺点: - 线路利用率低: 无论双方是否在传输数据(例如通话中的沉默时段),电路都会被占用,导致资源浪费,尤其不适合突发性(bursty)的数据通信。 - 建立连接时延: 在数据传输前,必须花费额外的时间来建立连接。 - 难以实现差错控制: 中间节点不具备存储和检验数据的能力, 无法识别和纠正差错

报文交换 (Message Switching)

报文交换 是一种无需预先建立专用路径的数据交换技术。它以报文 (Message)(即一个完整的数据单元,如一封电子邮件)为单位进行传输,并采用“存储-转发” (Store-and-Forward) 机制。工作原理如下:

  • 发送报文: 源节点将要发送的数据(报文)附加上目标地址等控制信息,然后将整个报文发送给相邻的第一个交换节点

  • 存储和转发:交换节点收到完整的报文后,先将其存储在本地缓存(如硬盘)中, 节点需要接收完整的报文并保存,一方面是为了进行差错校验,另一方面是等待输出链路可用。当输出链路空闲时,节点再将该报文转发给下一个节点。这种方式允许多个不同来源的报文共享同一条链路,提高了链路的利用率。

  • 中继传输: 报文在网络中逐个节点地“存储-转发”,直到最终到达目的节点。

优点在于: - 线路利用率高: 交换节点可以动态分配链路资源,只有在传输报文时才占用链路,提高了信道利用率。 - 无需建立连接: 省去了电路交换中建立连接所需的时间。

缺点: - 时延大且不固定: 每个节点都需要完整接收并存储报文,导致较大的“存储转发时延”。时延会随着网络负载的增加而显著增加。 - 节点缓存要求高: 交换节点必须有足够大的缓存空间(通常是磁盘)来存储可能很长的整个报文。 - 不适合实时通信: 较大的时延使其无法满足实时交互的需求。

分组交换 (Packet Switching)

分组交换 是目前互联网 (Internet) 使用的核心技术。它结合了报文交换的优点(高效的链路共享),并克服了其缺点(时延大、缓存要求高)。互联网 (Internet)、局域网 (LAN)、广域网 (WAN) 等几乎所有现代数据网络都使用这种方式。

它同样采用“存储-转发”机制,但其传输的基本单位是分组 (Packet)——即将一个完整的报文拆分成多个较小的数据块。工作原理为:

  • 报文分组 (Segmentation): 在源节点,一个完整的报文(如一个网页、一封邮件)被分割成多个固定或可变长度的分组。每个分组都会被添加一个头部 (Header),包含源地址、目的地址、分组序号等控制信息。这里的将大报文拆分成小单元(分组),有几个关键好处:

    • 减少时延: 交换节点只需接收一个很小的分组即可开始转发,而无需等待整个报文。这使得网络可以实现“流水线” (Pipelining) 传输(边接受边传输),大大降低了端到端时延。

    • 减少缓存需求: 节点缓存中只需存储较小的分组,而非完整的大报文。

    • 提高可靠性: 如果传输中出现错误,只需重传错误的分组,而不是整个报文。

  • 存储和转发 (Store-and-Forward): 每个分组在网络中被独立地进行“存储-转发”。交换节点(路由器)接收一个分组,将其暂存在内存(速度远快于报文交换的磁盘)中,检查其头部,然后根据路由表选择最佳路径转发给下一个节点。这种方式非常灵活,分组可以动态地选择路径,适应网络拥塞或链路故障。

    • 路径选择 (Routing): 不同的分组可能会沿着不同的路径传输到目的地。(这主要取决于使用的是数据报方式还是虚电路方式, 数据报方式具有无连接性, 每个分组独立路由; 而虚电路(Virtual Circuit, VC)则在数据传输前先建立一条逻辑连接(虚电路), 所有分组都沿着这条逻辑路径按顺序传输)。
  • 重组 (Reassembly): 分组到达目的节点后,目的主机根据分组头部中的序号信息,将这些可能乱序到达的分组重新排序,组装成原始的报文(由于分组独立路由,它们到达目的地的顺序可能与发送顺序不同,必须重组才能恢复原始数据)

这种方式的优点在于: - 线路利用率极高:动态共享链路,资源利用率在三种方式中最高。 - 灵活高效: 传输单位小,时延相对较低(虽然不固定)。 - 鲁棒性强 (Robust): 节点或链路故障时,分组可以动态选择其他路径绕过故障点。

缺点则是: - 时延不固定 (Jitter): 每个分组的存储转发时延和排队时延是变化的,会导致“时延抖动”,对实时业务(如高质量视频会议)有一定挑战。 - 额外开销:每个分组都需要附加包头信息,这会产生一定的传输开销。

计算机网络的分类

计算机网络可以从多个不同的维度进行分类:

按分布范围分类

这是最常用的一种分类方式,它根据网络所覆盖的地理区域大小来划分:

  • 广域网 (WAN - Wide Area Network): 覆盖范围非常大,通常直径为几十到几千公里,可以覆盖一个国家、一个大洲甚至全球。它的任务是提供长距离通信,连接不同地区的主机或局域网。它通常使用高速链路和交换机(如路由器)进行数据传输。互联网 (Internet) 的核心部分就是一个全球最大的广域网。

  • 城域网 (MAN - Metropolitan Area Network): 覆盖范围介于WAN和LAN之间,通常覆盖一个城市(直径约 5 km 到 50 km)。它可以被视为一个大型的局域网,通常采用以太网等技术,用于连接城市内的多个局域网。

  • 局域网 (LAN - Local Area Network): 覆盖范围较小,通常是直径为几米到几千米的区域,例如一栋办公楼、一个校园或一个家庭。局域网通常具有较高的传输速率和较低的误码率。传统上,局域网多采用广播技术(如早期的以太网),而广域网多采用点对点交换技术

  • 个人区域网 (PAN - Personal Area Network): 覆盖范围最小,通常在个人工作区域(约几米内)。用于在个人设备之间(如智能手机、平板电脑、笔记本电脑、蓝牙耳机)进行短距离通信。当它使用无线技术时,也称为 无线个人区域网 (WPAN)。

按传输技术分类

  • 广播式网络 (Broadcast Networks): 网络中所有联网的计算机共享一个公共通信信道。当一台计算机发送一个分组时,信道上的所有其他计算机都会“收听”到这个分组。每台计算机通过检查分组中的目的地址来判断这个分组是否是发送给自己的,从而决定是否接收它。

传统的局域网(如总线型以太网)基本都采用广播式通信。此外,无线网络和卫星通信网络也属于广播式网络。

  • 点对点网络 (Point-to-Point Networks): 网络由多条独立的物理线路组成,每条线路连接一对计算机(节点)。如果两台主机没有被一条线路直接连接,它们之间的通信就需要通过中间节点的中继。

这通常需要“存储-转发” (Store-and-Forward) 机制,即中间节点(如路由器)接收整个分组,将其存储下来,然后查找路由表,最后转发给下一个节点。广域网大多采用点对点技术。

按拓扑结构分类

拓扑结构是指网络中节点(如主机、路由器)与通信线路之间的几何关系,它主要定义了网络的物理布局。

  • 总线形 (Bus Topology): 所有计算机都连接到一根单根传输线(称为“总线”)上。

其优点是建网容易,增/减节点方便,节省线路成本; 缺点则在于通信效率在重负载时不高(容易冲突), 且总线是网络的命脉,任意一处故障都可能导致整个网络瘫痪。

  • 星形 (Star Topology): 网络中有一个中央设备(如交换机、集线器或路由器),每个终端或计算机都通过单独的线路与该中央设备相连。

其优点是便于集中控制和管理, 单个节点的故障不会影响其他节点; 缺点则是线路成本较高, 中央设备是网络的“瓶颈”,一旦中央设备发生故障,整个网络都会瘫痪。

现代的局域网(如以太网交换机)基本都采用星形结构。

  • 环形 (Ring Topology): 所有计算机接口设备被连接成一个闭合的环,信号在环中沿着一个方向单向传输。典型的例子是令牌环 (Token Ring) 局域网。

  • 网状 (Mesh Topology): 每个节点至少有两条路径与其他节点相连,存在高度的冗余连接。

一个显著优点在于可靠性极高。某条链路或某个节点出现故障时,数据可以自动选择其他路径进行传输。

缺点也很显而易见: 控制非常复杂(需要动态路由算法),线路成本极高。因此多用于广域网的核心层和互联网的骨干网,以确保通信的鲁棒性。

按传输介质分类

  • 有线网络 (Wired Networks): 使用物理线缆作为传输介质的网络。包括双绞线网络(如以太网)、同轴电缆网络(如早期的有线电视网)、光纤网络等。

  • 无线网络 (Wireless Networks): 使用电磁波在空间中进行数据传输,无需物理线缆。包括 Wi-Fi、蓝牙 (Bluetooth)、微波通信、蜂窝移动网络 (4G/5G) 等。

计算机网络的性能指标

速率 (Rate): 也常称为数据率(Data Rate)或比特率(Bit Rate), 是指连接到计算机网络上的节点在数字信道上传送数据的速率, 基本单位是 b/s (比特/秒,即 bps)。 - kb/s (千比特/秒) = 10³ b/s - Mb/s (兆比特/秒) = 10⁶ b/s
- Gb/s (吉比特/秒) = 10⁹ b/s - Tb/s (太比特/秒) = 10¹² b/s

带宽 (Bandwidth): 在计算机网络中,带宽通常是“最高数据传输速率”的同义词, 因此单位也是 b/s (比特/秒)。我们常说的“我家拉了100兆的宽带”,指的就是这条线路的理论最高速率为 100 Mb/s。它代表了链路传输数据的最大能力。 > 在信息论中,带宽 (Bandwidth) 指的是信号频率范围,单位为赫兹 (Hz)。例如,一个信道的带宽为 3000 Hz,表示它可以传输从某一频率到该频率加3000 Hz范围内的信号。

吞吐量 (Throughput): 是指在单位时间内,通过某个网络(或信道、接口)的实际数据量。其单位为 b/s, Mb/s, Gb/s 等. 实际的吞吐量会受到网络拥塞、设备处理能力、协议开销、时延等多种因素的限制。因此,吞吐量总是小于或等于带宽。

信道利用率 (Channel Utilization): 指某条信道在特定时间段内,有数据通过的时间所占的百分比。这是衡量信道繁忙程度或效率的指标。不过实际上并非信道利用率越高越好。根据排队理论,当信道利用率过高(例如接近100%)时,会导致分组在路由器队列中等待的时间(即排队时延)急剧增加,网络性能(总时延)会严重恶化,甚至导致大量丢包。

时延带宽积 (Delay-Bandwidth Product): 这是一个表示容量的复合指标,它等于传播时延与信道带宽的乘积 计算公式:时延带宽积 (bit) = 传播时延 (s)× 带宽 (b/s)

我们可以将链路想象成一个圆柱形管道: - 管道的长度 = 传播时延(数据通过管道所需的时间) - 管道的横截面积 = 带宽(单位时间能塞入多少数据) - 时延带宽积 = 管道的容积(这条链路最多能容纳多少比特)

往返时延 (Round-Trip Time, RTT): RTT 是指从发送端发送一个短分组开始,到发送端接收到来自接收端的确认分组为止,所经历的总时间, 它是衡量网络响应速度和进行交互式应用(如网页浏览、在线游戏)时非常重要的指标

需要注意的是, 它并不仅仅*是“传播时延的两倍”。一个完整的RTT至少包括:去程的传播时延 + 接收端的处理时延(用于生成确认)+ 确认分组的发送时延(通常很短)+ 回程的传播时延. 在实际的互联网中,RTT还包含了数据分组和确认分组在所有中间路由器上所经历的处理时延和排队时延。因此,RTT通常是一个动态变化的值。

时延

在计算机网络中,时延 (Delay) 是一个核心的性能指标。它指的是一个数据单元(例如一个报文或一个分组)从网络(或链路)的一端传输到另一端所需要的总时间。 这个总时延 (T) 并不是单一因素决定的,而是由以下四个主要部分构成的:

T = T发送 + T传播 + T处理 + T排队

发送时延 (Transmission Delay)

定义:发送时延,也常被称为传输时延,是指网络节点(如主机或路由器)将一个分组的所有比特”推送”到通信链路(如光纤、网线)上所花费的时间,从第一个Bit开始发送,到最后一个Bit发送完成。

计算公式:

T发送 = 分组长度 (bit) / 发送速率 (bit/s)

这个时延取决于分组的大小和链路的发送速率(也称为带宽)。

传播时延 (Propagation Delay)

定义:传播时延是指电磁波(或光信号)在信道(传输介质)中传播一定距离所花费的时间。通俗地说,就是一个比特从链路的始端传播到末端所需的时间。

计算公式:

T传播 = 信道长度 (m) / 电磁波在信道上的传播速率 (m/s)

从公式中可以看出,这个时间与分组有多大、发送速率有多快无关。

处理时延 (Processing Delay)

定义:指分组到达交换节点(如路由器)时,节点为进行存储转发而进行一系列必要处理所花费的时间。

路由器不是一个简单的”直通”管道。它必须对收到的每个分组进行分析才能决定下一步做什么。处理内容包括: - 检查分组首部:分析目标地址、协议类型等信息 - 差错校验:检查分组在传输过程中是否出现损坏 - 查找路由:根据目标地址查询本地路由表,确定将分组转发到哪一个输出端口

在现代高速路由器中,处理时延通常非常短(在微秒或更低的级别)。

排队时延 (Queuing Delay)

定义:指分组在路由器的输入队列或输出队列中排队等待所花费的时间。

因为当多个分组同时到达,而路由器无法立即处理它们时(例如,多个输入链路的分组都要转发到同一个正忙的输出链路),这些分组就必须排队等待。

其特点是: - 排队时延是四个时延中唯一一个高度可变的 - 它完全取决于网络的拥塞状况 - 如果网络非常空闲,排队时延可能接近于0 - 如果网络非常拥塞,排队时延可能会变得非常大,成为总时延中最主要的部分,甚至导致路由器缓存溢出而发生丢包 (Packet Loss)

计算机网络分层结构

计算机网络的分层结构是一种将复杂的网络通信任务划分为多个独立层次的设计方法。每一层都负责特定的功能,并通过定义良好的接口与相邻层进行交互

其基本原则是: - 分层:每一层都执行一组明确定义的功能。 - 服务提供:每一层都为其紧邻的上一层提供服务,同时隐藏了实现该服务的具体细节。 - 对等通信:不同计算机上的同一层(称为对等层)之间似乎在直接通信。实际上,这种通信是通过下层提供的服务来实现的,并由该层的协议来规范。

这里有几个概念需要区分:

服务 (Service): 是下层通过层间接口向上层提供的功能。它描述了某一层能为它的上一层做什么。服务的核心在于功能抽象。上层不需要关心下层是如何实现这些功能的,只需要知道如何使用这些功能即可。

例如, 传输层为应用层提供“可靠的数据传输服务”。应用层(如网页浏览器)只需要请求传输层发送数据,并相信数据会准确无误地到达目的地,而不需要关心传输层是如何通过确认、重传等机制来保证可靠性的。

接口 (Interface): 接口是同一台计算机上相邻两个层次之间的交互点。它定义了上层如何访问下层所提供的服务。它规定了一套操作和参数,用于在层与层之间传递控制信息和数据。

可以将其看作是一个软件函数库的API(应用程序编程接口)。传输层会提供像 send() 和 receive() 这样的函数调用作为接口,供应用层来使用它的数据传输服务。

协议 (Protocol): 协议是控制不同计算机上对等实体(Peer Entities,即不同机器上的同一层)之间通信的一组规则。它规定了通信双方需要共同遵守的格式、顺序和操作,确保它们能够正确地理解对方发送的信息。协议是水平的服务和接口是垂直的

协议三要素: - 语法 (Syntax):数据与控制信息的结构或格式。例如,HTTP协议规定一个HTTP请求报文必须包含请求行、请求头和请求体。 - 语义 (Semantics):需要发出何种控制信息,完成何种动作以及做出何种应答。例如,规定收到一个特定的状态码(如404)代表“未找到资源”。 - 时序 (Timing):事件实现的顺序。例如,规定发送方发送数据后,必须在多长时间内收到接收方的确认。

计算机网络的两种参考模型

alt text