每次考前最头疼的就是面对厚厚一本教材不知道该从哪下手。如果你也是拿着计算机网络总复习题含答案这类资料硬啃背了选择忘简答算完一题卡在下一题那这篇文章就是给你写的。我按复习逻辑把计算机网络的高频考点重新拆了一遍把题目按概念判断、计算大题、协议分析、综合场景四个维度重新归类每个题都给了完整的解题思路而不是只丢一个答案。不管你是在校期末复习还是在准备各类认证考试只要能沉下心跟着这套框架过一遍比盲目刷十套题都有用。我最早复习这门课的时候也走过弯路上来就背OSI七层名称背完就忘。后来换了个思路把每一章的知识点都落到这道题到底在考什么原理上效果立刻不一样了。这篇文章里的所有题目和对应的解题套路都是按这个思路整理的你可以直接照着用。1. 先理清这门课的复习主线别在细节里迷路很多复习资料只给题目和答案却不告诉你这些题是怎么串起来的。计算机网络这门课看起来知识点零碎什么协议、端口、报文格式、状态码一大堆但考来考去都绕不开一条主线数据从一台主机出发经过一层层封装到达另一台主机的过程。所有题目本质上都在问这个过程中的某一个环节出了什么问题、该由哪一层处理、用什么协议解决。所以复习的时候我建议你先建立协议栈视角而不是按教材章节一章章往后翻。所谓协议栈视角就是你看到一个网络现象时能条件反射地判断出它发生在哪一层物理层管比特流和信号编码数据链路层管同一链路上的帧传输网络层管跨网络的路由和IP编址传输层管端到端的连接和可靠性应用层管具体业务协议。这个判断能力比记住每个协议的全称重要得多因为大部分选择题和简答题都是先扔给你一个场景再问你应该选哪个协议或哪一层来处理。这份复习题之所以有用是因为它覆盖了三个层面的内容基础概念分层模型、协议名称、端口号、计算能力信道容量、CRC校验、IP子网划分以及协议机制TCP握手、拥塞控制、DNS解析过程。我见过不少人后面的计算题和协议题都答得不错反而在前面的概念题上丢分原因就是基础概念只靠死记硬背没有理解背后的设计动机。所以下面每一类题目我都会先讲原理再给答案帮你在脑子里把知识点织成一张网而不是一堆孤立的点。2. 分层模型与基本概念选择题高频考点的判断逻辑这类题是试卷的第一部分往往最简单也最不该丢分。可实际阅卷里反而是这些题失分率不低原因是选项之间似像非像稍不留神就踩坑。2.1 关于七层模型和TCP/IP四层模型你必须形成条件反射高频题是这样的给出一个协议比如FTP、BGP、ICMP问它属于TCP/IP模型中的哪一层。这里最容易混淆的是ICMP和IGMP。ICMP是网络层协议用来传差错报告和控制报文比如ping命令用的就是它不是传输层协议。很多人看到它名字里带控制两个字就想当然地归到传输层这是经典错误。再比如ARP协议它虽然IP地址有关但它本身是数据链路层和网络层之间的翻译官主要负责把IP地址解析成MAC地址。考卷上经常在网络层协议包括哪些的选项里放一个ARP正确答案通常是不选它因为它工作在数据链路层之上一般教材归类为属于网络层还是链路层各有说法但标准答案通常是把它看作网络层与链路层之间的特殊协议。为了避免争议真正考试时要看上下文通常归类在数据链路层。给你一个记忆方法凡是名字里带有Protocol的应用协议默认看它的服务对象。FTP传文件、SMTP发邮件、HTTP传网页它们的共同点是都基于TCPDNS虽然也基于UDP但它为应用服务解析域名归应用层。网络层协议的核心特征是和跨越网络的路由选择相关IP、ICMP、OSPF、BGP都在这一层。2.2 时延、带宽、吞吐量概念题里的计算小心思有一类概念的题目不给你公式纯考定义辨别比如传播时延和发送时延的区别。传播时延是信号在链路上跑的时间取决于信道长度和信号传播速率发送时延是主机把数据放上链路的时间取决于数据长度和发送速率。这两者经常混在一起考。我见过一个好用的类比发送时延就像你把一列玩具火车一辆一辆从盒子里拿出来放到轨道上拿完一列需要的时间传播时延则是第一辆火车从轨道这头跑到那头用的时间。如果轨道特别长传播时延占大头如果轨道很短但你要放很多列火车发送时延占大头。这种题里还有个隐蔽考点往返时间RTT的计算。RTT等于发送端到接收端的传播时延乘2加上中间节点处理时间。很多题目不直接给RTT而是给单向传播时延让你自己算然后计算信道利用率。这时候记住公式信道利用率有效数据传输时间/(有效数据传输时间空闲时间)就很容易代入。2.3 必背端口号归类记忆胜过死记硬背端口号是应用层协议选择题的固定嘉宾。我整理过一套记忆口诀按功能分组文件与共享21FTP控制、20FTP数据、23Telnet、445SMB网页与邮件80HTTP、443HTTPS、25SMTP、110POP3、143IMAP地址解析与远程管理53DNS、67/68DHCP、3389远程桌面网络管理161SNMP、69TFTP考卷上常见的陷阱是把HTTP的80写成8080、把DNS写设成53或者51或者在FTP控制端口的选项里混入20和21两个数字。我的建议是应用层每个协议后面跟着默认端口这个必须形成肌肉记忆但更重要的是理解——端口号存在的意义是让一台主机的操作系统能把收到的数据交给正确的进程这是传输层复用/分用机制的体现。理解了这个意义端口表就不难背了。3. 四大计算题专项拆解把失分率最高的题型一次过关计算机网络这门课的计算题其实就那么几类题型非常固定。复习时把这几个题型逐个搞懂计算题基本就稳了。3.1 奈氏准则与香农公式应用题里的两种极限场景这是第一章最经典的计算题也是很多人一开始就卡住的地方。先说奈氏准则在理想低通信道下极限码元传输速率等于2W Baud其中W是信道带宽。它只受带宽限制没考虑噪声。比如带宽3kHz的理想低通信道最高码元速率就是6kBaud如果每个码元能携带4bit即16种电平那么极限数据传输率就是6k×424kbps。香农公式则是考虑噪声的情况CW log₂(1S/N)。注意这里的信噪比S/N是倍数关系不是dB值。题目里给信噪比为30dB你要先换算成倍数30dB10lg(S/N)所以S/N1000。带宽3kHz时C3k×log₂(1001)≈3k×9.97≈29.9kbps。这种题最容易丢分的地方是单位换算。带宽题目里如果写3kHz带公式时要用3000而不是3信噪比30dB要换算成1000倍。我把两个公式的适用场景总结成一句无噪声用奈氏有噪声用香农。如果题目同时给了信噪比又给了电平数那通常是要你分别算两个极限然后取较小值因为实际系统必须同时满足两个约束。3.2 CRC循环冗余校验多项式除法要算到余数为零数据链路层的计算题里CRC是最常见的。核心步骤就三步先在原始数据的末尾补上生成多项式最高次幂个数的0然后用这个补零后的数据去除生成多项式对应的二进制数得到余数余数的位数比生成多项式少一位最后把余数替换掉刚才补的那些0拼成最终发送的帧。举个例子如果原始数据是110101生成多项式G(x)x³x1对应二进制1101最高次幂是3所以有3位从x³开始。先算110101000除以1101按模2除法余数是001最后发出的帧就是110101001。接收端拿到后做同样的除法如果余数为0就说明没出错。这个计算题看着简单但实际动手极易出错因为模2除法里减法变成了异或(按位异或)不进位也不借位跟平时十进制除法习惯完全不同。建议多算几道生成多项式不同、长度不同、错误位置不同反复比较自己算的余数是否和标准答案一致。一旦你熟悉了这类运算过程后面的海明码计算题思路也能触类旁通——海明码的本质是在数据位之间嵌入校验位使得校验位组成的二进制下标能直接指出出错位的编号。3.3 CSMA/CD最短帧长从往返时延推出来的经典结论以太网计算题里有一个黄金公式最短帧长 发送速率 × 2×单程传播时延。这个结论怎么来的因为CSMA/CD协议要求发送方在发送过程中能检测到冲突所以帧的发送时间必须大于等于信号在网络上往返一次的时间。如果帧太短发完就结束后面来的冲突信号就无法被检测到了。以经典10Mbps以太网为例如果最远两个站点之间的单程传播时延是25μs那么往返就是50μs最短帧长度就是10M×50μs500bit62.5字节。为了保证有足够的余量标准里规定最短帧长为64字节。考试时给你不同的速率和时延你就按这个公式代假设某以太网单程传播时延为10μs站点之间最长距离2000m发送速率100Mbps那么最短帧长100×10⁶×2×10×10⁻⁶2000bit250字节。做这种题特别容易漏掉往返这个2倍因子你把最短帧长要覆盖冲突检测窗口这个物理意义记住就不容易忘了。3.4 子网划分与路由聚合CIDR计算的一体两面子网划分的题每年都会变着花样出但本质上就是在做借位的体操。比如你拿到了一个C类地址段200.1.2.0/24现在需要划分成4个大小相同的子网。因为42²所以需要借2位主机位作为子网号子网掩码就变成255.255.255.192即/26。4个子网分别是子网编号网络地址可用地址范围广播地址1200.1.2.0/26200.1.2.1~200.1.2.62200.1.2.632200.1.2.64/26200.1.2.65~200.1.2.126200.1.2.1273200.1.2.128/26200.1.2.129~200.1.2.190200.1.2.1914200.1.2.192/26200.1.2.193~200.1.2.254200.1.2.255注意每个子网的可用主机数等于2^(32-26) - 2 62台减去的两个是网络地址和广播地址。如果题目改成每个子网要容纳30台主机那主机位至少要满足2ⁿ-2≥30n最小取5那么可借的主机位就是8-53位能划分2³8个子网每个子网可用30台主机。路由聚合则是反过来把几个连续的地址块合并成一个大的路由表项。聚合的前提是这些地址块的二进制前缀相同位数足够多。比如某企业申请了4个C类地址段前24位相同那就直接聚合成一个/22的地址块路由表里从4条规则变成1条。考题通常给你几个IP让你写出聚合后的CIDR形式你只要把它们的二进制写出来从左边开始数相同的前缀有多少位相同就用/多少来表示。4. 传输层大题模板TCP握手、拥塞控制与滑动窗口的常见考法传输层是计算机网络课程的核心也是大题最集中的地方。试卷上的简答题、分析题几乎都从这里出。4.1 三次握手与四次挥手状态名和序号推导必须背全TCP连接建立的三次握手考法有两种。一种是纯概念题问你为什么是三次而不是两次。答案的核心是第三次握手是为了确认接收端确实收到了发送端的第一条同步报文且双方都确认了对方的收发能力。举个简单的例子A给B发SYNB回SYNACK如果这时A不再发确认B无法确定自己的SYNACK是否被A成功收到所以必须要有第三次ACK。这里最容易混淆的是确认号和序号的推导B收到A的序号x后回复的确认号是x1同时携带自己的初始序号yA收到后发的ACK确认号是y1。如果题里给的是A发送seq100SYN标志位为1那B回复的ack就应该是101同时B自己的seq是随机初始序号不要写成100或101。四次挥手的概念也差不多。因为TCP连接是全双工的A要断开时只是表示我不再发数据了但B还可以继续向A发数据。所以先由A发FINB回ACK表示知道A要关了之后B把剩余数据发完再发FINA最后回ACK。每一步的状态变化常考主动关闭方从ESTABLISHED进入FIN_WAIT_1、收到ACK进入FIN_WAIT_2、收到FIN进入TIME_WAIT、等待2MSL后关闭被动关闭方从ESTABLISHED进入CLOSE_WAIT、发FIN后进入LAST_ACK、收到ACK关闭。TIME_WAIT为什么存在是为了保证最后的ACK能到达也为了让旧连接上的重复数据包在网络中消散这是简答题的高频考问点。4.2 拥塞控制计算题慢开始、拥塞避免、快重传与快恢复这道题是传输层的压轴大题套路非常固定。题会给一个初始阈值ssthresh和MSS最大报文段长度然后让你把拥塞窗口cwnd随RTT的变化表写出来。标准的解算步骤慢开始阶段cwnd从1开始每经过一个RTT翻倍直到达到ssthresh。拥塞避免阶段每经过一个RTTcwnd线性加1直到发生丢包。如果超时ssthresh变为当前cwnd的一半cwnd重置为1重新走慢开始。如果收到3个重复ACK快重传ssthresh变为当前cwnd的一半cwnd直接降为新ssthresh进入快恢复之后每收到一个重复ACKcwnd加1。举个例子假设ssthresh初始为16那么慢开始阶段cwnd的变化是1、2、4、8、16达到阈值然后进入拥塞避免17、18、19……如果cwnd增大到24时发生超时那么ssthresh变为12cwnd重置为1重新开始。如果题目改成连续收到3个重复ACK则ssthresh变为12cwnd直接变成12而不是1然后快恢复。很多同学算到一半把快恢复和慢开始混淆其实区分点就是看丢包信号是超时还是重复ACK。这里再三提醒表里的数字要以一个RTT为单位推进每个RTT只改变一次cwnd。题目如果问第n个RTT时cwnd为多少就在表里数过去。4.3 滑动窗口与流量控制确认号计算的细节不能翻车滑动窗口的题一般给一个初始窗口大小和发送序列号问你发送窗口会随着确认的到达怎么变化。核心点是发送窗口左边界是已确认的字节右边界是已发送但未确认的字节加上允许预发送的量。确认号表示希望收到对方下一个字节的序号所以如果接收方发了ack1001表示前1000字节都已经收到下一个想收到1001号字节。这类题容易错在窗口缩小但不要超过接收方通告的窗口大小。当接收方处理不过来时它会在TCP头部的窗口字段里减小通告窗口发送方看到后就主动缩小发送窗口这就是流量控制。流量控制和拥塞控制的区别在于前者由接收方能力决定后者由网络拥堵程度决定。简答题常把它俩放一起对比答的时候只要先说一句流量控制防止接收方被淹没拥塞控制防止网络被淹没基本上就抓住了方向。5. 综合应用题路由表、DNS解析与HTTP报文的串联场景试卷最后的大题经常给一个拓扑图串起多个知识点。这时候不要慌把题里出现的每个协议单独拆出来分析分数就比较稳妥。5.1 一张拓扑图引发的三层排查思路假设某校园网用一台路由器连接了A、B、C三个网段分别是192.168.1.0/24、192.168.2.0/24、192.168.3.0/24三台PC分别接在这三个网段。题目问你A段的PC1想访问B段的PC2数据包的源IP、目的IP、源MAC、目的MAC分别是什么很多人在这个题上栽跟头是因为没搞清楚IP地址在跨网段传输时保持不变而MAC地址每经过一跳都会改变。正确的答案是PC1发出的数据包源IP是PC1自己的IP目的IP是PC2的IP源MAC是PC1的网卡MAC目的MAC是默认网关也就是路由器对应A网段接口的MAC。路由器收到后查路由表把数据包从B网段接口转发出去时修改源MAC为这个接口的MAC目的MAC改为PC2的MAC但IP头部不动。这个分析思路直接呼应了我们开头说的数据链路层管帧、网络层管端到端路径把这个场景理清楚整个协议栈就通了。5.2 静态路由配置题路由表字段与下一跳判断静态路由题常给你一个三路由器互联的网络拓扑让你填路由表或判断某条数据走哪条路径。路由表的基本字段包括目的网络地址、子网掩码、下一跳地址、出接口。核心规则是最长前缀匹配发往目的地址的数据包要匹配路由表中掩码长度最长的那条记录。举个例子某路由器的路由表里有两条记录一条是202.100.1.0/25指向下一跳R1另一条是202.100.1.128/25指向下一跳R2。如果目的地址是202.100.1.150那么它会在第二条记录命中因为/25匹配了更高位的前缀。如果目的地址超出这两个段的范围就会匹配默认路由0.0.0.0/0也就是把包扔给默认网关。计算题还会让你做路由聚合你只要把连续地址块并成一个大CIDR块再填入路由表即可。注意聚合后的路由必须完全覆盖所有子网多花了精度不匹配的情况宁可不聚合也不能丢失线路。5.3 DNS解析与HTTP状态码应用层综合题的高频组合应用层的综合题经常把DNS和HTTP串起来考用户访问某个域名浏览器先做DNS解析再与服务器建立TCP连接发送HTTP请求。DNS解析有两种方式递归查询和迭代查询。递归方式下本地DNS服务器必须给出最终结果迭代方式下本地DNS服务器依次向根服务器、顶级域服务器、权威服务器查询而每一级只返回下一步该问谁的提示不直接给出结果。这类题容易考你一次完整解析需要多少次查询尤其是迭代方式。假设本地DNS缓存为空先查根服务器1次根返回顶级域服务器地址再查顶级域服务器第2次返回权威服务器地址最后查权威服务器第3次返回最终IP。一共3次迭代查询。辅助记忆法DNS查询的次数等于缓存缺失时访问的服务器级数。HTTP状态码也是经典考点2xx表示成功200表示OK3xx表示重定向4xx表示客户端错误403禁止访问、404资源不存在5xx表示服务器错误500内部错误、503服务不可用。给你一个场景问服务器找不到该资源应该返回什么状态码答案就是404。而请求资源已永久迁移则是301不是302这里经常有干扰项。6. 30分钟自测卷用来检验复习效果的10道必做题看到这里你可以先不要急着往下翻自己拿纸笔把这10道题做一遍。做完再对答案这比再重复看一遍知识点有用得多。6.1 自测题某信道带宽为3kHz信噪比为31倍按香农公式计算的最大数据传输率约为多少在TCP/IP模型中ICMP协议属于哪一层它和ping命令的关系是什么一个CRC校验系统的生成多项式为G(x)x³x1发送方要发送数据1101补零后的被除数和最终发送的帧分别是什么以太网中如果单程传播时延为25μs发送速率为100Mbps忽略其他因素理论上最短帧长是多少字节请对192.168.1.0/24划分出8个子网写出第3个子网的网络地址和可用的主机地址范围。主机A向B发送第一个数据段SEQ1000不带SYN标志位B回复的ACK值是多少如果该数据段带SYN标志位呢TCP的ssthresh初始为16发生超时前cwnd已经到24超时后新的ssthresh和cwnd分别是什么路由表存在两条记录一条目的网络为10.1.3.0/26另一条为10.1.3.128/26目的IP为10.1.3.160时将匹配哪一条客户机向本地DNS发出查询请求后本地DNS依次向根服务器、顶级域服务器、权威服务器发起迭代查询整个过程客户机一共发出几次完整的DNS请求访问一个网站时如果浏览器收到HTTP/1.1 301状态码表示服务器给出了什么响应6.2 自测题参考答案与易错点香农公式C3k×log₂(131)3k×515kbps。这道题里信噪比已经用倍数31表示不需要再换算很多人多此一举换算成dB反而算错。ICMP属于网络层协议ping命令发送的就是ICMP回显请求报文。易错点ICMP不基于TCP或UDP它封装在IP数据报的数据部分。数据1101补三个0变成1101000用1101做模2除法余数为001发送帧是1101001。这道题刻意把数字取得简单目的就是让你练多项式除法的手感别在原题里看到多位数字就慌。最短帧长100×10⁶×2×25μs100×10⁶×50×10⁻⁶5000bit625字节。注意乘2忘乘2会是312.5字节正好差一倍。8个子网需要借3位主机位子网掩码是/27。第3个子网的网络地址是192.168.1.64/27第1个是0、第2个是32、第3个是64可用主机范围是192.168.1.65到192.168.1.94广播地址是192.168.1.95。易错点是有人从1开始数子网编号导致第3个子网错算成128。不带SYN标志位时B回复ACKSEQ11001带SYN标志位时也一样因为TCP规定SYN报文即使数据长度为0也要消耗掉一个序号所以ACK同样是1001。这道题的关键是不管SYN与否都要把序号加1。超时后ssthreshcwnd/212cwnd1重新进入慢开始。如果题目描述为收到3个重复ACK则cwnd12进入快恢复这是两种完全不同情况。目的IP 10.1.3.160的最长前缀匹配落在10.1.3.128/26这个子网内所以匹配第二条。10.1.3.128/26的地址范围是10.1.3.128~10.1.3.191160落在这个范围内。客户机只向本地DNS发出一次查询请求后续根服务器、顶级域服务器、权威服务器之间的迭代查询都是本地DNS替它完成的。很多人答3次是把本地DNS内部的迭代查询次数和客户机的请求次数搞混了。301表示资源永久性重定向客户端应该更新缓存中的URL以后直接访问新的地址。302是临时重定向两者含义不同历史题里把这个当考点出过不少次。6.3 考后复盘建议做完这10道题如果你的正确率在7题以下问题多半不在背题量而在概念之间的逻辑链条没接上。我的建议是回到第1章的协议栈图把每一层的代表协议写在一张A4纸上然后自己给自己讲一遍输URL后DNS、TCP、IP、ARP、以太网帧每个环节各自做了什么。这个过程相当于亲手把知识重走了一遍比单纯刷题效果强很多。如果正确率在8题以上说明基础比较扎实接下来可以把精力集中在计算题的熟练度上每天抽10分钟做一道CRC计算、一道子网划分、一道拥塞控制表。7. 几点个人的复习体会写在最后我自己复习计算机网络时最深刻的感受是这门课不像数学那样需要天分也不像历史那样需要记忆海量时间节点它更像一门逻辑推理课。你只要理解了为什么TCP握手要三次、为什么以太网帧要设最短长度、为什么路由要按最长前缀匹配那些看似零散的考点会自己长在知识树上不用专门去背。最后分享一个小技巧做计算题的时候不要只写答案把公式、单位换算、中间步骤全部写出来然后和标准答案比对时重点看自己是不是在中间步骤丢了系数或写错单位。丢分往往不在不会而在算错。这份复习题里我特意覆盖了乘2漏掉、信噪比换算错误、子网从1开始计数这类经典失误你把这些坑都踩一遍、补一遍考场上遇到同类问题就不会再栽了。