软件定义网络(SDN),是一种将网络基础设施层(也成为数据面)与控制层(也称为控制面)分离的网络设计方案。网络基础设施层与控制层通过标准接口连接,比如OpenFLow(首个用于互连数据和控制面的开放协议)。SDN将网络控制面解耦至通用硬件设备上,并通过软件化集中控制网络资源。控制层通常由SDN控制器实现,基础设施层通常被认为是交换机,SDN通过南向API(比如OpenFLow)连接SDN控制器和交换机,通过北向API连接SDN控制器和应用程序。
但是SDN是为了应对什么问题而提出的一种解决手段,比如在一个路由网络中由于既定的路由协议(OSPF,BGP等),导致每个路由中,相当于决策者过多导致全网资源利用率低。为不必要的决策者付费,网络过于复杂等等。即SDN核心思想为转发与控制分离。
SDN可实现集中管理,提升了设计灵活性,还可引入开源工具,具备降低CAPEX和OPEX以及激发创新的优势。SDN是当前网络领域最热门和最具发展前途的技术之一。鉴于SDN巨大的发展潜力,学术界深入研究了数据层及控制层的关键技术,并将SDN成功地应用到企业网和数据中心等各个领