知识卡片

packet-in用缓冲区ID代替完整包体

专业/工作 · 104.a

内容

交换机把没有匹配流表的数据包上报给控制器决策时(packet-in消息),若自身有缓存空间,只把包的前128字节首部和一个缓冲区ID发给控制器,完整包体留在交换机本地;控制器决策后凭这个ID就能让交换机继续处理本地缓存的包,无需把整包内容来回搬运。只有交换机不支持缓存或缓存耗尽时,才退化为发送完整包。发散:这是”控制面只传决策所需元数据、数据面继续持有大payload”的通用优化模式,和消息队列里传引用而非大对象是同一道理。

参考来源

《软件定义网络:基于OpenFlow的SDN技术揭秘》第1章《1.4.3 异步消息》