0731-84728105
15116127200
OpenBox网络全功能(néng)可(kě)编程平台:工欲善其事,必先利其器!
发布时间:2021-03-09
阿基米德说:“给我一个杠杆我能(néng)翘起整个地球!”
我觉得:“给我一台OpenBox设备我能(néng)改变整个网络!”
牛皮吹大了,肯定会破。但牛皮吹多(duō)了,肯定会信。不管是自己还是别人!
     FAST是一个与平台无关的开源架构,根据FAST原理(lǐ)和规范实现的CPU + FPGA 异构网络设备形态都属于FAST平台。点击此处了解FAST——开源、开放、高速、高效。
     OpenBox是湖(hú)南新(xīn)实全力打造的一款面向计算机网络实验科(kē)研与教學(xué)平台设备的品牌型号,是基于FAST架构实现的一种支持软硬件全功能(néng)编程的网络实验开发平台。物(wù)如其名,其设备外观如白色,盒状;小(xiǎo)巧,精致;气质朴素,纯洁。其系统结构為(wèi)典型的多(duō)核CPU+FPGA异构形式,辅以一个控制平台以太网接口和4个数据平台以太网接口。系统搭建遵循FAST架构规范,在多(duō)核CPU软件侧运行普通Linux系统、通用(yòng)SOCKET应用(yòng)、FAST软件开发环境和FAST应用(yòng)。在FPGA硬件侧运行平台相关FPGA OS逻辑和用(yòng)户模块逻辑。软件使用(yòng)C语言编程,硬件使用(yòng)Verilog语言编程。OpenBox也本着开源、开放、高速和高效的原则為(wèi)國(guó)内外近百家高校和科(kē)研院所提供平台定制、功能(néng)定制、协议定制、案例定制和全方位的使用(yòng)培训、开发服務(wù)等功能(néng)。
软件也编程,硬件也编程,软硬都可(kě)以编程。如果您不想编程,这平台可(kě)能(néng)不适合您折腾。建议您换个频道试试?我就想打造一个完全服从自己的网络世界,这才是真正的定义网络。
     一台OpenBox设备就是一个完整的支持软硬件全功能(néng)编程的网络实验平台,平台提供了软硬件二开发环境和大量应用(yòng)开发案例,用(yòng)户可(kě)以在上面进行软硬件任何位置的编程开发。
     一台OpenBox设备就能(néng)改变整个网络?这个牛皮显然是吹大了,但还不致于会破。怎么做?我们绝对不会。下面说点我们平台会的。
     1,编程语言
     OpenBox设备是一台小(xiǎo)型嵌入式主机,拥有(yǒu)完整的操作系统和相关外设。其操作系统已经升级到ubuntu版本,开源库中支持的开发语言基本上都可(kě)以在该平台使用(yòng)。如C、C++、shell、perl、Python等等。
     2,嵌入式开发
     我本是个嵌入式主机,在我上面做的开发当然是嵌入式的开发,还包括驱动移植等,如网络驱动、GPIO、UART等等。
     3,网络服務(wù)搭建
     apt-get install something。直接搭建和配置你想要的服務(wù)器。如FTP服務(wù)器、NFS服務(wù)器、HTTP服務(wù)器和DHCP服務(wù)器等等。
     4,网络协议编程
     A. 系统命令或工具:arp、route、ping、ftp、curl、iperf和tcpdump等。通过系统命令或工具产生或接收指定协议的数据包;查看并分(fēn)析协议格式内容;通过其修改网络协议的数据内容或处理(lǐ)行為(wèi);
     B. 用(yòng)户态协议编程:使用(yòng)libpcap和libnet两个开发库实现网络协议的ETH、ARP、IP、ICMP、TCP、UDP等协议内容的定义与构造,实现与对应网络协议层次通信。libpcap的分(fēn)组获取方式是接口所有(yǒu)流量送到CPU,通过libpcap的内核过滤器筛选后转发用(yòng)户态处理(lǐ);
     C. 用(yòng)户态协议FAST编程:基于FAST软件开发环境与编程接口,实现对网络分(fēn)组数据的硬件筛选,截取分(fēn)派到指定软件应用(yòng)编程处理(lǐ),用(yòng)户可(kě)以自定义其输出格式内容与转发端口控制(单播、多(duō)播或组播)。分(fēn)组内容包含完整以太网帧,支持各层级完整协议解析与重组,且只从硬件提取用(yòng)户关心的小(xiǎo)部分(fēn)特征分(fēn)组流送用(yòng)户态处理(lǐ)。如实现用(yòng)户态ARP功能(néng)应用(yòng)、用(yòng)户态PING功能(néng)应用(yòng)和用(yòng)户态DNS防御功能(néng)等。收发任意用(yòng)户自定义网络分(fēn)组数据帧格式都可(kě)以,也就是说从二层自定义、三层自定义到其他(tā)任何分(fēn)组协议层的定义内容均可(kě)以;
     D. 内核态协议编程:实现诸如ARP内核模块、ICMP内核模块功能(néng),类IP层模块、类UDP模块。在内核插入一个能(néng)处理(lǐ)ARP协议的模块,添加一个类似IP层协议功能(néng)的模块(处理(lǐ)以太网帧类型為(wèi)自己定义的内核模块),添加一个类似UDP层协议功能(néng)模块(处理(lǐ)IP层协议字段為(wèi)自己定义的内核模块)。
     5,网络原型系统
     软件二层交换机:根据二层交换原理(lǐ),仅使用(yòng)FAST用(yòng)户态API接口编程,设计与实现一个二层以太网交换机原型系统,支持多(duō)端口分(fēn)组数据交换功能(néng),实现基本的单播与广播功能(néng),支持MAC转发表老化;
     硬件二层交换机:将软件二层交换的學(xué)习与老化功能(néng)留在CPU软件端处理(lǐ),學(xué)习好MAC表后,配置到硬件FPAG的转发流表中,实现在硬件完成分(fēn)组解析、MAC查表与输出转发功能(néng);
     软件三层路由器:根据三层路由原理(lǐ),基于FAST设计与实现一个路由器原型系统,实现设备接口的ARP请求与响应功能(néng)、分(fēn)组三层解析与修改、FIB查表和二层替换等功能(néng)。支持控制平面(转交协议栈)与数据平面分(fēn)开处理(lǐ),实现基本的路由转发功能(néng);
     硬件三层路由器:将软件三层路由器的控制平台留在CPU软件端处理(lǐ),并安装Quagga路由學(xué)习软件,将路由學(xué)习的FIB表及邻接表内容更新(xīn)到硬件FPGA的相关表项,实现路由器的数据平面完全硬件卸载处理(lǐ);
     软件SDN交换机:根据OpenFlow协议1.3版本实现一个精简的SDN交换机,协议通道支持与Floodlight控制器互联,数据平面支持IPv4和IPv6的分(fēn)组匹配和转发功能(néng);
     高精度硬件测量:由软件构造测量报文(wén)并配置测量报文(wén)的发送时间及间隔,然后提交给硬件发送,硬件发送成功后可(kě)获取每个报文(wén)的硬件输出时间。再等待测量报文(wén)返回,在接口标记其硬件输入时间后转发给测量软件。最后由软件计算测量数据。由于测量数据均由硬件控制,其时间精度可(kě)达到ns级别。发包间隔设置為(wèi)固定長(cháng)度,可(kě)在对端网络测量网络抖动,间隔设置為(wèi)零,则可(kě)以测量网络的实时带宽;
     硬件SDN交换机:将OpenFlow的协议通道留在CPU软件端完成,实现同步控制器下发的FLOW_MOD消息内容到硬件FPGA的转发流表,在硬件完成分(fēn)组的解析、查表和执行动作等功能(néng);
     SDN拓扑测量:根据LLDP协议和BBDP协议测量纯SDN网络环境与跨SDN网络环境的拓扑。支持用(yòng)户自定义拓扑探测协议数据的分(fēn)发与采集;
     基于OVS的SDN交换机:软件运行OVS,并将OVS的内核快速路径流表卸载到硬件FPGA逻辑中,软件实现OVS流表与硬件流表同步更新(xīn)。
     软件LISP路由器:根据LISP工作原理(lǐ),在软件三层路由器基础上增加对LISP功能(néng)的支持,每个RLOC节点启动后均自动与MS/MP注册,获取全网RLOC与EID的映射信息。支持各RLOC下任意EID节点之间互联互通;
     软件段路由:根据段路由(segment routing,SR)工作原理(lǐ),在软件三层路由器基础上增加对段路由功能(néng)支持,支持用(yòng)户在路由实验网中任意配置分(fēn)段跳转路由功能(néng);
     软件网络编码路由(暂未开源):感兴趣的朋友可(kě)上网搜索网络编码路由相关资料;
     时间敏感网络系统(暂未开源):包含时间敏感网络交换机与主机节点,各节点之间可(kě)动态灵活组网,时间同步自动完成。节点支持SDN流表转发配置,输出端口支持8个TT队列,可(kě)将一条流在不同交换节点映射到不同优先级队列调度输出。队列调度支持Qbv,可(kě)配置多(duō)种调度模式使用(yòng)。主机节点加载高实时操作系统及实时驱动与协议栈,与交换机时间同步、调度同步。
     1,技术支撑与培训
     平台提供免费的软硬件源码、开发环境、示例应用(yòng)源码及相关文(wén)档。面向项目组建专属服務(wù)微信群,提供免费培训,讲解和剖析平台原理(lǐ)构架、实现方法、开发流程和调测试步骤。免费為(wèi)用(yòng)户提供设计、开发指导及关键技术快速实现与测试验证。
     2,专属定制服務(wù)
     A. 系统架构:CPU可(kě)选:Intel、飞腾和龙芯;FPGA可(kě)选:Inetl、Xilinx和國(guó)产型号;
     B. PCB器件:部分(fēn)解决方案器件可(kě)实现全國(guó)产化;
     C. 设备外形:网卡、板卡模块、独立1U/2U机箱、ATCA或VPX等;
     D. 设备接口:网口支持1G、10G、40G和100G,串口(或转RJ45)、USB口、JTAG调试口;
     E. 操作系统:开源Linux或國(guó)产Linux;
     F. 内核模块及应用(yòng):PCIe驱动、以太网驱动、协议栈内核模块、协议栈用(yòng)户模块和协议应用(yòng);
     G. 原型系统:交换、路由、SDN、TSN,根据用(yòng)户需求定制开发;
     H .硬件卸载加速:高精度测量、TOE、根据用(yòng)户需求定制开发。
     OpenBox平台為(wèi)您提供了可(kě)以在网络分(fēn)组各个层次对分(fēn)组数据进行解析、处理(lǐ)、封装和自定义的能(néng)力,允许用(yòng)户在硬件FPAG、软件内核态和用(yòng)户态各环境下面处理(lǐ)和定义分(fēn)组数据。同时还允许分(fēn)组数据在软件、内核、用(yòng)户态自由灵活循环分(fēn)派、处理(lǐ)和转发。总有(yǒu)一个层次是适合您设计的,总有(yǒu)一个环境是适合您去开发的,总有(yǒu)一条分(fēn)组处理(lǐ)流水線(xiàn)是可(kě)以满足您业務(wù)或创新(xīn)需求的。
     OpenBox平台助力您在网络學(xué)习、竞赛、教學(xué)和科(kē)研各领域的原理(lǐ)验证与创新(xīn)设计中迅速领跑、高速腾飞和极速穿越。
     未来网络因您的设计而变得更加美好!
      FAST官网:www.fastswitch.org
      湖(hú)南新(xīn)实网络官网:www.xperis.com.cn

关注FAST开源社區(qū)
FAST一一开源、开放、高速、高效、可(kě)编程、可(kě)定义!软硬件协同并行处理(lǐ)。
服務(wù)热線(xiàn)