本篇笔记课程来源:王道计算机考研 计算机网络
【计算机网络】第一章:计算机网络体系结构
一、计算机网络的概念
1. 理论
- 计算机网络(Computer Networking,简称网络) 是一个将众多分散的、自治的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递(数据通信)的系统。
- 计算机网络的组成:由若干 结点(node)和连接这些结点的 链路(link)组成。
- 结点:可以是计算机、集线器(Hub)、交换机(Switch)、路由器(Router)等
- 链路:可以是有线链路、无线链路
2. 计算机网络、互连网、互联网的区别
- 计算机网络(Computer Networking):如上。
- 互连网(internet):通过路由器把两个或多个计算机网络互相连接起来,形成规模更大的计算机网络,也可称为 “互连网”
- 互联网(因特网、Internet):由各大 ISP(Internet Service Provider,互连网服务提供商如电信移动联通)和国际机构组建,覆盖全球范围的互连网。互联网必须使用 TCP / IP 协议 通信,互连网可使用任意协议通信。
二、计算机网络的组成、功能
1. 组成
- 从组成部分看:硬件:软件、 协议
- 硬件:
- 主机(端系统,end system):如电脑、手机、物联网设备
- 通信设备:如集线器、交换机、路由器
- 通信链路:如网线、光纤、同轴电缆
- 软件:方便用户使用,实现资源共享。如 Email 客户端、聊天软件等。
- 协议:
- 规定计算机网络中的通信规则
- 由硬件、软件共同实现,如:网络适配器 + 软件 实现网络通信协议。
- 硬件:
- 从工作方式看:
- 边缘部分:
- 工作方式:直接为用户服务(通信、资源共享)
- 主要由连接到互联网上的主机及其软件组成
- 核心部分:
- 工作方式:为边缘部分提供服务(连通性、交换服务)
- 由大量网络和连接这些网络的路由器组成
- 边缘部分:
- 从逻辑功能看:
- 资源子网
- 计算机网络中运行应用程序,向用户提供可共享的硬件、软件和信息资源的部分
- 主要由连接到互联网上的主机组成
- 通信子网
- 计算机网络中负责计算机间信息传输的部分。即把计算机和其他用户装置互连在一起的所有通信设备和介质的总称。
- 主要由 通信链路 + 通信设备 + 协议 构成
- 主机内部实现信息传输的网络适配器、底层协议属于通信子网的范畴
- 资源子网
2. 功能
- 数据通信 :实现计算机之间数据传输。是最基本、最重要的功能
- 资源共享:共享硬件、软件、数据资源
- 分布式处理:将某个复杂任务分配给网络中多台计算机处理,如大矩阵运算、MapReduce
- 提高可靠性:网络中各台计算机互为替代机,如服务器集群网络、数据冗余备份
- 负载均衡:网络中各台计算机共同分担繁重工作
- 其他:满足社会需求、生活所需。
三、交换技术
1. 电路交换
- 电路交换(Circuit Switching):通过物理线路的连接,动态地分配传输线路资源。
- 电路交换的过程:
- 建立连接(尝试占用通信资源)
- 通信(一直占用通信资源)
- 释放连接(归还通信资源)
- 优点:
- 通信前从主叫端到被叫端建立一条 专用的物理通路,在通信的全部时间内,两个用户 始终占用 端到端的 线路资源。数据直连,传输速率高。
- 缺点:
- 建立 / 释放连接,需要额外的时间开销。
- 线路被通信双方独占,利用率低
- 线路分配的灵活性差
- 交换节点不支持 “差错控制”(无法发现传输过程中的发生的数据错误)
- 适用于:
- 低频次、大量地传输数据
2. 报文交换
- 报文交换(Message Switching):由控制信息和用户数据组成,由存储转发的方式传输数据。
- 存储转发 的思想:把传送的数据单元先存储进中间节点,再根据目的地址转发至下一节点。
- 优点:
- 通信前无需建立连接
- 数据以 “报文” 为单位被交换节点间 “存储转发”,通信线路可以灵活分配
- 在通信时间内,两个用户无需独占一整条物理线路。相比于电路交换,线路利用率高。
- 交换节点支持 “差错控制”(通过校验技术)
- 缺点:
- 报文不定长,不方便存储转发管理
- 长报文的存储转发时间开销大,缓存开销大
- 长报文容易出错,重传代价高
3. 分组交换
- 分组交换将报文(不定长)拆分为控制信息和数据
- 控制信息:包含源地址、目的地址等
- 数据拆分为若干个分组(Packet),每个分组(定长)包含了首部和分组数据
- 首部(Header):即分组的控制信息,包含源地址、目的地址、分组号等
- 优点:
- 通信前无需建立连接
- 数据以 “分组” 为单位被交换节点间 “存储转发”,通信线路可以灵活分配
- 在通信时间内,两个用户无需独占一整条物理线路。相比于电路交换,线路利用率高
- 交换节点支持 “差错控制”(通过校验技术)
- 由上可见,分组交换继承了报文交换的优点,并改进以下问题:
- 分组定长,方便存储转发管理
- 分组的存储转发时间开销小、缓存开销小
- 分组不易出错,重传代价低
- 缺点:
- 相比于报文交换,控制信息占比增加
- 相比于电路交换,依然存在存储转发时延
- 报文被拆分为多个分组,传输过程中可能出现失序、丢失等问题,增加处理的复杂度
4. 虚电路交换技术
- 基于分组交换的交换技术
- 虚电路交换的过程:
- 建立连接(虚拟电路)
- 通信(分组按序、按已建立好的既定路线发送,通信双方不独占线路)
- 释放连接
5. 交换技能性能对比
假设每一跳传播时延 = 1ms,数据传输速率 = 0.5kb/ms,报文大小 = 4kb,存储转发中间节点一定要接受完整个报文后,才能解析并转发。
- 电路交换:建立、释放下一跳连接耗时 = 1ms,接收方处理连接请求需要 2ms。则数据传送耗时 11ms
- 报文交换:报文存储转发时延 = 2ms。则数据传送耗时 29ms。
- 分组交换:分组大小= 1kb,分组存储转发时延 = 0.5ms。则数据传送耗时 17.5ms。
电路交换 | 报文交换 | 分组交换 | |
---|---|---|---|
完成传输所需时间 | 👍 最少 (排除建立 / 释放连接耗时) | 👎🏿 最多 | 👌🏻 较少 |
存储转发时延 | 👍 无 | 👎🏿 较高 | 👌🏻 较低 |
通信前是否需要建立连接? | 👎🏿 是 | 👍 否 | 👍 否 |
缓存开销 | 👍 无 | 👎🏿 高 | 👌🏻 低 |
是否支持差错控制? | 👎🏿 不支持 | 👍 支持 | 👍 支持 |
报文数据有序到达 | 👍 是 | 👍 是 | 👎🏿 否 |
是否需要额外的控制信息 | 👍 否 | 👌🏻 是 | 👎🏿 是 (控制信息占比最大) |
线路分配灵活性 | 👎🏿 不灵活 | 👍 灵活 | 👍 非常灵活 |
线路利用率 | 👎🏿 低 | 👍 高 | 👍 非常高 |
四、计算机网络的分类
1. 按分布范围分类
- 广域网(Wide Area Network,WAN)
- 范围:几十 - 几千公里
- 跨省 / 跨国 / 跨洲
- 城域网(Metropolitan Area Network,MAN)
- 范围:几千米 - 几十千米
- 一个或几个相邻城市
- 通信技术:常采用 “以太网技术”,因此常并入局域网范畴探讨
- 局域网(Local Area Network,LAN)
- 范围:几十米 - 几千米
- 学校 / 企业 / 工作单位 / 家庭
- 通信技术:以太网技术
- 个域网(Personal Area Network,PAN)
- 范围:几十米以内
- 通常是通过无线技术将个人设备连接起来的网络,因此也常称为无线个域网(WPAN)
2. 按传输技术分类
- 广播式网络:
- 当一台计算机发送数据分组时,广播范围内所有计算机都会收到该分组,并通过检查分组的目的地址决定是否接收该分组。
- 例如:所有无线网络都是广播式
- 点对点网络:
- 数据只会从发送方 “点对点” 发到接收方,精准送达。
- 例如:路由器转发的数据分组
3. 按拓扑结构分类
- 总线型结构:
- 数据 “广播式” 传输,存在 “总线争用” 的问题。
- 例如:集线器连接的设备,在物理上是星型拓扑,在逻辑上是总线型拓扑
- 环形结构:
- 数据 “广播式” 传输,通过 “令牌” 解决总线争用问题,令牌顺环形依次传递,拿到令牌者可使用总线。
- 例如:令牌环网
- 星型结构:
- 由中央设备实现数据的 “点对点” 传输,不存在 “总线争用” 问题
- 例如:以太网交换机连接的设备,物理上和逻辑上都是星型结构
- 网状结构:
- 数据通过各中间节点逐一存储转发,属于 “点对点” 传输。
- 灵活、可靠性高、控制复杂、线路成本高。
- 例如:由众多路由器构建的广域网
4. 按使用者分类
- 公用网:
- 向公众开放的网络。
- 例如:宽带、手机使用的互联网
- 专用网:
- 仅供某个组织内部使用的网络。
- 例如:政府、银行的内部网络
5. 按传输介质分类
- 有线网络:如网线、光纤
- 无线网络:如 5G、Wi-Fi、卫星
五、计算机网络的性能指标
1. 速率
- 信道(Channel):表示某一方向传送信息的通道(信道 ≠ 通信线路),一条通信线路在逻辑上往往对应一条发送信道和一条接收信道。
- 速率(Speed):指连接到网络上的节点在信道上传输数据的速率。也称为数据率、比特率、数据传输速率。
- 速率单位:bit/s、b/s、bps。
- 单位区别
K M G T 计网 103 106 109 1012 机组、操作系统 210 220 230 240 - 节点间通信实际能达到的最高速率,由带宽、节点性能共同限制。
2. 带宽
- 带宽(bandwidth):某信道所能传送的最高数据率,单位 bps。
- 通信原理中的带宽与计网中的带宽不同,通信原理中的带宽表示信道允许通过的信号频带范围,单位 Hz。例如光纤带宽约 500MHz。
- 信道带宽越大,传输数据的能力越强。
3. 吞吐量
- 吞吐量(Throughput):指单位时间内通过某个网络(或信道、接口)的实际数据量(实际的综合数据率)。
- 吞吐量受带宽限制、受复杂的网络负载情况影响。
4. 时延
- 时延(Delay):指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间,也成为延迟或迟延。
- 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
- 发送时延:又名传输时延,指节点将数据推向信道所花的时间。 发送时延 = 数据长度( b i t ) 发送速率( b i t / s ) 发送时延=\frac{数据长度(bit)}{发送速率(bit/s)} 发送时延=发送速率(bit/s)数据长度(bit)
- 传播时延:电磁波在信道中传播一定的距离所花的时间。 传播时延 = 信道长度( m ) 电磁波在信道中的传播速度( m / s ) 传播时延=\frac{信道长度(m)}{电磁波在信道中的传播速度(m/s)} 传播时延=电磁波在信道中的传播速度(m/s)信道长度(m)
- 处理时延:被路由器处理所花的时间(如:分析首部、查找存储转发表)
- 排队时延:数据排队进入、排队发出路由器所花的时间
H1 给 H2 发送一个数据分组。分组大小 = 1000B,H1 往链路 A 发送数据的速率为 100Mbps,路由器往链路 B 发送数据的速率为 80 Mbps。链路 A 传播时延为 0.01 ms,链路 B 传播时延为 0.05 ms。不考虑路由器的处理时延、排队时延,求传输整个分组的总时延。
- H1 → 链路 A:分组发送时延 = 1000B / 100Mbps = 8000b / 108bps = 8 * 10-5s = 0.08ms
- 路由器 → 链路 B:分组发送时延 = 1000B / 80Mbps = 8000b / 8 * 107bps = 10-4s = 0.1ms
- 总时延 = 0.01 + 0.08 + 0.05 + 0.1 = 0.24ms
5. 时延带宽积
- 时延带宽积,指一条链路中,已从发送端发出但尚未到达接收端的最大比特数。
- 时延带宽积 = 传播时延 × 带宽。单位为 bit。
6. 往返时延
- 往返时延(Round-Trip Time,RTT):表示从发送方发送完数据,到发送方收到来自接收方的确认总共经历的时间。
- 往返时延 RTT = t2 + t3 + t4 + t5
- t2:数据的单向传播时延
- t3:接收方收到数据后的处理时延
- t4:确认的发送时延
- t5:确认的传播时延(通常 t5 与 t2 相等)
7. 信道利用率
- 信道利用率:某个信道有百分之多少的时间是有数据通过的。 信道利用率 = 有数据通过的时间 有数据通过的时间 + 没有数据通过的时间 信道利用率 = \frac{有数据通过的时间}{有数据通过的时间+没有数据通过的时间} 信道利用率=有数据通过的时间+没有数据通过的时间有数据通过的时间
- 利用率低回浪费带宽资源;利用率太高可能导致网络拥塞。
六、计算机网络的分层结构
1. 分层的设计思想
- 将庞大而复杂的问题,转化为若干较小的局部问题。
- 将复杂的计算机网络在逻辑上划分为多个层次,并将各种 “功能” 安排在合适的层次中
- 不同类型的节点,实现的功能层次可能不一样
- 分层结构的设计并不唯一,可以根据实际需求增加或减少层次
- 同一个功能可以在多个层次中重复出现。
2. 计算机网络体系结构
- 网络体系结构(Network Architecture):是计算机网络的各层及其协议的集合,是计算机网络及其构件所应完成的功能的精确定义(不涉及实现)
- 实现(Implementation):是在遵循体系结构的前提下,用何种硬件或软件完成这些功能的问题。
- 体系结构是抽象的,而实现是具体的。 每一层需要支持若干个协议,每一个协议对应实现的若干功能。
- 三种常见的计算机网络体系结构:
- TCP / IP 模型:美国防部阿帕网(ARPANET)项目的后续结果,是事实上的标准。
- OSI 参考模型:由国际标准化组织 ISO 提出的法律标准。
- 五层模型:综合前两者,便于学习,用于教学。
3. 各层之间的关系
- 水平视角:
- 实体:在计算机网络的分层结构中,第 n 层中的活动元素(软件 + 硬件)通常称为第 n 层实体。不同机器上的同一层成为对等层,同一层的实体成为对等实体。
- 协议:即网络协议(Network Protocol),是控制对等实体之间进行通信的规则的集合,是水平的。
- 垂直视角:
- 接口:即同一节点内相邻两层的实体交换信息的逻辑接口,又称为服务访问点(Service Access Point,SAP)
- 服务:服务是指下层为紧邻的上层提供的功能调用,是垂直的。
- 上一层实体通过接口,请求相邻下层的服务。
4. PDU、SDU、PCI
- 协议数据单元(PDU):对等层次之间传送的数据单位。第 n 层的 PDU 记为 n-PDU。
- 服务数据单元(SDU):为完成上一层实体所要求的功能而传送的数据。第 n 层的 SDU 记为 n-SDU。
- 协议控制信息(PCI):控制协议操作的信息。第 n 层的 PCI 记为 n-PCI。
- 三者的关系为:n-SDU + n-PCI = n-PDU = (n-1)-SDU。( 翻译: PDU 由 SDU 和 PCI 组成,本层的 PDU 作为下一层的 SDU)
5. 协议三要素
- 协议由语法、语义 和 同步(时序) 三部分组成。
- 语法:
- 数据与控制信息的格式。
- 例如:协议控制信息(首部)部分占几个字节;每个字节是什么含义;协议的数据部分最多有多少字节
- 语义:
- 需要发出何种控制信息、完成何种动作及做出何种应答。
- 例如:协议中需要明确规定:发送方发完数据后,接收方是否需要应答,以及应答的种类有哪些(如传输成功、传输失败)
- 同步:
- 也叫时序。执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。
- 例如:发送方发完数据后,接收方需要立即应答。如果发送方在 10 秒内未收到传输完成应答,则发送方会再次发送数据。
七、OSI 参考模型
1. 各层的名称、顺序和功能
- 将大的数据拆分成多个更小的数据,叫做数据的 分段
- 将更小的数据组装成大的数据,叫做数据的 重装
- 另外:物理传输媒体(如双绞线)属于第 0 层
- 物理层:
- 单位:比特(bit)
- 实现相邻节点之间比特(0 / 1)的传输
- 定义电路接口参数(如:形状、尺寸、引脚数等)
- 定义传输信号的含义、电气特性 (如:5V 代表 1,1V 代表 0;每比特电信号持续时间 0.1ms)
- 数据链路层:
- 单位:帧(Frame)
- 确保相邻节点之间的链路逻辑上无差错
- 差错控制:检错 + 纠错;或 检错 + 丢弃 + 重传
- 流量控制:协调两个节点的速率
- 网络层:
- 单位:分组、数据报(Packet)
- 把分组从源节点转发到目的节点
- 路由选择:构造并维护路由表,决定分组到达目的节点的最佳路径
- 分组转发:将 “分组” 从合适的端口转发出去
- 拥塞控制:发现网络同色,并采取措施缓解拥塞
- 网际互联:实现异构网络互联
- 其他功能:差错控制、流量控制、连接建立与释放、可靠传输管理
- 传输层:
- 单位:报文段(Segment)
- 实现端到端通信(即实现进程到进程的通信,“端” 指 “端口”)
- 复用和分用:发送端几个高层实体复用一条低层的连接,在接收端再进行分用
- 其他功能:差错控制、流量控制、连接建立与释放、可靠传输管理
- 会话层:
- 管理进程间会话
- 会话管理:采用检查点机制,当通信失效时从检查点继续恢复通信
- 表示层
- 解决不同主机上信息表示不一致的问题
- 数据格式转换:如编码转换、压缩解压、加密解密
- 应用层
- 单位:报文(Message)
- 实现特定的网络应用
- 功能繁多,根据应用需求设计,例如 HTTP 协议
2. 常见网络设备的功能层次
- 主机:1 - 7 层
- 集线器:1 层
- 交换机:1 - 2 层
- 路由器:1 - 3 层
八、TCP / IP 模型
1. 各层的名称、顺序和功能
- 网络接口层:
- 实现相邻节点间的数据传输(为网络层传输 “分组”)。
- 具体怎么传输不作规定(不具体描述网络接口层的功能、协议),具有更强的灵活性、适应性
- 网络层:
- 只保证 “尽最大能力交付”,仅向上层提供无连接不可靠的服务(数据报)
- 网络核心部分(路由器)的功能简单,负载低
- 功能:路由选择、分组转发、拥塞控制、网际互联
- 传输层:
- 在 TCP / IP 模型中,由传输层负责保证数据传输的正确性、可靠性
- 可向上层提供:有连接可靠的服务(TCP)、无连接不可靠的服务(UDP)
- 功能:复用和分用、差错控制、流量控制、连接建立与释放、可靠传输管理
- 应用层:
- 功能:实现特定的网络应用(功能复杂且多样)
- 如果某些应用需要数据格式转换、会话管理功能,就交给应用层去实现