Skip to content

2018年 408 计算机网络 第 40 题

计算机网络2018年选择题2分

题目

无需转换即可由 SMTP 协议直接传输的内容是( )。

错因

A

JPEG 图形是二进制内容(每字节 0 ~ 255 的任意值,含高位字节)——SMTP 原始协议(RFC 821)只支持 7 位 ASCII 字符(每字节高位必须 0),二进制字节高位上有 1 时会被某些中继系统截断或破坏。要传 JPEG 必须先用 MIME(如 Base64)把二进制编码成 ASCII,再让 SMTP 传。

B

MPEG 视频同 A——是二进制内容,必须 Base64 等 MIME 编码后才能由 SMTP 传输。错的根源:以为"现代 SMTP 应该能直接传所有内容",没意识到 SMTP 协议本身仍是 7 位 ASCII 限制,二进制依赖 MIME 包装。

C

EXE 可执行文件同 A、B——纯二进制(含机器码 0xFF 等高位字节),必须 MIME 编码。错的根源:把"邮件能不能附 EXE"和"SMTP 协议本身能不能直传 EXE"两个层次混淆。

总解析

第一步:明确 SMTP 协议的字符集限制

SMTP(RFC 821 / 5321)是 1982 年的协议,从设计之初就规定 传输内容必须是 7 位 ASCII——每字节高位为 0,只能表达 128 个字符(英文字母、数字、标点、控制字符)。

为什么这么定:1980 年代的中继系统(IBM 大型机网关、x.25 链路等)很多只能处理 7 位字符;为了普适性 SMTP 自我限制到 7 位 ASCII。

第二步:8 位二进制内容怎么走 SMTP?

引入 MIME(Multipurpose Internet Mail Extensions,RFC 2045 ~ 2049)——一种编码层

  • 把任意二进制内容用 Base64 / Quoted-Printable 等编码方式映射成 7 位 ASCII 字符串
  • 同时在邮件头里增加 Content-Type Content-Transfer-Encoding 等字段,告诉接收方如何解码

接收方用户代理收到邮件后按 MIME 头解码,恢复原始二进制内容。

逐项核对

选项是否纯 7 位 ASCIISMTP 能否直传需要 MIME 编码?
A JPEG二进制,含高位 1 字节❌ 不能✅ 必须 Base64
B MPEG二进制❌ 不能✅ 必须 Base64
C EXE二进制❌ 不能✅ 必须 Base64
D ASCII 文本本身就是 7 位✅ 直接传❌ 不需要

ASCII 文本(每字符高位 = 0)天然符合 SMTP 协议要求,不需要任何中间转换层。

最终答案是 D(ASCII 文本)

编者注(生僻术语):SMTP 后续有扩展协议 8BITMIME(RFC 6152)允许 8 位字符传输,但仍不是"任意二进制都能传"——8 位仅指支持 ISO-8859 等单字节字符集,不等于 binary。真正传二进制依旧需要 MIME 编码(Base64 把 3 字节二进制编成 4 字节 ASCII,膨胀约 33%)。所以现代邮件附带的图片 / 视频,仍然都是先 Base64 编码、再被 SMTP 传输,到对端解码还原。这是为什么大附件邮件比裸文件大约 33%。

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题