CS 168 · DISCUSSION 11 · GUIDED REASONING WORKBOOK

SDN、虚拟化卸载与 RDMA

把 CPU、NIC、switch、controller 与 application 的 state ownership 标出来,再回答 offload、SDN、virtualization 与 RDMA 的每个动作。

现在轮到你推

无需离开 CourseStack:先预测,再在表格、时间线或状态空间里完成推导;卡住时逐层打开提示,最后才展开解释与变式。

已阅读 Spring 2026 worksheet 与 official solution;以下是原创等价练习。官方 IDs 用于 coverage,对精确原题请回到页末 PDF。

忘记机制?回到 L22 Host Networking 与 L21 SDN →

对应官方 1.1、1.2、1.3、1.4、1.5、1.6、1.7

1 · 把一枚 packet 的工作分到 kernel、NIC 与 queue

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?

Work It Out

为 checksum/segmentation、TCP retransmission、ECN marking、WFQ 分类填写 state owner、是否跨 packet、修改难度与目标。

Hint 1 · Concept

stateless 指不依赖前后 packets,不是“不读字段”。

Hint 2 · State / Invariant

kernel bypass 缩短软件路径并允许定制。

Hint 3 · First Step

ECN 比 loss 提供显式 congestion bit;QoS 在排队时执行优先级。

Reveal · 展开完整推导

segmentation/checksum 可由当前 descriptor/header 完成;retransmission 依赖连接 history。kernel bypass 减少系统调用/协议栈开销但把职责交给用户态。ECN 是显式信号,WFQ 在 contention 时按 class 执行 policy。

Why This Works

性能优化的代价由 state 被移到哪个组件、该组件多容易升级决定。

Variation

若 NIC firmware 可热更新,哪些 tradeoff 改变,跨 packet state 的 correctness 风险是否消失?

对应官方 2.1、2.2、2.3、2.4

2 · SDN link-down 的 event→controller→rules 路径

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 从谁到谁?

Work It Out

stepstate ownerchange/output
detectswitch____
updateNOS/controller____
computerouting app____
installswitches____
Hint 1 · Concept

OpenFlow 只是 forwarding model 的一个接口。

Hint 2 · State / Invariant

controller view 与 policy specification 是独立 abstractions。

Hint 3 · First Step

先更新 topology,再计算,再下发。

Reveal · 展开完整推导

device 报 link event;NOS 更新 global view;routing app 根据 policy 重算;controller 分发新 match-action rules。OpenFlow 可以承载第一层 abstraction,但不等于完整 SDN。

Why This Works

解耦后每个 transition 有明确 state owner,便于验证与替换。

Variation

controller 暂时不可达时,switch 应继续旧 rules、fail closed 还是 local repair?分别写风险。

对应官方 3.1、3.2、3.3、3.4

3 · 重叠 tenant 地址如何靠 match-action 隔离

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 能否正确转发?

Work It Out

写两条 match-action rules:match(VNI,dst IP)→tunnel endpoint/action;再列 access control、accounting、rate limit 哪些可复用同一 table。

Hint 1 · Concept

同一个地址在两个 namespace 中不是同一个 endpoint。

Hint 2 · State / Invariant

封装 metadata 可携带 VNI。

Hint 3 · First Step

action 可 forward/drop/count/mark。

Reveal · 展开完整推导

例如 (Red,10.0.0.8)→tunnel S4;(Blue,10.0.0.8)→tunnel S5。hypervisor switch 或 programmable NIC 可实现。table 也能做 ACL、计数、限速,但 HTTP caching 需要更高层状态。

Why This Works

virtualization 把 tenant identity 加入 lookup key,避免扩大全局唯一地址需求。

Variation

VM 迁移时只更新 action;哪些 packets 可能在 rule version 过渡期走旧 tunnel?

对应官方 4.1、4.2、4.3、4.4、4.5、4.6

4 · RDMA queue 与 completion 的端到端 timeline

Why the official problem exists:检查“绕过 CPU copy”不等于应用无需准备 buffer 或观察完成。

sender app 要把 4KB 写入 receiver buffer;双方 NIC 支持 registered memory、work queue 与 completion queue。

先预测:谁产生 completion queue entry?

Work It Out

阶段senderreceiver
prepareregister buffer____
startpost pointer/work requestreceive work?
transferNIC DMANIC DMA
complete________
Hint 1 · Concept

registered memory 让 NIC 获得安全 DMA mapping。

Hint 2 · State / Invariant

题设的 send/receive queues 都由应用预先投递。

Hint 3 · First Step

NIC 写 CQE,应用检查 CQ。

Reveal · 展开完整推导

双方先 register buffers;sender 向 send queue 放 pointer,receiver 准备 receive buffer/work request;NICs 执行 DMA/网络;NIC 创建 completion entries,应用 poll CQ 得知完成。收益是少 copy/CPU cycles 和低 latency。

Why This Works

RDMA 把 data movement state machine 下沉到 NIC,但 buffer ownership handshake 仍必须明确。

Variation

若 receiver 未 post buffer,预测 NIC/queue 的 failure signature 与应用可观察 evidence。

Closed-book reconstruction

闭卷画一枚 RPC 从 user app 到 NIC、switch queue、远端 registered buffer 的 state ownership;再为 link-down 写完整 SDN recompute path。

一手资料