三、核心技术

网络架构中交换机和路由器最主要的工作是实现数据信息在网络上的交换,此处的交换是一种技术概念,即完成数据信息从设备入端口到出端口的转发,只要是符合该定义的所有设备都可被称为交换设备。交换是涵义广泛的词语,被用来描述数据网络第2层设备时指交换机;而被用来描述数据网络第3层设备时通常是指路由器或3层交换机。
对应于ISO定义的7层网络架构,交换机最初工作在第2层(即数据链路层)设备,主要根据MAC地址等网络信息完成数据交换;路由器则工作在第3层(即网络层)设备,需根据IP地址等网络信息完成数据交换。随着设备功能的扩展与提升,目前也有很多能基于三层网络信息实现数据高速转发的交换机。
传统网络交换设备的架构中包含转发平面和控制平面的工作。转发平面主要处理每一个数据报文,使它能通过网络交换设备。这些操作大多采用专门的硬件实现,主要包括转发决策、背板和输出链路调度等功能。控制平面主要管理交换机的转发表或路由器的路由表,同时负责网络配置、系统管理等方面的操作,与转发平面相比,运行频率较低,可采用软件实现。
传统的网络交换设备中转发平面和控制平面是紧密耦合的,被集成实现在单独设备箱中。各个设备的控制平面被分布地部署在网络的各个节点,难以控制全网的网络情况。转发平面通常采用专门设计的ASIC芯片实现提升性能,控制平面则以控制软件或者网络操作系统的形式实现。在传统网络设备中,供应商考虑到技术保密性,通常不对外开放接口供设备用户调用,以此对设备进行控制和管理。这导致用户难以对网络设备能力进行灵活调用,甚至部分情形下,设备管理员必须到现场对设备进行逐台配置。
SDN最主要的贡献之一就是定义了标准的南向接口,用于对网络基础设施层的交换机、路由器等设备进行抽象建模,从而把每台单独的网络设备中的控制平面集中抽取到控制层中,实现底层转发设备的去智能化。SDN网络中底层负责转发的设备只需按照本地保存的转发决策机制进行高速数据转发,而转发决策中的具体策略都由控制层通过南向接口协议统一下发。

(一)工作原理

交换机工作流程可被归纳为解析从设备入端口接收到的数据包,并将其中包含的网络信息与设备中保存的转发表或路由表的内容匹配,进而根据匹配结果将数据通过背板发送到相应的设备出端口。因此在SDN网络中单纯负责网络数据高速转发的基础设施层设备被统一称作交换机。除命名统一外,在以OpenFlow交换机为代表的SDN基础设施层设备中,还将传统网络设备中的二层转发表、三层路由表机制进一步抽象为统一的流表。
作为网络设备的转发平面,交换机需要具备的最根本功能主要包括转发决策、背板、输出链路调度等。以交换机对三层数据报文的转发为例,相关功能如下:

1.转发决策

数据报文到达SDN交换机后,数据包头中携带的信息将在交换机转发表中被查找。若地址被找到,则对应的下一跳MAC地址将被挂接在数据报文最前端,同时IP数据报文的TTL域递减1,并计算出一个新的校验和。

2.背板

数据报文将通过背板转发到SDN交换机对应的设备出端口。其中,为保证处理顺序,数据报文需被加入到一个队列中等待。若当前等待队列中没有足够空间,数据报文可能被丢弃或替换掉其他数据报文。

3.输出链路调度

数据报文到达SDN交换机设备出端口后,需按照一定顺序等待,直到被发出到相应的交换机输出链路。绝大多数转发设备出端口普遍支持利用先入先出(first in first out,FIFO)队列的方式按照数据报文的到达顺序进行下一步转发。同时也有部分先进转发设备将数据报文区分成不同的数据流或优先级的集合,进而安排每个数据报文的发出时间以满足相应QoS要求,这些策略也可在OpenFlow交换机的设计与实现中被应用。

(二)实现技术

对于SDN网络中的交换机,根据使用场景的需要,上述交换功能可采用软件或硬件实现。其中,软件实现的SDN交换机通常与虚拟化Hypervisor相整合,为云计算场景中的多租户灵活组网等业务提供支持。硬件实现的交换机可支持基于硬件设备的组网,同时能满足SDN网络与传统网络的混合组网需求。参考传统的网络转发设备,SDN交换机在具体的设计和实现中还需要对交换模式、背板设计、缓冲机制、数据转发等多方面的技术进行合理选择。