The role of the inter-controller consensus in the placement of distributed SDN controllers
- 2017
- Computer Communications
问题:in-band网络的多控制器放置问题,考虑到多个控制器之间的同步(Ctr-Ctr)可能影响到控制器与交换机(Ctr-Sw)的时延;
关于同步
首先分析了两种分布式控制器的同步模式:SDO及MDO:
- SDO(single data-ownership):单个Leader、多个Follower的模式,所有控制器收到来自所属交换机的请求后都需要发送给Leader,Leader广播到所有的Follower,然后根据大多数的意见反馈给发送请求的控制器。一种强一致性的模式;
这个模式下,Ctr-Sw的时延由交换机到所属控制器,Follower到Leader及与Leader距离最远的Follower组成;
- MDO(multiple data-ownership):各个控制器处理自己域的事务,定时同步各自域的状态(拓扑,流表等)。一种弱一致性(最终一致性)的模式;
这个模式下,Ctr-Sw的时延只有交换机到所属控制器的时延;
可见,对于不同的同步算法,Ctr-Sw的差异很大。特别是对于SDO,Ctr-Ctr对于Ctr-Sw的影响不可忽略;
Ctr-Ctr与Ctr-Sw
显然,在SDO下,Ctr-Ctr与Ctr-Sw不能同时达到最优。但是实验表明可以通过增加一定的Sw-Ctr时延,可以明显减少Ctr-Ctr的时延(多达几个数量级);
算法
分布式控制器放置问题的目的是求出与各个控制器直连的交换机;即:
$$π = [π_C]_{C=1}^C$$
解的数量可以表示为
$$|\Omega| = C_N^C$$
其中,N为交换机数量,C为控制器数量;
EVO-PLACE算法输出为C,N及循环次数i_max,输出一个Pareto解集P,具体如下:
(1)设置Pareto解集P,初始为空;
(2)随机生成一种放置解π;
(3)与P中的每一个解p比较:如果π被p支配则删除π,并执行(7);若p被π支配则用π代替p,并执行(4);
(4)选择π中与其他控制器距离最远(时延最大)的控制器c,及离c最近的控制器c';
(5)沿路径<c,c'>,将c移动一跳得到π‘,如下图所示;

(6)将π'与P中每一个解p比较:若p被π‘支配则用π’代替p,并执行(7);
(7)执行(2),直到循环次数达到i_max;
其中,(4)(5)是为了减少Ctr-Ctr的时延来获得更优的解;
实验
论文对中小型ISP网络进行了枚举形成散点图并标注Pareto点。通过分析Ctr-Ctr时延的减少和Ctr-Sw的时延的减少来证明Ctr-Ctr与Ctr-Sw的结论;
算法方面,比较EVO-PLACE和RND-PLACE(随机生成,不执行上一节中的(4)(5)步)的结果与枚举得到的Pareto解的差异(Ctr-Ctr和Ctr-Sw的差值);
支配及被支配
假设任何二解S1 及S2 对所有目标而言,S1均优于S2,则我们称S1 支配S2(s2 is dominated by s1),若S1 的解没有被其他解所支配,则S1 称为非支配解。
对于本文,目标函数为:最小化Ctr-Ctr平均时延及最小化Ctr-Sw平均时延;
The role of the inter-controller consensus in the placement of distributed SDN controllers的更多相关文章
- SDN可靠性相关
A subtree-based approach to failure detection and protection for multicast in SDN FRONTIERS OF INFOR ...
- Samba 4 Domain Controller on Ubuntu 14.04 LTS
1. Configure network with a static ip address $sudo nano /etc/network/interfaces auto eth0 iface eth ...
- 【IOS笔记】View Controller Basics
View Controller Basics 视图控制器基础 Apps running on iOS–based devices have a limited amount of screen s ...
- Controller Plane
Toward Highly Available and Scalable Software Defined Networks for Service Providers IEEE Communicat ...
- View Controller Programming Guide for iOS---(二)---View Controller Basics
View Controller Basics Apps running on iOS–based devices have a limited amount of screen space for d ...
- The Role of View Controllers
https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/index.html# ...
- 7.1、controller节点配置
0.配置openstack版本yum源: yum install centos-release-openstack-rocky 1.安装 OpenStack 客户端: yum install pyth ...
- ASP.NET Core开发-MVC 使用dotnet 命令创建Controller和View
使用dotnet 命令在ASP.NET Core MVC 中创建Controller和View,之前讲解过使用yo 来创建Controller和View. 下面来了解dotnet 命令来创建Contr ...
- ASP.NET MVC3 Areas 分离项目 同名控制器(同名Controller) 演示demo
为什么需要分离? 我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等.但是在实际 ...
随机推荐
- Jmeter遇到线程链接被重置(Connection reset by peer: socket write error)的解决方法
做性能测试的时候遇到一个很奇怪的问题,多线程的计划,有一个线程第一次能跑过,第二次确跑不过,单独跑这个线程跑多少次都没有问题,把思考时间改短也没有问题,唯独出现在特定的状态下,特定状态是啥,也不得而知 ...
- Linux命令——磁盘管理
Linux命令--磁盘管理 命令df 作用:查看已挂载磁盘的总容量.使用容量.剩余容量等 参数:-i,查看inodes的使用状况 参数:-h,使用合适的单位显示(推荐) 命令du 作用:查看某个目录或 ...
- WorldWind源码剖析系列:数学引擎类MathEngine
PluginSDK中的MathEngine类是密封类.不可继承,主要完成通用的数学计算功能.由于按平面展开层层划分,所以在WW里用到一个row,col的概念,类MathEngine封装了从行/列到经/ ...
- Python2.7-StringIO和cStringIO
官方文档:https://docs.python.org/2/library/stringio.html StringIO 和 cStringIO 都是对内存中的文件进行读写,操作方法与文件操作类似, ...
- 例子:照片的OCR识别
来自ng的ml-003中 18_XVIII._Application_Example-_Photo_OCR 这是ng2013年在coursera上最后的一课了.这一系列的几个视频还是相比前面有些难懂, ...
- abp 将abp项目发布之后挂在IIS上无法访问嵌入资源的问题
在本地调试是能够正常访问到写在另一个程序集中的嵌入资源,但是发布之后 挂在IIS上却不能访问. 整了半天没找到原因.后来发现是发布时配置错误造成的:取消勾选precompile during publ ...
- 快速在Ubuntu安装PHP网站
快速安装使用的是tasksel,tasksel是Debian / Ubuntu的工具,安装多个相关软件包作为一个协调的“任务”到你的系统.这个lamp-server^跟taskel这个程序有关.下面是 ...
- Java转python第一天
1.python xx.py 2.字符串可以与数字相乘 str = "abc" msg = str*3 print(msg) # 结果:abcabcabc 3.换行用三个单引号 ' ...
- js开关插件使用
一.简介 本篇文章介绍一个比较好使用的js开关插件Switchery,该插件的样式是ios7的滑动按钮插件,并且将很多功能加入到配置项,简单.灵活,支持的绝大部分浏览器(Chrome, Firefox ...
- 20155220 《网络对抗》Exp 8 Web基础
20155220 <网络对抗>Exp 8 Web基础 基础问题回答 实践内容 1.Web前端HTML 配置环境 正常安装.启动Apache 安装:sudo apt-get install ...