目前正在使用的网络架构已有30年的历史。在此架构下,交换机/路由器需要在超过6 000个分布式协议中使整个网络正常运行。这意味着只要有一个网元增加一种新的协议,其他网元都必须在结构上做出变更。SDN(Software Defined Network,软件定义网络)则打破了这种桎梏,它使得网络可编程,从而让网络在满足用户需求方面更具灵活性。SDN架构将控制和转发解耦,将控制功能集中到逻辑独立的控制环境之中,同时为应用层提供底层网络的抽象视图。结果就是SDN可以为用户提供可编程性极强的网络、网络自动化管理以及网络控制等功能,从而满足日益变化与丰富的网络需求。SDN控制器在SDN架构中的作用至关重要,它既要与基础设施层交互也需要与应用层经由API交互。首先分析了SDN架构的产生背景、原理和其发展现状;随后研究并分析了一个SDN控制器的开源项目Floodlight;最后通过对当前7种控制器的实验以及SDN相关原理对SDN控制器的特性进行了总结与分析。