Skip to content

协议项目测验 ​

最后更新:2026 年 9 月 15 日

请先阅读协议项目。 每题选择一个最佳答案,然后说明还需要哪些证据才能改变你的结论。

  1. 哪项学习计划准确反映了截至 2026 年 9 月 15 日的可用性检查?
    • A) 将尚未完成的 2026 年秋季 CS168 网站视为完整且固定的作业安排
    • B) 使用官方 2026 年夏季归档,记录学期,并单独检查作业的访问要求
    • C) 要求必须使用免费开放的当前 CS144 grader 才能完成本练习手册
    • D) 将学习者的 Python 替换为 Python 3.7,以完成所有练习
显示答案

答案:B

说明:夏季归档可以访问,而秋季网站仍在建设中。公开的规范不代表一定能访问学校的评分系统。CS144 是可选的,其历史入口返回 404。归档的 Python 测试说明属于该作业的环境,并不适用于练习手册所用的 Python 3.9+。

  1. 一个 UDP 探测包从 192.0.2.10:41000 → 198.51.100.20:33452 发出。收到的 ICMP Time Exceeded 应答引用了目标地址 198.51.100.99,端口相同。记录台账应如何处理?
    • A) 两个端口都相同,因此匹配此探测
    • B) 外层路由器地址看起来合理,因此匹配此探测
    • C) 将其标记为与此探测无关,并保留目标地址不同这一事实
    • D) 改写发送记录以匹配该应答
显示答案

答案:C

说明:关联时要使用应答引用的原始数据包,包括其地址和协议。目标地址不同这一点不能被相同端口抵消。外层源地址标识错误消息的发送方,而不是原始探测包。应保留此记录作为证据,但不能据此认定预期应答已经收到。

  1. TTL 为 2 的探测没有匹配的应答,但 TTL 为 3 的 UDP 探测收到关联的目标端口不可达消息。这能说明什么?
    • A) 第二台路由器会丢弃所有应用流量
    • B) 有证据表明 TTL 为 3 的探测到达了目标;TTL 为 2 的结果仍未观测到
    • C) 缺失的路由器 RTT 为零
    • D) TTL 为 1 的重复应答可以补上缺失的跳数
显示答案

答案:B

说明:在截止时间内没有收到应答,说明的是观测范围的限制。过滤、应答速率限制或返回路径行为都可能导致中间跳应答不可见。之后收到的目标端证据不能识别该中间路由器,也不能证明固定的应用路径。重复应答仍然只是重复项。

  1. 你的双字节长度前缀帧协议以四种不同的 recv() 分段方式收到相同的完整字节流。应满足哪项结果?
    • A) 每次 recv() 都对应一条应用记录
    • B) 对每一种完整分段方式,解析得到的逻辑记录都相同
    • C) 长度字段被拆分时必须立即结束连接
    • D) 消息体尚未接收完整时遇到 EOF,就视为消息体已完整
显示答案

答案:B

说明:TCP 提供的是字节流,而不是消息边界。解析器必须保留不完整的标头/消息体,并一致地输出完整记录。消息体接收期间遇到 EOF 属于截断失败;长度超过选定上限时,应在进行无界内存分配前拒绝。以上是原始练习协议的属性,不是某个大学项目的解决方案。

  1. 发送方公布的接收窗口很大,但拥塞窗口很小。它为什么仍可能发送缓慢?
    • A) 接收方的可用容量会取消发送方的所有限制
    • B) 拥塞控制可以独立于接收方流量控制,限制在途数据
    • C) 接收窗口和拥塞窗口只是同一个字段的两种名称
    • D) CS168 Project 3 实现了判断这一点所需的所有拥塞控制算法
显示答案

答案:B

说明:接收方流量控制用于保护接收端;拥塞控制用于限制路径负载。未确认的字节数、发送节奏和可用的应用数据也会产生影响。CS168 已归档的 Project 3 明确不包括拥塞控制,因此完成该项目不能证明生产环境中的拥塞控制器有效。

  1. 抓取到的连接有一个序列号为 1000 的 SYN,随后有 6 个从 1001 开始的负载字节。假设没有缺口,收到该负载后,下一个字节的 ACK 序列号是多少?
    • A) 1006
    • B) 1007
    • C) 1008,因为纯 ACK 会占用一个序列号位置
    • D) 由数据段数量决定
显示答案

答案:B

说明:SYN 会占用一个序列号位置。负载占用 1001 到 1006,因此下一个预期字节的序列号是 1007。纯 ACK 不占用序列空间;如果存在 FIN,则会额外占用一个位置。计数依据是流中的字节,而不是抓包软件对数据包的分组方式。

  1. curl 未使用 --fail,成功退出并显示来自 /missing 的 HTTP 404。这说明了什么?
    • A) 没有连接到 HTTP 服务器
    • B) 请求的资源存在
    • C) HTTP 通信已完成,但资源查找未成功
    • D) TCP 校验和一定有误
显示答案

答案:C

说明:传输/工具层的成功与应用状态是不同的。这里的否定路由是通过正常工作的 HTTP 连接返回的有意应用层失败。应检查状态码和消息体,而不能将退出码为零视为所请求操作成功。添加 --fail 会改变 curl 处理 HTTP 错误状态的方式,不会改变服务器返回的结果。

  1. 哪项证据最能支持 HTTP/3 这一判断?
    • A) 发往 UDP 443 端口的任意 UDP 数据包
    • B) 命令行中写有 --http3,不考虑回退行为或工具支持情况
    • C) 端点证据显示使用 QUIC 并已协商 HTTP/3,同时记录客户端能力
    • D) 环回学习服务器返回的 HTTP/1.1 输出
显示答案

答案:C

说明:端口号和请求使用的模式不能证明最终协商的协议。--http3 可能会回退;--http3-only 的行为不同,也需要构建版本支持。QUIC 在 UDP 之上承载流,而 HTTP/3 会将 HTTP 映射到这些流上。拥塞控制仍为共享机制,但独立的流可避免 TCP 跨流交付阻塞。

  1. 将 ICMP 台账扩展到 IPv6 后,需要做什么改变?
    • A) 只需重命名 TTL,所有标头偏移量和 ICMP 类型保持不变
    • B) 使用 Hop Limit,考虑 IPv6 扩展标头和 ICMPv6 类型,并记录地址族/作用域
    • C) 预期路由器会对转发的 IPv6 数据包进行分片
    • D) 将 AAAA 应答视为学习者拥有 IPv6 路由的证明
显示答案

答案:B

说明:IPv6 解析方式和 ICMPv6 错误类型均有所不同。路由器不会对转发的数据包进行分片;Packet Too Big 和 Time Exceeded 适用于不同的诊断。AAAA 数据只能证明名称解析结果,不能证明路由可用。IPv6 邻居发现机制也不同于 ARP。

  1. 抓包在连接关闭之前就达到了 20 秒截止时间。正确的完成记录应是什么?
  • A) 宣称服务器无法关闭连接
  • B) 隐藏超时状态并推断缺失的 FIN 数据包
  • C) 记录计时器结果和不完整的覆盖范围,停止自己启动的辅助进程,并检查监听器
  • D) 停止所有使用 TCP 的进程,然后不设限制地再次抓包
显示答案

答案:C

说明:抓包截止时间是收集边界。应保留其退出状态和抓包计数器,并将连接关闭标记为未观测到,而不是失败。只停止自己拥有的前台辅助进程,或等待其计时器到期,然后验证监听器过滤规则。受权限限制的离线分析也必须明确标记为受限分析。

返回练习手册完成标准或专家课程地图。

向文档提问

按 Enter 发送,按 Shift+Enter 换行。