(接Day2的内容 +2s)
E. Layer V: Northbound Interfaces
南行接口已经得到广泛接受(OpenFlow),但现在就定义北向接口还为时尚早,开发不同的控制器经验一定会为开发一个通用的应用程序接口奠定基础。
北向接口可以保证编程语言和控制器的独立性。
很多的控制器都提出并定义了它们自己的北向API。
SFNET是北向接口的一个例子。
其他的提议是使用不同的方法允许应用程序与控制器交互。
F. Layer VI: Language-Based Virtualization
虚拟化解决方案的两个基本特征是能够表示模块化和允许不同级别的抽象,同时仍然保证所需的属性(如保护)。例如,虚拟化技术可以允许对单个物理基础结构的不同视图。
【
intrinsically 从本质上讲
a monolithic control program 单片控制程序
predicate 谓词
time-consuming and error-prone 耗时且易出错
Sequential 顺序的
modules 模块
a declarative language 陈述性语言
asterisk 星号
dynamic verification 动态验证
backward compatibility 向后兼容
determine 确定
transformation placement 变换放置
delegate 代表,委派
subnetwork 分网络
refine 提炼,改善
customize 定制,定做
detecting 探测,发现
anomalies 异常
prolific 多产的
】
表7总结了基于管理程序的虚拟化技术和基于非虚拟机管理程序的虚拟化技术。
G. Layer VII: Programming Languages
网络中的可编程性也开始从诸如OpenFlow(“程序集”)等低级机器语言转向高级编程语言[112]、[203]-[205]、[223]-[225]。类似组装的机器语言,如OpenFlow[9]和POF[31],[120],本质上是模仿转发设备的行为,迫使开发人员花太多时间在低层次的细节上,而不是在解决问题上。
高级编程语言提供的抽象可以极大地帮助解决这些低级指令集[203]-[205],[223]-[225]的许多挑战。编程语言抽象提供的另一个有趣的特性是为虚拟网络拓扑创建和编写程序的能力[248],[250]。
高级SDN编程语言:高级编程语言可以作为一种强大的工具来实现和提供对SDN的不同重要属性和功能的抽象,如网络结构、分布式更新、模块化组合、虚拟化和正式验证[29]。
编程语言还可以提供专门的摘要,以满足其他管理要求,如监测[204]、[224]、[227]、[261]。另一个最重要的方面是编程语言的可移植性,这是开发人员不需要为不同的控制平台重新实现应用程序所必需的。
为SDN提出了几种编程语言,如表8所概述。
H. Layer VIII: Network Applications
网络应用程序可以看作是“网络大脑”。它们实现控制逻辑,这些控制逻辑将被转换为数据平面上的命令,指示转发设备的行为。
【
fail-over and reliability functionalities 故障转移和可靠性功能
aggregate network utilization 综合网络利用率
envision 想象,展望
wildcard-based rules 基于通配符的规则
utilize 利用
aggregating client requests 聚合客户端请求
IP prefixes IP前缀
In tandem 同时
bottleneck 瓶颈
threshold 入口,门槛
seamlessly 无停顿地
respective 各自的
mitigate 减轻,缓和
interoperability 协同工作的能力
dense heterogeneous wireless 密集异构无线
hierarchy 层次
】
尽管用例种类繁多,但大多数SDN应用程序可以分为五类:流量工程、移动性和无线、测量和监视、安全性和可靠性以及数据中心网络。表9和表10总结了几个应用程序,说明了它们的主要用途、实现/评估的控制器以及所使用的南向API。
1)流量工程:
2)移动性和无线性:
【
suboptimal 未达最佳标准的
limited spectrum 有限光谱
allocating radio resources 分配无线资源
implementing handover mechanisms 实施移交机制
managing interference 管理干扰
dynamic spectrum usage 动态频谱使用
enhanced intercell interference coordination 增强信元间干扰协调
device-to-device offloading 设备间卸载
assign transmission 分配传输
】
3)测量和监测:
测量和监视解决方案可分为两类:第一类是为其他网络服务提供新功能的应用程序;第二类是旨在改进基于OpenFlow的SDN特性的建议,例如减少由于收集统计信息而导致的控制平面过载。
【
Point-to-point traffic matrix estimation 点对点流量矩阵估计
construct 修建,构建
diverse aggregation levels 不同聚集级别
traffic anomaly detection 流量异常检测
fine-grained flow-based network 细粒度流网络
flow rule prioritization 流规则排序
malicious 恶意的
】
4)安全性和可靠性:
5)利用SDN提高现有网络的安全性:
SDN已成功地用于其他目的,即检测(和反应)对分布式拒绝服务(DDoS)洪水攻击[325]和主动安全性[321]。
SDN在提高收集来自网络的统计数据和允许应用程序主动地转发转发设备的能力方面提供的能力,对于主动安全策略执行技术(如主动安全性)来说是强有力的(321)。这种新颖的安全性方法提出了一种新的反馈回路,以改善对网络基础设施的防御机制的控制,并围绕五个核心能力:保护、感知、调整、收集和计数器。
6)提高SDN自身的安全性:
7)数据中心联网:
SDN的出现预计会改变目前的状况。早期的研究表明,数据中心网络可以从SDN中显著受益于解决各种问题,如实时网络迁移[318],改进网络管理[317],[318],显著避免失败[317],[318],从开发到生产网络的快速部署[318],故障排除[318],[319],网络利用率的优化[314],[316],[317],[319],动态和弹性的提供中间箱即服务[27],并尽量减少流量设置延迟和减少控制器运行成本[363]。
SDN可以通过允许虚拟网络隔离、自定义寻址以及中间盒和虚拟桌面云应用程序的放置[315],[364],帮助基础设施提供商向客户公开更多的网络原语。
8)面向SDN的APP商店:
如表9和表10所示,大多数SDN应用程序依赖于NOx和OpenFlow。
I. Cross-Layer Issues
在本节中,我们将讨论跨层问题,如调试和故障排除、测试、验证、仿真和仿真。表11中可以找到处理这些跨层问题的现有工具的摘要。
1)调试和故障排除
【
post-mortem 事后的
tracing, replay, and visualization 跟踪,重放,可视化
open avenues 开放的途径
breakpoint 断点
backtrace 回溯
packet identifier 包标识符
a truncated copy 截断副本
rollback recovery 回滚恢复
invariant 无变化的
violate 违反,妨碍
filter 过滤器】
2)测试与验证
【
Verification 验证
execution 执行
flow setup latency, flow space granularity 流设置延迟、流空间粒度
security breaches 安全漏洞
snapshot 快照
encoding 编码
】
3)仿真
Mininet [110]是第一个提供快速简化的原型和评估SDN协议和应用程序的系统。 Mininet的一个关键特性是它在虚拟化容器中使用基于软件的OpenFlow交换机,提供与基于硬件的OpenFlow交换机完全相同的语义。