软考中级软件设计师高频考点:IPv6地址长度VLAN与OSI层次协议归属及真题详解(附历年真题·百度网盘)
软考中级软件设计师高频考点:IPv6地址长度VLAN与OSI层次协议归属及真题详解(附历年真题·百度网盘)
🎯 所属考纲模块:专题八 计算机网络与网络安全(考点 01:OSI 七层模型与 TCP/IP 协议族)
🏷️ 考查题型:上午综合知识单选题(1 分,年均 1~2 题)
📌 核心知识点:OSI 七层与协议/设备归属、IPv4 32 位与 IPv6 128 位、VLAN tag 位域与所属层次、常见端口号、ping/tracert 等命令的层次
💻 实操验证环境:Python 3.10.12(Ubuntu 24.04 / Windows 11 通用,仅用标准库ipaddress,无需 pip 安装)
🔁 系列序号:series_36
本文核心知识点目录
网络协议这一块,软设上午卷的考法二十年没变过,就两种:“某个技术/协议属于 OSI 哪一层”,或者 “某个数字是多少”(地址位数、端口号、可用主机数)。
听起来简单,但它的失分点非常集中:VLAN 标记明明是"局域网"的东西,很多人条件反射选网络层;IPv6 的 /64 前缀见得多了,就把 64 当成了地址长度。本文用三张图把归属关系和位域结构画清楚,再用可运行代码把"32 位 / 128 位 / VLAN ID"这三个数字跑出来,最后用两道真题验证判定逻辑。
一、 OSI 七层:协议与设备的归属表

| 层 | 名称 | 典型协议 | 典型设备/技术 |
|---|---|---|---|
| 7 | 应用层 | HTTP、HTTPS、FTP、SMTP、POP3、IMAP、DNS、Telnet、SSH、SNMP | 网关、代理服务器 |
| 6 | 表示层 | 加密 / 压缩 / 编码(JPEG、ASCII) | — |
| 5 | 会话层 | 会话建立与同步(RPC、NetBIOS) | — |
| 4 | 传输层 | TCP、UDP | 端口号(0~65535) |
| 3 | 网络层 | IP、ARP、ICMP、IGMP、IPSec、路由协议 RIP/OSPF/BGP | 路由器、三层交换机 |
| 2 | 数据链路层 | VLAN tag(802.1Q)、PPP、HDLC、以太网 MAC、STP | 交换机、网桥、网卡 |
| 1 | 物理层 | RS-232、RJ-45、光纤规范 | 中继器、集线器 |
三个高频归属,必须钉死:
VLAN tag → 数据链路层(802.1Q 在以太网帧头插入 4 字节标记)
ARP → 网络层(IPv4 地址 → MAC 地址,报文封装在 IP 之上)
ICMP → 网络层(ping 命令基于它,不是传输层)
为什么 VLAN 是二层?因为 802.1Q 标记插在以太网帧头(源 MAC 之后、类型字段之前),操作的是"帧"这一层的数据单元;而 IP 分组、TCP 段都不认识这个字段。判断归属的通用方法:看它操作的数据单元叫什么——比特→物理层,帧→链路层,分组→网络层,段→传输层。
二、 必背数字:地址长度与端口号

| 项目 | 数值 | 说明 |
|---|---|---|
| IPv4 地址长度 | 32 位 | 点分十进制,4 段各 0~255 |
| IPv6 地址长度 | 128 位 | 冒号十六进制,8 组 × 16 位 |
| MAC 地址长度 | 48 位 | 前 24 位厂商标识,后 24 位序号 |
| 端口号范围 | 0~65535 | 知名端口 0~1023 |
| HTTP / HTTPS | 80 / 443 | HTTPS = HTTP + TLS |
| FTP | 20(数据)/ 21(控制) | 两个端口 |
| SMTP / POP3 / IMAP | 25 / 110 / 143 | 发信 / 收信 / 收信(在线) |
| DNS | 53 | 以 UDP 查询为主 |
| Telnet / SSH | 23 / 22 | SSH 是加密远程登录 |
| SNMP | 161 | 网络管理 |
关于 IPv6 的 128 位,考场上有三个经典干扰项要能一眼排除:
- 16 —— 是"一个十六进制组"的长度(16 位 = 4 个十六进制字符),不是地址总长;
- 64 —— 是 IPv6 最常见的子网前缀长度(/64),指网络前缀占 64 位,剩下 64 位是接口标识;
- 32 —— 是 IPv4 的地址长度。
三、 VLAN tag:4 个字节到底插在哪

IEEE 802.1Q 在以太网帧的源 MAC 与类型字段之间插入 4 个字节:
TPID(16 位)= 0x8100 标识"这是一个带 VLAN 标记的帧"
TCI (16 位)拆三部分:
PCP(3 位) 优先级 0~7,用于 QoS
DEI(1 位) 丢弃资格指示(原 CFI)
VID(12 位) VLAN ID,取值 1~4094(0 与 4095 保留)
因此"一台交换机最多划分多少个 VLAN"的答案来自 12 位这个宽度:2^12 = 4096,去掉保留值,可用 VID 是 1~4094。
四、 可运行验证:把三个结论跑出来
本节代码只用标准库,任何 Python 3.8+ 环境都能直接复制运行,不需要装包。
# Python 3.10.12(3.8+ 均可) 仅用标准库
import ipaddress
# 1) 地址长度:IPv4=32 / IPv6=128
ip4 = ipaddress.ip_address("192.168.1.1")
ip6 = ipaddress.ip_address("2001:db8::1")
print("IPv4 位数:", ip4.max_prefixlen, "| IPv6 位数:", ip6.max_prefixlen)
assert ip4.max_prefixlen == 32 and ip6.max_prefixlen == 128
# 2) 802.1Q tag = TPID(16) + PCP(3) + DEI(1) + VID(12)
TPID, PCP, DEI, VID = 0x8100, 5, 0, 100
tag = (TPID << 16) | (PCP << 13) | (DEI << 12) | VID
print(f"802.1Q tag = 0x{tag:08X}")
vlan_id = tag & 0x0FFF # 低 12 位 → VLAN ID
prio = (tag >> 13) & 0x07 # 再往高 3 位 → 优先级
print("解析 VLAN ID:", vlan_id, "| 优先级:", prio)
assert vlan_id == VID and prio == PCP
# 3) 12 位 VID 的容量:4096 个编号,去掉 0 与 4095 两个保留值
usable = [v for v in range(1 << 12) if v not in (0, 4095)]
print("可用 VLAN 数:", len(usable), "| 范围:", usable[0], "~", usable[-1])
assert len(usable) == 4094
print("OK: IPv4=32 / IPv6=128 / VLAN 可用 4094 已全部验证")
实际运行输出(Ubuntu 24.04 + Python 3.10.12):
IPv4 位数: 32 | IPv6 位数: 128
802.1Q tag = 0x8100A064
解析 VLAN ID: 100 | 优先级: 5
可用 VLAN 数: 4094 | 范围: 1 ~ 4094
OK: IPv4=32 / IPv6=128 / VLAN 可用 4094 已全部验证
如果环境不对会怎样? 这段代码在 Python 3.7 及更早版本会因 ipaddress 的部分行为差异仍可运行,但若把 VMware 等虚拟网卡名传给 ipaddress 会抛 ValueError;另外若把 1 << 12 写成 12 << 1,断言会直接失败——这正是用断言替代"背结论"的价值:错了当场报错,而不是考场上才发现记反。
五、 真题切片
5.1 真题 1(2021 年上半年 软件设计师 上午试卷 第 66 题,官方答案 D)
IPv6 地址长度为(66)bit。
A. 16 B. 32 C. 64 D. 128
答案:D
排除逻辑:
- IPv6 地址 128 位,写成 8 组 4 位十六进制数,组间用冒号分隔,连续 0 组可用
::压缩; - A 的 16 位是"一个十六进制组"的宽度——这是命题人最爱的微观数字,专骗"记得有个 16"的人;
- B 的 32 位是 IPv4 的长度;
- C 的 64 位是 IPv6 常见前缀长度 /64,指的是网络前缀位数,不是地址总长。
5.2 真题 2(2022 年下半年 软件设计师 上午试卷 第 66 题)
VLAN tag 在 OSI 参考模型的(66)实现。
A. 网络层 B. 传输层 C. 数据链路层 D. 物理层
答案:C
排除逻辑:
- VLAN 标记遵循 IEEE 802.1Q,在以太网帧头插入 4 字节 tag,帧是数据链路层的协议数据单元;
- A 网络层处理 IP 分组,VLAN 不参与 IP 寻址,也不改变 IP 头;
- B 传输层处理 TCP/UDP 段,与帧头无关;
- D 物理层只传比特流,看不到帧边界,更无法插入标记。
5.3 补充真题(2022 年下半年 软件设计师 上午试卷 第 68 题)
以下关于 HTTPS 和 HTTP 协议的叙述中,错误的是(68)。
A. HTTPS 协议使用加密传输
B. HTTPS 协议默认服务端口号是 443
C. HTTP 协议默认服务端口号是 80
D. 电子支付类网站应使用 HTTP 协议
答案:D
HTTPS 是 HTTP over TLS,默认 443 端口、全程加密;电子支付类网站必须使用 HTTPS,用 HTTP 明文传输会导致账号口令可被中间人窃听与篡改,所以 D 的说法是反的。
六、 易错点与相邻考点辨析
| 易错点 | 错误做法 | 正确做法 |
|---|---|---|
| 把 VLAN 归到网络层 | 认为"虚拟局域网"是三层概念 | VLAN tag 插在以太网帧头,属数据链路层(802.1Q) |
| 把 ARP 归到数据链路层 | 认为"解析 MAC 就是二层" | ARP 报文封装在 IP 之上,教材归网络层 |
| 把 64 当 IPv6 地址长度 | 见 /64 前缀就记成 64 位 | 地址 128 位;/64 只是常见子网前缀 |
| 认为 HTTPS 只是换了个端口 | 忽略 TLS 握手与证书校验 | HTTPS = HTTP + TLS,涉及证书链验证与密钥协商 |
| 把 ping 当传输层命令 | 见"测试连通性"就选 TCP/UDP | ping 基于 ICMP,属网络层 |
相邻考点提醒:子网划分与可用主机数 2^N − 2 是同一专题的另一半,常与本文的 32/128 位一起考;路由协议按"内部网关 / 外部网关"分类(RIP、OSPF 属内部,BGP 属外部,2020 年下半年第 9 题就考 BGP);加密算法与数字证书见 series_34。
七、 机考与复习建议
- 归属类题目先问数据单元:比特/帧/分组/段,四选一,比死记协议表更稳;
- 数字类题目建立"干扰项清单":考 128 就同时记 16、32、64 分别是什么,考场直接靠排除;
- VLAN 位域画一遍:TPID 16 + PCP 3 + DEI 1 + VID 12,自己动手画一次比看十遍强;
- 机考系统里没有计算器依赖:2^12 = 4096 这类数要能心算,别在考场找计算器。
附:相关真题与复习资料
本文涉及的 IPv6 与 VLAN 协议归属专项历年真题解析已归档,需要可自取:
百度网盘: https://pan.baidu.com/s/1SwVEmITKHveCupjP_VH7pA 提取码: rk02
备用通道: https://pan.quark.cn/s/bd0eb7dd5673
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)