对于SDN交换机的技术,其实也适用于传统的交换机,只不过控制部分被分离出来而已。传统交换机的控制面主要是转发表的管理以及网络状态之类的各种表,现在这些都由控制器来担心。转发面主要由转发决策、背板和输出链路调度组成。
转发决策是指数据包从输入端口进入交换机后,接下来怎么办。在SDN架构上,就是查询流表。
背板是指作出决策后数据包到达输出端口所经过的地方。主要由两种背板设计方式,一是共享总线型,发往不同端口的数据包共享总线来传输,这个比较容易冲突,类比下以太网;二是交叉开关矩阵型,就是不同的输入端口与输出端口之间存在多条通路,可以类比一下矩阵。
输出链路调度是指在数据包到达输出端口后,需要排队输出。一般由两种缓存机制,一是端口缓存型,每个端口有各自的缓存空间,但有时很多数据都发到同一个端口会导致包的丢失(缓存不够用);二是共享内存型,将接受到的所有数据包放到共享的内存池,直到相关端口准备传输。
另外,交换机还有三种不同的数据交换模式。一是直通型,只对数据帧的前6个字节进行接收和分析,其余直接发到输出端口,优点是快,缺点是不检查数据完整性;二是存储转发型,对整个数据帧进行接受和分析,优点是不放过坏包,缺点是比较慢,但现在的交换机芯片都很快,所以一般采取这种方式;第三个是这两个的折中——零碎片型(快速转发型),对数据帧的前64个字节进行接收和分析,其余直接发到输出端口。为什么是前64个字节?据说是因为实践可知一般检查前64个字节足以发现大部分坏包。