计算机网络原理填空题:OSI七层归层与数值参数自测

简介:04741计算机网络原理填空题及答案面向自考04741课程考生及计算机网络基础学习者,聚焦填空题型下的概念辨析与高频考点记忆,可用于章节自测、考前速记和查漏补缺。资源包共1个docx文档,大小36KB,内容以题目与答案对照的形式编排,便于打印批注和反复背诵。文档围绕OSI七层模型、TCP/IP协议族、局域网介质访问控制、网络操作系统、网络互联与网络安全等模块展开,涉及星型拓扑、ARP地址解析、DNS递归/循环/反向查询、CSMA/CD与令牌环、虚电路和数据报等常见填空点,每题附有对应答案,便于边做边核对,适合检验基础概念掌握程度并定位遗漏。目前已有221人学习下载,可作为课程复习阶段的轻量级练习材料,配合教材逐章核对,快速定位薄弱环节,提升复习效率。

1. 一份 190 空的题库,先看清它能补什么

复习 04741计算机网络原理 到第三轮的人大多有过这种体验:选择题能靠印象蒙对,简答题能扯两句,唯独填空题一见就卡——不是完全不会,是答不准。这份 docx 就是把这类"卡壳点"集中摊开的材料:一百九十来道填空,从 10BASE-T 的拓扑、速率、介质、信号,到 OSI 七层的职责划分,再到 TCP 端口号位数、子网掩码、ATM 信元长度这些硬参数,题干后面直接跟答案,不需要再去翻教材对。

它的价值不在"背答案",而在"定位":填空考的是精确回忆,任何含糊都会当场暴露。适合三类人——正在准备课程考试、需要一份查漏清单的;做过一遍真题、想把散点串成体系的;以及要给新人出一套核对题的。下面按我实际整理它的顺序写:先按层重排,再做数值专项,接着讲协议归层的判断法,然后是踩过的坑,最后把它做成能自测的东西。

2. 按 OSI 七层重排:一张归位表和四步拆题流程

2.1 为什么按层重排比按题号顺序刷更省力

填空答案之间不是孤立的。10BASE-T 那题的四个空——星型、10Mbps、双绞线、基带——其实是同一套标准参数的四条边,缺一条另外三条也记不牢;IEEE 802.3 的 MAC 帧最短 64 字节、前导码每个字节 10101010、目的地址最高位为 0 表示单个地址、全 1 表示广播地址,这几个空共享同一张帧结构图。

按题号顺序刷,等于把同一张图拆成四五个孤立句子分别硬记,回忆时没有挂钩点。按层重排之后,同一层的空会自动聚成一簇:想到"帧"就带出前导码、地址位、最短帧长、CRC 校验;想到"E1"就带出 2.048Mbps 和 PCM 载波。这是记忆锚点的复用,不是玄学。

我在带人过这份材料时的一般做法是:先不动答案,只问题干属于哪一层、哪个标准、哪个设备。归不了层的题,往往就是最该补的那几道——它意味着你连这道题在知识地图上的位置都没建立起来,背下来也是临时的。

2.2 归位表只留五列,多一列都是负担

列数一多,整理本身就会变成消耗。五列够用:层/域、标准或协议、考点类型、题干关键词、答案要点。层/域一列做粗分(物理层、数据链路层、网络层、传输层、应用层、网络管理与安全、体系结构与演进);考点类型分四类——数值参数、协议归属、术语定义、机制流程。

分类不是为了好看,是为了决定后面怎么复习:数值参数靠横向对比表,协议归属靠判断规则,术语定义靠一句话口述,机制流程靠手画时序。用错方法复习是最常见的低效来源,拿背术语的方式去背三次握手,背十遍也画不出来。

从原始材料里切一小段出来,归位表大概长这样:

层/域标准或协议考点类型题干关键词答案要点
物理层10BASE-T数值参数拓扑、速率、介质、信号星型、10Mbps、双绞线、基带
物理层10BASE5数值参数速率与每段最大长度10Mbps、500m
物理层RS-232C术语定义最常用最经典的物理层协议RS-232C
物理层E1 载波数值参数数据传输速率2.048Mbps
数据链路层HDLC数值参数帧类型标识位信息帧 0、监控帧 10
数据链路层IEEE 802.3数值参数最短帧长、前导码64 字节、10101010
网络层ARP协议归属IP 地址映射物理地址地址解析协议
传输层TCP数值参数端口地址位数16 位
应用层SMTP数值参数端口号25

这张表最大的用处是暴露出"同一层里参数没对齐"的地方。比如物理层那一簇,10BASE-T 的段长限制和 10BASE5 的 500m 很容易串位,串位的原因往往不是记性差,是根本没意识到 5 这个数字本身就是段长代号。表格把这些并排放着,一眼就看出来了。

2.3 四步拆题:抽取、贴标签、聚簇、写图景

手工拆一百多道题不现实,先跑一遍解析。原始 docx 里的题号格式相当乱:有"1."、"15."(全角句点)、还有"221."这种明显是上一题末尾数字粘过来的。所以切分模式必须宽松,同时要防止把"221"里的"21"当成题号。

import re raw = open("fill_in_blank.txt", encoding="utf-8").read() # (?<!\d) 保证题号左边不是数字,避免把 "221." 里的 "21." 切成一条 # 前瞻 (?=...|$) 表示题干一直吃到下一个题号或文本结尾,比 split 更稳 pattern = re.compile( r"(?<!\d)(\d{1,3})\s*[..、]\s*(.+?)(?=(?<!\d)\d{1,3}\s*[..、]|$)", re.S, ) items = [] for m in pattern.finditer(raw): no = int(m.group(1)) body = re.sub(r"\s+", " ", m.group(2)).strip() # 合并换行与全角空格 items.append({"no": no, "body": body}) print(len(items), items[0])

逻辑说明:用前瞻而不是re.split,是因为split会把分隔符丢掉,题号就找不回来了;re.S让点号能跨行匹配,题干里有换行也不会截断。参数上\d{1,3}覆盖三位题号,如果后续出现四位编号再改。跑完之后一定要人工扫一遍,题号粘连的那种(正文里出现过221.、119.这类)会被切歪,只能靠人眼核对。

第二步贴标签,先用关键词字典做半自动归层,命中多条的直接留白,别硬塞。

LAYER_HINTS = { "物理层": ["10BASE", "双绞线", "光纤", "同轴", "RS-232", "编码", "调制", "多路复用", "ADSL", "E1"], "数据链路层": ["HDLC", "帧", "CRC", "LLC", "MAC", "网桥", "滑动窗口", "令牌", "突发"], "网络层": ["IP", "ARP", "路由", "子网掩码", "ICMP", "IGMP", "分组", "拥塞"], "传输层": ["TCP", "UDP", "端口", "三次握手", "端到端"], "应用层": ["DNS", "FTP", "SMTP", "URL", "WWW", "邮件", "域名"], } def guess_layer(text): hits = [k for k, kws in LAYER_HINTS.items() if any(w in text for w in kws)] # 命中两条以上说明题干跨层,交给人判断,别让脚本猜 return hits[0] if len(hits) == 1 else "待人工确认" for it in items: it["layer"] = guess_layer(it["body"]) print(sum(1 for it in items if it["layer"] == "待人工确认"), "条需要手判")

关键词字典里"端口"要小心:它既可能指 TCP 端口号,也可能指交换机的物理端口、VLAN 的端口划分,所以命中"端口"而题干里同时出现"交换""VLAN"的,会被归到待确认,这是有意设计的保守策略。

第三步聚簇,把同一标准下的空合并成一条;第四步给每簇写一句"图景",也就是用一句话把这一簇的物理含义讲清楚。比如"10BASE-T:T 是 Twisted pair,10 是速率,Base 是基带,星型拓扑,段长 100 米"——这句话念顺了,四个空自然就填得出来。图景写不出来的簇,说明这一块只是背了答案,没有理解,得回去补。

3. 数值类填空专项:把速率、帧长、端口位数钉在上下文里

3.1 三类记忆锚点:速率族、长度族、机制族

数值题是填空题里最容易翻车的一类,因为答案短、无提示、错一位就全错。我的做法是分三族记,族内横向比,族间不混。

速率族:10Mbps(10BASE-T 与 10BASE5 共用)、56Kbps(电话双绞线上网主流速率)、64Kbps(其物理极限)、2.048Mbps(E1 载波)、8Mbps(ADSL 下行最高速率)、54Mbps(IEEE 802.11g 最高速率)、1Mbps(蓝牙最高速率,工作频率 2.4GHz)。这一族的关键是记住每个数字绑在谁身上,速率本身反而次要。

长度族:500m(10BASE5 每段最大长度)、64 字节(802.3 最短帧长)、48 字节(ATM 信元信息段)、16 位(TCP 端口地址位数)、14 位(B 类地址网络号位数)、7 层(OSI 层数)、13 减到 7(IPv6 报文头字段数)。

机制族:三次握手、HDLC 帧类型标识位(信息帧 0、监控帧 10)、MAC 目的地址最高位 0 为单播全 1 为广播、偶校验位与奇校验位的取值。

三族分开记的好处是不会互相污染。翻车最多的恰恰是跨族串味——把端口的 16 位串到 B 类地址上,或者把 64 字节的帧长记成 64Kbps 的速率。

3.2 参数对照表:一张表覆盖八成数值题

参数取值绑定的对象常见错法
网络速率10Mbps10BASE-T / 10BASE5与 100Mbps 混
每段最大长度500m10BASE5套到 10BASE-T 上
最短帧长64 字节IEEE 802.3 MAC 帧写成 64 位
前导码字节模式10101010802.3 MAC 帧前导码写成 01010101
信元信息段48 字节ATM 信元与 53 字节总长混
端口地址位数16 位TCP 段结构写成 32 位
B 类网络号位数14 位B 类 IP 地址结构与掩码 16 位混
默认子网掩码255.255.0.0B 类地址写成 255.0.0.0
E1 速率2.048MbpsPCM 载波标准写成 1.544Mbps
ADSL 下行上限8MbpsADSL 标准与 56Kbps 混
802.11g 速率54Mbps无线局域网与 802.11b 的 11Mbps 混
蓝牙速率与频率1Mbps、2.4GHz短距离无线频率写成 5GHz
SMTP 端口25简单邮件传输协议与 FTP 的 21 混

表格的用法不是通读,是遮住第三列自测:只给参数和取值,问它绑在谁身上;反过来只给对象,问取值。两个方向都能过,才算真记住。单向过表的典型结果是考场上看到"ATM 信元中信息段的长度是____"这种反向提问就卡住。

3.3 用正则把带单位的题一次性捞出来

一百多道题里翻数值题很费眼,用带单位的正则扫一遍,几分钟就能拉出清单。

import re # 单位要写全,注意 m\b 后面加边界,否则会把 ATM、modem 里的 m 也捞出来 UNIT_PAT = re.compile( r"\d+(?:\.\d+)?\s*(?:Mbps|Kbps|Gbps|GHz|MHz|字节|bit|位|米|m\b|层|个)" ) def pick_numeric(items): out = [] for it in items: hits = UNIT_PAT.findall(it["body"]) if hits: it["nums"] = hits out.append(it) return out numeric = pick_numeric(items) for it in numeric[:5]: print(it["no"], it["nums"], it["body"][:40])

逻辑说明:findall只返回匹配到的数值片段,不返回上下文,所以打印时要带上题干前 40 个字符,方便判断这个数字说的是什么。m\b里的边界是血泪经验——不加的话,凡是含 "ATM"、"modem" 的题都会被误捞进来,清单立刻膨胀一倍。(?:\.\d+)?是为了兼容 2.048、2.4 这种小数。

参数调整上,如果题库里有中文单位"兆"、"千字节",把它补进分组里即可;扫描结果里大概率会混进"三次"、"两类"这种非参数的数词,人工剔一遍就行,不用把正则写到完美。

顺便提醒一个判分细节:填空题里问速率要带 Mbps 或 bps,问帧长要带字节,问位数要带位。答案写"64"而不写单位,在严格的阅卷标准下是要扣的。整理时把单位一起写进答案列,形成肌肉记忆,考场上就不会漏。

4. 协议与设备归层:用「作用域」判断,别靠背口诀

4.1 归层的唯一依据是寻址粒度

协议归层这类题看着杂,其实只有一条判断依据:它寻址谁、管到多远。管的是一个物理比特流能不能过去,就是物理层;寻址用的是网卡上的物理地址、管的是相邻节点之间一帧的完整性和流量,就是数据链路层;寻址用 IP 地址、管的是跨网段的分组转发和路由选择,就是网络层;寻址用端口号、管的是两个进程之间的端到端通信,就是传输层;再往上跟具体应用打交道,就是应用层。

拿这条依据去套,很多题不用背就出来了。ARP 把 IP 地址映像成物理地址,两头都碰,但它的服务对象是 IP 分组能不能封装成帧,所以归网络层,答案里写"地址解析协议"。ICMP、IGMP、ARP、RARP 被放在"TCP/IP 协议族中网络层协议"这一题里,也是同一个道理:它们都在为 IP 层服务。

设备同理。中继器和集线器只做比特转发,物理层;网桥和二层交换机看 MAC 帧、做协议转换,数据链路层;路由器在网络层做分组的存储转发和路径选择,网络层;网关提供传输层及以上的协议转换,所以答案写"传输层及传输层以上"。同一道题问"在传输层及以上的各层互联"用什么设备,答网关,不要答路由器。

4.2 协议、设备、层三者对照表

层典型协议数据单元互联设备判断抓手
物理层RS-232C、10BASE-T、E1比特中继器、集线器只放大或转发比特,不看地址
数据链路层HDLC、IEEE 802.3、802.5帧网桥、二层交换机认 MAC 地址,管相邻节点
网络层IP、ICMP、IGMP、ARP、RARP分组(数据包)路由器认 IP 地址,管跨网段
传输层TCP、UDP段或数据报网关(含以上各层)认端口号,管端到端
应用层DNS、FTP、SMTP、HTTP报文—面向具体业务

表里"数据单元"一列要特别注意:网络层的 PDU 在材料里同时出现过"数据包"和"分组"两种说法,这不矛盾,是译法差异。答题时看题干措辞就近选,别在一道题上纠结两个词谁更规范。

还有一组容易混的:局域网参考模型把数据链路层拆成 LLC 和 MAC 两个子层,LLC 与媒体无关、负责差错与流量控制,MAC 依赖物理媒体和拓扑结构。凡是问到"与介质无关的子层"或"负责差错与流量控制的子层",答案都是 LLC;问到"依赖于物理媒体和拓扑结构",答案是 MAC。

4.3 反向抽查:给设备问层,给机制问层

整理完之后要验证,验证的方向必须是反的:不是看到协议想层,而是看到层说协议、看到设备说层。正向能答、反向卡住,说明记住的是字符串顺序,不是知识结构。

import random CARDS = [ ("ARP 属于哪一层,作用是什么?", "网络层;把 IP 地址映射为对应的物理地址"), ("网关工作在哪几层?", "传输层及传输层以上,提供协议转换"), ("LLC 子层与介质有关吗?负责什么?", "无关;负责差错控制与流量控制"), ("SMTP 的端口号是多少?", "25"), ("B 类地址网络号占几位?默认掩码是什么?", "14 位;255.255.0.0"), ("HDLC 监控帧的帧类型标识位取值?", "10"), ("10BASE5 的 5 代表什么?", "每个网络段的最大长度为 500m"), ] def drill(n=7): for q, a in random.sample(CARDS, min(n, len(CARDS))): input(q + " (回车看答案)") print("答:" + a + "\n") drill()

逻辑说明:random.sample保证一次抽测里不重复出同一张卡,比random.choice更适合小批量过题;input的作用是强制你先在心里说一遍再揭晓,跳过这一步,抽测就退化成看答案。参数n建议设在 10 到 15 之间,超过 20 注意力就开始掉了。

卡片内容建议按层轮流放,别把七张物理层的卡连在一起。混合出题才检验得出归层能力,连续同层只是在复习同一簇。

5. 避坑与排查:答案背熟了,为什么换道题还是错

坑一:网络层的数据单元,一会儿答"数据包"一会儿答"分组"。

现象:同一份材料里两道题,一道问"网络层的协议数据单元通常被称为",答案是数据包;另一道问"OSI 参考模型网络层中的协议数据单元常被称为",答案是分组。考场上遇到哪道都得先愣一下。

原因:这是不同版本教材的译法差异,不是两个概念。分组就是 packet,数据包也是 packet,有的教材把"包"专门留给物理层的信号单位,于是产生了分歧。

解决:把两个词当成同义答案绑定记,题干里出现哪个词就顺着答哪个,别去纠正题目用词。真要在笔记里统一,就记"网络层 PDU = 分组(packet),部分教材写作数据包"。

坑二:10BASE-T 与 10BASE5 的介质和段长串位。

现象:问 10BASE-T 用什么介质、段长多少,有人答"同轴电缆、500 米",把 5 那题的答案整段搬过来了。

原因:没有理解标准命名的构词规则。10 是速率,Base 是基带传输,后缀才是介质和段长代号:T 是 Twisted pair(双绞线),5 是 500 米,2 是 200 米级别的细同轴。

解决:把命名规则当成一条公式记下来,遇到任何 10BASE-x 都拆成三段读。这样即使考到没背过的变种,也能推个八九不离十。这条规则还能顺带解释为什么 10BASE-T 是星型拓扑——双绞线接的是集线器,天然星型。

坑三:端口 16 位、IP 32 位、B 类网络号 14 位、默认掩码 16 位,四个数字互相污染。

现象:题目问"TCP 段结构中端口地址的比特数",答成 32;问"B 类 IP 地址中用于标识网络地址的比特位数",答成 16。

原因:这几个数字都跟"地址"有关,但描述的是不同东西——端口是传输层进程标识,IP 是网络层主机标识,B 类的 14 位是因为前两位固定为 10,而默认掩码 255.255.0.0 覆盖的是前 16 位。四个数字分属三种口径。

解决:按"地址结构位"和"掩码覆盖位"两个口径分开记。B 类地址结构上网络号 14 位、主机号 16 位;默认掩码覆盖前 16 位。端口地址固定 16 位,与 IP 地址毫无关系。做题时先问自己这道题问的是哪一层的东西。

坑四:奇偶校验位方向搞反。

现象:对二进制信息 1001101 做偶校验,填了 1;做奇校验,填了 0,正好全反。

原因:没数清楚信息位里 1 的个数,或者把"偶校验"理解成"校验位取偶数"。

解决:固定流程——先数信息位里 1 的个数(1001101 中共 4 个),偶校验要求总数为偶数,已有 4 个,补 0;奇校验要求总数为奇数,补 1。写答案前在草稿上写一句"1 的个数 = 4",这一步花三秒,能省一道题。

坑五:题号粘连导致整理后总数对不上、旧题重复复习。

现象:解析完发现题目数量比预期多出几条,或者某几道题出现两次,而另一些题根本没进清单。

原因:从文档复制时,上一题末尾的数字和下一题的题号连在了一起,形成了"221."这类伪题号;还有一种情况是选项标号被当成题号切走。

解决:解析脚本先用宽松正则切,再统计题号序列,找出跳号和重号的位置人工核对。核对标准不是题号连续,而是语义不重复——宁可手工补几条,也别让重复题占掉复习时间。

坑六:HDLC 帧类型只记了信息帧 0 和监控帧 10,遇到无编号帧就蒙。

现象:题干给一个控制字段,问帧类型,前两种能答,第三种卡住。

原因:只背了材料里出现过的两个值,没建立"帧类型标识位是几位、还剩哪个组合"的结构认识。

解决:把 HDLC 三类帧的标识位当成一个穷举表记——信息帧 0、监控帧 10、无编号帧 11,三者覆盖了全部组合。记结构比记两个孤立数字可靠,遇到变体也能推。

6. 把 docx 变成可自测题库:解析、切分与命令行抽测

手抄一遍答案的做法,我试过,抄完基本不会再看第二遍。真正跑得通的是直接读 docx,切出题干和答案,导成 CSV,再用一个几十行的命令行脚本抽测。这样每次打开终端就能过十道,比翻文档现实得多。

from docx import Document import csv, re doc = Document("04741计算机网络原理填空题及答案.docx") # paragraphs 只能拿到正文段落;题目若被塞进表格,必须再扫一遍 tables blocks = [p.text.strip() for p in doc.paragraphs if p.text.strip()] for t in doc.tables: for row in t.rows: for cell in row.cells: txt = cell.text.strip() if txt: blocks.append(txt) SPLIT = re.compile(r"(?<!\d)(\d{1,3})\s*[..、]\s*") def split_items(blocks): items, buf = [], "" for b in blocks: if SPLIT.match(b): # 只看段首,正文中间的编号不动 if buf: items.append(buf) buf = b else: buf = (buf + " " + b) if buf else b if buf: items.append(buf) return items rows = [{"题干": x, "答案": ""} for x in split_items(blocks)] with open("qbank.csv", "w", encoding="utf-8", newline="") as f: csv.DictWriter(f, fieldnames=["题干", "答案"]).writerows(rows) print(len(rows), "条已导出")

这里用SPLIT.match而不是search是有意的:题干内部经常出现层号、协议版本号这种"1."格式,search会把它们误判成新题号,match只看段首就稳得多。答案列默认留空,因为这份材料的答案是混写在题干句子里的,用规则切容易把"Windows NT"这种带空格的内容切断,人工补这一列大约二十分钟,比调正则划算。

导出之后抽测就简单了:

import csv, random def quiz(path, n=10): rows = [r for r in csv.DictReader(open(path, encoding="utf-8")) if r["答案"]] for r in random.sample(rows, min(n, len(rows))): input(r["题干"][:60] + " (回车看答案)") print("→ " + r["答案"] + "\n") quiz("qbank.csv", 10)

if r["答案"]这一句过滤掉还没补答案的行,避免抽到空题。

从那以后我每次整理这类题库,都会先跑一遍解析、把题号序列对一遍,再动手背——顺序反了,后面全是在给错漏的清单补窟窿。希望帮到你。

本文还有配套的精品资源,点击获取