边缘网路( 二 )


边缘网路

文章插图
基于SDN的边缘网路整体架构协定无感知转发协定无感知转发即转发硬体设备对数据报文协定和处理转发流程没有感知,网路行为完全由控制面负责定义 。协定无感知转发技术能够帮助网路服务运营商降低资本性支出和运营性支出,并且使得传统的IP网路具备更灵活的面向实时业务的网路抽象和管理能力 。採用协定无感知转发技术的SDN将提供由软体定义的高效的网路转发硬体设备 。通过软体与硬体解耦可以使得转发麵和控制面独立发展和演进,帮助运营商不需进行硬体升级就可以快速部署新业务 。多网适配接入充分利用多种接入网路协同覆盖的资源,提供接入网发现和选择功能,根据运营商策略为终端选择目标接入网路的模式,通过网路与终端的互动协同,实现网路接入的有效分流,基于SDN的统一控制平面,按照网路负荷、终端能力、用户签约情况等信息制定统一策略,帮助终端用户选择最佳接入的网路制式,实现多种接入方式的协同运营 。软体按需配置边缘控制设备维护了用户相关的业务属性、配置及状态,如用户的IP位址、路由定址的邻接表、动态主机配置协定(DHCP)地址绑定表、组播加入状态、PPPoE/IPoE会话、QoS和访问控制列表(ACL)属性等,这些重要的表项和属性直接关係到用户的服务质量和体验 。基于SDN技术,可以将边缘接入控制设备中路由转发之外的功能都提升到城域网控制器中实现,并可以採用虚拟化的方式实现业务的灵活快速部署 。集中管理监控集中网管只是一个将数据从网路中抽取出来的标準方式(儘管一些工具已经开始尝试从命令行界面中抽取数据),现在的网路管理平台不足以为网路拥有者提供可视性和控制性 。而SDN是一个从商业到技术的接口,SDN将服务呈现给用户和企业,然后将服务予以抽象化以便让控制器可以将它们转换成网路动作 。传统网路中,每个网元均有独立的控制面,网元间通过控制协定进行数据互动;对于SDN,将单个网元的控制面抽离处理,统一成一个独立于设备的控制平面,因而可以拥有网路级的状态,并根据全局网路状态进行最佳化 。此外,随着SDN和虚拟化技术的引入,边缘网路设备从传统依赖于单台设备转发和控制能力提供接入服务,逐渐过渡到由多台边缘设备联合组网协同提供服务,真正实现全网一体化统一接入服务能力,网路运营服务面向“全连线以及零距离”的网际网路运营模式转变 。网路处理器设计网路处理器(Network Processor ,NP)是一种为网路套用而专门设计的可程式器件, 力图将GPP的可程式能力和ASIC 的高性能有机的结合在一起 , 在满足不断增长的网路处理要求的同时快速的适应新的服务要求 。网路处理器的出现为网路设备的设计提供了新的解决方案, 得到了学术界的广泛关注, 并为工业界接受, 已经成为新一代路由交换设备的核心 。储单元、汇流排控制器单元、UART 控制器单元、定时器单元、MAC 控制器单元及其相应的外围接口设备组成 。当系统中包含4 个处理引擎和4 个MAC 控制器时, 该网路处理器的整体结构如图1 所示 。其中, 处理引擎单元(PE0 ~ PE3)是TinyNP 系统的核心, 是该网路处理器的可程式能力的主要体现者 。该处理引擎兼容MIPS I 指令集[ 5] , 採用哈佛结构和Wishbone 汇流排标準, 具有良好的可扩展性和处理能力 。由于在设计充分考虑了扩展的需要,只需要少许的工作便可为该处理引擎添加新的指令支持 。
边缘网路

文章插图
TinyNP 结构TSE树搜寻引擎单元(TSE)和校验和单元(CHECKSUM)是该网路处理器的两种协处理器,分别用于加速网路处理中的搜寻和校验和操作 。其中树搜寻引擎单元採用Patricia 树存储搜寻结构,可完成全匹配和最长前缀匹配等多种搜寻操作 。为了降低硬体複杂度并提高处理效率, 树搜寻引擎只完成最常用的搜寻操作, 而那些複杂但不常用的对表格的维护操作则由运行在处理引擎上的微码程式来完成 。校验和单元用于加速网路处理中常用的Checksum 和CRC 校验等运算 。指令存储单元指令存储单元(INS T_ROM)用于存储处理引擎运行所需的程式代码, 该部件为系统中的多个处理引擎共享 。出于可用资源的限制和效率的考虑, 文中採用一种全局多体交叉伪多连线埠、局部真双连线埠的设计来构建该存储单元, 即该存储单元是採用多体交叉的方式构建的, 并为每个处理引擎提供一个独立的连线埠, 而其中的每个存储体都採用一块双连线埠的存储器实现 。由于处理引擎大部分情况下的取指是顺序进行的, 这种设计可以大大降低取指冲突的机率, 保证多个处理引擎同时访问该单元时的效率 。文中在该系统中运行了Commbench 和Npbench 中选择了部分程式以及Dhry stone 2 .1 基準程式, 实验结果表明在4 个处理引擎的配置中, 取指冲突的机率不到3 % 。汇流排控制器单元汇流排控制器单元(SYS BUS)用于连线系统的各个模组, 提供各个模组间的通信 。在文中的设计中, 模组间的通信採用Wishbone 汇流排标準 。该汇流排是由Opencores .org 网站维护的免费汇流排标準, 具有简单灵活, 占用的逻辑资源少的特点 。由于该汇流排控制器需要同时提供系统中多个模组间的数据仲裁和通信, 必须对它进行仔细的设计才能保证这多个部件同时访问不同的存储器体时, 能并行进行 。MAC 控制器单元MAC 控制器单元(MAC0 ~ MAC3)是系统的乙太网络接口部件, 它在处理引擎模组的控制下对外围的PHY 接口进行控制, 实现乙太网数据包的接收和传送 。该模组接收到或待传送的数据都存放于全局存储器(DATA RAM)中 。汇流排控制器单元为该单元提供了以DMA 的方式访问DATA_RAM模组的能力, 实现乙太网数据包的接收和传送 。UARTUART 控制器单元(UART)用于控制外围的RS232 接口与上位的控制主机的通信, 用以实现TinyNP 系统的程式和数据的下载以及调试信息的输出等功能 。该模组的波特率可以设定, 而且该模组还设定了大小可配置的输入输出缓冲区来减小处理引擎通过它与外部通信时的等待 。控制主机可以通过该接口了解网路处理器系统的运行状态或对系统的运行进行控制 。定时器单元定时器单元(TIMER)是一个计数器/定时器,它可以为处理引擎提供周期的定时中断, 以提供系统对诸如作业系统等系统程式的支持 。另外, 在该模组中有一个暂存器记录系统运行的时间, 处理引擎可以通过读取该暂存器的值以获得当前系统的运行时间, 进行诸如计时等操作 。外围接口外围接口主要包括用于与外部设备通信的RS232 接口、用于乙太网物理层接口的PHY 模组以及其它根据套用需求设定的器件等 。另外, 文中还为该系统设计了一个时钟和复位信号产生部件(C LOCK GEN)用以对输入的时钟进行分频以及根据外部复位信号产生系统需要的复位信号 。该部件可以滤除外部信号的毛刺并使内部的时钟和控制信号的产生对外部电路透明, 提高了系统的稳定性,简化了外部电路的设计 。TinyNP 系统还包括完整的C 语言开发环境的支持, 可以使用GNU 工具链在该系统上进行开发 。另外, 该系统能够支持包括uC/OS 嵌入式作业系统、U-Boot Boot Loader 以及LWIP 协定栈在内的多种基础软体 。这些都使在该系统上的套用开发变得非常的简便和快捷 。