计算机网络总结
概述
计算机网络定义与组成
- 定义:用通信设备将计算机通过通信线路连接,在计算机之间传输数据的系统。
- 组成三要素:
- 通信设备:NIC、调制解调器、中继器、交换机、路由器(负责转发数据)。
- 通信线路:有线(双绞线、光纤)或无线(无线电波)。
- 通信协议:TCP/IP、IEEE 802.3、IEEE 802.11(数据交换规则)。
协议
- 语法:数据与控制信息的结构或格式。
- 语义:需要发出何种控制信息,完成何种动作以及做出何种响应。
- 同步:事件实现顺序的详细说明。
网络分类
- 按作用范围:
- PAN:~10 米(蓝牙)。
- LAN:~1 公里(WiFi、以太网)。
- MAN:5–50 公里(Cable、DSL、蜂窝)。
- WAN:几十到几千公里(大型 ISP、VPN)。
- 按使用者:
- 公用网:按规定交费即可使用(如电信网络)。
- 专用网:为特殊业务工作需要建造(如军队、铁路网络)。
互联网组成
- 定义:全球最大、开放、由众多网络相互连接而成的特定计算机网络,采用 TCP/IP 协议族,前身是 ARPANET。
- 组成:
- 边缘部分:端系统(PC、智能手机、服务器、网络摄像头)。
- 核心部分:路由器/网络。
- 端系统通信方式:
- C/S:客户/服务器,请求方与提供方明确区分,服务器被动等待(Web 浏览、邮件服务)。
- P2P:对等连接,不区分服务请求方和提供方,每个主机既是客户又是服务器(文件共享、区块链)。
分层模型
OSI 的体系结构 TCP/IP 的体系结构 五层协议的体系结构
---------------------- -------------------------- ----------------------
7 应用层
---------------------- 应用层
6 表示层 (DNS, HTTP, SMTP等) 应用层
----------------------
5 会话层
---------------------- -------------------------- ----------------------
4 传输层 传输层 (TCP/UDP) 传输层
---------------------- -------------------------- ----------------------
3 网络层 网络层 IP 网络层
---------------------- -------------------------- ----------------------
2 数据链路层 数据链路层
---------------------- 网络接口层 ----------------------
1 物理层 物理层
---------------------- -------------------------- ----------------------
-
优势:
- 各层之间是独立的。
- 灵活性好。
- 结构上可分割开。
- 易于实现和维护。
- 能促进标准化工作。
-
劣势:
- 降低效率。
- 有些功能会在不同的层次中重复出现,因而产生了额外开销。
-
各层的主要功能:
- 差错控制
- 流量控制
- 分段和重装
- 复用和分用
- 连接建立和释放
-
封装与解封装:
- 发送端:自上而下逐层添加首部(数据链路层加首部和尾部)。
- 接收端:自下而上逐层去除首部(数据链路层去除首尾部)。
- 路由器在转发分组时最高只用到网络层。
-
核心概念:
- 实体:任何可发送或接收信息的硬件或软件进程。
- 协议:控制两个对等实体进行通信的规则的集合(水平)。
- 服务:下层为上层通过层间接口提供的功能(垂直)。
- SAP:同一系统相邻两层实体交互的地方。
- PDU:对等层次之间传送的数据单位。
- SDU:层与层之间交换的数据单位。
Socket API
-
核心原语:SOCKET、BIND、LISTEN、CONNECT、ACCEPT、SEND、RECEIVE、CLOSE。
-
客户端流程:
socket() getaddrinfo() connect() [阻塞] send() recv() [阻塞] close() -
服务器端流程:
socket() getaddrinfo() bind() listen() accept() [阻塞] recv() send() close()
接入网
-
定义:从用户端系统到互联网中第一个路由器(边缘路由器)之间的网络。
-
技术对比:
技术 介质 典型速率 应用场景 DSL 电话线 下行<24Mbps,上行<2.5Mbps 家庭宽带 Cable 同轴电缆 下行30Mbps,上行2Mbps 家庭宽带(HFC) 以太网 双绞线/光纤 10Mbps–10Gbps 企业、校园 WiFi 无线 11–450Mbps 建筑物内部 蜂窝网络 无线 1–10Mbps 广域无线接入
交换技术
-
三种交换方式对比:
特性 电路交换 报文交换 分组交换 建立连接 需要(专用物理通路) 不需要 不需要 传输单位 比特流直达 整个报文 分组(Packet) 存储转发 否 是 是 时延 小(建立连接后) 大(几分钟到几小时) 较小 线路利用率 低(独占) 高 高(统计复用) 适用场景 连续大量数据传输 早期电报 互联网(突发数据) -
分组交换机制:
- 发送端:报文 → 划分数据段 → 添加首部 → 分组 → 发送。
- 接收端:接收分组 → 去除首部 → 还原数据段 → 重组报文。
-
路由器工作原理:
- 接收分组 → 放入缓存。
- 查找转发表 → 确定输出端口。
- 转发分组 → 发送到下一跳。
网络性能指标
-
基本指标:速率(bit/s)、带宽(Hz 或 bit/s)、利用率(0–1)。
-
计算公式:
概念 符号 公式 发送时延 (帧长/链路速率) 传播时延 (信道长度/传播速率) 单向时延 往返时间 时延带宽积 吞吐量 信道利用率 -
重要区分:
- 发送时延:发生在发送器内部,与传输信道长度无关。
- 传播时延:发生在传输媒体上,与信号发送速率无关。
-
高速链路:提高的是数据发送速率(减小发送时延),而非比特传播速率。
-
时延与路由器利用率:
- 公式:
- :网络空闲时延()。
- :路由器利用率,。
- 结论:当利用率接近 1 时,时延急剧增加。
物理层
物理层概述
- 本质:屏蔽传输媒体差异,为上层提供统一接口
- 功能:在物理介质上传输数据比特流,定义信号发送所需的机械、电气、时序和接口特性
- 提供的服务:
- 发送和接收比特流的能力(连接的建立、维持和释放)
- 在两个相邻通信结点之间唯一地标识数据电路
- 关键特性:
| 特性 | 说明 |
|---|---|
| 机械特性 | 接线器的形状、尺寸、引线数目和排列、固定和锁定装置 |
| 电气特性 | 接口电缆各条线上出现的电压范围 |
| 功能特性 | 某条线上某一电平电压的意义 |
| 过程特性 | 不同功能的各种可能事件的出现顺序 |
数据通信基础
-
系统模型:
信源 → [发送器] → 信道(含噪声) → [接收器] → 信宿 -
三大部分:
- 源系统:产生要传输的数据
- 传输系统:传输线路或网络
- 目的系统:接收并处理数据
-
核心术语:
术语 定义 数据(data) 运送消息的实体(比特序列) 信号(signal) 数据的电气或电磁表现 模拟信号 代表消息的参数取值连续 数字信号 代表消息的参数取值离散 码元(code)/符号 一个周期脉冲信号,可利用不同状态代表多个比特 信道 向某一个方向传送信息的媒体 -
主要性能参数:
参数 符号 说明 信号功率 - 信道带宽 与收发设备及传输介质特性有关,此处指时域带宽 噪声功率 通信线路上的平均噪声功率 信噪比 或 10dB=10倍,20dB=100倍,3dB=2倍 数据率/链路速率 或 单位时间传输的比特数 波特率/码元速率 单位时间传输的码元数 误码率 - 数据传输的错误概率 -
通信方式:
方式 英文名 特点 单工通信 Simplex 只能单向传输,无反方向交互 半双工通信 Half-duplex 双方可发送,但不能同时发送/接收 全双工通信 Full-duplex 双方可同时发送和接收
信道极限容量
-
奈奎斯特定理(理想无噪声信道):
- 条件:信道带宽 ,信号状态数 ,发送方波特率 ,接收方采样频率
- 时可无损恢复信号;发送方要求
- 最大数据率:
- 注:没有限制码元传输的比特数
-
香农定理(有噪声信道):
- 极限信息传输速率:
- 带宽 或信噪比 越大,极限传输速率越高
- 只要实际速率小于 ,理论上就可实现无差错传输
- 实际速率通常远低于香农极限
-
传输同步方式对比:
特性 异步传输 同步传输 传输单位 面向字节(字符) 面向比特 时钟同步 每个字节独立同步(起止位) 全局时钟同步(时钟线或时钟嵌入) 开销 每字符若干比特开销,较大 每帧若干字节开销,较小 适用场景 低速传输(如RS-232) 长距离高速传输 特点 简单、廉价,可能有采样误差 需时钟线或时钟提取,效率高
编码与调制技术
-
分类:**基带调制(编码)**不改变频带;**带通调制(调制)**将数字脉冲转为高频载波
-
基带调制:
编码方式 规则 特点 RZ 高电平=1,低电平=0 无自同步能力,连0/1问题,数据率2B NRZ 高电平=0,低电平=1 无自同步能力,连0/1问题,数据率2B NRZI 跳变=1,无跳变=0 差分编码,解决连1问题,仍有连0问题,数据率2B 曼彻斯特编码 位中心上跳=0/1,下跳=1/0 每比特必跳变,自同步,数据率B 差分曼彻斯特 位中心必跳变,位边界跳变=0 抗干扰强,自同步,数据率B 4B/5B编码 4比特映射为5比特 解决连0问题,用于100Mbps以太网 -
带宽效率:
- NRZ/NRZI:数据率 = 2B(奈奎斯特极限)
- 曼彻斯特/差分曼彻斯特:数据率 = B(牺牲带宽换同步)
-
带通调制:
调制方式 调制参数 特点 ASK 振幅A变化 抗干扰能力弱 FSK 频率f变化 抗干扰优于ASK,频带利用率不高 PSK 相位Φ变化 BPSK:0和π相位表示0和1 QPSK 4种相位(45°,135°,225°,315°) 每符号2比特 QAM 幅度+相位联合调制 QAM-16:4比特/符号,QAM-64:6比特/符号 -
星座图:将数字信号表示在复平面上,展示信号点间的距离关系
-
码元状态数越多,数据率越高,但接收端识别难度增大,误码率上升
信道复用技术
- 复用(Multiplexing):多路信号共享同一传输介质,提高利用率
- FDM(频分复用):
- 用户分配到不同频带,同时传输,频带互不重叠
- 保护间隔:由于滤波器非理想矩形,子信道间需设置保护带
- 应用:广播系统、电话系统、电视系统、ADSL使用的DMT技术
- TDM(时分复用):
- 按时间划分为等长TDM帧,每帧划分时隙,每位用户占用固定序号时隙,分时占用相同频带
- 同步要求:用户间需严格同步,时隙间设保护间隔
- 问题:计算机数据突发性强,固定时隙可能造成线路资源浪费
- STDM(统计时分复用):
- 按需为用户动态分配时隙,提高线路利用率
- 帧长不固定,需地址标识
- CDM/CDMA(码分复用):
- 各用户使用正交码片序列,同时同频传输
- 码片序列:将 m 位码片序列映射为 1 位数据比特;发送本身表示1,发送反码表示0
- 正交性:不同用户码片序列内积为0,自身规格化内积为1;通过点积自己的码片解码
- 扩频通信:码片速率 = m × 数据率,频谱展宽 m 倍
- 特点:抗干扰能力强,保密性好(类似白噪声频谱),需严格功率控制
- 应用:3G 移动通信系统
- WDM(波分复用):
- 本质:光的频分复用
- 单根光纤传输多个光载波信号
- EDFA:掺铒光纤放大器,同时放大多路光信号
- OFDM(正交频分复用):
- 子载波正交,无保护间隔,频谱效率最高
- 实现:IFFT/FFT,子载波数可变,调制方式可变(自适应)
- 应用:4G/5G、Wi-Fi
传输介质
-
有线传输介质对比:
介质 传输信号 中继间距 特点 双绞线 模拟信号(电话)、数字信号(以太网) 2 km 成本低,易安装,抗干扰一般 同轴电缆 模拟信号(电视)、数字信号(Cable Modem) 1-9 km 抗干扰好,50Ω(数字)/75Ω(模拟) 光纤 模拟信号(光强)、数字信号(光脉冲) 40 km 容量大,损耗小,抗电磁干扰 无线传输 模拟信号(调幅/调频广播)、数字信号(WiFi/4G) 因方式而异 直线/视距传播,易受环境影响 -
双绞线:可传输模拟和数字信号;STP(屏蔽)/UTP(无屏蔽),STP抗干扰更强;CAT 5 较常用
-
同轴电缆:50Ω常用于 LAN/数字信号;75Ω常用于有线电视/模拟信号;抗干扰能力较好
-
光纤:
- 利用全反射传输模拟信号(光波);常用 850nm、1300nm、1550nm 中心波段(带宽均为 25,000-30,000 GHz)
- 优点:通信容量极大、损耗小、中继距离长、抗电磁干扰、保密性好、体积小重量轻
- 多模光纤:多条不同角度入射光线同时传输,纤芯较粗(50μm),短距离,LED光源
- 单模光纤:直径=光波长,直线传播无反射,纤芯细(9μm),长距离,激光光源
-
无线传输介质:
- 无线电波通信:3kHz-1GHz,全向传播,绕射能力强,可穿透建筑物,易受干扰;应用:AM/FM广播、电视、业余电台、海事通信
- 微波通信:1GHz-40GHz,方向性强,直线视距传播,需中继,容量大;地面微波接力通信(站间距约50km,受地球曲率影响)
- 红外通信:300GHz-400THz,视距传播,不能穿透障碍物,带宽极大,方向性强;应用:红外遥控、短距无线数据传输
-
ISM 频段:无线电频谱使用需许可,但各国 ISM 标准中的频段可自由使用
通信系统实例
-
电话系统(PSTN):
- 结构:
[电话] <=(本地环路)=> [端局] <=(中继线)=> [交换局] <=(中继线)=> [端局] <=(本地环路)=> [电话] - 本地环路:模拟双绞线传输模拟信号,独占线路
- 中继线/干线:高容量高速光缆传输数字信号,共享线路
- 交换局:进行分组、交换、转接,有分层结构
- 中继线上要求采用 PCM 编码,编码后产生数字信号,再利用光电转换器转换为光脉冲
- 结构:
-
PCM 编码标准:
- T1 标准:帧频率 8 kHz,一帧 193b(第一位帧同步位,后面 192b 分 24 个信道,每信道 1 位信令+7 位语音数据),总速率: 每帧有效数据 168b
- E1 标准:帧频率 8 kHz,一帧 256b(分 32 个信道,30 个话路,2 个同步/信令),总速率: 每帧有效数据 240b
- 信号复接:4 T1/E1 → 1 T2/E2,7 T2/E2 → 1 T3/E3,6 T3/E3 → 1 T4/E4(比特交织时分复用)
-
SONET/SDH:
- SONET:OC-1/STS-1 帧频率 8 kHz,每帧 810 B,数据速率: OC-n/STS-n 为 n 个 OC-1 字节交织复接
- SDH:STM-1 相当于 OC-3/STS-3
-
宽带接入技术对比:
技术 传输介质 复用方式 调制技术 特点 ADSL 双绞线 FDM DMT(多子载波 QAM) 非对称,上行低下行高,距离取决于数据率和线径,自适应调制,DMT 需成对使用 HFC 光纤+同轴电缆 FDM Cable Modem(下行 QAM,上行 QPSK/QAM-16) 主干部分改用光纤,多用户共享电缆,非对称,广播为主,Cable Modem 用户端单独使用 FTTx 光纤 TDM(WDM) 光调制 FTTH/FTTB/FTTC,带宽大,未来趋势 -
ADSL vs HFC 对比:
特性 ADSL HFC 介质独占性 用户独占双绞线 多用户共享同轴电缆 数据率稳定性 仅与距离/线径有关 与用户数、线路质量有关 上行方式 专用时隙 竞争方式(S-ALOHA/CDMA) 对称性 非对称 非对称
数据链路层
概述与位置
- 核心地位:实现相邻结点通信;主机、路由器、交换机均须实现数据链路层。
- 基本术语:
- 结点(node):主机、路由器等网络设备
- 链路(link):连接相邻结点的信道
- 帧(frame):数据链路层传输基本单位
- 信道类型:
- 点对点信道:一对一,无需协调
- 广播信道:一对多,需共享信道协议协调
- 链路层功能:链路管理、成帧/解帧、流量控制、差错控制、透明传输、寻址
- 子层划分:
- LLC(逻辑链路控制):与传输媒体无关
- MAC(介质访问控制):与接入传输媒体有关
- 实现位置:网卡(NIC)
- 发送端:封装成帧、添加校验位和地址、流量控制
- 接收端:检错、地址检查、流量控制、提取数据交高层
成帧与透明传输
- 字节计数法:头部字段标识帧字节数;头部出错则失步
- 固定帧长度:如 RS232;实现简单但效率低
- 控制字符法(ASCII):使用
SOH/EOT定界- 透明传输:数据中出现
SOH/EOT前插入转义字符ESC(0x1B);出现ESC前再插入一个ESC - 接收端:删除插入的转义字符,连续两个只删一个
- 透明传输:数据中出现
- 控制字符法(二进制):使用标志
01111110定界- 零比特填充:发送端连续 5 个 1 后填 0;接收端连续 5 个 1 后删 0
差错控制
- 基本概念:
- 误码率 = 误码位数 / 发送总位数
- 无差错帧概率 ( 为帧长)
- 码距 :对应位置不同符号个数
- 最小码距 :编码中所有不同码字间的最小距离
- 检 个错
- 纠 个错
- 分组码: 分组码, 数据位 + 校验位 位码字,码率
- 方法汇总:
| 方法 | 类型 | 最小码距 | 能力 |
|---|---|---|---|
| 奇偶校验 | 检错码 | 2 | 检测单比特错 |
| 二维奇偶校验 | 纠错码 | 4 | 纠正单比特错 |
| 汉明码 | 纠错码 | 3 | 纠正单比特错,检测双比特错 |
| CRC | 检错码 | 检测 位错 | |
| 校验和 | 检错码 | — | IP/TCP/UDP使用 |
| 交织码 | — | — | 将突发错转为随机错 |
-
一维奇偶校验(偶校验):
- 校验位
- 接收端校验结果为 0:无奇数个错误;为 1:有奇数个错误
-
二维奇偶校验:
- 行校验位 、列校验位 、整体校验位
- 行错列错 数据位 错误(可定位纠错)
- 行错列对 行校验位本身错误;列错行对 列校验位本身错误
- 行错列错整体错 多处错误,无法纠正
-
汉明码:
- 校验位位置:(popcount=1)
- 数据位位置:
- 校验位
- 接收端计算 ; 无错,否则第 位出错
-
CRC 循环冗余校验:
- 生成多项式 为 次,常数项为 1
- 校验位
- 码字 ,满足
- 检错能力:
- 检测所有长度 的突发错误
- 若 含因子 ,检测所有奇数个比特错误
- 长度 的突发错误漏检概率
-
交织: 个码字排成 矩阵,按列发送;突发长度 时可纠正( 为原码纠错能力)
-
校验和:IP/TCP/UDP 使用;数据分组求和作为校验位
可靠传输与流量控制
- 帧异常:丢失、迟到、损坏、重复、失序
- ARQ 协议族:
| 协议 | 实现方式 | ||
|---|---|---|---|
| 停等 ARQ | 1 | 1 | 停等协议 |
| 连续 ARQ | 1 | Go-Back-N | |
| 选择重传 ARQ | Selective Repeat |
- 停等 ARQ:
- 发送方发一帧 接收方确认 发下一帧
- 超时重传:发送后启动定时器,超时未收到确认则重传
- 序号机制:1 比特序号(0/1 交替),区分新旧帧
- 重复帧处理:接收方丢弃重复帧,重传确认
- 信道利用率:
- 无差错:,其中
- 有差错:( 为帧差错率)
- 连续 ARQ(Go-Back-N):
- 发送方连续发送 个未确认帧,只为窗口下沿设置单一计时器
- 接收方按序接收,发送累积确认 (表示 及之前所有帧已正确接收)
- 超时重传从窗口下沿开始的整个窗口所有帧
- 信道利用率:
- :
- :
- 选择重传 ARQ:
- 发送方为每个未确认帧分别设置计时器
- 接收方对每个正确帧发送选择性确认(独立确认)
- 超时仅重传该单个帧;接收方缓存失序帧
- 有差错:
- :
- :
- 滑动窗口限制:( 为序号比特数)
- 若 ,存在新旧报文混淆反例
- 确认机制:
- 累计确认:一个 ACK 确认多个帧
- 捎带确认:确认信息附在数据帧中发送
点对点协议
PPP 协议:面向字节(异步传输),不可靠,仅支持点对点,支持全双工,能进行地址协商,支持多种上层协议
HDLC 协议:面向比特(同步传输),可靠,支持点对点和多点,支持全双工,不能进行地址协商,支持多种上层协议
PPP 协议
-
特点:简单、灵活、支持多种网络层协议;只提供成帧和检错,无纠错、流量控制、序号、多点、半双工/单工
-
三个组成部分:
- 封装方法(帧格式、透明传输)
- LCP(链路控制协议):建立、配置、测试链路
- NCP(网络控制协议):协商网络层参数(IP 地址、DNS)
-
帧格式:
┌─────┬─────┬─────┬────────┬──────────┬─────┬─────┐ │ F │ A │ C │protocol│ data │ FCS │ F │ │0x7E │0xFF │0x03 │ 2B │ ≤1500B │ 2B │0x7E │ └─────┴─────┴─────┴────────┴──────────┴─────┴─────┘协议字段:
0x0021IP 数据报、0xC021LCP、0x8021NCP、0xC023鉴别 -
透明传输:
- 异步传输(字符填充):Escape Set =
{0x7E, 0x7D} ∪ {0x00~0x1F};原字符前加0x7D并异或0x20 - 同步传输(零比特填充):连续 5 个 1 后填 0 / 删 0
- 异步传输(字符填充):Escape Set =
-
工作步骤:建立(LCP 协商) 鉴权 网络(NCP 协商 IP 等) 终止(NCP 释放 LCP 释放 物理释放)
HDLC 协议
-
特点:面向比特的同步通信;全双工;可靠性高;滑动窗口(发送窗口 7,接收窗口 1 或 7)
-
帧格式:
┌─────┬─────┬─────┬────────┬────────┬─────┐ │ F │ A │ C │ Info │ FCS │ F │ │0x7E │ 1B │ 1B │ ≤MTU │ 2B │0x7E │ └─────┴─────┴─────┴────────┴────────┴─────┘FCS 使用 CRC,生成多项式
-
帧类型:
- I 帧(信息帧):
0 N(S) P/F N(R),N(S) 发送序号,N(R) 接收序号(捎带确认),P/F 查询/终止位 - S 帧(监控帧):
1 0 type P/F N(R)
type 类型 缩写 含义 00接收准备好 RR 确认 N(R) 之前所有帧,准备接收 N(R) 01接收未准备好 RNR 确认 N(R) 之前所有帧,暂停接收(流量控制) 10拒绝 REJ Go-Back-N,要求重传 N(R) 及之后所有帧 11选择性拒绝 SREJ Selective-Repeat,要求重传 N(R) 这一帧 - U 帧(无编号帧):链路控制,如
SABM、DM、DISC、UA
- I 帧(信息帧):
-
配置方式:
- 非平衡配置:主站 + 一个或多个从站
- 平衡配置:两个复合站,同时具有主站和从站功能
介质访问控制
-
信道分配策略:
策略 代表技术 适用场景 静态划分 FDMA、TDMA、CDMA、WDMA 用户少且稳定 动态分配 ALOHA、CSMA、预约协议 用户多且突发 - 静态划分延迟问题: 个子信道时,总延迟增大 倍
-
动态协议对比:
协议类型 低负载延迟 高负载吞吐量 典型最大吞吐量 纯 ALOHA 低 极低 时隙 ALOHA 低 低 CSMA/CD 很低 中等 取决于传播时延 位图协议 高 高 接近 1 轮询/令牌 高 高 接近 1 有限竞争协议 低 高 接近 1(自适应时) -
纯 ALOHA:
- 想发就发,冲突后随机重发
- 吞吐量 ; bps
-
时隙 ALOHA:
- 时隙长度 = 帧发送时间,帧只能在时隙开始时发送
- 吞吐量 ; bps
-
CSMA:
协议 信道空闲 信道繁忙 非坚持 CSMA 立即发送 随机等待后再侦听 1-坚持 CSMA 立即发送 持续侦听,空闲立即发送 p-坚持 CSMA 以概率 发送, 延迟一个时间单元 持续侦听至空闲,然后以概率 发送 - p-坚持时间单元 = 信道最大传播时延
-
CSMA/CD:
- 碰撞检测时长(争用期/碰撞窗口/槽时间):( 为网络中任意两结点最大传播时延)
- 二进制指数退避:第 次碰撞后,从 中随机选 ,等待 个争用期;重传 16 次失败则丢弃
-
CSMA/CA:
- 无线局域网采用碰撞避免(不能边发边听),可以解决隐藏终端,但会引发暴露终端。
- 工作流程:
- 侦听信道(物理载波侦听 + 虚拟载波侦听 NAV)
- 若最近收到错误帧且非发给自己,等待 EIFS;否则等待 DIFS
- 信道持续空闲后,进入随机退避,从 选初始值()
- 信道空闲时每时隙计数器减 1,繁忙时冻结;收到有效帧时更新 NAV
- 计数器为 0 立即发送,数据帧头设 Duration 字段(SIFS + ACK 时间)
- 接收端正确收到后,等待 SIFS 回复 ACK
- 未收到 ACK 则碰撞,,重新退避;重传 16 次失败丢弃
- RTS/CTS 机制:发送端发 RTS 接收端回 CTS 周围节点更新 NAV,解决隐蔽节点
- 帧间隔:
帧间隔 全称 长度 用途 SIFS Short Inter-Frame Space 最短 ACK、CTS、数据分片 PIFS PCF Inter-Frame Space 次短 PCF 模式下 AP 获取信道 DIFS DCF Inter-Frame Space 较长 DCF 模式下普通站点竞争 EIFS Extended Inter-Frame Space 最长 帧接收错误后恢复等待 -
位图协议:
- 预约阶段: 个微时隙对应 个站点,有数据的站点在对应微时隙发 1 比特预约
- 数据传输阶段:按预约顺序依次发送
- 利用率:( 为有数据站点数)
-
轮询协议:
- 主节点依次发送轮询帧询问从节点
- 利用率:
-
令牌传递协议:
- 令牌在逻辑环内传递,持令牌才能发送
- 利用率:
-
有限竞争协议:
- 低负载:所有站点同组竞争,延迟小
- 高负载:分组竞争,降低碰撞概率
- 自适应:根据负载动态调整组大小
以太网
- 服务特点:
- 无连接:不建立逻辑连接,不维护状态(不编号、不发 ACK)
- 不可靠:差错丢弃,重传由高层负责
- 半双工:使用 CSMA/CD,双向交替通信
- 使用曼彻斯特编码
- LLC 服务类型:
| 类型 | 名称 | 连接 | 编号/确认 | 适用场景 |
|---|---|---|---|---|
| Type 1 | 无连接 | 无 | 不编号、不发 ACK | 以太网(绝大部分)、Wi-Fi |
| Type 2 | 面向连接 | 有 | 编号、发 ACK、窗口流控 | 令牌环 |
| Type 3 | 无连接带确认 | 无 | 不发 ACK(但可发带确认的帧) | 极少使用 |
- CSMA/CD 关键参数:
- 争用期:10 Mbps 以太网 ,相当于 64 字节
- 最短帧长:64 字节(确保碰撞时仍在发送)
- 帧间间隔:(96 bit),同一站点连续两帧最小间隔
- 信道利用率:
- 单结点无竞争:(,)
- 多结点饱和竞争:
- MAC 地址:
- 48 位(6 字节),EUI-48 格式,固化在网卡 ROM
- 前 24 位 OUI(厂商标识),后 24 位扩展标识符
- 第一字节最低位 I/G:0 单播,1 多播
- 第一字节次低位 U/L:0 全局唯一,1 本地管理
- 广播地址:
FF-FF-FF-FF-FF-FF
- Ethernet 帧格式:
┌───────────────┬───────────────┬───────────────┬───────────────────┬──────────────┐
│ Dest MAC (6B) │ Src MAC (6B) │ EtherType(2B) │ payload(46-1500B) │ FCS (4B) │
└───────────────┴───────────────┴───────────────┴───────────────────┴──────────────┘
- EtherType:
0x0800IPv4、0x0806ARP、0x86DDIPv6 - payload 最小 46B(不足补 padding),MTU = 1500B
- 前同步码 7B + 帧定界符 1B(硬件生成)
- 以太网演进:
| 标准 | 速率 | 拓扑 | 介质 | 槽时间 | 关键技术 |
|---|---|---|---|---|---|
| 传统以太网 | 10 Mbps | 总线型 | 同轴电缆 | CSMA/CD,共享介质 | |
| 10BASE-T | 10 Mbps | 星型 | 双绞线 | 集线器,逻辑总线 | |
| 100BASE-T | 100 Mbps | 星型 | 双绞线/光纤 | 帧格式不变,参数 不变 | |
| 1000BASE-T | 1000 Mbps | 星型 | 双绞线/光纤 | 载波延伸、帧突发、全双工 |
无线局域网
使用 CSMA/CA
- 特性:信号衰减、干扰、多径传播、隐蔽节点、暴露节点
- 网络设备与结构:
- AP(接入点):帧转换(802.11 802.3)、广播 BSSID(信标帧)、关联管理、桥接
- BSS:有 AP,连接有线网络
- Ad hoc:无 AP,节点自组织
- 通用帧结构(PSDU):
┌─────────┬──────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────┐
│ Frame │ Duration │Address 1│Address 2│Address 3│ Seq │Address 4│ Payload │ CRC │
│ Control │ │ (RA) │ (TA) │ (BSSID) │ Control │ │ │ │
│ 2B │ 2B │ 6B │ 6B │ 6B │ 2B │ 6B │ 0-2312B │ 4B │
└─────────┴──────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────┘
- Address 1 = RA(接收地址),Address 2 = TA(发送地址),Address 3 = BSSID,Address 4 = Ad hoc 可选
- 帧控制 Type:
0x0管理帧、0x1控制帧、0x2数据帧
局域网扩展与交换
- 网络互连设备对比:
| 特性 | 中继器 | 集线器 | 网桥 | 交换机 | 路由器 |
|---|---|---|---|---|---|
| 工作层次 | 物理层 | 物理层 | 数据链路层 | 数据链路层 | 网络层 |
| 转发方式 | 原样转发 | 广播到所有端口 | 选择性转发 | 选择性转发 | 路由转发 |
| 碰撞域隔离 | 否 | 否 | 是 | 是 | 是 |
| 广播域隔离 | 否 | 否 | 否 | 否 | 是 |
| 带宽模式 | 共享 | 共享 | 独立 | 独享(全双工) | 独立 |
| MAC 地址学习 | 无 | 无 | 有 | 有 | 不适用 |
| 工作模式 | 半双工 | 半双工 | 半双工/全双工 | 全双工 | 全双工 |
- 自学习转发:
- 交换表结构:(MAC 地址,接口,TTL)
- 收到帧后记录源 MAC 和输入接口
- 查目的 MAC:
- 找到且接口不同:转发到该接口
- 找到但接口相同:丢弃
- 未找到:泛洪(转发到除输入外所有接口)
- 生成树协议(STP):
- 环路问题:广播风暴、MAC 地址表震荡、帧重复接收
- 步骤:
- 选举根网桥:BID 最小者
- 计算最短距离:以根为源运行分布式 Dijkstra
- 选举根端口:非根交换机选到根路径开销最小的端口
- 选举指定端口:每条边上离根更近(或 BID 更小)的端口
- 阻塞端口:非根非指定的端口阻塞
- 确定最小生成树:转发边集
- VLAN(虚拟局域网):
- 作用:隔离广播域、安全隔离、灵活组网
- 实现方式:基于端口、基于 MAC 地址
- 端口类型:
- Access:连接终端,只属于一个 VLAN;发送时剥离标签,接收时打默认 VLAN 标签
- Trunk:连接交换机,承载多个 VLAN;发送时保留 802.1Q 标签,接收时按标签转发
- IEEE 802.1Q 帧格式:
IEEE 802.1Q
┌──────────┬──────────┬────────────┬───────────┬─────────┬──────┐
│ Dest MAC │ Src MAC │ 802.1Q Tag │ EtherType │ payload │ FCS │
│ 6B │ 6B │ 4B │ 2B │46-1500B │ 4B │
└──────────┴──────────┴────────────┴───────────┴─────────┴──────┘
802.1Q Tag (4B)
┌─────────────────┬───────────────────────────────┐
│ TPID │ TCI │
│ 2B │ 2B │
├─────────────────┼───────┬───┬───────────────────┤
│ 0x8100 │ Pri │CFI| VID │
│ 2B │ 3b │1b │ 12b |
└─────────────────┴───────┴───┴───────────────────┘
- TPID =
0x8100;Pri = 优先级 0-7;VID = VLAN ID 1-4094(0 和 4095 保留)
网络层
服务类型
| 对比维度 | 虚电路(VC) | 数据报(Datagram) |
|---|---|---|
| 连接方式 | 面向连接 | 无连接 |
| 地址标识 | 使用 VC 标识 | 每个分组含完整目的地址 |
| 路由方式 | 同一条 VC 的分组按同一路由转发 | 每个分组独立选择路由 |
| 可靠性 | 网络负责可靠交付 | 端系统(传输层)负责 |
| 故障影响 | 故障结点影响所有经过的 VC | 仅丢失分组,路由可动态调整 |
| 顺序保证 | 按发送顺序到达 | 可能失序 |
| 典型应用 | ATM、帧中继、X.25 | 互联网(IP) |
注:互联网采用数据报服务,将可靠交付交由端系统实现。
路由器核心功能
| 功能 | 定义 | 实现机制 |
|---|---|---|
| 转发(Forwarding) | 将分组从输入端口移送到适当输出端口 | 基于本地转发表 |
| 路由(Routing) | 决定分组从源主机到目的主机的路径 | 依赖于路由算法与协议 |
体系结构要点:
- 控制平面先计算路由表,数据平面再计算转发表
- 主机中也有路由表,用于决定数据包走哪个网卡、送到哪个网关
- 物理端口(链路层,对应网卡)与虚拟端口号(传输层,对应进程)需区分
- 输出端口队列满时,后续分组被丢弃
交换结构三种实现:
| 方式 | 原理 | 特点 |
|---|---|---|
| 经存储器交换 | 分组复制到系统内存,CPU 控制转发 | 受存储器带宽和总线带宽限制,吞吐量 = B/2 |
| 经总线交换 | 分组经共享总线从输入到输出 | 受总线带宽限制,一般达 1Gbps |
| 经互连网络交换 | 纵横开关结构,N 个输入 N 个输出 | 支持多线同时传输,速率更高 |
路由算法
协议分类:
| 分类维度 | 类型 | 特点 | 典型协议 |
|---|---|---|---|
| 信息交换方式 | 链路状态 (LS) | 洪泛拓扑信息,每个节点有完整拓扑 | OSPF、IS-IS(使用 Dijkstra) |
| 距离向量 (DV) | 仅与邻居交换距离估计 | RIP(使用 Bellman-Ford) | |
| 更新方式 | 静态路由 | 人工配置 | — |
| 动态路由 | 自动适应网络变化 | RIP、OSPF、BGP |
对比:
LS 算法:中心化,有震荡问题,时钟同步,可保证收敛
DV 算法:分布式,有无穷计数、问题,时钟异步,不可保证收敛
Dijkstra 算法(全局拓扑信息):
- 初始化:N’ = {u}, D(v) = c(u,v)(邻居代价)或 inf
- 循环:找到不在 N’ 中且 D(w) 最小的 w,加入 N’
- 更新:对所有 v,D(v) = min(D(v), D(w) + c(w,v))
- 重复直到所有节点在 N’ 中
- 收敛快 O(n^2),但需 flooding 传播链路状态信息,开销为 N×E 量级
Bellman-Ford 算法(分布式):
-
Bellman-Ford 方程:
-
迭代关系: 初始化:
-
至多需要 n - 1 轮迭代收敛
-
特点:仅与邻居交换信息;好消息传得快,坏消息传得慢(无穷计算问题);存在路由环路风险
互联网路由协议
内部网关协议(IGP):
| 协议 | 类型 | 核心算法 | 关键特性 | 封装方式 |
|---|---|---|---|---|
| RIP | 距离向量 | Bellman-Ford | 最大跳数为 15 跳;存在环路风险(无穷计数问题) | UDP,端口 520 |
| OSPF | 链路状态 | Dijkstra | 收敛快;支持分层设计;无环路风险 | 直接封装于 IP,协议号 89 |
RIP 更新:
- 相同下一跳,无条件更新
- 不同下一跳,保留更小代价的
- 之前不存在的,更新
外部网关协议(EGP):
| 协议 | 类型 | 核心机制 | 关键特性 | 封装方式 |
|---|---|---|---|---|
| BGP-4 | 路径向量 | 策略决策(非单纯最短路径) | 基于策略选路;防止路由环路(AS_PATH);支持 CIDR | TCP,端口 179 |
IPv4 编址
分类编址:
| 类别 | 前几位 | 网络号位数 | 主机号位数 | 地址范围 |
|---|---|---|---|---|
| A 类 | 0 | 8 位 | 24 位 | 0.0.0.0 - 127.255.255.255 |
| B 类 | 10 | 16 位 | 16 位 | 128.0.0.0 - 191.255.255.255 |
| C 类 | 110 | 24 位 | 8 位 | 192.0.0.0 - 223.255.255.255 |
| D 类 | 1110 | — | — | 224.0.0.0 - 239.255.255.255(组播) |
| E 类 | 1111 | — | — | 240.0.0.0 - 255.255.255.255(保留) |
特殊 IPv4 地址:
| 类型 | IP 示例 | 说明 |
|---|---|---|
| 网络地址 | 10.0.0.0、172.16.0.0、192.168.1.0 | 主机号全 0,代表整个网络。不能作为目的地址 |
| 定向广播地址 | 10.255.255.255、172.16.255.255、192.168.1.255 | 主机号全 1,向该网络所有主机广播。可以作为目的地址 |
| 有限广播地址 | 255.255.255.255 | 向本地网络所有主机广播,路由器不转发。不需要网络号 |
| 本机回环 | 127.0.0.0/8(常用 127.0.0.1) | 指向本机,数据包不离开设备 |
| 本网络 | 0.0.0.0/8(常用 0.0.0.0) | 表示本网络,用于默认路由或 DHCP 未获取 IP 时 |
| 组播地址 | 224.0.0.0/4 | D 类地址,用于一对多通信 |
| 保留地址 | 240.0.0.0/4 | E 类地址,除 255.255.255.255 外保留未用 |
子网划分(三级结构):
[Network ID][Subnet ID][Host ID]
- 引入子网掩码,掩码为 1 的部分为 [Network ID] [Subnet ID],为 0 的部分为 [Host ID]
私有地址(RFC 1918):
10.0.0.0/8172.16.0.0/12192.168.0.0/16
链路本地地址:169.254.0.0/16(DHCP 失败时自动分配)
CIDR(无类别域间路由):
- 格式:
IP address / prefix,前缀长度任意(0 - 32) - 例:
192.168.1.0/24(掩码255.255.255.0)、192.168.1.32/27(掩码255.255.255.224) - 特殊:
0.0.0.0/0为默认路由,匹配所有地址
三阶段横向对比:
| 对比维度 | 分类编址 | 子网划分 | CIDR |
|---|---|---|---|
| 编址结构 | Network ID + Host ID | Network ID + Subnet ID + Host ID | Prefix + Host ID |
| 地址类别 | A/B/C/D/E 五类 | 基于 A/B/C 类 | 无类别 |
| 掩码 | 默认掩码(8/16/24) | 可变长子网掩码 | 任意前缀长度 |
| 核心问题 | 地址浪费 | 路由表膨胀 | 解决前两者主要问题 |
IPv4 分组格式
0B 1B 2B 3B 4B
|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver | IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options (Optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
关键字段:
| 字段 | 位数 | 说明 |
|---|---|---|
| Ver | 4 | 版本号,IPv4 取值为 4 |
| IHL | 4 | 首部长度,以 32 位(4B)为单位。最小值 5(20B),最大值 15(60B) |
| Total Length | 16 | 整个 IP 包大小(首部 + 数据),最大 65535 字节 |
| Identification | 16 | 标识符,同一原始数据包的所有分片共享相同标识符 |
| Flags | 3 | 第 1 位:DF(禁止分片);第 2 位:MF(后面还有分片) |
| Fragment Offset | 13 | 片偏移,以 8 字节为单位 |
| TTL | 8 | 每经过一个路由器减 1,为 0 时丢弃 |
| Protocol | 8 | 6:TCP;17:UDP;1:ICMP |
| Header Checksum | 16 | 仅对首部进行错误检测,每经过一个路由器重新计算 |
| Options | 0-40B | 可选功能,如有选项需填充保证首部为 32 位整数倍 |
ARP(地址解析协议)
功能:实现 IP 地址 → MAC 地址 映射(同一局域网内)。
工作流程:
- 主机 A 广播 ARP 请求(目的 IP 已知,MAC 填 0)
- 目标主机 B 单播 ARP 响应,告知自身 MAC 地址
- 主机 A 缓存 IP-MAC 映射(ARP 高速缓存)
注:ARP 仅解决同一网络内的地址映射,跨网络通信需通过路由器转发。
AMQ(主动管理队列)
常见的比如 RED。
参数:Th_min、Th_max、p_max,权重系数 w_q(通常 0.001~0.002),维护平均队列长度 Lav。
每到达一个分组,Lav = (1 - w_q)·Lav + w_q·L,其中 L 为当前瞬时队列长度:
- 若 Lav < Th_min:p = 0(接受)
- 若 Lav > Th_max:p = 1(丢弃)
- 若 Th_min <= Lav <= Th_max:以概率 p(0 < p < p_max)随机丢弃入队分组,其中丢弃概率 p 通常从 0 线性增至 p_max。
DHCP(动态主机配置协议)
功能:自动分配 IP 地址及相关配置(子网掩码、默认网关、DNS 服务器)。
工作流程(UDP 端口:客户端 68,服务器 67):
客户端 ──DHCP DISCOVER(广播)──→ 服务器
客户端 ←──DHCP OFFER(广播)──── 服务器
客户端 ──DHCP REQUEST(广播)──→ 服务器
客户端 ←──DHCP ACK──────────── 服务器
NAT(网络地址转换)
功能:将专用地址转换为全球地址,实现内网主机访问外网。
实现机制:
- 使用端口号区分不同内网主机(NAPT/PAT)
- NAT 表记录:
(源IP, 源端口) ↔ (NAT IP, 新端口)
专用地址范围(RFC 1918):
10.0.0.0 - 10.255.255.255(/8)172.16.0.0 - 172.31.255.255(/12)192.168.0.0 - 192.168.255.255(/16)
ICMP(互联网控制报文协议)
功能:报告差错、测试连通性、状态查询。
| 类型值 | 代码 | 含义 |
|---|---|---|
| 0 | 0 | Echo Reply(Ping 应答) |
| 3 | 0-7 | 目的不可达(网络/主机/协议/端口等) |
| 8 | 0 | Echo Request(Ping 请求) |
| 11 | 0 | TTL 超时(Traceroute 利用) |
典型应用:
- Ping:测试主机可达性(Echo Request/Reply)
- Traceroute:利用 TTL 超时或端口不可达报文,追踪路由路径
IPv6
与 IPv4 对比:
| 特性 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32 位 | 128 位 |
| 首部长度 | 可变(20-60 字节) | 固定 40 字节(8 字节对齐) |
| 表示方法 | 点分十进制 | 冒号十六进制(可零压缩) |
| 配置方式 | DHCP/手动 | 自动配置(即插即用) |
| 安全性 | 可选(IPsec) | 内置支持 |
| 选项处理 | 首部选项 | 扩展首部(路由器不处理,除逐跳选项) |
基本首部格式:
┌─────────────────────────────────────────────────────────────┐
│ 版本(4) │ 通信量类(8) │ 流标号(20) │
├─────────────────────────────────────────────────────────────┤
│ 有效载荷长度(16) │ 下一首部(8) │ 跳数限制(8) │
├─────────────────────────────────────────────────────────────┤
│ 源地址(128位) │
├─────────────────────────────────────────────────────────────┤
│ 目的地址(128位) │
└─────────────────────────────────────────────────────────────┘
关键字段:
- 流标号(Flow Label):标识同一流的数据报,保证服务质量
- 下一首部:标识扩展首部类型或上层协议(类似 IPv4 协议字段)
- 跳数限制:替代 TTL,每路由器减 1,为 0 时丢弃
地址类型:
| 类型 | 二进制前缀 | 示例表示 |
|---|---|---|
| 未指明地址 | 全 0 | ::/128 |
| 环回地址 | 0…01 | ::1/128 |
| 多播地址 | 11111111 | FF00::/8 |
| 本地链路单播 | 1111111010 | FE80::/10 |
| 全球单播 | 其他 | 可聚合全球单播地址 |
IPv4 向 IPv6 过渡技术:
| 技术 | 原理 | 应用场景 |
|---|---|---|
| 双协议栈 | 主机/路由器同时运行 IPv4 和 IPv6 | 长期共存阶段 |
| 隧道技术 | IPv6 分组封装为 IPv4 数据报穿越 IPv4 网络 | IPv6 孤岛互联 |
核心对比总结
| 对比项 | 技术 A | 技术 B | 核心差异 |
|---|---|---|---|
| 服务模型 | 虚电路 | 数据报 | 连接状态 vs 无连接;网络可靠 vs 端系统可靠 |
| 路由算法 | 链路状态(LS) | 距离矢量(DV) | 全局信息/快速收敛 vs 分布式/可能存在环路 |
| 路由协议 | OSPF | RIP | LS 算法/无跳数限制 vs DV 算法/最大 15 跳 |
| 域间路由 | IGP(内部) | EGP/BGP(外部) | 策略控制 vs 性能优化 |
| IP 编址 | 分类编址 | CIDR | 固定类别 vs 灵活前缀/路由聚合 |
| 地址映射 | ARP | DNS | IP→MAC(链路层) vs 域名→IP(应用层) |
| 地址转换 | NAT | 直接路由 | 专用↔全球地址转换 vs 端到端透明 |
| IP 版本 | IPv4 | IPv6 | 32 位/可变首部 vs 128 位/固定首部+扩展首部 |
传输层
传输层概述与端口
- 提供端到端的逻辑通信,端点是主机内的进程。
- 套接字标识:
socket = (IP 地址 : 端口号)。 - 主要功能:复用与分用(基于端口)、可靠传输、流量控制、拥塞控制、连接管理。
- 两类协议:无连接/不可靠(UDP)与面向连接/可靠(TCP);面向报文(UDP)或面向字节流(TCP)。
- 端口分类:
- 熟知端口(Well-known):0 — 1023
- 登记端口(Registered):1024 — 49151
- 短暂/私有端口(Ephemeral):49152 — 65535
UDP
- 无连接、尽最大努力交付(不可靠)、面向报文(保留上层报文边界)。
- 首部固定 8 字节:
- 源端口(2B)、目的端口(2B)、UDP 长度(2B)、校验和(2B)
- 校验和计算:在报文前加 12 字节伪首部(源 IP、目的 IP、协议号、UDP 长度),采用 16-bit 逐字反码和,结果取反码作为检验和。
- 若校验和计算结果为 0,报文中存放 0 表示“无校验和”(IPv4 中可为 0;IPv6 强制校验和)。
- 适用场景:RTP、DNS、DHCP、SNMP、TFTP 等实时或短小突发流。
TCP 报文段首部
- 固定首部 20 字节,最大 60 字节(含选项)。
- 关键字段:
- Source Port / Destination Port:各 16 位
- Sequence Number(SEQ):32 位;SYN 包中表示初始序列号(ISN),数据包中表示本段数据第一个字节的序列号
- Acknowledgment Number(ACK):32 位;仅当 ACK 标志位为 1 时有效,表示期望收到的下一个字节的序列号
- Offset:4 位;首部长度,以 4B 为单位,最小值 5(20B),最大值 15(60B)
- Rsrvd:4 位保留位,必须为 0
- Flags:8 位标志位(CWR、ECE、URG、ACK、PSH、RST、SYN、FIN)
- Window Size:16 位,表示发送方愿意接收的字节数(从确认号开始)
- Checksum:16 位,覆盖首部 + 数据 + 伪首部
- Urgent Pointer:16 位,仅当 URG=1 时有效
- 伪首部(12 字节):Source IP Address、Destination IP Address、Padding Zero、Protocol、TCP Length;仅用于校验和计算,不传输。
- Socket API 简述:
socket()创建;服务器bind()/listen()/accept();客户端/服务器connect()/send()/recv();内核以 TCB 保存连接状态。
可靠传输原理(ARQ)
- 停等 ARQ:每次发送一个分组并等待确认;要点为编号、超时重传、保留已发送副本。
- 连续 ARQ / 滑动窗口:
- 发送方维护发送窗口(W_T),接收方维护接收窗口(W_R)。
- Go-Back-N:接收方只累积确认,发送方回退并重传自丢失分组之后的所有分组;通常 W_R = 1。
- 选择重传(Selective Repeat):接收方缓存乱序分组,发送方只重传缺失分组;需要 W_T > W_R > 1。
- 累积确认:确认按序到达的最后一个字节/分组,减少确认数量。
| 特性 | 停等 ARQ | 连续 ARQ |
|---|---|---|
| 一次发送分组数 | 1 | 多个 |
| 传输控制 | 停等 | 滑动窗口 |
| 确认方式 | 单独确认 | 单独或累积确认 |
| 超时计时器 | 每分组 | 每分组(或按实现) |
| 重传 | 一个分组 | 回退 N 或选择重传 |
TCP 可靠传输实现
- 基于字节序号;ACK 表示期望下一个字节序号;必须保留已发送但未确认的数据以便重传。
- 接收方缓存:按序到达未交给应用的数据 + 乱序到达的数据块。
- RTT 估计:
- 平滑 RTT:
RTTS_new = (1-α)·RTTS_old + α·RTT_sample,RFC 6298 推荐 α = 1/8 - Karn 算法:对发生重传的报文段不使用该样本更新 RTTS;每次重传使 RTO 增大(乘以 γ,典型 γ = 2):
RTO_new = γ · RTO_old
- 平滑 RTT:
- Nagle 算法(发送端):
- 发送第 1 个数据字节:应用层产生数据后,先立即发送首个字节,启动传输
- 等待确认:进入循环判断
- 收到 ACK:将发送缓存中所有累积数据一并发出,然后回到等待状态
- 未收到 ACK:检查缓存数据量
- 若已达到发送窗口一半或报文段最大长度(MSS):立即发送当前缓存数据
- 若未达到:继续缓冲,回到等待确认状态
- 糊涂窗口综合症:收发双方以极小碎片(例如 1 字节)交互,导致效率极低(1 字节数据占 41 字节 IP+TCP)。
- 接收方解决:等待直到接收缓存有足够空间容纳一个最大报文段或达到一半空闲空间,再发送窗口更新。
- 持续计时器:当对端通告
rwnd = 0时启动,到期发送 1 字节的零窗口探测以获知窗口更新,避免死锁。
TCP 流量控制
- 接收方通告 rwnd(接收窗口大小),表示可接收剩余字节数。
- 发送方实际可发送窗口:
| 流量控制 | 拥塞控制 | |
|---|---|---|
| 目标 | 防止发送方淹没接收方 | 防止发送方淹没网络 |
| 作用域 | 端到端(点对点) | 全局(整个网络路径) |
| 触发原因 | 接收方处理速度慢、缓存溢出 | 网络中间设备(路由器)队列溢出、丢包 |
| 核心变量 | 接收窗口 rwnd | 拥塞窗口 cwnd |
| 主要机制 | 滑动窗口、停等协议 | 慢开始、拥塞避免、快重传、快恢复 |
| 信息来源 | 接收方通过 ACK 反馈窗口大小 | 发送方通过丢包/延迟推断网络状况 |
TCP 拥塞控制(TCP Reno)
- 使用发送端维护的拥塞窗口 cwnd 反映网络可用容量,配合 rwnd 限制真实发送窗口。
- 拥塞事件判断:
- 重传定时器超时:严重拥塞
- 收到 3 个重复 ACK:轻度拥塞
- 慢开始:
- 初始
cwnd = 1(以报文段为单位)。 - 每收到一个对新报文段的确认,
cwnd加 1;每轮传输cwnd指数级增长。 - 设置慢开始门限
ssthresh,当cwnd >= ssthresh时转为拥塞避免。
- 初始
- 拥塞避免:
- 每经过一个 RTT 使
cwnd线性增加(如增加一个 MSS)。 - 一般近似实现为每收到一个轮次中的 ACK,
cwnd += 1/cwnd。
- 每经过一个 RTT 使
- 快重传:收到 3 个重复 ACK 立即重传怀疑丢失的分段,避免超时等待。
- 快恢复:
ssthresh = cwnd / 2cwnd = ssthresh(或cwnd = ssthresh + 3MSS,具体实现略有差异)- 进入拥塞避免而非慢开始。
- 超时处理:
ssthresh = cwnd / 2,cwnd = 1,进入慢开始。
AQM 与 RED
- Tail-drop:FIFO 队列,满则丢弃到达分组,可能导致全局同步(大量连接同时进入慢开始)。
- RED(Random Early Detection):
- 参数:
Th_min、Th_max、p_max、权重系数w_q(通常 0.001~0.002) - 维护平均队列长度
Lav: 其中L为当前瞬时队列长度。 - 若
Lav < Th_min:p = 0(接受) - 若
Lav > Th_max:p = 1(丢弃) - 若
Th_min <= Lav <= Th_max:以概率p(0 < p < p_max)随机丢弃入队分组 - 丢弃概率
p通常从 0 线性增至p_max。
- 参数:
TCP 连接管理
三次握手(建立连接):
- 客户端发送
SYN = 1, seq = x - 服务器应答
SYN = 1, ACK = 1, seq = y, ack = x + 1 - 客户端发送
ACK = 1, seq = x + 1, ack = y + 1
四次挥手(释放连接):
- 主动方发送
FIN = 1, ACK = 1, seq = u, ack = v - 被动方发送
ACK = 1, seq = v, ack = u + 1,进入 CLOSE_WAIT(半关闭状态,被动方可能继续发送数据,seq从v递增) - 被动方发送
FIN = 1, ACK = 1, seq = w, ack = u + 1 - 主动方发送
ACK = 1, seq = u + 1, ack = w + 1,进入 TIME_WAIT(通常为2 × MSL)
有限状态机:
- 典型状态:CLOSED, LISTEN, SYN_SENT, SYN_RCVD, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, CLOSING, TIME_WAIT, CLOSE_WAIT, LAST_ACK
- 状态转换由 SYN/ACK/FIN/RST/超时等触发
保活计时器:
- 用于检测长时间空闲连接是否仍然存活。
- 常见实现:2 小时静默后发探测(若连续若干次无应答则断开)。
UDP 与 TCP 对比
| 特性 | UDP | TCP |
|---|---|---|
| 连接类型 | 无连接,全双工 | 面向连接,全双工 |
| 连接方式 | 支持一对多 | 只能一对一 |
| 可靠性 | 不保证 | 提供可靠按序交付 |
| 流量控制 | 无 | 有(接收方窗口 rwnd) |
| 拥塞控制 | 无 | 有(cwnd、慢开始、快重传等) |
| 面向 | 报文(message) | 字节流(stream) |
| 首部开销 | 8 字节 | 最少 20 字节(可变) |
| 适用场景 | 实时、多播、简单查询(DNS、RTP) | 文件传输、HTTP、邮件等需要可靠传输的应用 |
应用层
网络应用体系结构
- C/S:通过服务器间接通信;服务器固定 IP、长期在线、数据中心集群;客户端动态 IP、断续在线、互不直接通信;典型:Web、Email
- P2P:主机直接通信;无固定服务器;对等方兼具客户与服务方,具有自扩展性(负载增加同时服务能力增加);典型:迅雷、BT
- 进程寻址:仅用 IP 无法区分同一主机多个进程,采用 IP 地址 + 端口号;HTTP server:
80;Mail server:25 - Socket:应用层与传输层之间的编程接口,操作系统提供,负责消息收发
- 应用层协议定义:消息类别(request/response)、语法(字段划分)、语义(字段含义)、时序规则(何时发送)
- 开放协议:RFC 定义,允许互操作(HTTP、SMTP);专用协议:私有,封闭(Skype)
传输服务需求与供给
- 需求维度:可靠性(文件/Web 需可靠,音频可容忍丢失)、实时性(网络电话)、吞吐量(多媒体带宽敏感)、安全性(金融交易)
- TCP 提供:可靠传输、流量控制、拥塞控制、面向连接;不提供:定时、最小数据率保证、安全性
- UDP 提供:不可靠数据传输;不提供:可靠性、流量控制、拥塞控制、定时、数据率保证、安全性、连接建立
- SSL/TLS:在应用层提供加密的 TCP 连接,保证数据完整性与端认证;应用层通过 SSL socket API 将明文交给 socket,经互联网加密传输
Socket 编程
TCP Socket 交互:
- 服务器:
socket()创建 →bind()绑定本地地址 →listen()设为被动等待请求 →accept()提取连接请求,返回新连接套接字 →send()/recv()传送 →close()释放 - 客户端:
socket()创建 →connect()发起连接建立请求 →send()/recv()传送 →close()释放 - 并发服务器:主进程
accept()后fork()从属进程处理连接,主进程继续监听
UDP Socket 交互:
- 服务器:
socket()→bind()→recvfrom()/sendto()→close() - 客户端:
socket()→sendto()/recvfrom()→close() - UDP 无连接,发送前不握手;发送方显式附加目标 IP 与端口,接收方提取发送方地址
DNS
-
域名空间:
- 树状层次:根
.→ TLD(.com/.cn)→ 二级域 → 子域。 - 委托管理:上级通过 NS 记录将子域授权给下级权威服务器。
- FQDN:全局唯一,逻辑上不区分大小写。
- 树状层次:根
-
四类域名服务器:
类型 核心职责 根 知道所有 TLD 地址;全球 13 个逻辑节点(任播扩展)。 TLD 管理对应顶级域,返回二级域的权威服务器地址。 权威 持有该域的原始资源记录(A/MX 等),给出权威答案。 本地/递归 代客户端完成全部查询并缓存;客户端唯一直接接触的服务器。 -
查询方式:
方式 特征 典型场景 递归 请求方要求一次性返回最终结果,由被请求方负责后续所有查询。 主机 → 本地 DNS 迭代 被请求方仅返回已知最佳下一跳,由请求方继续查。 本地 DNS → 根/TLD/权威 -
根服务器只接受迭代查询,防止过载。
-
核心资源记录:
类型 用途 A 主机名 → IPv4 AAAA 主机名 → IPv6 CNAME 别名 → 规范主机名 NS 域 → 其权威服务器 MX 域 → 邮件服务器(含优先级) PTR IP → 主机名(反向解析) -
DNS 隐私:
协议 机制 端口 特点 DoT DNS over TLS TCP/853 直接加密,端口特征明显 DoH DNS over HTTPS TCP/443 流量与正常 HTTPS 无差别,隐蔽性强 -
DNS 安全:
威胁 原理 防护 缓存投毒 伪造响应抢在权威答案前注入虚假记录 源端口随机化、DNSSEC 数字签名 重定向 篡改 hosts/路由器/ISP 劫持 DNS 服务器地址 可信解析器 + DoH/DoT + DNSSEC
FTP 与文件传输
- FTP:基于 TCP,C/S 方式;主进程打开熟知端口
21等待请求,接收后启动从属进程处理单个请求,处理完毕终止 - 控制连接:端口
21,传送命令与响应,整个会话期间保持 - 数据连接:端口
20,实际传输文件,每次传输时建立,完毕后释放 - TFTP:基于 UDP,熟知端口
69,需自身实现差错改正;数据 PDU 固定 512 字节(最后一块可不足),块编号从 1 开始,支持 ASCII/二进制 - TFTP 机制:类似停等协议,发完一块等待确认,超时重发;若文件长度恰为 512 字节整数倍,最后发送仅含首部的空数据 PDU 作为结束标志
- NFS:允许远程打开文件并在特定位置读写,仅传输少量修改数据,而非整个文件
TELNET
- 基于 TCP,实现本地终端到远地主机的透明登录
- NVT(网络虚拟终端):客户将本地击键转换为 NVT 格式 送交服务器,服务器将 NVT 格式转换为远地系统格式,返回数据时反向转换;作为统一中间格式屏蔽异构系统差异
HTTP 与万维网
- URL 格式:
协议://主机:端口/路径;HTTP URL:http://主机:端口/路径 - HTTP 工作过程:
- 服务器进程持续监听 TCP 端口
80 - 浏览器建立 TCP 连接后发送请求
- 服务器返回响应页面
- 释放 TCP 连接
- 服务器进程持续监听 TCP 端口
- 特点:基于 TCP,本身无连接(交换完报文即释放);HTTP 1.0 无状态;HTTP 1.1 使用持续连接
- 请求一个文档时间:(一个 RTT 建立 TCP,一个 RTT 请求与响应, 为传输文档时间)
- 持续连接非流水线:收到前一个响应后才能发下一个请求;省去一个 RTT,但服务器空闲、资源浪费
- 持续连接流水线:未收到响应即可连续发送请求;所有对象仅需约一个 RTT,效率高;需服务器支持连续响应
- 代理服务器(Web Cache):代表浏览器发出 HTTP 请求;缓存近期请求与响应;命中时直接返回本地缓存,减少访问互联网时延
- 请求报文结构:请求行(方法 + URL + 版本) + 首部行(首部字段名 : 值) + [实体主体]
- 响应报文结构:状态行(版本 + 状态码 + 短语) + 首部行 + [实体主体]
- 状态码分类:
- 1xx:通知信息(请求收到,正在处理)
- 2xx:成功(接受、知道)
- 3xx:重定向(需进一步行动)
- 4xx:客户差错(语法错误、无法完成)
- 5xx:服务器差错(服务器失效)
- Cookie:服务器为用户生成唯一识别码;在 HTTP 服务器与客户之间传递状态信息;用于跟踪用户在该网站的活动
- 万维网文档技术:
- HTML:超文本标记语言,定义页面结构与超链,浏览器解释标签并排版
- XML:可扩展标记语言,传输数据而非显示数据
- XHTML:更严格的 HTML,作为 XML 应用
- CSS:层叠样式表,定义 HTML 文档布局与格式
- 文档类型对比:
- 静态文档:服务器预先存放,内容不变
- 动态文档:服务器端运行时由 CGI 程序根据请求生成
- 活动文档:服务器返回程序副本,由浏览器中的 JVM 执行(Java 源程序编译为与机器无关的字节码)
- CGI(通用网关接口):定义动态文档创建、输入数据提供、输出结果使用的标准;CGI 程序由解释程序执行,非直接编译运行
- 信息检索类型:全文检索(爬虫+索引)、分类目录(人工审核)、垂直搜索(特定领域)
电子邮件
- 三大构件:
- 用户代理 UA:撰写、显示、处理、通信(客户端软件)
- 邮件服务器:发送/接收邮件,报告传送状态
- 协议:SMTP(推)、POP3/IMAP(拉)
- 特征:邮件不会在互联网中的某个中间邮件服务器落地;地址格式:
收件人邮箱名@邮箱所在主机的域名 - SMTP:基于 TCP,熟知端口
25;客户-服务器方式,命令-响应交互;文本协议(ASCII 码) - SMTP 通信三阶段:
- 连接建立:发送方 SMTP 客户与接收方 SMTP 服务器建立 TCP 连接,不使用中间服务器
- 邮件传送:信封 + 首部 + 主体
- 连接释放:邮件发送完毕后释放 TCP 连接
- 邮件内容首部字段:
To:(收件人)、Subject:(主题)、Cc:(抄送)、From/Date(发信人与日期)、Reply-To(回信地址) - POP3 vs IMAP:
| 特性 | POP3 | IMAP |
|---|---|---|
| 连接方式 | 基于 TCP | 基于 TCP |
| 操作模式 | 离线 | 联机 |
| 下载策略 | 下载全部邮件 | 先下载首部,支持部分读取 |
| 文件夹管理 | 仅在客户端 | 客户端与服务器同步 |
| 邮件搜索 | 不支持 | 支持 |
| 联网需求 | 读取后可离线 | 查阅邮件必须联网 |
- MIME:不取代 SMTP,扩展邮件主体结构,定义非 ASCII 码传送编码规则
- MIME 新增 5 个首部字段:
MIME-Version、Content-Description、Content-Id、Content-Transfer-Encoding、Content-Type - MIME 内容传送编码:
| 编码 | 说明 | 适用场景 |
|---|---|---|
7bit | 7 位 ASCII,每行 ≤1000 字符 | 缺省 |
8bit | 8 位非 ASCII,每行 ≤1000 字节 | 短非 ASCII 文本 |
Binary | 任意长度字节串 | 原始二进制 |
Base64 | 3 字节 → 4 字节 ASCII,开销 25% | 任意二进制/非文本 |
Quoted-printable | 非 ASCII 字节转为 =XX 形式,开销 200% | 少量非 ASCII 数据 |
- MIME Content-Type 主要类型:
text(plain/html/xml)、image(gif/jpeg)、audio、video、application(octet-stream/pdf/zip)、message、multipart - 基于万维网的电子邮件:用户代理通过 HTTP 与邮件服务器交互;邮件服务器之间仍使用 SMTP;无需本地安装专用邮件客户端
P2P 应用
- 目录服务演进:
- 第一代 Napster:集中式目录服务器,文件传输分散;可靠性差、性能瓶颈
- 第二代 Gnutella:全分布式,洪泛法查询;查询流量大、定位准确性受限
- 第三代 BitTorrent/DHT:分布式散列表,结构化覆盖网络
- BitTorrent:所有对等方集合称为洪流(torrent);数据单元为固定长度的文件块(chunk);追踪器(tracker)提供对等方列表
- 数据策略:
- 最稀有优先(rarest first):优先请求在相邻对等方中副本最少的文件块
- 一报还一报(tit-for-tat):优先向当前以最高数据率向自己传送文件块的相邻对等方发送数据
- P2P 文件分发时间下界(设文件长度 bit,主机数 ,服务器上传速率 ,各主机上传/下载速率 / ,,):
- C/S 方式:
- P2P 方式:
- 当 很大时,P2P 上限趋于 或 ,C/S 随 线性增长
- DHT:利用散列函数将资源名 映射为 资源名标识符 KID,结点 IP 地址 映射为 结点标识符 NID;每个结点仅维护部分目录,任何结点可发起查询
- Chord 环:结点按标识符数值从小到大沿顺时针排列成环形覆盖网络;每个资源由 Chord 环上与其标识符值最接近的下一个结点提供服务
- 指针表(finger table)加速: 对于结点 ,第 行计算 ;查询时选择位于目标范围内的最大后继结点转发,将 的线性查找降为
网络安全
安全威胁与目标
攻击分类
- 被动攻击:截获、流量分析。仅观察分析 PDU,不干扰信息流,难以检测。防御手段:数据加密。
- 主动攻击:篡改、恶意程序、DoS/DDoS。干扰、破坏或伪造通信,可检测。防御手段:加密 + 鉴别。
- DDoS:成百上千站点集中攻击单一目标,又称网络带宽攻击或连通性攻击。
安全目标
| 目标 | 含义 | 应对攻击 |
|---|---|---|
| 保密性 | 仅收发双方理解信息内容 | 被动攻击 |
| 端点鉴别 | 验证通信双方真实身份 | 主动攻击 |
| 信息完整性 | 内容未被篡改 | 主动攻击 |
| 运行安全性 | 系统正常运行,访问控制 | 主动攻击 |
数据加密模型
- 加密:
- 解密:
- 无条件安全:无论截获多少密文,信息不足以唯一确定明文
- 计算安全:现有计算资源无法在合理时间内破译
两类密码体制
对称密钥密码体制
- 核心思想:,通信双方通过安全信道预先共享同一密钥。
- DES:
- 分组长度 64 bit,密钥 64 bit(实际有效 56 bit,8 bit 用于奇偶校验)
- 算法公开,保密性仅取决于密钥的保密
- 56 位 DES 已被专用芯片搜索攻击,不再安全
- 三重 DES:
- 当 时退化为单 DES
公钥密码体制
- 核心思想:,由已知加密密钥推导出解密密钥在计算上不可行。
- 产生原因:对称密钥的密钥分配问题;对数字签名的需求。
- RSA 算法:
-
安全性基础:大整数素因子分解的困难性
-
密钥生成:
- 随机选取两个大素数 和 ,计算
- 计算欧拉函数
- 选取整数 满足 且
- 计算
-
密钥对:公钥 ,私钥
-
运算:
操作 公式 使用密钥 加密 接收方公钥 解密 接收方私钥 -
互逆性:
-
两种用法:
用法 操作 目的 保密通信 加密 → 解密 仅持有 的接收方可读取 数字签名 加密 → 解密 仅持有 的发送方可生成,任何人可验证
-
对称密钥 vs 公钥密码体制
| 特性 | 对称密钥 | 公钥密码 |
|---|---|---|
| 密钥关系 | ||
| 密钥公开性 | 双方共享秘密 | 公开, 保密 |
| 通信模式 | 一对一双向 | 多对一单向 |
| 主要瓶颈 | 密钥分配困难 | 计算开销大,仍需密钥分配协议 |
| 代表算法 | DES、3DES | RSA |
| 典型应用 | 大量数据加密 | 数字签名、密钥交换 |
数字签名
三要素
- 报文鉴别:接收者核实发送者身份(来源认证)
- 完整性:发送者事后不能抵赖(防否认)
- 不可否认:接收者不能伪造签名(防伪造)
基于公钥的实现
- 发送方 A 用 对明文 签名,经互联网传输,接收方 B 用 核实
- 除 A 外无人拥有 ,故只有 A 能产生该密文;B 用 核实即可确认来源
具有保密性的数字签名
- 发送方:
- 接收方:
鉴别
密码散列函数
- 输入任意长,输出固定短长度
- 多对一映射:不同输入可能产生相同输出
- 单向性:找到两个不同报文具有相同散列输出,在计算上不可行
MD5 与 SHA-1
| 算法 | 输出长度 | 分组长度 | 扫描轮数 | 安全性 | 速度 |
|---|---|---|---|---|---|
| MD5 | 128 bit | 512 bit | 4 轮 | 较低 | 快 |
| SHA-1 | 160 bit | 512 bit | 5 轮 | 较高 | 较慢 |
MD5 计算步骤:
- 附加:报文长度(64 bit)追加至末尾
- 填充:填充 bit,使总长度 ,首位为 1,其余为 0
- 分组:分割为 512 bit 数据块,每块再分 4 个 128 bit 块
- 计算:4 轮复杂运算,生成 128 bit 报文摘要
报文鉴别码 MAC
- 问题:单纯散列 无法防伪造(入侵者可构造 冒充 A)
- 解决:散列值用密钥 加密,得到 MAC
- 入侵者无密钥 ,无法伪造 MAC,实现报文鉴别与完整性保护
实体鉴别
| 鉴别类型 | 对象 | 频率 |
|---|---|---|
| 报文鉴别 | 每一个收到的报文 | 每报文一次 |
| 实体鉴别 | 通信对方实体 | 会话期间一次 |
- 重放攻击:截获加密报文直接转发,冒充身份
- 防御——不重数(Nonce):一次性大随机数,“一次一数”;通信双方交换不重数并签名验证,截获者无法重复使用
- 中间人攻击:C 截获 A 的公钥 ,冒充 A 向 B 发送自己的 ;B 用 加密发送给 A,C 截获后用 解密,再用 加密转发给 A;A、B 均无法察觉通信被窃听
密钥分配
对称密钥分配——KDC
- KDC(Key Distribution Center):可信第三方,为通信用户临时分配会话密钥(一次一密)
- 用户预先注册主密钥 、(长期密钥,与 KDC 共享)
Kerberos V5
组件:
- AS(Authentication Server):鉴别服务器,验证用户身份
- TGS(Ticket Granting Server):票据授予服务器,发放服务票据
- 票据(Ticket):用目标服务器密钥加密的报文,包含会话密钥,可转发但不可伪造
流程:
- A 向 AS 发送明文身份
- AS 返回用 加密的报文
- A 向 TGS 发送
- TGS 返回两个票据
- A 向 B 转发票据
- B 加密发回下一时间戳,确认收到
密钥说明:
| 密钥 | 持有者 | 作用 |
|---|---|---|
| Alice + AS | Alice 的密码派生密钥,AS 用它加密首次响应,只有 Alice 能解密 | |
| TGS | TGS 的服务密钥,加密 TGT,客户端无法篡改 | |
| Alice + TGS | AS 随机生成的临时密钥,Alice 用它向 TGS 证明身份 | |
| Bob + TGS | Bob 的服务密钥,加密 ST,客户端无法篡改 | |
| Alice + Bob | TGS 随机生成的最终会话密钥,供 Alice 和 Bob 安全通信 |
- 要求:所有主机时钟”松散同步”(误差不超过约 5 分钟),防止重放攻击
公钥分配——CA 与 PKI
-
CA(Certification Authority):将公钥与实体身份绑定;颁发证书,经 CA 私钥数字签名,不可伪造
-
X.509 证书结构:
字段 说明 版本号 区分 X.509 版本 序列号 CA 发放,唯一 签名算法 签署算法及参数 发行者 CA 的 X.509 名称 有效期 起始/终止时间 主体名 证书持有者名称 公钥 有效公钥及使用方法 发行者 ID 唯一标识发行者(可选) 主体 ID 唯一标识持有者(可选) 扩展域 扩充信息 CA 签名 CA 私钥对证书签名 -
证书吊销:私钥泄漏、用户不再被认证、CA 私钥泄漏等,维护证书吊销列表(CRL)
-
验证方式:
- 验 Cert 1:从 Cert 2 取中间 CA 公钥
- 验 Cert 2:从本地 Cert 3 取根 CA 公钥
- 根证书(Cert 3):本地白名单直接信任,不验签
- 验完后,浏览器从 Cert 1 提取 GitHub 的公钥,开始加密通信
安全协议
网络层安全——IPsec
-
组成:
- AH(Authentication Header):源点鉴别 + 数据完整性,不保密
- ESP(Encapsulation Security Payload):源点鉴别 + 完整性 + 保密
- IKE(Internet Key Exchange):创建安全关联 SA
-
工作方式:
方式 封装方式 应用场景 运行位置 传输模式 在传输层报文前后加控制信息 + IP 首部 主机到主机 端系统 隧道模式 在原始 IP 数据报前后加控制信息 + 新 IP 首部 VPN 全程路由器 -
SA(Security Association):
- 源到终点的单向逻辑连接,双向通信需建立两个 SA
- 标识:SPI(Security Parameter Index),32 bit 连接标识符
- 状态信息:源/终点 IP、加密类型、密钥、完整性检查类型、鉴别密钥
-
隧道方式 ESP 数据报格式:
新 IP 首部(未加密) → ESP 首部(SPI+序号) → 原始 IP 首部(加密) → 原始有效载荷(加密) → ESP MAC(鉴别) -
IKE 基础协议:
- Oakley:密钥生成
- SKEME:密钥交换(基于公钥加密的实体鉴别)
- ISAKMP:标准化创建 SA 的报文格式
传输层安全——SSL / TLS
-
位置:应用层与传输层之间,基于 TCP,与应用协议独立
-
SSL 安全会话建立过程:
步骤 操作 目的 1 A 发送 SSL 版本号及可选加密算法 协商算法 2 B 选定算法并告知 A 协商算法 3 B 发送含 RSA 公钥的数字证书 服务器鉴别 4 A 用 CA 公钥验证证书 服务器鉴别 5 A 随机产生秘密数,用 B 公钥加密发送 密钥交换 6 双方用协商算法产生共享对称会话密钥 会话密钥计算 7 双方用会话密钥加密传输并验证完整性 安全数据传输 -
HTTPS:HTTP over SSL/TLS,端口 443
应用层安全——PGP
- 功能:加密、鉴别、电子签名、压缩
- 发送方处理:
- 对明文 计算 MD5 摘要
- 用 加密摘要得 MAC,拼接为
- 生成一次性密钥,加密
- 用 加密一次性密钥
- 发送:加密的一次性密钥 + 加密的扩展邮件
- 接收方处理:
- 用 解密获得一次性密钥
- 用一次性密钥解密获得
- 用 解密 MAC 得
- 对 计算 MD5 得 ,比较
系统安全
防火墙
-
功能:阻止(过滤可疑通信)+ 允许
-
技术分类:
类型 工作层次 过滤依据 状态 特点 分组过滤路由器 网络/传输层 IP 地址、端口、协议类型 无状态/有状态 简单高效、透明,无法过滤高层数据 应用网关(代理服务器) 应用层 应用层数据内容 有状态 高层过滤、用户鉴别,开销大,需客户端配置
入侵检测系统 IDS
-
功能:在入侵造成危害前及时检测并告警/阻断
-
检测方法:
方法 原理 优点 缺点 基于特征 维护已知攻击特征数据库 检测已知攻击准确 无法检测未知攻击 基于异常 学习正常流量统计规律,检测偏离 可检测未知攻击 误报率高
密码学原语与安全体系总结
| 原语 | 实现 | 功能 |
|---|---|---|
| 对称密码(Cipher) | DES、3DES | 加密传输;消息鉴别码 MAC |
| 公钥密码(PKE) | RSA | 加密传输;数字签名 |
| 哈希函数(Hash) | MD5、SHA-1 | 身份鉴别;辅助消息鉴别和数字签名 |
安全体系层次:
- 机密性/完整性:对称/公钥加密 + 哈希函数
- 可用性:防火墙访问控制、入侵检测防御
- 安全协议:PKI(公钥基础设施)、对称密钥分发(KDC/Kerberos)+ 网络层/传输层/应用层安全协议
多媒体与服务质量(QoS)
多媒体信息特征
| 特征 | 说明 |
|---|---|
| 信息量大 | 标准语音 64 kbit/s;高质量立体声 1.4 Mbit/s;彩色电视 250 Mbit/s |
| 时延敏感 | 对传输时延与时延抖动均有严格要求 |
| 丢失容忍 | 少量分组丢失对播放效果影响有限,可被人耳/人眼容忍 |
互联网非等时性与播放缓存
- 模拟多媒体信号经采样与模数转换后,组装成分组并以恒定速率发送;经过互联网后变为非恒定速率到达。
- 接收端设置播放缓存(FIFO 队列),分组到达后暂存,待数量达到阈值后以恒定速率读出播放。
- 引入播放时延 ,消除时延抖动;代价是所有分组均经受额外迟延,早到达分组停留时间更长。
实时数据传输需求
| 需求 | 说明 |
|---|---|
| 序号 | 分组可能乱序到达,需编号以保证按序还原播放 |
| 时间戳 | 标识分组应在何时播放,区分正常停顿与迟延停顿 |
流式存储音频/视频
服务类型:
| 类型 | 特征 |
|---|---|
| 流式存储 | 边下载边播放,不保留文件(如 YouTube、Netflix) |
| 流式实况 | 边录制边发送 |
| 交互式 | 实时双向通信(如 IP 电话) |
传统下载 vs 流式播放:
- 传统下载:浏览器通过 HTTP 请求完整文件,下载完成后传送给媒体播放器解压缩播放。
- 流式播放:采用双服务器架构(万维网服务器 + 媒体服务器),通过元文件获取实际音频/视频 URL。
- 媒体服务器专门支持流式音频/视频传送,与媒体播放器通过专用协议(如 RTP)交互。
TCP vs UDP 选择:
| 协议 | 适用场景 | 特点 |
|---|---|---|
| TCP | 流式存储(YouTube、Netflix) | 可靠传输,通过应用层缓存平滑抖动;防火墙友好 |
| UDP | 实况转播 | 低时延,少量丢包优于卡顿暂停;需配合 RTP/RTSP |
TCP 流式播放步骤:
- HTTP 获取视频文件,送入 TCP 发送缓存。
- 通过互联网传输至 TCP 接收缓存。
- 再送入应用程序缓存(播放器缓存),达到阈值后开始播放(通常 min)。
- 播放时等时地按帧读出、解压缩、显示。
RTSP / RTP / RTCP
| 维度 | RTP | RTCP | RTSP |
|---|---|---|---|
| 协议层次 | 传输层(基于 UDP) | 传输层(基于 UDP) | 应用层(类似 HTTP) |
| 核心功能 | 传输实时音视频数据 | 传输控制与统计信息 | 控制媒体流的播放行为 |
| 传输内容 | 音视频负载(Payload)、序列号、时间戳、负载类型 | 丢包率、抖动、延迟、发送/接收报告、会话规模控制 | 播放控制命令:PLAY、PAUSE、TEARDOWN、SETUP、DESCRIBE |
| 是否传输媒体 | 是 | 否 | 否(只建立/控制 RTP 会话) |
| 端口规则 | 使用偶数 UDP 端口 | 使用 RTP 端口 + 1(奇数) | 默认 554(TCP/UDP 均可,通常 TCP) |
| 与 QoS 关系 | 提供时序信息,但不保证 QoS | 为 QoS 提供反馈和监控 | 与 QoS 无直接关系 |
| 典型搭配 | 必须与 RTCP 成对使用 | 必须与 RTP 成对使用 | 底层通常依赖 RTP/RTCP 传输实际数据 |
RTSP:
- 实时流式协议,多媒体播放控制协议,本身不传送数据,工作在客户-服务器模式。
- 功能:暂停/继续、后退、前进等控制操作,又称”互联网录像机遥控协议”。
- 特点:有状态协议(记录客户机状态:初始化/播放/暂停);控制分组可在 TCP 或 UDP 上传送;不定义压缩方案、封装方式或缓存策略。
- 工作过程:
- 浏览器请求音频/视频文件。
- 万维网服务器返回元文件。
- 浏览器将元文件传送给媒体播放器。
- RTSP 客户与媒体服务器建立连接。
- 发送
PLAY报文开始下载。 - 发送
TEARDOWN报文断开连接。
RTP:
-
实时运输协议,为实时应用提供端到端运输,但不提供服务质量保证;属于应用层,或视为 UDP 之上的运输层子层,提供时间戳与序号服务。
-
固定首部 12 字节:
┌─────┬─────┬─────┬─────┬─────┬─────┬────────┬────────┐ │ V │ P │ X │ CC │ M │ PT │ 序号 │ 时间戳 │ │ 2b │ 1b │ 1b │ 4b │ 1b │ 7b │ 16b │ 32b │ ├─────┴─────┴─────┴─────┴─────┴─────┴────────┴────────┤ │ 同步源标识符 SSRC (32b) │ └──────────────────────────────────────────────────────┘- 参与源标识符 CSRC [0..15] × 32b(可选扩展)
-
封装层次:IP 首部 → UDP 首部(8B) → RTP 首部(12B) → RTP 数据。
RTCP:
-
实时运输控制协议,与 RTP 配合使用。
-
主要功能:服务质量监视与反馈、媒体间同步、多播组成员标识。
-
特点:不封装声音/视像分组;多个 RTCP 分组可封装在一个 UDP 数据报中;周期性传送统计信息报告。
-
五种分组类型:
类型值 缩写 意义 200 SR 发送端报告 201 RR 接收端报告 202 SDES 源点描述 203 BYE 结束 204 APP 特定应用
QoS 基本机制
| 机制 | 功能 | 示例 |
|---|---|---|
| 分类 | 根据准则对输入分组分类,给予不同优先级 | 实时数据高优先级,FTP 低优先级 |
| 管制 | 限制数据流速率,防止影响其他流 | 将某流数据率限定为 1 Mbit/s,超限时丢弃 |
| 调度 | 为不同应用分配带宽,保证服务质量 | 音频分配 1.0 Mbit/s,文件传送 0.5 Mbit/s |
| 呼叫接纳 | 数据流预先声明 QoS 需求,获准或拒绝进入 | 总数据率超链路带宽时,阻止另一数据流 |
调度机制
- FIFO:默认规则;不能区分时间敏感分组与一般数据,不公平。
- 优先级排队:高优先级分组优先服务;高优先级队列始终有分组时,低优先级长期得不到服务。
- FQ (Fair Queuing):长分组服务时间长,短分组吃亏;未区分优先级。
- WFQ (Weighted Fair Queuing):
- 给队列(流) 指派权重 。设 为时刻 有积压的队列集合,则队列 获得的链路带宽份额为:
- 算法(设队列 的第 个分组 的到达时刻为 ,长度为 ):
- 系统虚拟时间 的演进速率:
- 虚拟开始时间: 其中 。
- 虚拟完成时间:
- 调度器选择所有积压队列中 最小的分组发送。
管制机制
- 三个核心指标:
- 平均速率:一定时间间隔内通过的分组数。
- 峰值速率:极短时间间隔内的流量上限。
- 突发长度:极短时间间隔内连续注入的分组数。
- 令牌桶:参数为桶容量 (令牌数)和产生速率 ;若 ,即为漏桶 (leaky bucket)。
- 与 WFQ 结合控制最大时延:设 个分组流输入路由器,各流令牌桶参数为 ,队列 带宽由 WFQ 公式给出,则最大时延为传输 个分组所需时间:
区分服务 DiffServ
-
DS 字段:IPv4 服务类型字段 / IPv6 通信量类字段,前 6 bit 作为 DSCP (Differentiated Services CodePoint)。
-
DS 域:网络划分为多个 DS 域,复杂性放在边界结点,内部路由器尽量简单。
-
边界路由器功能:分类器 + 通信量调节器(标记器、整形器、测定器)。
-
聚合:将若干流根据 DS 值聚合成少量流,相同 DS 值按相同优先级转发,无需 RSVP。
-
SLA:ISP 与用户商定支持的服务类别与容许通信量。
-
PHB (Per-Hop Behavior):只涉及本路由器转发这一跳的处理,与下一跳无关。
PHB 特征 服务 EF (Expedited Forwarding) 离开路由器的通信量数据率 某一数值;低丢失率、低时延、低抖动、确保带宽 Premium(优质)服务,类似虚拟租用线 AF (Assured Forwarding) DSCP 比特 0~2 分 4 个等级,各等级提供最低带宽与缓存;比特 3~5 分 3 个丢弃优先级 拥塞时优先丢弃高丢弃优先级分组
在网计算
在网计算概念
动机:
- AI/HPC 并行编程中 AllReduce 为全局通信瓶颈
- Host-centric 方案(PS、Ring AllReduce)受限于网卡带宽与端侧处理能力
- 将计算下沉到交换机/网卡,可在转发路径上消除冗余流量
核心约束:
| 约束 | 含义 | 影响 |
|---|---|---|
| 资源有限 | 交换机片上存储与计算单元极少 | 聚合器数组容量受限 |
| 有状态 | 需维护聚合窗口、未确认状态 | 状态膨胀将阻塞后续聚合 |
| 可靠性 | 丢包、ACK 丢失不可避免 | 需保证聚合结果正确性与一致性 |
设计空间:
| 维度 | 选项 |
|---|---|
| 下沉位置 | 交换机(SwitchML / ATP)/ 网卡侧近端(NetReduce) |
| 聚合粒度 | 向量级 / 包级 / 块级 |
| 可靠性机制 | 端侧重传 / 网内 ACK / 超时清空 |
分布式训练通信
数据并行训练迭代:
- 各 Worker 计算本地梯度
- 聚合所有 Worker 梯度(AllReduce)
- 各 Worker 用全局梯度更新模型
AllReduce:
- 跨主机对向量逐元素求和,并将结果返回所有主机
- 广泛存在于数据并行与张量并行中
Host-centric 方案对比
| 方案 | 拓扑 | 通信模式 | 流量特征 | 瓶颈 |
|---|---|---|---|---|
| Parameter Server (PS) | 星型 | Worker → PS → Worker | PS 侧流量为 Worker 总和 | PS 单点瓶颈与流量汇聚 |
| Ring AllReduce | 环型 | 两轮环传递 | 每节点收发各 2 份数据量 | 环延迟累积,总流量翻倍 |
Ring AllReduce 第一轮沿环累加中间结果(Scatter-Reduce),第二轮沿环分发最终值(AllGather);两轮向量传递使总流量为
2 × 数据量。
网内梯度聚合
SwitchML
核心机制:
- 在交换机内维护聚合器数组,对经过的梯度数据包执行逐元素累加
- 替代 PS 或环聚合
关键参数;
- 聚合器数组大小:交换机可并发维护的聚合槽位数
- 窗口大小:允许未确认(未收到 ACK)的并发聚合任务数
理想流程;
Worker 1: [0][1][2][3][4][5] ──→
交换机: [0][1] 逐包累加 ──→ 回传聚合结果
Worker 2: [0][1][2][3][4][5] ──→
聚合器数组大小 = 2,窗口大小 = 2
可靠性问题——ACK 丢失:
- 正常情况下:聚合器数组大小 = 窗口大小(如 2),聚合完成后收到 ACK 即释放槽位
- ACK 丢失后:交换机无法确认聚合完成,槽位无法释放,聚合器数组膨胀(如增至 4)
- 解决:检测到异常后清空聚合器数组,回退到端侧重传,避免状态无限增长
NetReduce
核心机制:
- 基于 RoCE NIC 的网内聚合
- 利用 RDMA 连接在交换机处对数据包 payload 进行累加
架构组件:
- RoCE NIC:支持 RDMA 的网卡,绕过内核直接内存访问
- Ethernet Switch:嵌入聚合逻辑,维护 packet buffer
数据包格式:
Packet: [header | payload] [header | payload] [header | payload] ...
工作流程:
- 建连:Worker 与交换机、Worker 之间建立 RDMA 连接
- 发送:Worker 发送梯度数据包(gradients)到交换机
- 聚合:交换机在 packet buffer 中对齐累加同序号 payload
- 回传:将聚合结果发送回对应连接
- ACK:ACK 沿反向路径原样返回,不修改内容
ATP
核心机制:
- 细粒度包级聚合
- 交换机维护多列聚合器,支持多 Worker 异步到达
理想情况:
- 各 Worker 发送的数据包按列对齐(如
a1, b1, c1, d1等列) - 交换机对同一列的多个 Worker 数据执行
+a1+a2+…+an
丢包处理:
| 场景 | 现象 | 处理 |
|---|---|---|
| 部分到达 | 某列仅收到部分 Worker 数据 | 超时后发送部分聚合结果 |
| 重复/冗余 | 重传包与已聚合包序号重复 | 消冗余:丢弃已聚合序号的数据 |
| 重传聚合 | 重传包再次进入聚合器 | 禁止开启聚合:重传报文直接转发,不触发累加 |
状态管理:
- 聚合器数组按数据包序号索引
- 每列聚合完成或超时后向下转发
- 重传包标记为”非聚合”,避免重复累加导致结果错误
其他在网计算应用
网内键值聚合
场景:
- 分布式系统(如参数服务器、推荐系统)中多 Worker 向中心节点发送键值对更新
在网优化:
- 交换机对同 Key 的 Value 执行归约(如求和、取最值)
- 减少上传至 Server 的流量
Worker 1: [d1][c1][b1][a1] ─┐
Worker 2: [d2][c2][b2][a2] ─┼→ Switch: 按列聚合 ─→ Server: [Σd][Σc][Σb][Σa]
Worker n: [dn][cn][bn][an] ─┘
本质:
- 将 PS 的聚合计算从 Server 下沉到 Switch
- 缓解 Server 侧 CPU 与网卡瓶颈
- 实现网内归约(In-network Reduction)