408 · 计算机网络 · 抓大放小

一份数据,一层层打包,一跳跳转发

整本计网只回答一个问题:两台不直接相连的主机,怎样把数据交到对方的某个程序手里,而且不丢、不乱、不把网络挤垮。每一层只解决其中一小块,下层替上层干活,上层不管下层怎么干。

计网 25 分选择约 8 道 × 2 分大题 1 道 ≈ 9 分大题主场:网络层 + 传输层

五层,每层只管一件事

点任意一层,看它必须会做的和看一眼就行的。切到"路径"标签,看打开一个网页时数据怎样穿过这五层。

右侧四个标签依次是:考试分量 · 数据单位 · 用什么地址 · 工作在这一层的设备。

分数从哪来

星越多越要花时间。大题几乎都是"给一个网络拓扑或抓包数据,连着问几层",所以网络层和传输层要能算、能写过程。

章分量选择题常考大题里的角色
1 体系结构★★时延计算、分层与协议/服务概念、分组交换算总时延时会用到
2 物理层★★奈氏、香农、编码(曼彻斯特)基本不出
3 数据链路层★★★★滑动窗口、CSMA/CD、交换机、冲突域/广播域以太网帧头、窗口与利用率计算
4 网络层★★★★★IP 首部、子网与 CIDR、路由协议、ARP/DHCP/NAT/ICMP核心:子网划分、路由表、转发、分片、抓包读 IP
5 传输层★★★★TCP 连接管理、拥塞控制、UDP 与 TCP 对比握手序号、cwnd 变化、读 TCP 首部
6 应用层★★DNS 查询过程、HTTP 连接方式、常见端口作为"访问网页"综合题的开头

必会计算,一页纸

计网的计算题就这几类。每张卡片只记公式和一个最容易错的地方。

时延第 1 章

发送时延 = 数据长度 ÷ 带宽
传播时延 = 距离 ÷ 传播速率

易错:带宽影响发送时延,不影响传播时延;分组交换要算"每一跳都发送一次"。

极限速率第 2 章

奈氏(无噪声):2W · log₂V
香农(有噪声):W · log₂(1 + S/N)

易错:dB 要先换算,S/N(dB) = 10·log₁₀(S/N);两个都给时取较小者。

滑动窗口第 3 章

n 位序号:GBN 发送窗口 ≤ 2ⁿ − 1
SR:发送窗口 + 接收窗口 ≤ 2ⁿ

利用率 = 发送窗口内能发的时间 ÷ (发一帧时间 + RTT),不超过 1。

CSMA/CD 最短帧第 3 章

最短帧长 = 2τ × 数据传输率

2τ 是争用期(端到端往返传播时延)。以太网规定最短帧 64B,帧头 14B + FCS 4B,数据 46~1500B。

子网与 CIDR第 4 章

可分配主机数 = 2^主机位 − 2

减 2 是全 0(网络地址)和全 1(广播地址)。转发时用最长前缀匹配;路由聚合取公共前缀。

IP 首部与分片第 4 章

首部长度 ×4B 总长度 ×1B 片偏移 ×8B

固定首部 20B。分片时每片数据部分(除最后一片)必须是 8 的倍数,每片都要带自己的 IP 首部。

TCP 三次握手第 5 章

① SYN seq = x
② SYN+ACK seq = y,ack = x+1
③ ACK seq = x+1,ack = y+1

SYN、FIN 各消耗一个序号;ack 永远是"期望收到的下一个字节号"。TCP 首部 20B,数据偏移 ×4B;UDP 首部 8B。

拥塞控制第 5 章

发送窗口 = min(rwnd, cwnd)

慢开始:每个 RTT 翻倍,到 ssthresh 后每个 RTT +1。超时:ssthresh = cwnd/2,cwnd = 1。3 个重复 ACK:ssthresh = cwnd/2,cwnd = ssthresh(快恢复)。

HTTP 用几个 RTT第 6 章

非持久:每个对象 2 RTT(建连 + 请求)

持久非流水线:建连 1 RTT 后每个对象 1 RTT;持久流水线:所有引用对象合计约 1 RTT。先确认题目是不是要加 DNS 查询时间。

贯穿全书的三个思想

碰到没见过的协议,先想它是哪一种,基本就能猜出它为什么存在。

分层封装

每层往下交数据时加一个自己的首部,对方同一层再把它拆掉。

大题读抓包数据就是"剥洋葱":先跳过 14B 以太网头,再按 IP 首部长度找到 TCP 头。

可靠传输就三招

编号(序号)、回执(确认)、超时重发(重传),再用滑动窗口一次多发几个。

链路层的停等/GBN/SR 和 TCP 是同一套思想,学会一次用两遍。

逐跳 vs 端到端

链路层只管相邻两点,网络层管整条路径,传输层只在两端主机上运行。

所以每过一个路由器,帧的 MAC 地址都会换,IP 地址不变(NAT 除外),端口只有主机看。

逐章看重点

每章一页:一条主线、几个必考重点配例题、易错速记,再加几道自测题。

分值与题量按近年真题的大致分布,具体以当年官方考试大纲为准。这一页用来建立框架;具体某个协议的细节,做题碰到时再查。