MINIBLOG

Blog Note Tags Links About
Home Search
Jun 14, 2026
miniyuan

计算机网络总结


概述

计算机网络定义与组成

  1. 定义:用通信设备将计算机通过通信线路连接,在计算机之间传输数据的系统。
  2. 组成三要素:
    • 通信设备:NIC、调制解调器、中继器、交换机、路由器(负责转发数据)。
    • 通信线路:有线(双绞线、光纤)或无线(无线电波)。
    • 通信协议:TCP/IP、IEEE 802.3、IEEE 802.11(数据交换规则)。

协议

  1. 语法:数据与控制信息的结构或格式。
  2. 语义:需要发出何种控制信息,完成何种动作以及做出何种响应。
  3. 同步:事件实现顺序的详细说明。

网络分类

  1. 按作用范围:
    • PAN:~10 米(蓝牙)。
    • LAN:~1 公里(WiFi、以太网)。
    • MAN:5–50 公里(Cable、DSL、蜂窝)。
    • WAN:几十到几千公里(大型 ISP、VPN)。
  2. 按使用者:
    • 公用网:按规定交费即可使用(如电信网络)。
    • 专用网:为特殊业务工作需要建造(如军队、铁路网络)。

互联网组成

  1. 定义:全球最大、开放、由众多网络相互连接而成的特定计算机网络,采用 TCP/IP 协议族,前身是 ARPANET。
  2. 组成:
    • 边缘部分:端系统(PC、智能手机、服务器、网络摄像头)。
    • 核心部分:路由器/网络。
  3. 端系统通信方式:
    • C/S:客户/服务器,请求方与提供方明确区分,服务器被动等待(Web 浏览、邮件服务)。
    • P2P:对等连接,不区分服务请求方和提供方,每个主机既是客户又是服务器(文件共享、区块链)。

分层模型

      OSI 的体系结构            TCP/IP 的体系结构           五层协议的体系结构

----------------------    --------------------------    ----------------------
 7   应用层                                                                 
----------------------             应用层
 6   表示层                  (DNS, HTTP, SMTP等)                 应用层
----------------------
 5   会话层
----------------------    --------------------------    ----------------------
 4   传输层                    传输层 (TCP/UDP)                  传输层           
----------------------    --------------------------    ----------------------
 3   网络层                        网络层 IP                     网络层           
----------------------    --------------------------    ----------------------
 2   数据链路层                                                数据链路层           
----------------------            网络接口层             ----------------------
 1   物理层                                                      物理层       
----------------------    --------------------------    ----------------------
  1. 优势:

    • 各层之间是独立的。
    • 灵活性好。
    • 结构上可分割开。
    • 易于实现和维护。
    • 能促进标准化工作。
  2. 劣势:

    • 降低效率。
    • 有些功能会在不同的层次中重复出现,因而产生了额外开销。
  3. 各层的主要功能:

    1. 差错控制
    2. 流量控制
    3. 分段和重装
    4. 复用和分用
    5. 连接建立和释放
  4. 封装与解封装:

    • 发送端:自上而下逐层添加首部(数据链路层加首部和尾部)。
    • 接收端:自下而上逐层去除首部(数据链路层去除首尾部)。
    • 路由器在转发分组时最高只用到网络层。
  5. 核心概念:

    • 实体:任何可发送或接收信息的硬件或软件进程。
    • 协议:控制两个对等实体进行通信的规则的集合(水平)。
    • 服务:下层为上层通过层间接口提供的功能(垂直)。
    • SAP:同一系统相邻两层实体交互的地方。
    • PDU:对等层次之间传送的数据单位。
    • SDU:层与层之间交换的数据单位。

Socket API

  1. 核心原语:SOCKET、BIND、LISTEN、CONNECT、ACCEPT、SEND、RECEIVE、CLOSE。

  2. 客户端流程:

    socket()
    getaddrinfo()
    connect()  [阻塞]
    send()
    recv()     [阻塞]
    close()
  3. 服务器端流程:

    socket()
    getaddrinfo()
    bind()
    listen()
    accept()  [阻塞]
    recv()
    send()
    close()

接入网

  1. 定义:从用户端系统到互联网中第一个路由器(边缘路由器)之间的网络。

  2. 技术对比:

    技术介质典型速率应用场景
    DSL电话线下行<24Mbps,上行<2.5Mbps家庭宽带
    Cable同轴电缆下行30Mbps,上行2Mbps家庭宽带(HFC)
    以太网双绞线/光纤10Mbps–10Gbps企业、校园
    WiFi无线11–450Mbps建筑物内部
    蜂窝网络无线1–10Mbps广域无线接入

交换技术

  1. 三种交换方式对比:

    特性电路交换报文交换分组交换
    建立连接需要(专用物理通路)不需要不需要
    传输单位比特流直达整个报文分组(Packet)
    存储转发否是是
    时延小(建立连接后)大(几分钟到几小时)较小
    线路利用率低(独占)高高(统计复用)
    适用场景连续大量数据传输早期电报互联网(突发数据)
  2. 分组交换机制:

    • 发送端:报文 → 划分数据段 → 添加首部 → 分组 → 发送。
    • 接收端:接收分组 → 去除首部 → 还原数据段 → 重组报文。
  3. 路由器工作原理:

    1. 接收分组 → 放入缓存。
    2. 查找转发表 → 确定输出端口。
    3. 转发分组 → 发送到下一跳。

网络性能指标

  1. 基本指标:速率(bit/s)、带宽(Hz 或 bit/s)、利用率(0–1)。

  2. 计算公式:

    概念符号公式
    发送时延tsendt_{\text{send}}tsend​L/vsendL / v_{\text{send}}L/vsend​(帧长/链路速率)
    传播时延ttranst_{\text{trans}}ttrans​d/vtransd / v_{\text{trans}}d/vtrans​(信道长度/传播速率)
    单向时延OWDOWDOWDttrans+tque+tproct_{\text{trans}} + t_{\text{que}} + t_{\text{proc}}ttrans​+tque​+tproc​
    往返时间RTTRTTRTTtsend+OWDsender+treceiver+OWDreceivert_{\text{send}} + OWD_{\text{sender}} + t_{\text{receiver}} + OWD_{\text{receiver}}tsend​+OWDsender​+treceiver​+OWDreceiver​
    时延带宽积BDPBDPBDPRTT×vsendRTT \times v_{\text{send}}RTT×vsend​
    吞吐量ThroughputThroughputThroughputL/RTTL / RTTL/RTT
    信道利用率UUUThroughput/vsend=tsend/RTTThroughput / v_{\text{send}} = t_{\text{send}} / RTTThroughput/vsend​=tsend​/RTT
  3. 重要区分:

    • 发送时延:发生在发送器内部,与传输信道长度无关。
    • 传播时延:发生在传输媒体上,与信号发送速率无关。
  4. 高速链路:提高的是数据发送速率(减小发送时延),而非比特传播速率。

  5. 时延与路由器利用率:

    • 公式:D=D01−ρD = \dfrac{D_0}{1 - \rho}D=1−ρD0​​
    • D0D_0D0​:网络空闲时延(tsend+ttrans+tproct_{\text{send}} + t_{\text{trans}} + t_{\text{proc}}tsend​+ttrans​+tproc​)。
    • ρ\rhoρ:路由器利用率,ρ=λ/μ\rho = \lambda / \muρ=λ/μ。
    • 结论:当利用率接近 1 时,时延急剧增加。

物理层

物理层概述

  1. 本质:屏蔽传输媒体差异,为上层提供统一接口
  2. 功能:在物理介质上传输数据比特流,定义信号发送所需的机械、电气、时序和接口特性
  3. 提供的服务:
    • 发送和接收比特流的能力(连接的建立、维持和释放)
    • 在两个相邻通信结点之间唯一地标识数据电路
  4. 关键特性:
特性说明
机械特性接线器的形状、尺寸、引线数目和排列、固定和锁定装置
电气特性接口电缆各条线上出现的电压范围
功能特性某条线上某一电平电压的意义
过程特性不同功能的各种可能事件的出现顺序

数据通信基础

  1. 系统模型:信源 → [发送器] → 信道(含噪声) → [接收器] → 信宿

  2. 三大部分:

    • 源系统:产生要传输的数据
    • 传输系统:传输线路或网络
    • 目的系统:接收并处理数据
  3. 核心术语:

    术语定义
    数据(data)运送消息的实体(比特序列)
    信号(signal)数据的电气或电磁表现
    模拟信号代表消息的参数取值连续
    数字信号代表消息的参数取值离散
    码元(code)/符号一个周期脉冲信号,可利用不同状态代表多个比特
    信道向某一个方向传送信息的媒体
  4. 主要性能参数:

    参数符号说明
    信号功率SSS-
    信道带宽BBB与收发设备及传输介质特性有关,此处指时域带宽
    噪声功率NNN通信线路上的平均噪声功率
    信噪比SNR=S/NSNR = S/NSNR=S/N 或 SNRdB=10log⁡10(S/N)SNR_{dB} = 10\log_{10}(S/N)SNRdB​=10log10​(S/N)10dB=10倍,20dB=100倍,3dB=2倍
    数据率/链路速率CCC 或 vsendv_{\text{send}}vsend​单位时间传输的比特数
    波特率/码元速率vcode×bitcode=Cv_{\text{code}} \times bit_{\text{code}} = Cvcode​×bitcode​=C单位时间传输的码元数
    误码率-数据传输的错误概率
  5. 通信方式:

    方式英文名特点
    单工通信Simplex只能单向传输,无反方向交互
    半双工通信Half-duplex双方可发送,但不能同时发送/接收
    全双工通信Full-duplex双方可同时发送和接收

信道极限容量

  1. 奈奎斯特定理(理想无噪声信道):

    • 条件:信道带宽 BBB,信号状态数 VVV,发送方波特率 RsR_sRs​,接收方采样频率 fsf_sfs​
    • fs≥2Bf_s \ge 2Bfs​≥2B 时可无损恢复信号;发送方要求 Rs≤2BR_s \le 2BRs​≤2B
    • 最大数据率: C=2Blog⁡2VC = 2B \log_2 VC=2Blog2​V
    • 注:没有限制码元传输的比特数
  2. 香农定理(有噪声信道):

    • 极限信息传输速率: C=Blog⁡2(1+SNR)C = B \log_2(1 + SNR)C=Blog2​(1+SNR)
    • 带宽 BBB 或信噪比 SNRSNRSNR 越大,极限传输速率越高
    • 只要实际速率小于 CCC,理论上就可实现无差错传输
    • 实际速率通常远低于香农极限
  3. 传输同步方式对比:

    特性异步传输同步传输
    传输单位面向字节(字符)面向比特
    时钟同步每个字节独立同步(起止位)全局时钟同步(时钟线或时钟嵌入)
    开销每字符若干比特开销,较大每帧若干字节开销,较小
    适用场景低速传输(如RS-232)长距离高速传输
    特点简单、廉价,可能有采样误差需时钟线或时钟提取,效率高

编码与调制技术

  1. 分类:**基带调制(编码)**不改变频带;**带通调制(调制)**将数字脉冲转为高频载波

  2. 基带调制:

    编码方式规则特点
    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以太网
  3. 带宽效率:

    • NRZ/NRZI:数据率 = 2B(奈奎斯特极限)
    • 曼彻斯特/差分曼彻斯特:数据率 = B(牺牲带宽换同步)
  4. 带通调制:

    调制方式调制参数特点
    ASK振幅A变化抗干扰能力弱
    FSK频率f变化抗干扰优于ASK,频带利用率不高
    PSK相位Φ变化BPSK:0和π相位表示0和1
    QPSK4种相位(45°,135°,225°,315°)每符号2比特
    QAM幅度+相位联合调制QAM-16:4比特/符号,QAM-64:6比特/符号
  5. 星座图:将数字信号表示在复平面上,展示信号点间的距离关系

  6. 码元状态数越多,数据率越高,但接收端识别难度增大,误码率上升

信道复用技术

  1. 复用(Multiplexing):多路信号共享同一传输介质,提高利用率
  2. FDM(频分复用):
    • 用户分配到不同频带,同时传输,频带互不重叠
    • 保护间隔:由于滤波器非理想矩形,子信道间需设置保护带
    • 应用:广播系统、电话系统、电视系统、ADSL使用的DMT技术
  3. TDM(时分复用):
    • 按时间划分为等长TDM帧,每帧划分时隙,每位用户占用固定序号时隙,分时占用相同频带
    • 同步要求:用户间需严格同步,时隙间设保护间隔
    • 问题:计算机数据突发性强,固定时隙可能造成线路资源浪费
  4. STDM(统计时分复用):
    • 按需为用户动态分配时隙,提高线路利用率
    • 帧长不固定,需地址标识
  5. CDM/CDMA(码分复用):
    • 各用户使用正交码片序列,同时同频传输
    • 码片序列:将 m 位码片序列映射为 1 位数据比特;发送本身表示1,发送反码表示0
    • 正交性:不同用户码片序列内积为0,自身规格化内积为1;通过点积自己的码片解码
    • 扩频通信:码片速率 = m × 数据率,频谱展宽 m 倍
    • 特点:抗干扰能力强,保密性好(类似白噪声频谱),需严格功率控制
    • 应用:3G 移动通信系统
  6. WDM(波分复用):
    • 本质:光的频分复用
    • 单根光纤传输多个光载波信号
    • EDFA:掺铒光纤放大器,同时放大多路光信号
  7. OFDM(正交频分复用):
    • 子载波正交,无保护间隔,频谱效率最高
    • 实现:IFFT/FFT,子载波数可变,调制方式可变(自适应)
    • 应用:4G/5G、Wi-Fi

传输介质

  1. 有线传输介质对比:

    介质传输信号中继间距特点
    双绞线模拟信号(电话)、数字信号(以太网)2 km成本低,易安装,抗干扰一般
    同轴电缆模拟信号(电视)、数字信号(Cable Modem)1-9 km抗干扰好,50Ω(数字)/75Ω(模拟)
    光纤模拟信号(光强)、数字信号(光脉冲)40 km容量大,损耗小,抗电磁干扰
    无线传输模拟信号(调幅/调频广播)、数字信号(WiFi/4G)因方式而异直线/视距传播,易受环境影响
  2. 双绞线:可传输模拟和数字信号;STP(屏蔽)/UTP(无屏蔽),STP抗干扰更强;CAT 5 较常用

  3. 同轴电缆:50Ω常用于 LAN/数字信号;75Ω常用于有线电视/模拟信号;抗干扰能力较好

  4. 光纤:

    • 利用全反射传输模拟信号(光波);常用 850nm、1300nm、1550nm 中心波段(带宽均为 25,000-30,000 GHz)
    • 优点:通信容量极大、损耗小、中继距离长、抗电磁干扰、保密性好、体积小重量轻
    • 多模光纤:多条不同角度入射光线同时传输,纤芯较粗(50μm),短距离,LED光源
    • 单模光纤:直径=光波长,直线传播无反射,纤芯细(9μm),长距离,激光光源
  5. 无线传输介质:

    • 无线电波通信:3kHz-1GHz,全向传播,绕射能力强,可穿透建筑物,易受干扰;应用:AM/FM广播、电视、业余电台、海事通信
    • 微波通信:1GHz-40GHz,方向性强,直线视距传播,需中继,容量大;地面微波接力通信(站间距约50km,受地球曲率影响)
    • 红外通信:300GHz-400THz,视距传播,不能穿透障碍物,带宽极大,方向性强;应用:红外遥控、短距无线数据传输
  6. ISM 频段:无线电频谱使用需许可,但各国 ISM 标准中的频段可自由使用

通信系统实例

  1. 电话系统(PSTN):

    • 结构:[电话] <=(本地环路)=> [端局] <=(中继线)=> [交换局] <=(中继线)=> [端局] <=(本地环路)=> [电话]
    • 本地环路:模拟双绞线传输模拟信号,独占线路
    • 中继线/干线:高容量高速光缆传输数字信号,共享线路
    • 交换局:进行分组、交换、转接,有分层结构
    • 中继线上要求采用 PCM 编码,编码后产生数字信号,再利用光电转换器转换为光脉冲
  2. PCM 编码标准:

    • T1 标准:帧频率 8 kHz,一帧 193b(第一位帧同步位,后面 192b 分 24 个信道,每信道 1 位信令+7 位语音数据),总速率: 193×8 kHz=1.544 Mbps193 \times 8 \text{ kHz} = 1.544 \text{ Mbps}193×8 kHz=1.544 Mbps 每帧有效数据 168b
    • E1 标准:帧频率 8 kHz,一帧 256b(分 32 个信道,30 个话路,2 个同步/信令),总速率: 256×8 kHz=2.048 Mbps256 \times 8 \text{ kHz} = 2.048 \text{ Mbps}256×8 kHz=2.048 Mbps 每帧有效数据 240b
    • 信号复接:4 T1/E1 → 1 T2/E2,7 T2/E2 → 1 T3/E3,6 T3/E3 → 1 T4/E4(比特交织时分复用)
  3. SONET/SDH:

    • SONET:OC-1/STS-1 帧频率 8 kHz,每帧 810 B,数据速率: 8×810×8 kHz=51.84 Mbps8 \times 810 \times 8 \text{ kHz} = 51.84 \text{ Mbps}8×810×8 kHz=51.84 Mbps OC-n/STS-n 为 n 个 OC-1 字节交织复接
    • SDH:STM-1 相当于 OC-3/STS-3
  4. 宽带接入技术对比:

    技术传输介质复用方式调制技术特点
    ADSL双绞线FDMDMT(多子载波 QAM)非对称,上行低下行高,距离取决于数据率和线径,自适应调制,DMT 需成对使用
    HFC光纤+同轴电缆FDMCable Modem(下行 QAM,上行 QPSK/QAM-16)主干部分改用光纤,多用户共享电缆,非对称,广播为主,Cable Modem 用户端单独使用
    FTTx光纤TDM(WDM)光调制FTTH/FTTB/FTTC,带宽大,未来趋势
  5. ADSL vs HFC 对比:

    特性ADSLHFC
    介质独占性用户独占双绞线多用户共享同轴电缆
    数据率稳定性仅与距离/线径有关与用户数、线路质量有关
    上行方式专用时隙竞争方式(S-ALOHA/CDMA)
    对称性非对称非对称

数据链路层

概述与位置

  1. 核心地位:实现相邻结点通信;主机、路由器、交换机均须实现数据链路层。
  2. 基本术语:
    • 结点(node):主机、路由器等网络设备
    • 链路(link):连接相邻结点的信道
    • 帧(frame):数据链路层传输基本单位
  3. 信道类型:
    • 点对点信道:一对一,无需协调
    • 广播信道:一对多,需共享信道协议协调
  4. 链路层功能:链路管理、成帧/解帧、流量控制、差错控制、透明传输、寻址
  5. 子层划分:
    • LLC(逻辑链路控制):与传输媒体无关
    • MAC(介质访问控制):与接入传输媒体有关
  6. 实现位置:网卡(NIC)
    • 发送端:封装成帧、添加校验位和地址、流量控制
    • 接收端:检错、地址检查、流量控制、提取数据交高层

成帧与透明传输

  1. 字节计数法:头部字段标识帧字节数;头部出错则失步
  2. 固定帧长度:如 RS232;实现简单但效率低
  3. 控制字符法(ASCII):使用 SOH/EOT 定界
    • 透明传输:数据中出现 SOH/EOT 前插入转义字符 ESC(0x1B);出现 ESC 前再插入一个 ESC
    • 接收端:删除插入的转义字符,连续两个只删一个
  4. 控制字符法(二进制):使用标志 01111110 定界
    • 零比特填充:发送端连续 5 个 1 后填 0;接收端连续 5 个 1 后删 0

差错控制

  1. 基本概念:
    • 误码率 PbP_bPb​ = 误码位数 / 发送总位数
    • 无差错帧概率 P1=(1−Pb)LP_1 = (1-P_b)^LP1​=(1−Pb​)L(LLL 为帧长)
    • 码距 dH(x,y)d_H(\mathbf{x}, \mathbf{y})dH​(x,y):对应位置不同符号个数
    • 最小码距 dmin⁡d_{\min}dmin​:编码中所有不同码字间的最小距离
    • 检 eee 个错   ⟺  \iff⟺ dmin⁡≥e+1d_{\min} \ge e+1dmin​≥e+1
    • 纠 ttt 个错   ⟺  \iff⟺ dmin⁡≥2t+1d_{\min} \ge 2t+1dmin​≥2t+1
  2. 分组码:(n,k)(n,k)(n,k) 分组码,kkk 数据位 + 校验位 →\to→ nnn 位码字,码率 R=k/nR=k/nR=k/n
  3. 方法汇总:
方法类型最小码距能力
奇偶校验检错码2检测单比特错
二维奇偶校验纠错码4纠正单比特错
汉明码纠错码3纠正单比特错,检测双比特错
CRC检错码≥2\ge 2≥2检测 ≤r\le r≤r 位错
校验和检错码—IP/TCP/UDP使用
交织码——将突发错转为随机错
  1. 一维奇偶校验(偶校验):

    • 校验位 p=d1⊕d2⊕⋯⊕dkp = d_1 \oplus d_2 \oplus \cdots \oplus d_kp=d1​⊕d2​⊕⋯⊕dk​
    • 接收端校验结果为 0:无奇数个错误;为 1:有奇数个错误
  2. 二维奇偶校验:

    • 行校验位 rir_iri​、列校验位 cjc_jcj​、整体校验位 ptotalp_{\text{total}}ptotal​
    • 行错列错 →\to→ 数据位 di,jd_{i,j}di,j​ 错误(可定位纠错)
    • 行错列对 →\to→ 行校验位本身错误;列错行对 →\to→ 列校验位本身错误
    • 行错列错整体错 →\to→ 多处错误,无法纠正
  3. 汉明码:

    • 校验位位置:R={1,2,4,8,… }R = \{1, 2, 4, 8, \dots\}R={1,2,4,8,…}(popcount=1)
    • 数据位位置:D={r∣popcount(r)≥2}D = \{r \mid \text{popcount}(r) \ge 2\}D={r∣popcount(r)≥2}
    • 校验位 cr=⨁d∈D,(d & 2m)≠0cdc_r = \bigoplus_{d \in D, (d\ \&\ 2^m) \neq 0} c_dcr​=⨁d∈D,(d & 2m)=0​cd​
    • 接收端计算 e=∑m=0k−1(cr⊕crexp)⋅2me = \sum_{m=0}^{k-1} (c_r \oplus c_r^{exp}) \cdot 2^me=∑m=0k−1​(cr​⊕crexp​)⋅2m;e=0e=0e=0 无错,否则第 eee 位出错
  4. CRC 循环冗余校验:

    • 生成多项式 G(x)G(x)G(x) 为 rrr 次,常数项为 1
    • 校验位 R(x)=xrM(x) mod G(x)R(x) = x^r M(x) \bmod G(x)R(x)=xrM(x)modG(x)
    • 码字 T(x)=xrM(x)+R(x)T(x) = x^r M(x) + R(x)T(x)=xrM(x)+R(x),满足 T(x)≡0(modG(x))T(x) \equiv 0 \pmod{G(x)}T(x)≡0(modG(x))
    • 检错能力:
      • 检测所有长度 ≤r\le r≤r 的突发错误
      • 若 G(x)G(x)G(x) 含因子 x+1x+1x+1,检测所有奇数个比特错误
      • 长度 >r>r>r 的突发错误漏检概率 2−r2^{-r}2−r
  5. 交织:mmm 个码字排成 m×nm \times nm×n 矩阵,按列发送;突发长度 b≤m⋅tb \le m \cdot tb≤m⋅t 时可纠正(ttt 为原码纠错能力)

  6. 校验和:IP/TCP/UDP 使用;数据分组求和作为校验位

可靠传输与流量控制

  1. 帧异常:丢失、迟到、损坏、重复、失序
  2. ARQ 协议族:
协议WTW_TWT​WRW_RWR​实现方式
停等 ARQ11停等协议
连续 ARQ>1>1>11Go-Back-N
选择重传 ARQ>1>1>1>1>1>1Selective Repeat
  1. 停等 ARQ:
    • 发送方发一帧 iii →\to→ 接收方确认 →\to→ 发下一帧 i+1i+1i+1
    • 超时重传:发送后启动定时器,超时未收到确认则重传
    • 序号机制:1 比特序号(0/1 交替),区分新旧帧
    • 重复帧处理:接收方丢弃重复帧,重传确认
    • 信道利用率:
      • 无差错:Uideal=11+2αU_{ideal} = \frac{1}{1+2\alpha}Uideal​=1+2α1​,其中 α=ttranstsend\alpha = \frac{t_{trans}}{t_{send}}α=tsend​ttrans​​
      • 有差错:Uerror=1−p1+2αU_{error} = \frac{1-p}{1+2\alpha}Uerror​=1+2α1−p​(ppp 为帧差错率)
  2. 连续 ARQ(Go-Back-N):
    • 发送方连续发送 www 个未确认帧,只为窗口下沿设置单一计时器
    • 接收方按序接收,发送累积确认 jjj(表示 jjj 及之前所有帧已正确接收)
    • 超时重传从窗口下沿开始的整个窗口所有帧
    • 信道利用率:
      • w<1+2αw < 1+2\alphaw<1+2α:Uerror=w(1−p)1+2αU_{error} = \frac{w(1-p)}{1+2\alpha}Uerror​=1+2αw(1−p)​
      • w≥1+2αw \ge 1+2\alphaw≥1+2α:Uerror=1−p1+p(w−1)U_{error} = \frac{1-p}{1+p(w-1)}Uerror​=1+p(w−1)1−p​
  3. 选择重传 ARQ:
    • 发送方为每个未确认帧分别设置计时器
    • 接收方对每个正确帧发送选择性确认(独立确认)
    • 超时仅重传该单个帧;接收方缓存失序帧
    • 有差错:
      • w<1+2αw < 1+2\alphaw<1+2α:Uerror=w1+2α(1−p)U_{error} = \frac{w}{1+2\alpha}(1-p)Uerror​=1+2αw​(1−p)
      • w≥1+2αw \ge 1+2\alphaw≥1+2α:Uerror=1−pU_{error} = 1-pUerror​=1−p
  4. 滑动窗口限制:WT+WR≤2nW_T + W_R \le 2^nWT​+WR​≤2n(nnn 为序号比特数)
    • 若 WT+WR≥2n+1W_T + W_R \ge 2^n+1WT​+WR​≥2n+1,存在新旧报文混淆反例
  5. 确认机制:
    • 累计确认:一个 ACK 确认多个帧
    • 捎带确认:确认信息附在数据帧中发送

点对点协议

PPP 协议:面向字节(异步传输),不可靠,仅支持点对点,支持全双工,能进行地址协商,支持多种上层协议

HDLC 协议:面向比特(同步传输),可靠,支持点对点和多点,支持全双工,不能进行地址协商,支持多种上层协议

PPP 协议

  1. 特点:简单、灵活、支持多种网络层协议;只提供成帧和检错,无纠错、流量控制、序号、多点、半双工/单工

  2. 三个组成部分:

    • 封装方法(帧格式、透明传输)
    • LCP(链路控制协议):建立、配置、测试链路
    • NCP(网络控制协议):协商网络层参数(IP 地址、DNS)
  3. 帧格式:

    ┌─────┬─────┬─────┬────────┬──────────┬─────┬─────┐
    │  F  │  A  │  C  │protocol│   data   │ FCS │  F  │
    │0x7E │0xFF │0x03 │   2B   │  ≤1500B  │ 2B  │0x7E │
    └─────┴─────┴─────┴────────┴──────────┴─────┴─────┘

    协议字段:0x0021 IP 数据报、0xC021 LCP、0x8021 NCP、0xC023 鉴别

  4. 透明传输:

    • 异步传输(字符填充):Escape Set = {0x7E, 0x7D} ∪ {0x00~0x1F};原字符前加 0x7D 并异或 0x20
    • 同步传输(零比特填充):连续 5 个 1 后填 0 / 删 0
  5. 工作步骤:建立(LCP 协商)→\to→ 鉴权 →\to→ 网络(NCP 协商 IP 等)→\to→ 终止(NCP 释放 →\to→ LCP 释放 →\to→ 物理释放)

HDLC 协议

  1. 特点:面向比特的同步通信;全双工;可靠性高;滑动窗口(发送窗口 7,接收窗口 1 或 7)

  2. 帧格式:

    ┌─────┬─────┬─────┬────────┬────────┬─────┐
    │  F  │  A  │  C  │  Info  │   FCS  │  F  │
    │0x7E │ 1B  │ 1B  │  ≤MTU  │   2B   │0x7E │
    └─────┴─────┴─────┴────────┴────────┴─────┘

    FCS 使用 CRC,生成多项式 G(x)=x16+x12+x5+1G(x) = x^{16} + x^{12} + x^5 + 1G(x)=x16+x12+x5+1

  3. 帧类型:

    • 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拒绝REJGo-Back-N,要求重传 N(R) 及之后所有帧
    11选择性拒绝SREJSelective-Repeat,要求重传 N(R) 这一帧
    • U 帧(无编号帧):链路控制,如 SABM、DM、DISC、UA
  4. 配置方式:

    • 非平衡配置:主站 + 一个或多个从站
    • 平衡配置:两个复合站,同时具有主站和从站功能

介质访问控制

  1. 信道分配策略:

    策略代表技术适用场景
    静态划分FDMA、TDMA、CDMA、WDMA用户少且稳定
    动态分配ALOHA、CSMA、预约协议用户多且突发
    • 静态划分延迟问题:NNN 个子信道时,总延迟增大 NNN 倍
  2. 动态协议对比:

    协议类型低负载延迟高负载吞吐量典型最大吞吐量
    纯 ALOHA低极低1/2e≈0.1841/2e \approx 0.1841/2e≈0.184
    时隙 ALOHA低低1/e≈0.3681/e \approx 0.3681/e≈0.368
    CSMA/CD很低中等取决于传播时延
    位图协议高高接近 1
    轮询/令牌高高接近 1
    有限竞争协议低高接近 1(自适应时)
  3. 纯 ALOHA:

    • 想发就发,冲突后随机重发
    • 吞吐量 S=G⋅e−2TGS = G \cdot e^{-2TG}S=G⋅e−2TG;Smax⁡=R2eS_{\max} = \frac{R}{2e}Smax​=2eR​ bps
  4. 时隙 ALOHA:

    • 时隙长度 = 帧发送时间,帧只能在时隙开始时发送
    • 吞吐量 S=G⋅e−TGS = G \cdot e^{-TG}S=G⋅e−TG;Smax⁡=ReS_{\max} = \frac{R}{e}Smax​=eR​ bps
  5. CSMA:

    协议信道空闲信道繁忙
    非坚持 CSMA立即发送随机等待后再侦听
    1-坚持 CSMA立即发送持续侦听,空闲立即发送
    p-坚持 CSMA以概率 ppp 发送,1−p1-p1−p 延迟一个时间单元持续侦听至空闲,然后以概率 ppp 发送
    • p-坚持时间单元 = 信道最大传播时延 τ\tauτ
  6. CSMA/CD:

    • 碰撞检测时长(争用期/碰撞窗口/槽时间):2RTTmax⁡2RTT_{\max}2RTTmax​(RTTmax⁡RTT_{\max}RTTmax​ 为网络中任意两结点最大传播时延)
    • 二进制指数退避:第 nnn 次碰撞后,从 {0,1,…,2min⁡(n,10)−1}\{0, 1, \dots, 2^{\min(n,10)}-1\}{0,1,…,2min(n,10)−1} 中随机选 xxx,等待 xxx 个争用期;重传 16 次失败则丢弃
  7. CSMA/CA:

    • 无线局域网采用碰撞避免(不能边发边听),可以解决隐藏终端,但会引发暴露终端。
    • 工作流程:
      1. 侦听信道(物理载波侦听 + 虚拟载波侦听 NAV)
      2. 若最近收到错误帧且非发给自己,等待 EIFS;否则等待 DIFS
      3. 信道持续空闲后,进入随机退避,从 [0,CW−1][0, CW-1][0,CW−1] 选初始值(CWmin⁡CW_{\min}CWmin​)
      4. 信道空闲时每时隙计数器减 1,繁忙时冻结;收到有效帧时更新 NAV
      5. 计数器为 0 立即发送,数据帧头设 Duration 字段(SIFS + ACK 时间)
      6. 接收端正确收到后,等待 SIFS 回复 ACK
      7. 未收到 ACK 则碰撞,CW=min⁡(2CW,CWmax⁡)CW = \min(2CW, CW_{\max})CW=min(2CW,CWmax​),重新退避;重传 16 次失败丢弃
    • RTS/CTS 机制:发送端发 RTS →\to→ 接收端回 CTS →\to→ 周围节点更新 NAV,解决隐蔽节点
    • 帧间隔:
    帧间隔全称长度用途
    SIFSShort Inter-Frame Space最短ACK、CTS、数据分片
    PIFSPCF Inter-Frame Space次短PCF 模式下 AP 获取信道
    DIFSDCF Inter-Frame Space较长DCF 模式下普通站点竞争
    EIFSExtended Inter-Frame Space最长帧接收错误后恢复等待
  8. 位图协议:

    • 预约阶段:NNN 个微时隙对应 NNN 个站点,有数据的站点在对应微时隙发 1 比特预约
    • 数据传输阶段:按预约顺序依次发送
    • 利用率:η=LNRd/k+L\eta = \frac{L}{NRd/k + L}η=NRd/k+LL​(kkk 为有数据站点数)
  9. 轮询协议:

    • 主节点依次发送轮询帧询问从节点
    • 利用率:η=k⋅L/RN⋅tpoll+k⋅L/R+(N−k)⋅tack\eta = \frac{k \cdot L/R}{N \cdot t_{poll} + k \cdot L/R + (N-k) \cdot t_{ack}}η=N⋅tpoll​+k⋅L/R+(N−k)⋅tack​k⋅L/R​
  10. 令牌传递协议:

    • 令牌在逻辑环内传递,持令牌才能发送
    • 利用率:η=k⋅L/RN(ttoken+tprop)+k⋅L/R\eta = \frac{k \cdot L/R}{N(t_{token}+t_{prop}) + k \cdot L/R}η=N(ttoken​+tprop​)+k⋅L/Rk⋅L/R​
  11. 有限竞争协议:

    • 低负载:所有站点同组竞争,延迟小
    • 高负载:分组竞争,降低碰撞概率
    • 自适应:根据负载动态调整组大小

以太网

  1. 服务特点:
    • 无连接:不建立逻辑连接,不维护状态(不编号、不发 ACK)
    • 不可靠:差错丢弃,重传由高层负责
    • 半双工:使用 CSMA/CD,双向交替通信
    • 使用曼彻斯特编码
  2. LLC 服务类型:
类型名称连接编号/确认适用场景
Type 1无连接无不编号、不发 ACK以太网(绝大部分)、Wi-Fi
Type 2面向连接有编号、发 ACK、窗口流控令牌环
Type 3无连接带确认无不发 ACK(但可发带确认的帧)极少使用
  1. CSMA/CD 关键参数:
    • 争用期:10 Mbps 以太网 2τ=51.2 μs2\tau = 51.2\ \mu s2τ=51.2 μs,相当于 64 字节
    • 最短帧长:64 字节(确保碰撞时仍在发送)
    • 帧间间隔:9.6 μs9.6\ \mu s9.6 μs(96 bit),同一站点连续两帧最小间隔
  2. 信道利用率:
    • 单结点无竞争:Ssingle=11+aS_{single} = \frac{1}{1+a}Ssingle​=1+a1​(a=τ/T0a = \tau/T_0a=τ/T0​,T0=L/CT_0 = L/CT0​=L/C)
    • 多结点饱和竞争:Smultiple=11+a(2e−1)S_{multiple} = \frac{1}{1+a(2e-1)}Smultiple​=1+a(2e−1)1​
  3. MAC 地址:
    • 48 位(6 字节),EUI-48 格式,固化在网卡 ROM
    • 前 24 位 OUI(厂商标识),后 24 位扩展标识符
    • 第一字节最低位 I/G:0 单播,1 多播
    • 第一字节次低位 U/L:0 全局唯一,1 本地管理
    • 广播地址:FF-FF-FF-FF-FF-FF
  4. Ethernet 帧格式:
┌───────────────┬───────────────┬───────────────┬───────────────────┬──────────────┐
│ Dest MAC (6B) │ Src MAC (6B)  │ EtherType(2B) │ payload(46-1500B) │   FCS (4B)   │
└───────────────┴───────────────┴───────────────┴───────────────────┴──────────────┘
  • EtherType:0x0800 IPv4、0x0806 ARP、0x86DD IPv6
  • payload 最小 46B(不足补 padding),MTU = 1500B
  • 前同步码 7B + 帧定界符 1B(硬件生成)
  1. 以太网演进:
标准速率拓扑介质槽时间关键技术
传统以太网10 Mbps总线型同轴电缆51.2 μs51.2\ \mu s51.2 μsCSMA/CD,共享介质
10BASE-T10 Mbps星型双绞线51.2 μs51.2\ \mu s51.2 μs集线器,逻辑总线
100BASE-T100 Mbps星型双绞线/光纤5.12 μs5.12\ \mu s5.12 μs帧格式不变,参数 aaa 不变
1000BASE-T1000 Mbps星型双绞线/光纤4.096 μs4.096\ \mu s4.096 μs载波延伸、帧突发、全双工

无线局域网

使用 CSMA/CA

  1. 特性:信号衰减、干扰、多径传播、隐蔽节点、暴露节点
  2. 网络设备与结构:
    • AP(接入点):帧转换(802.11 ↔\leftrightarrow↔ 802.3)、广播 BSSID(信标帧)、关联管理、桥接
    • BSS:有 AP,连接有线网络
    • Ad hoc:无 AP,节点自组织
  3. 通用帧结构(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 数据帧

局域网扩展与交换

  1. 网络互连设备对比:
特性中继器集线器网桥交换机路由器
工作层次物理层物理层数据链路层数据链路层网络层
转发方式原样转发广播到所有端口选择性转发选择性转发路由转发
碰撞域隔离否否是是是
广播域隔离否否否否是
带宽模式共享共享独立独享(全双工)独立
MAC 地址学习无无有有不适用
工作模式半双工半双工半双工/全双工全双工全双工
  1. 自学习转发:
    • 交换表结构:(MAC 地址,接口,TTL)
    • 收到帧后记录源 MAC 和输入接口
    • 查目的 MAC:
      • 找到且接口不同:转发到该接口
      • 找到但接口相同:丢弃
      • 未找到:泛洪(转发到除输入外所有接口)
  2. 生成树协议(STP):
    • 环路问题:广播风暴、MAC 地址表震荡、帧重复接收
    • 步骤:
      1. 选举根网桥:BID 最小者
      2. 计算最短距离:以根为源运行分布式 Dijkstra
      3. 选举根端口:非根交换机选到根路径开销最小的端口
      4. 选举指定端口:每条边上离根更近(或 BID 更小)的端口
      5. 阻塞端口:非根非指定的端口阻塞
      6. 确定最小生成树:转发边集 ∣T∣=∣V∣−1|T| = |V|-1∣T∣=∣V∣−1
  3. 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)决定分组从源主机到目的主机的路径依赖于路由算法与协议

体系结构要点:

  1. 控制平面先计算路由表,数据平面再计算转发表
  2. 主机中也有路由表,用于决定数据包走哪个网卡、送到哪个网关
  3. 物理端口(链路层,对应网卡)与虚拟端口号(传输层,对应进程)需区分
  4. 输出端口队列满时,后续分组被丢弃

交换结构三种实现:

方式原理特点
经存储器交换分组复制到系统内存,CPU 控制转发受存储器带宽和总线带宽限制,吞吐量 = B/2
经总线交换分组经共享总线从输入到输出受总线带宽限制,一般达 1Gbps
经互连网络交换纵横开关结构,N 个输入 N 个输出支持多线同时传输,速率更高

路由算法

协议分类:

分类维度类型特点典型协议
信息交换方式链路状态 (LS)洪泛拓扑信息,每个节点有完整拓扑OSPF、IS-IS(使用 Dijkstra)
距离向量 (DV)仅与邻居交换距离估计RIP(使用 Bellman-Ford)
更新方式静态路由人工配置—
动态路由自动适应网络变化RIP、OSPF、BGP

对比:

LS 算法:中心化,有震荡问题,时钟同步,可保证收敛

DV 算法:分布式,有无穷计数、问题,时钟异步,不可保证收敛

Dijkstra 算法(全局拓扑信息):

  1. 初始化:N’ = {u}, D(v) = c(u,v)(邻居代价)或 inf
  2. 循环:找到不在 N’ 中且 D(w) 最小的 w,加入 N’
  3. 更新:对所有 v,D(v) = min(D(v), D(w) + c(w,v))
  4. 重复直到所有节点在 N’ 中
  • 收敛快 O(n^2),但需 flooding 传播链路状态信息,开销为 N×E 量级

Bellman-Ford 算法(分布式):

  • Bellman-Ford 方程: d(u,t)=min⁡v∈N(u){w(u,v)+d(v,t)}d(u, t) = \min_{v \in N(u)} \{ w(u, v) + d(v, t) \}d(u,t)=minv∈N(u)​{w(u,v)+d(v,t)}

  • 迭代关系: d(k)(u,t)=min⁡v∈N(u){w(u,v)+d(k−1)(v,t)}d^{(k)}(u, t) = \min_{v \in N(u)} \{ w(u, v) + d^{(k-1)}(v, t) \}d(k)(u,t)=minv∈N(u)​{w(u,v)+d(k−1)(v,t)} 初始化: d(0)(u,t)={0,u=t∞,u≠td^{(0)}(u, t) = \begin{cases} 0, & u = t \\ \infty, & u \ne t \end{cases}d(0)(u,t)={0,∞,​u=tu=t​

  • 至多需要 n - 1 轮迭代收敛

  • 特点:仅与邻居交换信息;好消息传得快,坏消息传得慢(无穷计算问题);存在路由环路风险

互联网路由协议

内部网关协议(IGP):

协议类型核心算法关键特性封装方式
RIP距离向量Bellman-Ford最大跳数为 15 跳;存在环路风险(无穷计数问题)UDP,端口 520
OSPF链路状态Dijkstra收敛快;支持分层设计;无环路风险直接封装于 IP,协议号 89

RIP 更新:

  1. 相同下一跳,无条件更新
  2. 不同下一跳,保留更小代价的
  3. 之前不存在的,更新

外部网关协议(EGP):

协议类型核心机制关键特性封装方式
BGP-4路径向量策略决策(非单纯最短路径)基于策略选路;防止路由环路(AS_PATH);支持 CIDRTCP,端口 179

IPv4 编址

分类编址:

类别前几位网络号位数主机号位数地址范围
A 类08 位24 位0.0.0.0 - 127.255.255.255
B 类1016 位16 位128.0.0.0 - 191.255.255.255
C 类11024 位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/4D 类地址,用于一对多通信
保留地址240.0.0.0/4E 类地址,除 255.255.255.255 外保留未用

子网划分(三级结构):

[Network ID][Subnet ID][Host ID]
  • 引入子网掩码,掩码为 1 的部分为 [Network ID] [Subnet ID],为 0 的部分为 [Host ID]

私有地址(RFC 1918):

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.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 IDNetwork ID + Subnet ID + Host IDPrefix + 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)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

关键字段:

字段位数说明
Ver4版本号,IPv4 取值为 4
IHL4首部长度,以 32 位(4B)为单位。最小值 5(20B),最大值 15(60B)
Total Length16整个 IP 包大小(首部 + 数据),最大 65535 字节
Identification16标识符,同一原始数据包的所有分片共享相同标识符
Flags3第 1 位:DF(禁止分片);第 2 位:MF(后面还有分片)
Fragment Offset13片偏移,以 8 字节为单位
TTL8每经过一个路由器减 1,为 0 时丢弃
Protocol86:TCP;17:UDP;1:ICMP
Header Checksum16仅对首部进行错误检测,每经过一个路由器重新计算
Options0-40B可选功能,如有选项需填充保证首部为 32 位整数倍

ARP(地址解析协议)

功能:实现 IP 地址 → MAC 地址 映射(同一局域网内)。

工作流程:

  1. 主机 A 广播 ARP 请求(目的 IP 已知,MAC 填 0)
  2. 目标主机 B 单播 ARP 响应,告知自身 MAC 地址
  3. 主机 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(互联网控制报文协议)

功能:报告差错、测试连通性、状态查询。

类型值代码含义
00Echo Reply(Ping 应答)
30-7目的不可达(网络/主机/协议/端口等)
80Echo Request(Ping 请求)
110TTL 超时(Traceroute 利用)

典型应用:

  • Ping:测试主机可达性(Echo Request/Reply)
  • Traceroute:利用 TTL 超时或端口不可达报文,追踪路由路径

IPv6

与 IPv4 对比:

特性IPv4IPv6
地址长度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
多播地址11111111FF00::/8
本地链路单播1111111010FE80::/10
全球单播其他可聚合全球单播地址

IPv4 向 IPv6 过渡技术:

技术原理应用场景
双协议栈主机/路由器同时运行 IPv4 和 IPv6长期共存阶段
隧道技术IPv6 分组封装为 IPv4 数据报穿越 IPv4 网络IPv6 孤岛互联

核心对比总结

对比项技术 A技术 B核心差异
服务模型虚电路数据报连接状态 vs 无连接;网络可靠 vs 端系统可靠
路由算法链路状态(LS)距离矢量(DV)全局信息/快速收敛 vs 分布式/可能存在环路
路由协议OSPFRIPLS 算法/无跳数限制 vs DV 算法/最大 15 跳
域间路由IGP(内部)EGP/BGP(外部)策略控制 vs 性能优化
IP 编址分类编址CIDR固定类别 vs 灵活前缀/路由聚合
地址映射ARPDNSIP→MAC(链路层) vs 域名→IP(应用层)
地址转换NAT直接路由专用↔全球地址转换 vs 端到端透明
IP 版本IPv4IPv632 位/可变首部 vs 128 位/固定首部+扩展首部

传输层

传输层概述与端口

  1. 提供端到端的逻辑通信,端点是主机内的进程。
  2. 套接字标识:socket = (IP 地址 : 端口号)。
  3. 主要功能:复用与分用(基于端口)、可靠传输、流量控制、拥塞控制、连接管理。
  4. 两类协议:无连接/不可靠(UDP)与面向连接/可靠(TCP);面向报文(UDP)或面向字节流(TCP)。
  5. 端口分类:
    • 熟知端口(Well-known):0 — 1023
    • 登记端口(Registered):1024 — 49151
    • 短暂/私有端口(Ephemeral):49152 — 65535

UDP

  1. 无连接、尽最大努力交付(不可靠)、面向报文(保留上层报文边界)。
  2. 首部固定 8 字节:
    • 源端口(2B)、目的端口(2B)、UDP 长度(2B)、校验和(2B)
  3. 校验和计算:在报文前加 12 字节伪首部(源 IP、目的 IP、协议号、UDP 长度),采用 16-bit 逐字反码和,结果取反码作为检验和。
  4. 若校验和计算结果为 0,报文中存放 0 表示“无校验和”(IPv4 中可为 0;IPv6 强制校验和)。
  5. 适用场景:RTP、DNS、DHCP、SNMP、TFTP 等实时或短小突发流。

TCP 报文段首部

  1. 固定首部 20 字节,最大 60 字节(含选项)。
  2. 关键字段:
    • 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 时有效
  3. 伪首部(12 字节):Source IP Address、Destination IP Address、Padding Zero、Protocol、TCP Length;仅用于校验和计算,不传输。
  4. Socket API 简述:socket() 创建;服务器 bind()/listen()/accept();客户端/服务器 connect()/send()/recv();内核以 TCB 保存连接状态。

可靠传输原理(ARQ)

  1. 停等 ARQ:每次发送一个分组并等待确认;要点为编号、超时重传、保留已发送副本。
  2. 连续 ARQ / 滑动窗口:
    • 发送方维护发送窗口(W_T),接收方维护接收窗口(W_R)。
    • Go-Back-N:接收方只累积确认,发送方回退并重传自丢失分组之后的所有分组;通常 W_R = 1。
    • 选择重传(Selective Repeat):接收方缓存乱序分组,发送方只重传缺失分组;需要 W_T > W_R > 1。
  3. 累积确认:确认按序到达的最后一个字节/分组,减少确认数量。
特性停等 ARQ连续 ARQ
一次发送分组数1多个
传输控制停等滑动窗口
确认方式单独确认单独或累积确认
超时计时器每分组每分组(或按实现)
重传一个分组回退 N 或选择重传

TCP 可靠传输实现

  1. 基于字节序号;ACK 表示期望下一个字节序号;必须保留已发送但未确认的数据以便重传。
  2. 接收方缓存:按序到达未交给应用的数据 + 乱序到达的数据块。
  3. RTT 估计:
    • 平滑 RTT:RTTS_new = (1-α)·RTTS_old + α·RTT_sample,RFC 6298 推荐 α = 1/8
    • Karn 算法:对发生重传的报文段不使用该样本更新 RTTS;每次重传使 RTO 增大(乘以 γ,典型 γ = 2):RTO_new = γ · RTO_old
  4. Nagle 算法(发送端):
    1. 发送第 1 个数据字节:应用层产生数据后,先立即发送首个字节,启动传输
    2. 等待确认:进入循环判断
      • 收到 ACK:将发送缓存中所有累积数据一并发出,然后回到等待状态
      • 未收到 ACK:检查缓存数据量
        • 若已达到发送窗口一半或报文段最大长度(MSS):立即发送当前缓存数据
        • 若未达到:继续缓冲,回到等待确认状态
  5. 糊涂窗口综合症:收发双方以极小碎片(例如 1 字节)交互,导致效率极低(1 字节数据占 41 字节 IP+TCP)。
    • 接收方解决:等待直到接收缓存有足够空间容纳一个最大报文段或达到一半空闲空间,再发送窗口更新。
  6. 持续计时器:当对端通告 rwnd = 0 时启动,到期发送 1 字节的零窗口探测以获知窗口更新,避免死锁。

TCP 流量控制

  1. 接收方通告 rwnd(接收窗口大小),表示可接收剩余字节数。
  2. 发送方实际可发送窗口: send_window=min⁡(rwnd,cwnd)\text{send\_window} = \min(\text{rwnd}, \text{cwnd})send_window=min(rwnd,cwnd)
流量控制拥塞控制
目标防止发送方淹没接收方防止发送方淹没网络
作用域端到端(点对点)全局(整个网络路径)
触发原因接收方处理速度慢、缓存溢出网络中间设备(路由器)队列溢出、丢包
核心变量接收窗口 rwnd拥塞窗口 cwnd
主要机制滑动窗口、停等协议慢开始、拥塞避免、快重传、快恢复
信息来源接收方通过 ACK 反馈窗口大小发送方通过丢包/延迟推断网络状况

TCP 拥塞控制(TCP Reno)

  1. 使用发送端维护的拥塞窗口 cwnd 反映网络可用容量,配合 rwnd 限制真实发送窗口。
  2. 拥塞事件判断:
    • 重传定时器超时:严重拥塞
    • 收到 3 个重复 ACK:轻度拥塞
  3. 慢开始:
    • 初始 cwnd = 1(以报文段为单位)。
    • 每收到一个对新报文段的确认,cwnd 加 1;每轮传输 cwnd 指数级增长。
    • 设置慢开始门限 ssthresh,当 cwnd >= ssthresh 时转为拥塞避免。
  4. 拥塞避免:
    • 每经过一个 RTT 使 cwnd 线性增加(如增加一个 MSS)。
    • 一般近似实现为每收到一个轮次中的 ACK,cwnd += 1/cwnd。
  5. 快重传:收到 3 个重复 ACK 立即重传怀疑丢失的分段,避免超时等待。
  6. 快恢复:
    • ssthresh = cwnd / 2
    • cwnd = ssthresh(或 cwnd = ssthresh + 3MSS,具体实现略有差异)
    • 进入拥塞避免而非慢开始。
  7. 超时处理:ssthresh = cwnd / 2,cwnd = 1,进入慢开始。

AQM 与 RED

  1. Tail-drop:FIFO 队列,满则丢弃到达分组,可能导致全局同步(大量连接同时进入慢开始)。
  2. RED(Random Early Detection):
    • 参数:Th_min、Th_max、p_max、权重系数 w_q(通常 0.001~0.002)
    • 维护平均队列长度 Lav: Lav=(1−wq)⋅Lav+wq⋅LL_{av} = (1 - w_q) \cdot L_{av} + w_q \cdot LLav​=(1−wq​)⋅Lav​+wq​⋅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。

TCP 连接管理

三次握手(建立连接):

  1. 客户端发送 SYN = 1, seq = x
  2. 服务器应答 SYN = 1, ACK = 1, seq = y, ack = x + 1
  3. 客户端发送 ACK = 1, seq = x + 1, ack = y + 1

四次挥手(释放连接):

  1. 主动方发送 FIN = 1, ACK = 1, seq = u, ack = v
  2. 被动方发送 ACK = 1, seq = v, ack = u + 1,进入 CLOSE_WAIT(半关闭状态,被动方可能继续发送数据,seq 从 v 递增)
  3. 被动方发送 FIN = 1, ACK = 1, seq = w, ack = u + 1
  4. 主动方发送 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 对比

特性UDPTCP
连接类型无连接,全双工面向连接,全双工
连接方式支持一对多只能一对一
可靠性不保证提供可靠按序交付
流量控制无有(接收方窗口 rwnd)
拥塞控制无有(cwnd、慢开始、快重传等)
面向报文(message)字节流(stream)
首部开销8 字节最少 20 字节(可变)
适用场景实时、多播、简单查询(DNS、RTP)文件传输、HTTP、邮件等需要可靠传输的应用

应用层

网络应用体系结构

  1. C/S:通过服务器间接通信;服务器固定 IP、长期在线、数据中心集群;客户端动态 IP、断续在线、互不直接通信;典型:Web、Email
  2. P2P:主机直接通信;无固定服务器;对等方兼具客户与服务方,具有自扩展性(负载增加同时服务能力增加);典型:迅雷、BT
  3. 进程寻址:仅用 IP 无法区分同一主机多个进程,采用 IP 地址 + 端口号;HTTP server:80;Mail server:25
  4. Socket:应用层与传输层之间的编程接口,操作系统提供,负责消息收发
  5. 应用层协议定义:消息类别(request/response)、语法(字段划分)、语义(字段含义)、时序规则(何时发送)
  6. 开放协议:RFC 定义,允许互操作(HTTP、SMTP);专用协议:私有,封闭(Skype)

传输服务需求与供给

  1. 需求维度:可靠性(文件/Web 需可靠,音频可容忍丢失)、实时性(网络电话)、吞吐量(多媒体带宽敏感)、安全性(金融交易)
  2. TCP 提供:可靠传输、流量控制、拥塞控制、面向连接;不提供:定时、最小数据率保证、安全性
  3. UDP 提供:不可靠数据传输;不提供:可靠性、流量控制、拥塞控制、定时、数据率保证、安全性、连接建立
  4. SSL/TLS:在应用层提供加密的 TCP 连接,保证数据完整性与端认证;应用层通过 SSL socket API 将明文交给 socket,经互联网加密传输

Socket 编程

TCP Socket 交互:

  1. 服务器: socket() 创建 → bind() 绑定本地地址 → listen() 设为被动等待请求 → accept() 提取连接请求,返回新连接套接字 → send()/recv() 传送 → close() 释放
  2. 客户端:socket() 创建 → connect() 发起连接建立请求 → send()/recv() 传送 → close() 释放
  3. 并发服务器:主进程 accept() 后 fork() 从属进程处理连接,主进程继续监听

UDP Socket 交互:

  1. 服务器:socket() → bind() → recvfrom()/sendto() → close()
  2. 客户端:socket() → sendto()/recvfrom() → close()
  3. UDP 无连接,发送前不握手;发送方显式附加目标 IP 与端口,接收方提取发送方地址

DNS

  1. 域名空间:

    • 树状层次:根 . → TLD(.com/.cn)→ 二级域 → 子域。
    • 委托管理:上级通过 NS 记录将子域授权给下级权威服务器。
    • FQDN:全局唯一,逻辑上不区分大小写。
  2. 四类域名服务器:

    类型核心职责
    根知道所有 TLD 地址;全球 13 个逻辑节点(任播扩展)。
    TLD管理对应顶级域,返回二级域的权威服务器地址。
    权威持有该域的原始资源记录(A/MX 等),给出权威答案。
    本地/递归代客户端完成全部查询并缓存;客户端唯一直接接触的服务器。
  3. 查询方式:

    方式特征典型场景
    递归请求方要求一次性返回最终结果,由被请求方负责后续所有查询。主机 → 本地 DNS
    迭代被请求方仅返回已知最佳下一跳,由请求方继续查。本地 DNS → 根/TLD/权威
  4. 根服务器只接受迭代查询,防止过载。

  5. 核心资源记录:

    类型用途
    A主机名 → IPv4
    AAAA主机名 → IPv6
    CNAME别名 → 规范主机名
    NS域 → 其权威服务器
    MX域 → 邮件服务器(含优先级)
    PTRIP → 主机名(反向解析)
  6. DNS 隐私:

    协议机制端口特点
    DoTDNS over TLSTCP/853直接加密,端口特征明显
    DoHDNS over HTTPSTCP/443流量与正常 HTTPS 无差别,隐蔽性强
  7. DNS 安全:

    威胁原理防护
    缓存投毒伪造响应抢在权威答案前注入虚假记录源端口随机化、DNSSEC 数字签名
    重定向篡改 hosts/路由器/ISP 劫持 DNS 服务器地址可信解析器 + DoH/DoT + DNSSEC

FTP 与文件传输

  1. FTP:基于 TCP,C/S 方式;主进程打开熟知端口 21 等待请求,接收后启动从属进程处理单个请求,处理完毕终止
  2. 控制连接:端口 21,传送命令与响应,整个会话期间保持
  3. 数据连接:端口 20,实际传输文件,每次传输时建立,完毕后释放
  4. TFTP:基于 UDP,熟知端口 69,需自身实现差错改正;数据 PDU 固定 512 字节(最后一块可不足),块编号从 1 开始,支持 ASCII/二进制
  5. TFTP 机制:类似停等协议,发完一块等待确认,超时重发;若文件长度恰为 512 字节整数倍,最后发送仅含首部的空数据 PDU 作为结束标志
  6. NFS:允许远程打开文件并在特定位置读写,仅传输少量修改数据,而非整个文件

TELNET

  1. 基于 TCP,实现本地终端到远地主机的透明登录
  2. NVT(网络虚拟终端):客户将本地击键转换为 NVT 格式 送交服务器,服务器将 NVT 格式转换为远地系统格式,返回数据时反向转换;作为统一中间格式屏蔽异构系统差异

HTTP 与万维网

  1. URL 格式:协议://主机:端口/路径;HTTP URL:http://主机:端口/路径
  2. HTTP 工作过程:
    1. 服务器进程持续监听 TCP 端口 80
    2. 浏览器建立 TCP 连接后发送请求
    3. 服务器返回响应页面
    4. 释放 TCP 连接
  3. 特点:基于 TCP,本身无连接(交换完报文即释放);HTTP 1.0 无状态;HTTP 1.1 使用持续连接
  4. 请求一个文档时间:Ttotal=2⋅RTT+TtransT_{total} = 2 \cdot RTT + T_{trans}Ttotal​=2⋅RTT+Ttrans​(一个 RTT 建立 TCP,一个 RTT 请求与响应,TtransT_{trans}Ttrans​ 为传输文档时间)
  5. 持续连接非流水线:收到前一个响应后才能发下一个请求;省去一个 RTT,但服务器空闲、资源浪费
  6. 持续连接流水线:未收到响应即可连续发送请求;所有对象仅需约一个 RTT,效率高;需服务器支持连续响应
  7. 代理服务器(Web Cache):代表浏览器发出 HTTP 请求;缓存近期请求与响应;命中时直接返回本地缓存,减少访问互联网时延
  8. 请求报文结构:请求行(方法 + URL + 版本) + 首部行(首部字段名 : 值) + [实体主体]
  9. 响应报文结构:状态行(版本 + 状态码 + 短语) + 首部行 + [实体主体]
  10. 状态码分类:
    • 1xx:通知信息(请求收到,正在处理)
    • 2xx:成功(接受、知道)
    • 3xx:重定向(需进一步行动)
    • 4xx:客户差错(语法错误、无法完成)
    • 5xx:服务器差错(服务器失效)
  11. Cookie:服务器为用户生成唯一识别码;在 HTTP 服务器与客户之间传递状态信息;用于跟踪用户在该网站的活动
  12. 万维网文档技术:
    • HTML:超文本标记语言,定义页面结构与超链,浏览器解释标签并排版
    • XML:可扩展标记语言,传输数据而非显示数据
    • XHTML:更严格的 HTML,作为 XML 应用
    • CSS:层叠样式表,定义 HTML 文档布局与格式
  13. 文档类型对比:
    • 静态文档:服务器预先存放,内容不变
    • 动态文档:服务器端运行时由 CGI 程序根据请求生成
    • 活动文档:服务器返回程序副本,由浏览器中的 JVM 执行(Java 源程序编译为与机器无关的字节码)
  14. CGI(通用网关接口):定义动态文档创建、输入数据提供、输出结果使用的标准;CGI 程序由解释程序执行,非直接编译运行
  15. 信息检索类型:全文检索(爬虫+索引)、分类目录(人工审核)、垂直搜索(特定领域)

电子邮件

  1. 三大构件:
    • 用户代理 UA:撰写、显示、处理、通信(客户端软件)
    • 邮件服务器:发送/接收邮件,报告传送状态
    • 协议:SMTP(推)、POP3/IMAP(拉)
  2. 特征:邮件不会在互联网中的某个中间邮件服务器落地;地址格式:收件人邮箱名@邮箱所在主机的域名
  3. SMTP:基于 TCP,熟知端口 25;客户-服务器方式,命令-响应交互;文本协议(ASCII 码)
  4. SMTP 通信三阶段:
    1. 连接建立:发送方 SMTP 客户与接收方 SMTP 服务器建立 TCP 连接,不使用中间服务器
    2. 邮件传送:信封 + 首部 + 主体
    3. 连接释放:邮件发送完毕后释放 TCP 连接
  5. 邮件内容首部字段:To:(收件人)、Subject:(主题)、Cc:(抄送)、From/Date(发信人与日期)、Reply-To(回信地址)
  6. POP3 vs IMAP:
特性POP3IMAP
连接方式基于 TCP基于 TCP
操作模式离线联机
下载策略下载全部邮件先下载首部,支持部分读取
文件夹管理仅在客户端客户端与服务器同步
邮件搜索不支持支持
联网需求读取后可离线查阅邮件必须联网
  1. MIME:不取代 SMTP,扩展邮件主体结构,定义非 ASCII 码传送编码规则
  2. MIME 新增 5 个首部字段:MIME-Version、Content-Description、Content-Id、Content-Transfer-Encoding、Content-Type
  3. MIME 内容传送编码:
编码说明适用场景
7bit7 位 ASCII,每行 ≤1000 字符缺省
8bit8 位非 ASCII,每行 ≤1000 字节短非 ASCII 文本
Binary任意长度字节串原始二进制
Base643 字节 → 4 字节 ASCII,开销 25%任意二进制/非文本
Quoted-printable非 ASCII 字节转为 =XX 形式,开销 200%少量非 ASCII 数据
  1. MIME Content-Type 主要类型:text(plain/html/xml)、image(gif/jpeg)、audio、video、application(octet-stream/pdf/zip)、message、multipart
  2. 基于万维网的电子邮件:用户代理通过 HTTP 与邮件服务器交互;邮件服务器之间仍使用 SMTP;无需本地安装专用邮件客户端

P2P 应用

  1. 目录服务演进:
    • 第一代 Napster:集中式目录服务器,文件传输分散;可靠性差、性能瓶颈
    • 第二代 Gnutella:全分布式,洪泛法查询;查询流量大、定位准确性受限
    • 第三代 BitTorrent/DHT:分布式散列表,结构化覆盖网络
  2. BitTorrent:所有对等方集合称为洪流(torrent);数据单元为固定长度的文件块(chunk);追踪器(tracker)提供对等方列表
  3. 数据策略:
    • 最稀有优先(rarest first):优先请求在相邻对等方中副本最少的文件块
    • 一报还一报(tit-for-tat):优先向当前以最高数据率向自己传送文件块的相邻对等方发送数据
  4. P2P 文件分发时间下界(设文件长度 FFF bit,主机数 NNN,服务器上传速率 usu_sus​,各主机上传/下载速率 uiu_iui​ / did_idi​,uT=∑uiu_T = \sum u_iuT​=∑ui​,dmin⁡=min⁡did_{\min} = \min d_idmin​=mindi​):
    • C/S 方式:Tcs≥max⁡(NFus,  Fdmin⁡)T_{cs} \ge \max\left( \frac{NF}{u_s},\; \frac{F}{d_{\min}} \right)Tcs​≥max(us​NF​,dmin​F​)
    • P2P 方式:Tp2p≥max⁡(Fus,  Fdmin⁡,  NFuT)T_{p2p} \ge \max\left( \frac{F}{u_s},\; \frac{F}{d_{\min}},\; \frac{NF}{u_T} \right)Tp2p​≥max(us​F​,dmin​F​,uT​NF​)
    • 当 NNN 很大时,P2P 上限趋于 F/usF/u_sF/us​ 或 NF/uTNF/u_TNF/uT​,C/S 随 NNN 线性增长
  5. DHT:利用散列函数将资源名 KKK 映射为 资源名标识符 KID,结点 IP 地址 NNN 映射为 结点标识符 NID;每个结点仅维护部分目录,任何结点可发起查询
  6. Chord 环:结点按标识符数值从小到大沿顺时针排列成环形覆盖网络;每个资源由 Chord 环上与其标识符值最接近的下一个结点提供服务
  7. 指针表(finger table)加速: 对于结点 NNN,第 iii 行计算 successor(N+2i−1)\text{successor}(N + 2^{i-1})successor(N+2i−1);查询时选择位于目标范围内的最大后继结点转发,将 O(N)O(N)O(N) 的线性查找降为 O(log⁡N)O(\log N)O(logN)

网络安全

安全威胁与目标

攻击分类

  1. 被动攻击:截获、流量分析。仅观察分析 PDU,不干扰信息流,难以检测。防御手段:数据加密。
  2. 主动攻击:篡改、恶意程序、DoS/DDoS。干扰、破坏或伪造通信,可检测。防御手段:加密 + 鉴别。
  3. DDoS:成百上千站点集中攻击单一目标,又称网络带宽攻击或连通性攻击。

安全目标

目标含义应对攻击
保密性仅收发双方理解信息内容被动攻击
端点鉴别验证通信双方真实身份主动攻击
信息完整性内容未被篡改主动攻击
运行安全性系统正常运行,访问控制主动攻击

数据加密模型

  • 加密:Y=EKE(X)Y = E_{K_E}(X)Y=EKE​​(X)
  • 解密:DKD(Y)=DKD(EKE(X))=XD_{K_D}(Y) = D_{K_D}(E_{K_E}(X)) = XDKD​​(Y)=DKD​​(EKE​​(X))=X
  • 无条件安全:无论截获多少密文,信息不足以唯一确定明文
  • 计算安全:现有计算资源无法在合理时间内破译

两类密码体制

对称密钥密码体制

  1. 核心思想:KE=KD=KK_E = K_D = KKE​=KD​=K,通信双方通过安全信道预先共享同一密钥。
  2. DES:
    • 分组长度 64 bit,密钥 64 bit(实际有效 56 bit,8 bit 用于奇偶校验)
    • 算法公开,保密性仅取决于密钥的保密
    • 56 位 DES 已被专用芯片搜索攻击,不再安全
  3. 三重 DES: Y=DESK1(DESK2−1(DESK1(X)))Y = \text{DES}_{K_1}(\text{DES}^{-1}_{K_2}(\text{DES}_{K_1}(X)))Y=DESK1​​(DESK2​−1​(DESK1​​(X)))
    • 当 K1=K2K_1 = K_2K1​=K2​ 时退化为单 DES

公钥密码体制

  1. 核心思想:PK≠SKPK \neq SKPK=SK,由已知加密密钥推导出解密密钥在计算上不可行。
  2. 产生原因:对称密钥的密钥分配问题;对数字签名的需求。
  3. RSA 算法:
    • 安全性基础:大整数素因子分解的困难性

    • 密钥生成:

      1. 随机选取两个大素数 ppp 和 qqq,计算 n=pqn = pqn=pq
      2. 计算欧拉函数 φ(n)=(p−1)(q−1)\varphi(n) = (p-1)(q-1)φ(n)=(p−1)(q−1)
      3. 选取整数 eee 满足 1<e<φ(n)1 < e < \varphi(n)1<e<φ(n) 且 gcd⁡(e,φ(n))=1\gcd(e, \varphi(n)) = 1gcd(e,φ(n))=1
      4. 计算 d≡e−1(modφ(n))d \equiv e^{-1} \pmod{\varphi(n)}d≡e−1(modφ(n))
    • 密钥对:公钥 PK=(e,n)PK = (e, n)PK=(e,n),私钥 SK=(d,n)SK = (d, n)SK=(d,n)

    • 运算:

      操作公式使用密钥
      加密Y=Xe mod nY = X^e \bmod nY=Xemodn接收方公钥 PKBPK_BPKB​
      解密X=Yd mod nX = Y^d \bmod nX=Ydmodn接收方私钥 SKBSK_BSKB​
    • 互逆性: DSK(EPK(X))=XD_{SK}(E_{PK}(X)) = XDSK​(EPK​(X))=X EPK(DSK(X))=XE_{PK}(D_{SK}(X)) = XEPK​(DSK​(X))=X

    • 两种用法:

      用法操作目的
      保密通信PKPKPK 加密 → SKSKSK 解密仅持有 SKSKSK 的接收方可读取
      数字签名SKSKSK 加密 → PKPKPK 解密仅持有 SKSKSK 的发送方可生成,任何人可验证

对称密钥 vs 公钥密码体制

特性对称密钥公钥密码
密钥关系KE=KDK_E = K_DKE​=KD​PK≠SKPK \neq SKPK=SK
密钥公开性双方共享秘密PKPKPK 公开,SKSKSK 保密
通信模式一对一双向多对一单向
主要瓶颈密钥分配困难计算开销大,仍需密钥分配协议
代表算法DES、3DESRSA
典型应用大量数据加密数字签名、密钥交换

数字签名

三要素

  1. 报文鉴别:接收者核实发送者身份(来源认证)
  2. 完整性:发送者事后不能抵赖(防否认)
  3. 不可否认:接收者不能伪造签名(防伪造)

基于公钥的实现

  • 发送方 A 用 SKASK_ASKA​ 对明文 XXX 签名,经互联网传输,接收方 B 用 PKAPK_APKA​ 核实
  • 除 A 外无人拥有 SKASK_ASKA​,故只有 A 能产生该密文;B 用 PKAPK_APKA​ 核实即可确认来源

具有保密性的数字签名

  • 发送方:Y=EPKB(DSKA(X))Y = E_{PK_B}(D_{SK_A}(X))Y=EPKB​​(DSKA​​(X))
  • 接收方:X=EPKA(DSKB(Y))X = E_{PK_A}(D_{SK_B}(Y))X=EPKA​​(DSKB​​(Y))

鉴别

密码散列函数

  1. 输入任意长,输出固定短长度
  2. 多对一映射:不同输入可能产生相同输出
  3. 单向性:找到两个不同报文具有相同散列输出,在计算上不可行

MD5 与 SHA-1

算法输出长度分组长度扫描轮数安全性速度
MD5128 bit512 bit4 轮较低快
SHA-1160 bit512 bit5 轮较高较慢

MD5 计算步骤:

  1. 附加:报文长度(64 bit)追加至末尾
  2. 填充:填充 1∼5121\sim5121∼512 bit,使总长度 ≡448(mod512)\equiv 448 \pmod{512}≡448(mod512),首位为 1,其余为 0
  3. 分组:分割为 512 bit 数据块,每块再分 4 个 128 bit 块
  4. 计算:4 轮复杂运算,生成 128 bit 报文摘要

报文鉴别码 MAC

  1. 问题:单纯散列 H(M)H(M)H(M) 无法防伪造(入侵者可构造 (M,H(M))(M, H(M))(M,H(M)) 冒充 A)
  2. 解决:散列值用密钥 KKK 加密,得到 MAC MAC=EK(H(X))\text{MAC} = E_K(H(X))MAC=EK​(H(X))
    • 入侵者无密钥 KKK,无法伪造 MAC,实现报文鉴别与完整性保护

实体鉴别

鉴别类型对象频率
报文鉴别每一个收到的报文每报文一次
实体鉴别通信对方实体会话期间一次
  1. 重放攻击:截获加密报文直接转发,冒充身份
  2. 防御——不重数(Nonce):一次性大随机数,“一次一数”;通信双方交换不重数并签名验证,截获者无法重复使用
  3. 中间人攻击:C 截获 A 的公钥 PKAPK_APKA​,冒充 A 向 B 发送自己的 PKCPK_CPKC​;B 用 PKCPK_CPKC​ 加密发送给 A,C 截获后用 SKCSK_CSKC​ 解密,再用 PKAPK_APKA​ 加密转发给 A;A、B 均无法察觉通信被窃听

密钥分配

对称密钥分配——KDC

  1. KDC(Key Distribution Center):可信第三方,为通信用户临时分配会话密钥(一次一密)
  2. 用户预先注册主密钥 KAK_AKA​、KBK_BKB​(长期密钥,与 KDC 共享)

Kerberos V5

组件:

  • AS(Authentication Server):鉴别服务器,验证用户身份
  • TGS(Ticket Granting Server):票据授予服务器,发放服务票据
  • 票据(Ticket):用目标服务器密钥加密的报文,包含会话密钥,可转发但不可伪造

流程:

  1. A 向 AS 发送明文身份 IDA,IDTGSID_A, ID_{TGS}IDA​,IDTGS​
  2. AS 返回用 KAK_AKA​ 加密的报文 KA(KS,TGT=KTG(KS,IDA,T1,⋯ ))K_A(K_S, TGT = K_{TG}(K_S, ID_A, T_1, \cdots))KA​(KS​,TGT=KTG​(KS​,IDA​,T1​,⋯))
  3. A 向 TGS 发送 TGT,IDB,KS(IDA,TA)TGT, ID_B, K_S(ID_A, T_A)TGT,IDB​,KS​(IDA​,TA​)
  4. TGS 返回两个票据 KS(KAB,ST=KB(KAB,IDA,T2,⋯ ))K_S(K_{AB}, ST = K_B(K_{AB}, ID_A, T_2, \cdots))KS​(KAB​,ST=KB​(KAB​,IDA​,T2​,⋯))
  5. A 向 B 转发票据 ST,KAB(IDA,,TA)ST, K_{AB}(ID_A, ,T_A)ST,KAB​(IDA​,,TA​)
  6. B 加密发回下一时间戳,确认收到 KAB(TA+1)K_{AB}(T_{A}+1)KAB​(TA​+1)

密钥说明:

密钥持有者作用
KAK_AKA​Alice + ASAlice 的密码派生密钥,AS 用它加密首次响应,只有 Alice 能解密
KTGK_{TG}KTG​TGSTGS 的服务密钥,加密 TGT,客户端无法篡改
KSK_SKS​Alice + TGSAS 随机生成的临时密钥,Alice 用它向 TGS 证明身份
KBK_BKB​Bob + TGSBob 的服务密钥,加密 ST,客户端无法篡改
KABK_{AB}KAB​Alice + BobTGS 随机生成的最终会话密钥,供 Alice 和 Bob 安全通信
  • 要求:所有主机时钟”松散同步”(误差不超过约 5 分钟),防止重放攻击

公钥分配——CA 与 PKI

  1. CA(Certification Authority):将公钥与实体身份绑定;颁发证书,经 CA 私钥数字签名,不可伪造

  2. X.509 证书结构:

    字段说明
    版本号区分 X.509 版本
    序列号CA 发放,唯一
    签名算法签署算法及参数
    发行者CA 的 X.509 名称
    有效期起始/终止时间
    主体名证书持有者名称
    公钥有效公钥及使用方法
    发行者 ID唯一标识发行者(可选)
    主体 ID唯一标识持有者(可选)
    扩展域扩充信息
    CA 签名CA 私钥对证书签名
  3. 证书吊销:私钥泄漏、用户不再被认证、CA 私钥泄漏等,维护证书吊销列表(CRL)

  4. 验证方式:

    1. 验 Cert 1:从 Cert 2 取中间 CA 公钥
    2. 验 Cert 2:从本地 Cert 3 取根 CA 公钥
    3. 根证书(Cert 3):本地白名单直接信任,不验签
    4. 验完后,浏览器从 Cert 1 提取 GitHub 的公钥,开始加密通信

安全协议

网络层安全——IPsec

  1. 组成:

    • AH(Authentication Header):源点鉴别 + 数据完整性,不保密
    • ESP(Encapsulation Security Payload):源点鉴别 + 完整性 + 保密
    • IKE(Internet Key Exchange):创建安全关联 SA
  2. 工作方式:

    方式封装方式应用场景运行位置
    传输模式在传输层报文前后加控制信息 + IP 首部主机到主机端系统
    隧道模式在原始 IP 数据报前后加控制信息 + 新 IP 首部VPN全程路由器
  3. SA(Security Association):

    • 源到终点的单向逻辑连接,双向通信需建立两个 SA
    • 标识:SPI(Security Parameter Index),32 bit 连接标识符
    • 状态信息:源/终点 IP、加密类型、密钥、完整性检查类型、鉴别密钥
  4. 隧道方式 ESP 数据报格式:

    新 IP 首部(未加密) → ESP 首部(SPI+序号) → 原始 IP 首部(加密) → 原始有效载荷(加密) → ESP MAC(鉴别)
  5. IKE 基础协议:

    • Oakley:密钥生成
    • SKEME:密钥交换(基于公钥加密的实体鉴别)
    • ISAKMP:标准化创建 SA 的报文格式

传输层安全——SSL / TLS

  1. 位置:应用层与传输层之间,基于 TCP,与应用协议独立

  2. SSL 安全会话建立过程:

    步骤操作目的
    1A 发送 SSL 版本号及可选加密算法协商算法
    2B 选定算法并告知 A协商算法
    3B 发送含 RSA 公钥的数字证书服务器鉴别
    4A 用 CA 公钥验证证书服务器鉴别
    5A 随机产生秘密数,用 B 公钥加密发送密钥交换
    6双方用协商算法产生共享对称会话密钥会话密钥计算
    7双方用会话密钥加密传输并验证完整性安全数据传输
  3. HTTPS:HTTP over SSL/TLS,端口 443

应用层安全——PGP

  1. 功能:加密、鉴别、电子签名、压缩
  2. 发送方处理:
    1. 对明文 XXX 计算 MD5 摘要 H(X)H(X)H(X)
    2. 用 SKASK_ASKA​ 加密摘要得 MAC,拼接为 (X,MAC)(X, \text{MAC})(X,MAC)
    3. 生成一次性密钥,加密 (X,MAC)(X, \text{MAC})(X,MAC)
    4. 用 PKBPK_BPKB​ 加密一次性密钥
    5. 发送:加密的一次性密钥 + 加密的扩展邮件
  3. 接收方处理:
    1. 用 SKBSK_BSKB​ 解密获得一次性密钥
    2. 用一次性密钥解密获得 (X,MAC)(X, \text{MAC})(X,MAC)
    3. 用 PKAPK_APKA​ 解密 MAC 得 HHH
    4. 对 XXX 计算 MD5 得 H(X)H(X)H(X),比较 H=?H(X)H \stackrel{?}{=} H(X)H=?H(X)

系统安全

防火墙

  1. 功能:阻止(过滤可疑通信)+ 允许

  2. 技术分类:

    类型工作层次过滤依据状态特点
    分组过滤路由器网络/传输层IP 地址、端口、协议类型无状态/有状态简单高效、透明,无法过滤高层数据
    应用网关(代理服务器)应用层应用层数据内容有状态高层过滤、用户鉴别,开销大,需客户端配置

入侵检测系统 IDS

  1. 功能:在入侵造成危害前及时检测并告警/阻断

  2. 检测方法:

    方法原理优点缺点
    基于特征维护已知攻击特征数据库检测已知攻击准确无法检测未知攻击
    基于异常学习正常流量统计规律,检测偏离可检测未知攻击误报率高

密码学原语与安全体系总结

原语实现功能
对称密码(Cipher)DES、3DES加密传输;消息鉴别码 MAC
公钥密码(PKE)RSA加密传输;数字签名
哈希函数(Hash)MD5、SHA-1身份鉴别;辅助消息鉴别和数字签名

安全体系层次:

  • 机密性/完整性:对称/公钥加密 + 哈希函数
  • 可用性:防火墙访问控制、入侵检测防御
  • 安全协议:PKI(公钥基础设施)、对称密钥分发(KDC/Kerberos)+ 网络层/传输层/应用层安全协议

多媒体与服务质量(QoS)

多媒体信息特征

特征说明
信息量大标准语音 64 kbit/s;高质量立体声 1.4 Mbit/s;彩色电视 250 Mbit/s
时延敏感对传输时延与时延抖动均有严格要求
丢失容忍少量分组丢失对播放效果影响有限,可被人耳/人眼容忍

互联网非等时性与播放缓存

  1. 模拟多媒体信号经采样与模数转换后,组装成分组并以恒定速率发送;经过互联网后变为非恒定速率到达。
  2. 接收端设置播放缓存(FIFO 队列),分组到达后暂存,待数量达到阈值后以恒定速率读出播放。
  3. 引入播放时延 TTT,消除时延抖动;代价是所有分组均经受额外迟延,早到达分组停留时间更长。

实时数据传输需求

需求说明
序号分组可能乱序到达,需编号以保证按序还原播放
时间戳标识分组应在何时播放,区分正常停顿与迟延停顿

流式存储音频/视频

服务类型:

类型特征
流式存储边下载边播放,不保留文件(如 YouTube、Netflix)
流式实况边录制边发送
交互式实时双向通信(如 IP 电话)

传统下载 vs 流式播放:

  1. 传统下载:浏览器通过 HTTP 请求完整文件,下载完成后传送给媒体播放器解压缩播放。
  2. 流式播放:采用双服务器架构(万维网服务器 + 媒体服务器),通过元文件获取实际音频/视频 URL。
  3. 媒体服务器专门支持流式音频/视频传送,与媒体播放器通过专用协议(如 RTP)交互。

TCP vs UDP 选择:

协议适用场景特点
TCP流式存储(YouTube、Netflix)可靠传输,通过应用层缓存平滑抖动;防火墙友好
UDP实况转播低时延,少量丢包优于卡顿暂停;需配合 RTP/RTSP

TCP 流式播放步骤:

  1. HTTP 获取视频文件,送入 TCP 发送缓存。
  2. 通过互联网传输至 TCP 接收缓存。
  3. 再送入应用程序缓存(播放器缓存),达到阈值后开始播放(通常 <1< 1<1 min)。
  4. 播放时等时地按帧读出、解压缩、显示。

RTSP / RTP / RTCP

维度RTPRTCPRTSP
协议层次传输层(基于 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:

  1. 实时流式协议,多媒体播放控制协议,本身不传送数据,工作在客户-服务器模式。
  2. 功能:暂停/继续、后退、前进等控制操作,又称”互联网录像机遥控协议”。
  3. 特点:有状态协议(记录客户机状态:初始化/播放/暂停);控制分组可在 TCP 或 UDP 上传送;不定义压缩方案、封装方式或缓存策略。
  4. 工作过程:
    1. 浏览器请求音频/视频文件。
    2. 万维网服务器返回元文件。
    3. 浏览器将元文件传送给媒体播放器。
    4. RTSP 客户与媒体服务器建立连接。
    5. 发送 PLAY 报文开始下载。
    6. 发送 TEARDOWN 报文断开连接。

RTP:

  1. 实时运输协议,为实时应用提供端到端运输,但不提供服务质量保证;属于应用层,或视为 UDP 之上的运输层子层,提供时间戳与序号服务。

  2. 固定首部 12 字节:

    ┌─────┬─────┬─────┬─────┬─────┬─────┬────────┬────────┐
    │  V  │  P  │  X  │ CC  │  M  │ PT  │  序号  │ 时间戳 │
    │ 2b  │ 1b  │ 1b  │ 4b  │ 1b  │ 7b  │  16b   │  32b   │
    ├─────┴─────┴─────┴─────┴─────┴─────┴────────┴────────┤
    │              同步源标识符 SSRC (32b)                  │
    └──────────────────────────────────────────────────────┘
    • 参与源标识符 CSRC [0..15] × 32b(可选扩展)
  3. 封装层次:IP 首部 → UDP 首部(8B) → RTP 首部(12B) → RTP 数据。

RTCP:

  1. 实时运输控制协议,与 RTP 配合使用。

  2. 主要功能:服务质量监视与反馈、媒体间同步、多播组成员标识。

  3. 特点:不封装声音/视像分组;多个 RTCP 分组可封装在一个 UDP 数据报中;周期性传送统计信息报告。

  4. 五种分组类型:

    类型值缩写意义
    200SR发送端报告
    201RR接收端报告
    202SDES源点描述
    203BYE结束
    204APP特定应用

QoS 基本机制

机制功能示例
分类根据准则对输入分组分类,给予不同优先级实时数据高优先级,FTP 低优先级
管制限制数据流速率,防止影响其他流将某流数据率限定为 1 Mbit/s,超限时丢弃
调度为不同应用分配带宽,保证服务质量音频分配 1.0 Mbit/s,文件传送 0.5 Mbit/s
呼叫接纳数据流预先声明 QoS 需求,获准或拒绝进入总数据率超链路带宽时,阻止另一数据流

调度机制

  1. FIFO:默认规则;不能区分时间敏感分组与一般数据,不公平。
  2. 优先级排队:高优先级分组优先服务;高优先级队列始终有分组时,低优先级长期得不到服务。
  3. FQ (Fair Queuing):长分组服务时间长,短分组吃亏;未区分优先级。
  4. WFQ (Weighted Fair Queuing):
    • 给队列(流)iii 指派权重 wiw_iwi​。设 B(t)B(t)B(t) 为时刻 ttt 有积压的队列集合,则队列 i∈B(t)i \in B(t)i∈B(t) 获得的链路带宽份额为:
    Ri(t)=wi∑j∈B(t)wj×RlinkR_i(t) = \frac{w_i}{\sum_{j \in B(t)} w_j} \times R_{link}Ri​(t)=∑j∈B(t)​wj​wi​​×Rlink​
    • 算法(设队列 iii 的第 kkk 个分组 pikp_i^kpik​ 的到达时刻为 aika_i^kaik​,长度为 LikL_i^kLik​):
      • 系统虚拟时间 V(t)V(t)V(t) 的演进速率: dVdt=Rlink∑j∈B(t)wj\frac{dV}{dt} = \frac{R_{link}}{\sum_{j \in B(t)} w_j}dtdV​=∑j∈B(t)​wj​Rlink​​
      • 虚拟开始时间: Sik=max⁡(V(aik), Fik−1)S_i^k = \max\left(V(a_i^k),\ F_i^{k-1}\right)Sik​=max(V(aik​), Fik−1​) 其中 Fi0=0F_i^0 = 0Fi0​=0。
      • 虚拟完成时间: Fik=Sik+LikwiF_i^k = S_i^k + \frac{L_i^k}{w_i}Fik​=Sik​+wi​Lik​​
      • 调度器选择所有积压队列中 FikF_i^kFik​ 最小的分组发送。

管制机制

  1. 三个核心指标:
    • 平均速率:一定时间间隔内通过的分组数。
    • 峰值速率:极短时间间隔内的流量上限。
    • 突发长度:极短时间间隔内连续注入的分组数。
  2. 令牌桶:参数为桶容量 bbb(令牌数)和产生速率 rrr;若 b=0b = 0b=0,即为漏桶 (leaky bucket)。
  3. 与 WFQ 结合控制最大时延:设 nnn 个分组流输入路由器,各流令牌桶参数为 bi,rib_i, r_ibi​,ri​,队列 iii 带宽由 WFQ 公式给出,则最大时延为传输 bib_ibi​ 个分组所需时间: dmax⁡=biRid_{\max} = \frac{b_i}{R_i}dmax​=Ri​bi​​

区分服务 DiffServ

  1. DS 字段:IPv4 服务类型字段 / IPv6 通信量类字段,前 6 bit 作为 DSCP (Differentiated Services CodePoint)。

  2. DS 域:网络划分为多个 DS 域,复杂性放在边界结点,内部路由器尽量简单。

  3. 边界路由器功能:分类器 + 通信量调节器(标记器、整形器、测定器)。

  4. 聚合:将若干流根据 DS 值聚合成少量流,相同 DS 值按相同优先级转发,无需 RSVP。

  5. SLA:ISP 与用户商定支持的服务类别与容许通信量。

  6. PHB (Per-Hop Behavior):只涉及本路由器转发这一跳的处理,与下一跳无关。

    PHB特征服务
    EF (Expedited Forwarding)离开路由器的通信量数据率 ≥\ge≥ 某一数值;低丢失率、低时延、低抖动、确保带宽Premium(优质)服务,类似虚拟租用线
    AF (Assured Forwarding)DSCP 比特 0~2 分 4 个等级,各等级提供最低带宽与缓存;比特 3~5 分 3 个丢弃优先级拥塞时优先丢弃高丢弃优先级分组

在网计算

在网计算概念

动机:

  • AI/HPC 并行编程中 AllReduce 为全局通信瓶颈
  • Host-centric 方案(PS、Ring AllReduce)受限于网卡带宽与端侧处理能力
  • 将计算下沉到交换机/网卡,可在转发路径上消除冗余流量

核心约束:

约束含义影响
资源有限交换机片上存储与计算单元极少聚合器数组容量受限
有状态需维护聚合窗口、未确认状态状态膨胀将阻塞后续聚合
可靠性丢包、ACK 丢失不可避免需保证聚合结果正确性与一致性

设计空间:

维度选项
下沉位置交换机(SwitchML / ATP)/ 网卡侧近端(NetReduce)
聚合粒度向量级 / 包级 / 块级
可靠性机制端侧重传 / 网内 ACK / 超时清空

分布式训练通信

数据并行训练迭代:

  1. 各 Worker 计算本地梯度
  2. 聚合所有 Worker 梯度(AllReduce)
  3. 各 Worker 用全局梯度更新模型

AllReduce:

  • 跨主机对向量逐元素求和,并将结果返回所有主机
  • 广泛存在于数据并行与张量并行中

Host-centric 方案对比

方案拓扑通信模式流量特征瓶颈
Parameter Server (PS)星型Worker → PS → WorkerPS 侧流量为 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 丢失:

  1. 正常情况下:聚合器数组大小 = 窗口大小(如 2),聚合完成后收到 ACK 即释放槽位
  2. ACK 丢失后:交换机无法确认聚合完成,槽位无法释放,聚合器数组膨胀(如增至 4)
  3. 解决:检测到异常后清空聚合器数组,回退到端侧重传,避免状态无限增长

NetReduce

核心机制:

  • 基于 RoCE NIC 的网内聚合
  • 利用 RDMA 连接在交换机处对数据包 payload 进行累加

架构组件:

  • RoCE NIC:支持 RDMA 的网卡,绕过内核直接内存访问
  • Ethernet Switch:嵌入聚合逻辑,维护 packet buffer

数据包格式:

Packet: [header | payload] [header | payload] [header | payload] ...

工作流程:

  1. 建连:Worker 与交换机、Worker 之间建立 RDMA 连接
  2. 发送:Worker 发送梯度数据包(gradients)到交换机
  3. 聚合:交换机在 packet buffer 中对齐累加同序号 payload
  4. 回传:将聚合结果发送回对应连接
  5. 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)
目录
  • 概述
    • 计算机网络定义与组成
    • 协议
    • 网络分类
    • 互联网组成
    • 分层模型
    • Socket API
    • 接入网
    • 交换技术
    • 网络性能指标
  • 物理层
    • 物理层概述
    • 数据通信基础
    • 信道极限容量
    • 编码与调制技术
    • 信道复用技术
    • 传输介质
    • 通信系统实例
  • 数据链路层
    • 概述与位置
    • 成帧与透明传输
    • 差错控制
    • 可靠传输与流量控制
    • 点对点协议
      • PPP 协议
      • HDLC 协议
    • 介质访问控制
    • 以太网
    • 无线局域网
    • 局域网扩展与交换
  • 网络层
    • 服务类型
    • 路由器核心功能
    • 路由算法
    • 互联网路由协议
    • IPv4 编址
    • IPv4 分组格式
    • ARP(地址解析协议)
    • AMQ(主动管理队列)
    • DHCP(动态主机配置协议)
    • NAT(网络地址转换)
    • ICMP(互联网控制报文协议)
    • IPv6
    • 核心对比总结
  • 传输层
    • 传输层概述与端口
    • UDP
    • TCP 报文段首部
    • 可靠传输原理(ARQ)
    • TCP 可靠传输实现
    • TCP 流量控制
    • TCP 拥塞控制(TCP Reno)
    • AQM 与 RED
    • TCP 连接管理
    • UDP 与 TCP 对比
  • 应用层
    • 网络应用体系结构
    • 传输服务需求与供给
    • Socket 编程
    • DNS
    • FTP 与文件传输
    • TELNET
    • HTTP 与万维网
    • 电子邮件
    • P2P 应用
  • 网络安全
    • 安全威胁与目标
      • 攻击分类
      • 安全目标
      • 数据加密模型
    • 两类密码体制
      • 对称密钥密码体制
      • 公钥密码体制
      • 对称密钥 vs 公钥密码体制
    • 数字签名
      • 三要素
      • 基于公钥的实现
      • 具有保密性的数字签名
    • 鉴别
      • 密码散列函数
      • MD5 与 SHA-1
      • 报文鉴别码 MAC
      • 实体鉴别
    • 密钥分配
      • 对称密钥分配——KDC
      • Kerberos V5
      • 公钥分配——CA 与 PKI
    • 安全协议
      • 网络层安全——IPsec
      • 传输层安全——SSL / TLS
      • 应用层安全——PGP
    • 系统安全
      • 防火墙
      • 入侵检测系统 IDS
    • 密码学原语与安全体系总结
  • 多媒体与服务质量(QoS)
    • 多媒体信息特征
    • 互联网非等时性与播放缓存
    • 实时数据传输需求
    • 流式存储音频/视频
    • RTSP / RTP / RTCP
    • QoS 基本机制
    • 调度机制
    • 管制机制
    • 区分服务 DiffServ
  • 在网计算
    • 在网计算概念
    • 分布式训练通信
    • Host-centric 方案对比
    • 网内梯度聚合
      • SwitchML
      • NetReduce
      • ATP
    • 其他在网计算应用
      • 网内键值聚合
© 2026 miniyuan. All rights reserved.
Go to miniyuan's GitHub repo