软件定义网络(SDN)是一个涵盖多种网络技术的总称,旨在使网络像现代数据中心的虚拟化服务器和存储基础架构一样。 SDN的目标是允许网络工程师和管理员快速响应不断变化的业务需求。 在软件定义的网络中,网络管理员直接通过对控制器的改变,来控制整体网络的功能,而不用修改网络节点的配置。 SDN实施的关键技术是功能分离,网络虚拟化和可编程性自动化。
最初,SDN只关注网络控制层面(Controller panel)的分离,控制器(Controller)决定数据包在网络中传输。 当数据包到达网络中的交换机(Switch)时,交换机中规则会告诉交换机将数据包转发到哪里。 交换机按照相同的路径发送每一个数据包到同一目的地,并处理所有数据包。 基于传统的SDN运用,控制器会告知交换机数据处理的规则(rules),交换机(基于数据传输层面)根据需要向控制器询问,并为其处理在数据传输。 控制器和交换机一般通过OpenFlow协议进行通信,当然也有其他通信协议。
所以,SDN通过控制规则和数据包的优先级可以帮助网络管理员精准控制网络流量、数据传输。在实际生活中,SDN广泛运用在云计算(clouding computing)和多租户架构(multi-tenancy)。因为SDN可以让网络管理员以更加灵活的方式管理网络负载。同时以更小的代价,来对网络流量的控制。