计算机网络:一些互联的、自治的计算机系统的集合。
- 互联:通过通信链路连接在一起。
- 自治:每台计算机都有自己的操作系统,资源管理、进程调度等。
功能: 资源共享、信息传递、协作计算、分布
计算机网络的组成
由硬件和软件与协议组成。
按照功能组成:
- 通信子网:负责数据传输,包括传输介质、通信设备、通信控制软件。(物理、链路、网络)
- 资源子网:负责资源管理,包括计算机、存储设备、打印机等。(会话、表示、应用)
交换方式分类
- 电路交换:建立连接,传输数据,释放连接。有这三个步骤的交换方式就叫做电路交换。
也被称为面向连接的交换方式。一般需要建立电路,根据物理电路和逻辑电路的区别,电路交换又分为两种:实电路与虚电路。- 优点: 传输速率高,传输稳定。
- 缺点: 线路利用率低,连接建立时间长。
- 报文交换:使用存储转发的无连接方式,中间节点等待整个报文到达后转发
- 分组交换:使用存储转发的无连接方式,中间节点不需要等待整个分组到达就进行转发
性能指标
速率
数据率、数据传输率、比特率,单位为 bps(bit per second)
连接在计算机网络上的主机在数字信道上传送数据位数的速率
带宽
带宽原本指的是信号的频带宽度,即模拟信号最高频率与最低频率之差,单位是 Hz。
在计算机网络中,带宽指的是数字信道中某一点到另一点所能通过的最高数据传输速率,单位是 bps。
主机向数字信道发送数据的速率+数字信道传播电磁波的频率
即使用主机向数字信道发送数据的速率描述数字信道能够传输数据的能力,因为传播电磁波的频率是固定的。
带宽表达的是信道的通信能力,速率表达的是主机的通信能力
吞吐量
表示单位时间内通过某个网络(或信道、接口)的数据量,单位是 bps。
吞吐量受网络的带宽或网络的额定速率的限制。
是对线路实际传输速率的一个度量。
时延
指数据从网络的一端传输到另一端所需的时间。
-
发送时延:主机发送数据所需的时间。从发送分组的第一个比特到发送完最后一个比特的时间。
\[d_{send} = \frac{L}{R} = \frac{L}{B} \] -
传播时延:数据通过信道传播所需的时间。取决于信道的长度和电磁波在信道上的传播速率。
\[d_{prop} = \frac{d}{s} \] -
排队时延:数据在路由器或交换机的队列中等待所需的时间。等待输出/输入缓冲区的时间。
\[d_{queue} \] -
处理时延:数据在路由器或交换机中处理所需的时间。检错、查找转发表、计算校验和等。
\[d_{proc} \]
高速链路实际上是影响的带宽,而不是传播速率。
时延带宽积
时延带宽积是指在网络中传输的数据量与网络的带宽之积,用来描述某一时刻链路中的数据量。
往返时间 RTT
从发送方发送数据到接收方接收到确认信息所需的时间,总共经历的时间。
分层结构中的概念
层次栈/分级栈:为了降低网络设计的复杂性,将网络分为若干层,每一层都有自己的功能,只与相邻的层进行通信,实现网络的模块化设计。
对等体: 在不同计算机上构成相同层次的实体
协议
协议是一组规则,规定了同一层上的对等实体之间交换的消息格式和消息含义。
协议由语法、语义和时序三个要素组成。
- 语法:规定了消息的格式,包括消息中的各个字段的含义和位置。
- 语义:规定了消息的含义,即对消息中的各个字段的解释与功能。
- 时序:规定了消息的发送顺序,即消息的发送和接收的时间顺序。即事件实现顺序的详细说明
接口
接口定义了下一层向上一层提供的哪些原语操作与服务。相比较于服务而言,接口更加抽象。
相当于只提供了一个函数名、参数、返回值,而没有具体的实现。
比如如下的接口:
def quick_sort(arr: List[int]) -> List[int]
服务
服务定义了下一层向上一层提供的功能(或者说该层能够代表用户执行哪些操作)。不涉及具体实现,只是定义了功能。
服务是由一组原语操作组成的,原语操作是服务的具体体现,由哪些原语取决于提供服务的本质。
消息格式
每一层报文都分为两个部分:SDU 与 PDI,共同构成 PDU
- SDU(Service Data Unit):服务数据单元,是上一层传递给下一层的数据,第 n 层的 SDU 是第 n+1 层的 PDU。
- PCI(Protocol Control Information):协议控制信息,是为了实现协议功能而添加的控制信息,用于控制协议的传输。
- PDU(Protocol Data Unit):协议数据单元,是在协议控制信息的基础上添加了协议控制信息的数据单元。
n-SDU + n-PCI = n-PDU = (n-1)-SDU
分层的依据
- 各层之间是相互独立的;
- 每一层需要有足够的灵活性;
- 各层之间完全解耦。
OSI 七层模型
为了达到所有异构网络的互联互通,国际标准化组织(ISO)制定了 OSI 七层模型。
Open System Interconnection,开放式系统互联。