并发网络更新中的数据流模型检查
1. 引入示例
在软件定义网络中,网络更新是一个常见且关键的操作。以一个包含五个交换机和六条连接的简单网络拓扑为例,我们的目标是将网络从初始的路由配置更新到目标配置。
初始和目标路由配置通常以静态Net - Core程序的形式给出,其中 ingress 和 egress 部分分别定义了数据包进入和离开网络的位置,形如 v.fwd(u) 的表达式表示交换机 v 将数据包转发到交换机 u 。
在分布式环境下实现这种更新并非易事。例如,如果交换机 x 在交换机 y 更新为向交换机 d 转发之前就更新为向 y 转发,那么到达 x 的数据流就会在 x 和 y 之间形成循环。因此,正确的更新过程必须确保交换机更新 upd(y.fwd(d)) 和 upd(x.fwd(y)) 按顺序进行,而交换机 v 的更新可以任意顺序进行。一个正确的并发更新可以表示为: (upd(y.fwd(d)) >> upd(x.fwd(y))) || upd(v.fwd(x)) ,其中 >> 表示顺序组合, || 表示并行组合。 </
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



