本文将原来的两篇网络笔记合并为一条连续知识链,重点消除重复目录,统一可靠传输协议的比较口径。

计算机网络学习笔记

超清晰整理 | 适合复习背诵


一、网络分层结构

1. OSI 七层模型(理论)

  1. 物理层
  2. 数据链路层
  3. 网络层
  4. 传输层
  5. 会话层
  6. 表示层
  7. 应用层

2. TCP/IP 四层模型(实际使用)

  1. 网络接口层
  2. 网络层
  3. 传输层
  4. 应用层

二、通信基础概念

  • 信源:信息的发送方
  • 信宿:信息的接收方
  • 信道:信号传输的物理通道
  • 信号
    • 数字信号:离散、不连续
    • 模拟信号:连续变化

码元、波特率、比特率

  • 码元:一个固定时长的信号波形,代表一个离散数值
  • 波特率:每秒传输的码元数(码元速率)
  • 比特率:每秒传输的比特数(信息速率)
  • 关系:比特率 = 波特率 × log₂(一个码元携带的比特数)

三、信道的极限容量

1. 噪声

传输过程中混入的干扰信号,会影响数据准确性。

2. 奈奎斯特定理(无噪声)

极限码元传输速率:
C = 2W log₂(N)

  • W:信道带宽
  • N:码元的离散电平数

3. 香农定理(有噪声)

极限信息传输速率:
C = W log₂(1 + S/N)

  • S/N:信噪比
  • 信噪比(dB)= 10 log₁₀(S/N)
  • 例:S/N=1000 → 30dB

四、编码与调制

1. 常用编码

  1. NRZ 不归零编码
    高电平1,低电平0,简单但无法同步。
  2. RZ 归零编码
    每个码元中间归零,自带同步,但浪费带宽。
  3. NRZI 反向非归零
    翻转表示1,不翻转表示0。
  4. 曼彻斯特编码
    前高后低=1,前低后高=0,自带时钟,以太网使用。
  5. 差分曼彻斯特编码
    码元开始处翻转=0,不翻转=1,抗干扰更强。

2. 编码特点

  • 自同步能力
  • 带宽开销
  • 抗干扰能力

3. 调制方式

  • 调幅 AM
  • 调频 FM
  • 调相 PM
  • 正交幅度调制 QAM

五、传输介质

导向型

  • 双绞线
  • 同轴电缆
  • 光纤

非导向型

  • 无线电、微波、红外、激光

物理层接口特性

  • 机械特性
  • 电气特性
  • 功能特性
  • 规程特性

六、物理层设备

  • 中继器:放大信号,延长传输距离
  • 集线器:多口中继器,共享带宽,所有端口在同一个冲突域
  • 冲突域:同一域内设备同时发送会产生冲突
  • 中继器与集线器不能隔离冲突域

七、数据链路层

1. 物理链路 & 逻辑链路

  • 物理链路:实际线路
  • 逻辑链路:加上协议后的通信通道

2. 数据链路层功能

  1. 封装成帧
    • 帧定界
    • 透明传输
  2. 透明传输
    不管数据是什么,都能正确传输。
  3. 差错控制
    • 检错:发现错误
    • 纠错:自动修复错误

八、差错控制(完整补全版)

1. 检错编码

(1)奇偶校验码

  • 在数据后加1位,使1的总数为奇数/偶数。
  • 只能检测奇数个位错误,无法纠错。

(2)循环冗余校验 CRC

  • 通过多项式除法计算冗余码。
  • 检错能力强,广泛用于数据链路层(如以太网)。
  • 只能检错,不能纠错

2. 纠错编码(你学到这里)

海明校验码

  • 既能检错,又能纠错(1位错可直接纠正)。
  • 核心思想:加入多个校验位,按分组校验,定位错误位置。

海明码基本规则

  1. 校验位 r 满足:2ʳ ≥ 数据位 + r + 1
  2. 校验位放在 2⁰、2¹、2²… 位置(1、2、4、8…)
  3. 每一位数据由多个校验位共同监督
  4. 按异或运算得到校正因子,判断是否出错
  5. 若只有1位错,可直接定位并纠正

特点

  • 检测 2 位错误
  • 纠正 1 位错误
  • 常用于对可靠性要求高的场景

九、可靠传输与滑动窗口

滑动窗口同时服务于流量控制和可靠传输。发送方维护可发送但尚未确认的帧范围,接收方通过 ACK 推动窗口向前移动。帧序号使用 n 位二进制时,序号空间共有 $2^n$ 个值。

1. 停止等待协议

发送方每发送一帧就等待 ACK,超时后重传当前帧。接收方使用 0、1 两个序号识别重复帧。

  • 发送窗口 $W_T=1$,接收窗口 $W_R=1$;
  • 实现简单、缓存少;
  • 往返时延较大时,信道利用率很低。

2. 后退 N 帧协议(GBN)

发送方可以连续发送多帧,接收方只接收按序到达的帧并使用累积确认。某帧丢失后,发送方从该帧开始重传后续所有未确认帧。

  • 接收窗口固定为 $W_R=1$;
  • n 位序号下,$W_T \le 2^n-1$;
  • 实现简单,但链路错误率高时会产生无效重传。

3. 选择重传协议(SR)

接收方可以缓存乱序帧,每一帧单独确认;发送方只重传超时或出错的帧。

  • 发送窗口和接收窗口都可以大于 1;
  • 为避免新旧帧序号混淆,窗口通常满足 $W_T,W_R \le 2^{n-1}$;
  • 带宽利用率更高,但缓存和协议实现更复杂。

4. 统一对比

协议 发送方式 确认方式 乱序帧 重传范围
停止等待 一次一帧 单帧 ACK 不涉及 当前帧
GBN 连续发送 累积确认 丢弃 出错帧及其后续帧
SR 连续发送 逐帧确认 缓存 仅出错帧

5. 高频易错点

  1. GBN 的接收窗口始终为 1;
  2. SR 需要限制窗口大小,避免序号回绕后无法区分新旧帧;
  3. ACK 丢失不代表数据帧一定丢失,接收方必须识别重复帧;
  4. 信道利用率不仅取决于窗口,还取决于发送时延、传播时延和误码率;
  5. “只重传一帧”节省带宽,但会增加缓存和状态管理成本。

十、复习主线

物理层解决“比特怎样在介质上传输”,数据链路层解决“相邻节点之间怎样把一组比特可靠地当成帧交付”。编码、差错检测、帧序号、ACK、超时和滑动窗口,都是围绕这两个问题逐步增加的机制。