文章

计算机网络期末复习

计算机网络期末复习

计算机网络》期末终极通关清单

🧮 模块一:核心公式与避坑速查

考点类别核心公式⚠️ 致命考场陷阱(必看)
发送时延$D_{trans} = \frac{L}{R}$$R$ 是带宽(bps),$L$ 是包长(bits)。题目若给 $KB$,必须 $\times 8$!
传播时延$D_{prop} = \frac{d}{v}$电缆光纤 $v \approx 2 \times 10^8$ m/s,空气 $v \approx 3 \times 10^8$ m/s。
奈奎斯特定理$C = 2 \times BW \times \log_2(V)$无噪声信道。$BW$ 单位是 Hz,$V$ 是电平级数。
香农定理$C = BW \times \log_2(1 + S/N)$有噪声信道。若题目给 $dB$,必须先用 $dB = 10 \log_{10}(S/N)$ 解出 $S/N$ 纯数字,再代入公式!
波特率与比特率$BitRate = BaudRate \times \log_2(V)$若为 16-QAM,则 $V=16$,一个符号带 $\log_2(16)=4$ 个比特。
最小帧长$L_{min} = R \times 2\tau = R \times \frac{2d}{v}$$2\tau$ 是往返时延(RTT)。只有帧长 $\ge L_{min}$ 才能检测出冲突。
令牌桶突发时间$S = \frac{C}{M - \rho}$$C$为桶容量,$M$为线速,$\rho$为令牌生成速率。
停等协议效率$\eta = \frac{T_{trans}}{T_{trans} + RTT}$分子是实际传数据的时间,分母是一个完整周期的总时间。

🛠️ 模块二:八大必考题型与【傻瓜式解题步骤】

题型 1:CDMA 码片序列解码 (必考)

  • 题干特征:给出各站的码片序列 $A, B$ 和接收到的总信号 $S$,问 A 发了什么?
  • 解题步骤
    1. 写出式子:将总信号 $S$ 与目标站 $A$ 的码片序列进行点乘(内积)
    2. 对应位相乘:注意负负得正!例如 $S=(-1, +1, -3…)$, $A=(-1, -1, -1…)$,则 $(-1\times-1) + (+1\times-1) + (-3\times-1)…$
    3. 求和除以长度:把乘出来的数相加,必须除以码片的总长度(通常是 8)
    4. 得出结论:结果是 1 $\rightarrow$ 发了比特1;结果是 -1 $\rightarrow$ 发了比特0;结果是 0 $\rightarrow$ 没发数据。

题型 2:CRC 循环冗余校验求发送串 (必考)

  • 题干特征:给出数据 $M(x)$ 和生成多项式 $G(x)$,求实际发送的比特流。
  • 解题步骤
    1. 提取除数:将 $G(x)$ 化为二进制串,最高次幂记为 $r$。例如 $x^3+x+1 \rightarrow 1011$,$r=3$。
    2. 被除数补0:在原数据末尾补上 $r$ 个 0
    3. 模2除法:用被除数除以除数,运算规则是“异或”(同则0,异则1)。每次将除数与被除数最高位的 1 对齐异或,直到把有效数据位全消掉。
    4. 拼接结果:最后剩下的 $r$ 位余数就是 FCS。实际发送序列 = 原数据 + FCS

题型 3:IPv4 数据报分片计算 (必考大题)

  • 题干特征:IP包总长4000B,IP头20B,途经 MTU=1500B 的链路,求各分片参数。
  • 解题步骤
    1. 算净载荷上限:$MaxPayload = MTU - 20$ (IP头)。例如 $1500-20=1480$ B。
    2. 检查 8 的倍数(关键陷阱):算出来的净载荷必须能被 8 整除。若不能,向下取整到 8 的倍数!(1480能被8整除,OK)。
    3. 填表列分片
      • 分片1:长度 $1480+20=1500$。MF = 1Offset = 0
      • 分片2:长度 $1480+20=1500$。MF = 1Offset = 1480 / 8 = 185
      • 分片3:算剩余数据 ($4000-20-1480\times2 = 1020$)。长度 $1020+20=1040$。MF = 0 (最后一片)。Offset = (1480\times2) / 8 = 370

题型 4:CIDR 路由表最长前缀匹配

  • 题干特征:给出一条目标 IP,给出几个带掩码的路由表项(如 /16, /21, /24),问从哪个口转发。
  • 解题步骤
    1. 找差异字节:看目标 IP 和路由表 IP 在第几个字节开始不同(通常是第3个字节)。
    2. 转二进制:把那个不同的字节转成 8 位二进制。
    3. 按位核对:根据掩码长度(如 /21 就是看前缀 21 位,即第3个字节的前 5 位),比对二进制是否一致。
    4. 最长匹配:如果有多个都一致,选掩码数字最大的那个(即最具体的路由)。

题型 5:交换机自学习算法推导

  • 题干特征:交换机连接 A, B, C,MAC表为空。A发给B,B发给A,C发给A… 问交换机的动作。
  • 解题步骤(每一步套这句话)
    1. 自学习:收到帧,立刻将“源 MAC”和“进入端口”写入 MAC 表。
    2. 查表决策:拿着“目的 MAC”去查表。
      • 查不到 $\rightarrow$ 泛洪 (Flood)(发给除进端口外的所有端口)。
      • 查到了,且端口 $\neq$ 进端口 $\rightarrow$ 精确转发 (Forward)
      • 查到了,且端口 $=$ 进端口 $\rightarrow$ 丢弃 (Drop)

题型 6:Dijkstra 最短路径画表

  • 题干特征:给一张图,求源点到所有点的路由表。
  • 解题步骤
    1. 建表:列是各个节点,行是迭代步骤 (Step)。
    2. 初始化:源点距离为 0,直连邻居填线段权重,其他填 $\infty$。
    3. 核心循环:每次在未确认的节点中选距离最小的作为跳板节点 $w$。
    4. 刷新邻居:看通过 $w$ 去邻居 $v$ 会不会更近?如果 $D(w) + Cost(w,v) < D(v)$,则更新 $D(v)$,并把 $v$ 的前驱记为 $w$。

题型 7:TCP 拥塞控制曲线/序列图 (终极Boss)

  • 题干特征:给出 ssthreshcwnd 的初值,发生几次ACK,发生超时或 3 Dup ACK,求 cwnd 怎么变。
  • 解题步骤
    1. 慢开始阶段cwnd < ssthresh。每经过 1 个 RTT(收到全量ACK),cwnd 翻倍 ($1 \rightarrow 2 \rightarrow 4 \rightarrow 8$)。
    2. 拥塞避免阶段cwnd >= ssthresh。每经过 1 个 RTT,cwnd 加 1 ($8 \rightarrow 9 \rightarrow 10$)。
    3. 遇到 3 个重复 ACK (快重传/快恢复):
      • ssthresh = 当前 cwnd / 2
      • TCP Renocwnd = 新 ssthresh + 3,之后线性加 1。
      • TCP Tahoecwnd = 1,进入慢开始。
    4. 遇到 Timeout (超时)
      • ssthresh = 当前 cwnd / 2
      • 无论是 Reno 还是 Tahoe,cwnd 统统掉到 1,进入慢开始!

题型 8:HTTP 报文参数提取

  • 套路:纯阅读理解。
    • 状态码:第一行 200 OK (成功), 404 Not Found (失败)。
    • 长度:找 Content-Length: XXX
    • 时间:找 Date: XXX
    • 最后修改:找 Last-Modified: XXX
    • 持久连接:找 Connection: Keep-Alive

🧠 模块三:高频概念对比与避坑 (简答题大杀器)

1. 协议的“三座大山”与体系结构

  • OSI vs TCP/IP:OSI 严格区分了服务、接口、协议,但实现复杂。TCP/IP 是事实标准,设计为沙漏型(IP层极简)。
  • 虚电路 vs 数据报:虚电路(面向连接,路由器保存状态,按序到达);数据报(IP采用,无连接,每个包独立路由,可能乱序/丢包)。

2. 传输层双雄:TCP vs UDP

  • TCP:面向连接、可靠传输、面向字节流、有流量控制(rwnd)拥塞控制(cwnd)。用于 HTTP/FTP/SMTP。
  • UDP:无连接、不可靠、面向报文、无拥塞控制(发多快算多快)。用于 DNS/流媒体(RTSP)/TFTP。

3. 滑动窗口双煞:GBN vs SR

  • GBN (后退N帧):接收窗口 = 1。累计确认。如果中间丢了一个包,即使后面到了好包也丢弃。发送端超时后,重传丢失包及其后面的所有包。(浪费带宽)。
  • SR (选择重传):接收窗口 > 1。独立确认。把乱序的好包缓存起来。发送端超时后,只重传丢失的那个包。(效率高但复杂)。

4. MAC层双盾:CSMA/CD vs CSMA/CA

  • CSMA/CD (碰撞检测):用于有线以太网。边发边听,发现冲突立刻停止并发送 Jam 信号,使用二进制指数退避
  • CSMA/CA (碰撞避免):用于无线 WiFi。因为无线电衰减大且有隐藏终端问题,无法边发边听。用 RTS/CTS 控制帧提前预约信道。

5. 其他高频杂项

  • NAT (网络地址转换):解决 IP 枯竭。重写内外网 IP 和端口,破坏了端到端原则
  • ARP vs ICMP:ARP 在局域网内广播找 IP 对应的 MAC 地址。ICMP 用于网络层传报错和控制报文(如 Ping, Traceroute)。
  • 流媒体抗丢包:不重传,用 交织 (Interleaving) 技术将突发大错打散成微小误差,利用人耳容错率解决。
  • IPv6 核心变化:128位地址,头部定长,绝对不允许路由器进行分片(包太大直接丢,让源主机切小了再发)。
本文由作者按照 CC BY 4.0 进行授权