
简介这份《计算机网络-试题库(含答案)》PDF面向计算机专业学生、考研备考者及网络技术初学者用于系统梳理计算机网络各层知识点并检验掌握程度。题库覆盖物理层、数据链路层、网络层、传输层及局域网技术包含IP地址与子网划分、子网掩码计算、ARP地址解析、TCP与UDP协议对比、CSMA/CD介质访问控制、IEEE802系列标准、路由选择协议及端口号分配等典型考点每道题均附参考答案便于自测与查漏补缺。资源包共1个PDF文件大小约658KB轻量易存适合打印或移动端随时翻阅。目前已有896人学习下载可作为课程复习、期末冲刺或面试准备的配套练习材料帮助读者在刷题中巩固理论、理清各层协议与设备之间的关系。1. 一份试题库PDF背后从IP地址到子网掩码的硬核复习路径很多人拿到「(完整)计算机网络-试题库(含答案).pdf」的第一反应是——刷题。但如果你真在期末前两周才开始翻这份题库大概率会陷入一种玄学状态IP地址和子网掩码的题做了几十道换个问法又不会了。问题不在题量在于你缺一条从协议分层到地址计算的完整链路。这份题库真正值钱的地方是它把「计算机网络基础」里最容易出计算题和概念辨析题的部分——IP地址分类、子网划分、子网掩码取反、协议对比——集中打包了。它适合两类人一是期末复习想抓重点的本科生二是考研408里计算机网络部分需要反复练手的备考生。下面我不讲空泛的复习方法直接拆这份题库里最硬的计算模块和协议辨析模块把每类题的解题路径和参数含义讲透。2. IP地址与子网掩码从点分十进制到可用主机数2.1 为什么子网掩码取反是子网划分的核心动作子网掩码的本质是一个32位的二进制数网络位全为1主机位全为0。所谓「子网掩码取反怎么取」就是把掩码的二进制逐位取反得到主机位全1、网络位全0的结果这个结果就是该子网的广播地址相对于网络地址的偏移量上限。举个例子掩码255.255.255.192二进制是前26位为1、后6位为0。取反后后6位变成全1即0.0.0.63这意味着每个子网有64个地址可用主机地址是62个去掉网络地址和广播地址。很多题库里会直接问「某主机的IP地址是192.168.10.100子网掩码是255.255.255.224求网络地址和广播地址」。解题步骤固定先把IP和掩码都转成二进制做按位与得到网络地址再把掩码取反后与网络地址做按位或得到广播地址。这个流程在题库里反复出现但每次换一个掩码长度很多人就翻车。血泪经验是不要背答案把掩码长度和块大小的对应关系记牢。掩码长度点分十进制块大小可用主机数/24255.255.255.0256254/25255.255.255.128128126/26255.255.255.1926462/27255.255.255.2243230/28255.255.255.2401614/29255.255.255.24886/30255.255.255.25242这张表建议直接默写。题库里80%的子网划分题只要你能快速定位掩码长度对应的块大小网络地址就是「IP所在块大小的整数倍向下取整」广播地址就是「下一个块的起始减1」。2.2 用Python批量验证子网计算题题库里的题是静态的但你可以写一个小脚本把每道题的答案快速验证一遍。下面这段代码实现了给定IP和掩码后输出网络地址、广播地址和可用主机范围。import ipaddress def subnet_calc(ip_str, mask_str): 输入点分十进制IP和掩码输出网络地址、广播地址、可用主机范围 ip_str: 如 192.168.10.100 mask_str: 如 255.255.255.224 # 构造接口对象strictFalse允许主机位不为0 interface ipaddress.IPv4Interface(f{ip_str}/{mask_str}) network interface.network # 网络地址 net_addr network.network_address # 广播地址 bcast_addr network.broadcast_address # 可用主机列表去掉网络地址和广播地址 hosts list(network.hosts()) print(f网络地址: {net_addr}) print(f广播地址: {bcast_addr}) print(f可用主机数: {len(hosts)}) if hosts: print(f可用范围: {hosts[0]} ~ {hosts[-1]}) else: print(该子网无可用主机地址/31或/32场景) # 测试题库里常见的几组参数 subnet_calc(192.168.10.100, 255.255.255.224) subnet_calc(172.16.5.200, 255.255.255.192) subnet_calc(10.0.0.55, 255.255.255.248)这段代码的核心是ipaddress.IPv4Interface它自动处理了掩码和IP的按位运算。network.hosts()返回的是一个迭代器直接转list就能拿到所有可用主机地址。参数说明strictFalse在构造IPv4Network时才需要这里用IPv4Interface不需要。如果你要验证的是「给定网络地址和掩码求第N个子网」把network.subnets()用起来就行。注意题库里有些题会问「子网掩码取反后得到的地址是什么」这个地址在CIDR表示法里就是广播地址相对于网络地址的偏移量但直接回答「取反后的点分十进制」时要确保你取反的是完整的32位而不是只取反最后一个字节。2.3 可变长子网划分的解题顺序题库里难度最高的一类题是VLSM可变长子网划分给一个大的地址块要求按部门人数分配不同大小的子网。解题顺序必须是「从大到小分配」否则后面小地址块会碎片化到无法分配。具体步骤把所有子网按所需主机数从大到小排序。对每个子网根据主机数确定块大小主机数2后向上取到2的幂。从地址池起始位置开始按块大小依次切分。每切一刀记录网络地址和掩码下一刀从上一个广播地址1开始。这个顺序在题库答案里通常不会写得太细但你自己做的时候如果先分小的后面大的子网可能找不到连续空间。踩坑最多的地方是忘记「主机数2」——网络地址和广播地址各占一个所以可用主机数永远比块大小少2。3. 协议辨析题从TCP/IP到应用层的对比记忆法3.1 题库里高频出现的协议对比维度「计算机网络」试题库里协议对比题几乎必考而且喜欢把名字相近的协议放在一起。比如TCP和UDP、HTTP和HTTPS、ARP和RARP、ICMP和IGMP。这些题如果只背「TCP可靠、UDP不可靠」遇到「为什么DNS既用TCP又用UDP」这种题就答不全。我一般建议按四个维度建对比表传输层协议、默认端口、可靠性机制、典型应用场景。协议传输层默认端口可靠性典型场景HTTPTCP80依赖TCP网页浏览HTTPSTCP443TLSTCP加密网页FTPTCP20/21依赖TCP文件传输DNSUDP/TCP53查询用UDP区域传送用TCP域名解析DHCPUDP67/68应用层重传动态IP分配SNMPUDP161/162应用层超时重传网络管理SMTPTCP25依赖TCP邮件发送POP3TCP110依赖TCP邮件接收这张表覆盖了题库里90%的协议辨析题。注意DNS那一行查询用UDP是因为快区域传送用TCP是因为数据量大需要可靠传输。这个细节在选择题里经常作为干扰项出现。3.2 用Wireshark抓包验证协议行为题库里的协议题是纸面的但如果你能抓一次真实流量记忆会牢固得多。下面是在本地用Wireshark或tcpdump验证DNS查询用UDP的步骤。# 在Linux/macOS上抓取DNS查询流量 # -i any 监听所有接口-n 不解析主机名port 53 过滤DNS sudo tcpdump -i any -n port 53 -c 10 # 另开一个终端触发DNS查询 nslookup example.com # 如果要抓DHCP的DORA过程Discover-Offer-Request-Ack sudo tcpdump -i any -n port 67 or port 68 -c 20tcpdump的-c 10表示抓满10个包就停止避免刷屏。port 53过滤出DNS流量后你会看到查询包是UDP而如果触发区域传送dig axfr就会看到TCP的53端口。DHCP的抓包能看到四步交互对应题库里常考的「DHCP为什么用UDP」——因为客户端还没有IP地址无法建立TCP连接。提示如果你在虚拟机里做实验记得把网络模式设为桥接或NAT否则抓不到宿主机的流量。题库里有些实验题会问「虚拟机中Linux系统如何修改IP地址」这属于操作题和协议辨析是两条线但底层都依赖对网络层和传输层的理解。3.3 协议分层题的排除法技巧题库里有一类题是「下列哪个协议属于应用层」选项里混入TCP、IP、ICMP、ARP。排除法很快TCP在传输层IP和ICMP在网络层ARP在网络层和数据链路层之间。应用层协议的名字通常和具体服务相关比如HTTP、FTP、SMTP、DNS、DHCP。记住一个原则名字里带「传输」「控制」「网际」的基本不在应用层。这个技巧能帮你快速排除掉一半错误选项。4. 试题库使用中的避坑与排查4.1 答案里的掩码计算跳步导致对不上现象题库答案给出网络地址是192.168.1.64你自己算出来是192.168.1.0。原因答案默认你用了VLSM从某个子网继续划分而不是从主类网络边界开始。解决先确认题目给的是「主类网络」还是「已划分的子网」如果是后者网络地址的起始点不是0而是上一个子网的广播地址1。4.2 协议端口号记混现象把HTTPS记成8080把DNS记成53但不知道TCP和UDP都用。原因只背了常用端口没区分传输层协议。解决按「服务名-端口-传输层」三列默写每天过一遍。题库里端口题通常只考80、443、53、67、68、25、110、161这几个。4.3 子网掩码取反时只取反最后一个字节现象掩码255.255.255.192取反后写成0.0.0.63但题目要求写完整32位取反结果。原因前三个字节是255取反后是0但很多人只关注最后一个字节。解决取反操作必须对32位整体做前24位全1取反后全0所以结果确实是0.0.0.63但你要能说清楚为什么前三个字节是0。4.4 把广播地址当成可用主机地址现象计算可用主机数时直接算2^n忘记减2。原因网络地址和广播地址不能分配给主机。解决任何子网可用主机数2^(32-掩码长度)-2。只有/31和/32是例外/31用于点对点链路两个地址都可分配/32用于单主机路由。4.5 题库版本与教材章节不匹配现象题库里出现了「SDN」「VXLAN」等新内容但你的教材是谢希仁第八版章节对不上。原因题库可能是多版本混合。解决以你上课用的教材目录为准题库里超纲的题先跳过把基础章节的题做透。408考生尤其要注意王道计算机网络和谢希仁教材的侧重点不同题库里两者都有的题优先做。5. 用Anki错题本把题库刷成长期记忆题库刷一遍是不够的尤其是IP地址计算和协议对比这种需要条件反射的题。我自己的习惯是第一遍按章节做把错题和蒙对的题标记出来第二遍只做标记题第三遍用Anki做成填空卡。Anki卡片不要抄整道题只挖空关键参数。比如「掩码255.255.255.224的块大小是___可用主机数是___」正面写问题背面写答案和一句话解释。# 用Python从错题记录生成Anki导入用的CSV # 格式正面,背面,标签 import csv cards [ (掩码/26的块大小和可用主机数, 块大小64可用主机62, 子网划分), (DNS查询默认用哪个传输层协议, UDP区域传送用TCP, 协议), (192.168.1.100/27的网络地址, 192.168.1.96, 子网划分), (HTTPS默认端口, 443, 协议), ] with open(anki_cards.csv, w, newline, encodingutf-8) as f: writer csv.writer(f) for front, back, tag in cards: writer.writerow([front, back, tag])这个CSV可以直接导入Anki标签用来分组复习。参数说明newline避免Windows下多空行encodingutf-8保证中文不乱码。我一般每天新增不超过20张卡复习时间控制在15分钟以内。题库里那些反复错的子网划分题做成卡片后一周就能形成条件反射。最后一个技巧题库里的答案不要只看对错要看它的解题路径。如果答案跳步了你自己补全中间过程写在题目旁边。下次复习时只看你补的那几步。这个习惯让我在期末前两周把子网划分的正确率从60%拉到95%以上。希望帮到你。本文还有配套的精品资源点击获取