CS 168 · LECTURE 21 · 2026-11-12 · 数据中心
SDN 把分布式协议的低层机制抽成集中逻辑控制:应用表达策略,控制器计算规则,交换机执行 match–action。
版本快照:Fall 2026 官方课表与在线教材,核对日期 2026-09-02;官网仍标注 under construction,日期与政策可能变化。
“逻辑集中”怎样简化策略,又怎样避免控制器成为新的单点故障与性能瓶颈?
交换机按 header/metadata 匹配表项,执行 forward、drop、modify、encapsulate、meter 或 goto next table。优先级解决范围重叠,counter 提供观测。
OpenFlow 是一种 southbound 接口,不等于 SDN 全部。SDN 的核心是控制与转发分离及可编程抽象,设备接口可以有多种。
底层 device driver 与设备通信;network operating system 维护拓扑、主机、规则和事件;控制应用实现 routing、ACL、traffic engineering 等策略。抽象让应用不用逐台处理厂商细节。
策略冲突仍需组合语义:routing 允许的路径可能被 ACL 禁止,负载均衡改写可能影响 accounting。规则生成必须验证优先级与覆盖关系。
一次路径变更若逐台随意写规则,包可能在新旧配置混合期间环路或黑洞。two-phase/versioned update 可先安装新规则,再切换入口标记,最后删除旧规则,使每个包完整经历一个版本。
交换机 TCAM 有限、写入慢,控制器不能把每个短流都当作独立规则。聚合与默认规则是可扩展性的关键。
生产控制器通常多副本部署,必须处理 leader、状态同步、分区与设备连接归属。全局视图可能暂时不一致;应用需明确哪些操作要求强一致,哪些可容忍旧信息。
控制平面失联时,交换机应继续使用已装规则,并有超时/本地保护机制。把计算集中不等于把故障命运集中到一台机器。
为两租户隔离 + 最短路写三张 match–action 规则表,随后设计一次无黑洞的路径迁移顺序。
检查:为什么直接逐台替换路径规则可能不安全?
controller 收到 topology/policy event,计算 rule 并写入 switch table
controller 收到 topology/policy event,计算 rule 并写入 switch table;packet arrival 只匹配 rule/action。
检查:判断一个实现分支是否必要,最有力的问题是什么?
检查:若把这一机制移到完全不同的网络位置,首先应重新确认什么?
手推 table-miss → Packet-In → Flow-Mod → subsequent hit。
答案必须出现 packet/message、local state/table、触发 event、after state 与 output;只给定义不算完成。
正文是 CourseStack 的中文解释与重新绘制的教学例子;官方页面负责课程原始定义,历史仓库只提供你的实现证据。