简介:这份北师大计算机网络期末考试样卷面向高校计算机及相关专业学生,用于期末复习与自测,帮助梳理课程核心考点、检验知识掌握程度。试卷覆盖信道分配方案、纠错编码、数据链路层概念、传输层协议设计、CRC校验、DSL技术、信道利用率、缓冲区管理、曼彻斯特编码、IP数据报分片重组、Nagle与Clark算法、奈奎斯特定理与香农定理、距离矢量路由算法等知识点,题型包含单选、填空与判断,并附有详细解析,便于对照理解。资源包共1个docx文件,约769KB,内容为完整试卷文档,可直接打印练习。目前已有119人学习下载,适合需要系统刷题、查漏补缺的备考学生使用。
1. 从一份期末样卷看计网知识地图:哪些模块在反复考
如果你正在系统复习计算机网络,或者手头就缺一份能拿来当“复习地图”的样卷,那这份期末样卷的价值不在于押题,而在于它把整门课的核心模块几乎全串了一遍。从信道分配到纠错编码,从滑动窗口到路由算法,从物理层编码到传输层拥塞控制,一张卷子覆盖了五层模型里最常考、也最容易混淆的知识点。梳理下来会发现,这份样卷的考点分布很有规律:物理层和数据链路层占选择填空的大头,传输层和网络层则集中在计算与问答题。适合已经过了一遍教材、需要查漏补缺的人,也适合刚开始复习、想先看清知识地图再逐个击破的人。下面按模块把重点、难点和易错点拆开讲。
2. 物理层与数据链路层:编码、校验与信道分配的核心考点
2.1 曼彻斯特编码与差分曼彻斯特编码的频率关系
样卷里有一道选择题直接考了 10Mbps 速率下两种编码的信号变化频率。这里最容易翻车的地方是把“波特率”和“比特率”混为一谈。曼彻斯特编码每个比特周期中间都有一次电平跳变,用于自同步,所以信号变化频率等于比特率,10Mbps 对应 10MHz。差分曼彻斯特编码则在每个比特周期开始时根据下一比特决定是否跳变,加上中间的同步跳变,每比特至少两次变化,所以信号变化频率是比特率的两倍,即 20MHz。
梳理下来会发现,这类题的核心就一句话:曼彻斯特编码用跳变表示数据,差分曼彻斯特用跳变表示开始。做题时先画一个比特周期的波形,数跳变次数,比死记结论可靠。
注意:如果题目问的是“调制速率”而不是“信号变化频率”,曼彻斯特编码的波特率是比特率的两倍,因为一个比特需要两个信号周期。这两个概念在选择题里经常互换着考。
2.2 CRC 校验的手算流程与多项式对应
CRC 是填空题和选择题的常客。样卷里给帧 1101011011 和生成多项式 x^4+x+1,要求算 CRC。步骤很固定:先把生成多项式写成二进制,x^4+x+1 对应 10011,最高次是 4,所以在帧后面补 4 个 0,得到 11010110110000。然后用模 2 除法(异或)除以 10011,余数就是 CRC。
被除数:11010110110000 除数: 10011 第一步:11010 异或 10011 = 01001 后续步骤逐位下拉,每次取够 5 位做异或 最终余数:1110参数说明:生成多项式的最高次决定补零个数,也决定 CRC 的位数。x^4 对应 4 位 CRC。模 2 除法里没有借位,只有异或。算完记得把余数补足 4 位,不足前面补 0。这道题答案是 1110,对应选项 C。
最容易忽略的是:CRC 只能检错不能纠错,而且生成多项式的选择直接影响检错能力。考试里如果问“为什么选这个多项式”,通常答它能检测奇数位错、双比特错和突发长度小于等于 r 的错。
2.3 信道分配:ALOHA、CSMA 与成功概率计算
样卷里有一道题问 k 个站竞争信道,每站每时槽发送概率为 p,求某一个站成功获得信道的概率。这是纯概率题,但背后是 ALOHA 和 CSMA 的区分。成功意味着“这个站发了,其他 k-1 个站都没发”,所以概率是 p(1-p)^(k-1),选 B。
这里容易错的地方是把“某一个站成功”理解成“至少一个站成功”。前者是固定一个站,后者是 1 减去所有站都不发的概率。题目问的是“某一个站”,所以是前者。另外,当竞争站点数量小且固定、流量连续时,FDM 和 TDM 这类静态分配反而更有效,因为动态分配的碰撞开销不划算。这也是样卷第一题选 C 的原因。
梳理下来,信道分配这块的复习重点就三条:纯 ALOHA 的吞吐率是 0.184,时槽 ALOHA 是 0.368,CSMA 在低负载时比 ALOHA 好,但高负载时碰撞增多。做题时先判断是“固定分配”还是“动态竞争”,再套公式。
2.4 海明距离与纠错编码的判定
海明距离是两个等长码字对应位不同的个数。样卷里 10101001 和 10110001 逐位比较,第 3、4、5 位不同,距离是 3。为了纠正 d 个错误,需要最小距离为 2d+1 的编码方案。所以选 C。
这里有个反直觉的点:海明距离为 3 的编码可以纠正 1 位错,或者检测 2 位错,但不能同时做。考试里如果问“检测 d 个错需要多大距离”,答案是 d+1;问“纠正 d 个错”,答案是 2d+1。这两个公式经常被混在一起考。
提示:海明码的校验位位置是 2 的幂次(1、2、4、8…),数据位填在其余位置。收到位串后,把所有校验位对应的组做异或,得到的值就是出错位的位置。样卷里那道“00011100101”的题,按这个流程走一遍就能还原发送位串。
3. 网络层与传输层:路由、分片与滑动窗口的复习重点
3.1 距离矢量路由算法与路由环路
距离矢量算法的核心是每个路由器维护一张到所有目的地的距离表,定期和邻居交换。样卷里要求填 J 到 F 的距离,并指出算法缺陷。缺陷就是路由环路和慢速收敛。经典场景是 A 告诉 B 它能到 X 距离 1,B 告诉 C 距离 2,C 告诉 A 距离 3,一旦 X 不可达,A、B、C 之间会互相以为对方能到,距离逐次加 1,直到无穷大。
解决办法是水平分割和毒性逆转。水平分割是“从哪个接口学到的路由,不再从这个接口发回去”。毒性逆转是“从某个接口学到的路由,从这个接口发回去时距离设为无穷大”。这两种方法在选择题和问答题里都出现过。
梳理下来,距离矢量算法的复习重点:交换的是“我到所有目的地的距离向量”,收敛慢,好消息传得快,坏消息传得慢。链路状态算法(OSPF)交换的是链路状态,收敛快,但计算复杂。考试里如果问“为什么 RIP 限制最大跳数为 15”,答“防止路由环路导致计数到无穷大”。
3.2 IP 数据报分片与重组的位置
样卷里有一道选择题问分片重组通常发生在哪里。答案是目的主机。分片可以发生在源主机或中间路由器,但重组只在目的主机做。原因是中间路由器重组会增加延迟和缓冲区压力,而且分片可能走不同路径,中间路由器不一定能看到所有分片。
这里容易错的是把“分片”和“重组”的位置搞反。分片是“谁需要发就往小切”,重组是“谁最终收就谁来拼”。IPv4 头部里的标识、标志、片偏移三个字段就是为分片服务的。标识用来区分不同数据报的分片,标志里的 DF 表示禁止分片,MF 表示还有更多分片,片偏移以 8 字节为单位。
注意:IPv6 不允许中间路由器分片,分片只能由源主机做。如果路径 MTU 小于数据报大小,路由器会发 ICMPv6 “Packet Too Big” 消息,源主机据此调整。
3.3 滑动窗口:序列号空间与死锁问题
样卷问答题里有一道关于可变滑动窗口的时序图题,问为什么第 2 条消息的 ack=15,以及消息 16 的死锁如何解决。这类题的核心是窗口大小和序列号空间的关系。如果窗口大小是 N,序列号空间必须至少是 2N,否则接收方无法区分“新帧”和“重传帧”。
死锁场景是这样的:发送方发了 0 到 N-1 的帧,接收方确认了但确认丢失,发送方超时重传 0。接收方此时期待的是 N,收到 0 后以为又是新帧,于是窗口滑动,但实际数据已经重复。如果序列号空间不够,接收方无法判断这是重传还是新帧,就会卡住。
解决办法是扩大序列号空间到 2N,或者使用选择重传而不是回退 N 帧。样卷里那道题的具体数值需要结合图看,但原理就是:ack=15 说明接收方已经收到了 0 到 14,期待 15。消息 16 的死锁是因为发送方窗口满了但确认没回来,接收方窗口也满了但数据没到,双方互相等。解决方法是发送方设置超时定时器,超时后重传最老的未确认帧。
3.4 慢启动与拥塞控制的两个窗口
样卷填空题问慢启动算法要求发送方维护哪两个窗口,以及每次发送字节数取决于什么。答案是拥塞窗口和接收方窗口,发送字节数取两者的最小值。拥塞窗口由发送方根据网络状况动态调整,接收方窗口由接收方根据缓冲区大小通告。
慢启动的过程:初始拥塞窗口为 1 个 MSS,每收到一个 ACK 就加 1,所以是指数增长。到达阈值后进入拥塞避免,变成线性增长。超时后阈值减半,拥塞窗口回到 1,重新慢启动。快重传和快恢复是收到三个重复 ACK 时的处理,不回到 1,而是阈值减半后从新阈值开始。
这里最容易混的是“慢启动不慢”——它是指数增长的,叫慢启动只是因为起点低。考试里如果问“慢启动什么时候结束”,答“到达慢启动阈值或者发生超时”。
4. 那些容易漏掉的细节:从样卷里反推易错点
4.1 易漏点一:传输层和链路层重传定时器的区别
样卷选择题第 4 题问传输层和链路层重传定时器的超时间隔大小区别。答案是传输层 RTT 抖动大,链路层抖动小,由通信双方间的链路性质决定。很多人会选反,觉得传输层更可靠所以定时器更精确。实际上传输层是端到端的,路径可能跨多个网络,RTT 变化大;链路层是点到点的,RTT 相对稳定。
补法:记住“端到端抖动大,点到点抖动小”。TCP 的定时器用 Jacobson/Karels 算法动态估算 RTT,而链路层协议(如 PPP)的定时器通常固定或简单调整。
4.2 易漏点二:Nagle 算法和 Clark 算法的互补关系
样卷填空题问 Nagle 算法解决什么问题,Clark 解决什么问题。Nagle 解决的是“发送方产生大量小分片”的问题,它要求发送方在收到所有已发数据的 ACK 之前,不发送新的小分片。Clark 解决的是“接收方窗口太小导致发送方频繁发送”的问题,它要求接收方在窗口达到一定大小之前不通告窗口更新。
这两个算法经常被混在一起考。补法:Nagle 管发送方,Clark 管接收方。Nagle 减少小包数量,Clark 避免愚笨窗口综合症。两者可以同时工作。
4.3 易漏点三:ADSL 的传输介质和复用方式
样卷选择题问 ADSL 通常使用什么传输。答案是电话线路。ADSL 在电话线上使用频分复用,把 0 到 4kHz 留给语音,其余频段用于上行和下行数据。上行和下行带宽不对称,所以叫“非对称”。
容易错的是把 ADSL 和有线电视网混淆。有线电视网用的是同轴电缆,ADSL 用的是双绞线。补法:记住“ADSL 跑在电话线上,HFC 跑在同轴电缆上”。
4.4 易漏点四:中继器、集线器、网桥、交换机、路由器和网关的层次归属
样卷判断题第 3 题说“中继器、集线器、网桥、交换机、路由器和网关都是网络层互联设备”,这是错的。中继器和集线器在物理层,网桥和交换机在数据链路层,路由器在网络层,网关在应用层。补法:画一张表,按 OSI 七层把设备填进去,比死记硬背强。
| 设备 | 工作层次 | 转发依据 |
|---|---|---|
| 中继器 | 物理层 | 信号放大 |
| 集线器 | 物理层 | 广播 |
| 网桥 | 数据链路层 | MAC 地址 |
| 交换机 | 数据链路层 | MAC 地址 |
| 路由器 | 网络层 | IP 地址 |
| 网关 | 应用层 | 应用协议 |
4.5 易漏点五:三次握手同时发起连接的结果
样卷判断题第 1 题问双方同时发起连接会不会建立两个端到端连接。答案是不会,只会建立一条连接。因为 TCP 的握手过程会合并,双方的状态机会收敛到一条连接上。很多人直觉上觉得“两边都 connect 应该两条”,但 TCP 的设计保证了唯一性。
补法:记住“同时打开”是 TCP 的一个正常状态,不是错误。双方各发一个 SYN,然后各回一个 SYN+ACK,最后各回一个 ACK,连接建立。序列号会同步,不会产生两条连接。
5. 复习清单:从样卷反推的查漏补缺路线
5.1 按模块过一遍核心公式和流程
复习到这一步,最有效的方法不是再刷一套卷子,而是拿一张白纸,把每个模块的核心公式和流程默写一遍。物理层:奈奎斯特定理 C = 2H log2(V),香农定理 C = H log2(1+S/N)。数据链路层:CRC 手算流程、海明码校验位位置、滑动窗口大小与序列号空间关系。网络层:距离矢量算法更新规则、IP 分片字段含义。传输层:慢启动指数增长、拥塞避免线性增长、快重传快恢复。
奈奎斯特:C = 2 * 2000 * log2(8) = 12000 bps 香农:C = 2000 * log2(1 + 10^3) ≈ 2000 * 9.97 ≈ 19940 bps参数说明:奈奎斯特定理用于无噪声信道,香农定理用于有噪声信道。信噪比 30dB 对应 S/N = 10^(30/10) = 1000。样卷里那道填空题的答案就是这两个数值。
5.2 把易混概念做成对比表
复习到最后,真正拉分的是那些“好像知道但一选就错”的概念。下面这张表可以抄下来,考前过一遍。
| 易混概念 | 区别要点 |
|---|---|
| 曼彻斯特 vs 差分曼彻斯特 | 前者用跳变表示数据,后者用跳变表示开始 |
| 海明距离检测 d 错 vs 纠正 d 错 | 检测需要 d+1,纠正需要 2d+1 |
| 距离矢量 vs 链路状态 | 前者交换距离向量,后者交换链路状态 |
| 慢启动 vs 拥塞避免 | 前者指数增长,后者线性增长 |
| Nagle vs Clark | 前者管发送方,后者管接收方 |
| 分片 vs 重组 | 分片可在源或路由器,重组只在目的主机 |
5.3 用样卷的判断题练“说理由”
样卷的判断题要求简要说明理由,这比单纯判断对错更有价值。复习时可以把每道判断题当成一个小问答题,强迫自己写出理由。比如“中继器和集线器是网络层设备”这个判断,理由要写到“它们在物理层,只做信号放大和广播,不解析 MAC 或 IP 地址”。写不出来就说明这个点还没吃透。
从那以后我每次复习计网,都强制自己走一遍“公式默写 → 对比表 → 判断题说理由”这三步。公式默写查计算漏洞,对比表查概念混淆,判断题说理由查理解深度。三步走完,基本不会有大的遗漏。希望帮到你。
本文还有配套的精品资源,点击获取