可编程网络之路
整个网络的角度来看,网络操作系统应该是抽象网络中的各种资源,为网络管理提供易用的接口。
SDN的核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。
既然需要软件来控制虚拟化的设备这才是开发的核心也是研究者最关心和学习的.
NOX——现代网络操作系统 (开源)
NOX的模型主要包括两个部分。
一是集中的编程模型。开发者不需要关心网络的实际架构,在开发者看来整个网络就好像一台单独的机器一样,有统一的资源管理和接口。
二是抽象的开发模型。应用程序开发需要面向的是NOX提供的高层接口,而不是底层。例如,应用面向的是用户、机器名,但不面向IP地址、MAC地址等。
通用性标准
正如计算机操作系统本身并不实现复杂的各种软件功能,NOX本身并不完成对网络管理任务,而是通过在其上运行的各种“应用”(Application)来实现具体的管理任务。管理者和开发者可以专注到这些应用的开发上,而无需花费时间在对底层细节的分析上。为了实现这一目的,NOX需要提供尽可能通用(General)的接口,来满足各种不同的管理需求。
我可以这么理解他NOX是一个network VIEW 的框架系统
开发者通过开发各种application接口来管理实现设置需求
POX是由NOX演变而来,其底层模块由C++实现,上层应用可以用C++或Python编写,它的核心作用是提供快速开发网络控制软件原型的平台。POX和OpenFlow交换机进行交互,可以用于软件定义网络这个新兴学科的基础研究,比如探索和原型分布、SDN调试、网络虚拟化、控制器设计和编程模型。
为何利用python语言?
因为python语言 '胶水语言' 利于快速开发和 底层C++的应用
PS:
Hacker说:“当基础设施硬件抵达生命周期的末尾时,是IT部门提出虚拟化建议的最佳时机,只需要购买少量的新一代服务器,通过整合就能实现较好的虚拟化,如果硬件生命周期还长,但现有基础设施很难支撑虚拟化环境,那么虚拟化建议的确应该搁置一段时间再说。”