CS 168 · DISCUSSION 11 · GUIDED REASONING WORKBOOK
把 CPU、NIC、switch、controller 与 application 的 state ownership 标出来,再回答 offload、SDN、virtualization 与 RDMA 的每个动作。
无需离开 CourseStack:先预测,再在表格、时间线或状态空间里完成推导;卡住时逐层打开提示,最后才展开解释与变式。
已阅读 Spring 2026 worksheet 与 official solution;以下是原创等价练习。官方 IDs 用于 coverage,对精确原题请回到页末 PDF。
对应官方 1.1、1.2、1.3、1.4、1.5、1.6、1.7
Why the official problem exists:检查 kernel bypass、stateless offload、ECN 与 QoS 的收益和可变性边界。
RPC packet 依次经过 app→kernel socket→driver→NIC→switch queue。云服务同时有 latency-sensitive mice 与 bulk elephants。
先预测:segmentation offload 为什么可视为 stateless?
为 checksum/segmentation、TCP retransmission、ECN marking、WFQ 分类填写 state owner、是否跨 packet、修改难度与目标。
stateless 指不依赖前后 packets,不是“不读字段”。
kernel bypass 缩短软件路径并允许定制。
ECN 比 loss 提供显式 congestion bit;QoS 在排队时执行优先级。
segmentation/checksum 可由当前 descriptor/header 完成;retransmission 依赖连接 history。kernel bypass 减少系统调用/协议栈开销但把职责交给用户态。ECN 是显式信号,WFQ 在 contention 时按 class 执行 policy。
性能优化的代价由 state 被移到哪个组件、该组件多容易升级决定。
若 NIC firmware 可热更新,哪些 tradeoff 改变,跨 packet state 的 correctness 风险是否消失?
对应官方 2.1、2.2、2.3、2.4
Why the official problem exists:区分 forwarding abstraction、global state abstraction 与 policy language。
switch S1—S2 link down;switch 只保存 match-action rules,controller 保存 topology view 与 routing application。
先预测:第一条控制面 event 从谁到谁?
| step | state owner | change/output |
|---|---|---|
| detect | switch | ____ |
| update | NOS/controller | ____ |
| compute | routing app | ____ |
| install | switches | ____ |
OpenFlow 只是 forwarding model 的一个接口。
controller view 与 policy specification 是独立 abstractions。
先更新 topology,再计算,再下发。
device 报 link event;NOS 更新 global view;routing app 根据 policy 重算;controller 分发新 match-action rules。OpenFlow 可以承载第一层 abstraction,但不等于完整 SDN。
解耦后每个 transition 有明确 state owner,便于验证与替换。
controller 暂时不可达时,switch 应继续旧 rules、fail closed 还是 local repair?分别写风险。
对应官方 3.1、3.2、3.3、3.4
Why the official problem exists:从一个具体 packet 推导为何 match key 需要 tenant identity。
Tenant Red 与 Blue 都有 VM 10.0.0.7;它们接入同一 software switch S1,目标也各有 10.0.0.8。
先预测:只匹配 dst IP 能否正确转发?
写两条 match-action rules:match(VNI,dst IP)→tunnel endpoint/action;再列 access control、accounting、rate limit 哪些可复用同一 table。
同一个地址在两个 namespace 中不是同一个 endpoint。
封装 metadata 可携带 VNI。
action 可 forward/drop/count/mark。
例如 (Red,10.0.0.8)→tunnel S4;(Blue,10.0.0.8)→tunnel S5。hypervisor switch 或 programmable NIC 可实现。table 也能做 ACL、计数、限速,但 HTTP caching 需要更高层状态。
virtualization 把 tenant identity 加入 lookup key,避免扩大全局唯一地址需求。
VM 迁移时只更新 action;哪些 packets 可能在 rule version 过渡期走旧 tunnel?
对应官方 4.1、4.2、4.3、4.4、4.5、4.6
Why the official problem exists:检查“绕过 CPU copy”不等于应用无需准备 buffer 或观察完成。
sender app 要把 4KB 写入 receiver buffer;双方 NIC 支持 registered memory、work queue 与 completion queue。
先预测:谁产生 completion queue entry?
| 阶段 | sender | receiver |
|---|---|---|
| prepare | register buffer | ____ |
| start | post pointer/work request | receive work? |
| transfer | NIC DMA | NIC DMA |
| complete | ____ | ____ |
registered memory 让 NIC 获得安全 DMA mapping。
题设的 send/receive queues 都由应用预先投递。
NIC 写 CQE,应用检查 CQ。
双方先 register buffers;sender 向 send queue 放 pointer,receiver 准备 receive buffer/work request;NICs 执行 DMA/网络;NIC 创建 completion entries,应用 poll CQ 得知完成。收益是少 copy/CPU cycles 和低 latency。
RDMA 把 data movement state machine 下沉到 NIC,但 buffer ownership handshake 仍必须明确。
若 receiver 未 post buffer,预测 NIC/queue 的 failure signature 与应用可观察 evidence。
闭卷画一枚 RPC 从 user app 到 NIC、switch queue、远端 registered buffer 的 state ownership;再为 link-down 写完整 SDN recompute path。