0731-84728105
15116127200
OpenBox網絡全功能可(kě)編程平台:工欲善其事,必先利其器!
發布時間:2021-03-09
阿基米德說:“給我一(yī)個杠杆我能翹起整個地(dì)球!”
我覺得:“給我一(yī)台OpenBox設備我能改變整個網絡!”
牛皮吹大了,肯定會破。但牛皮吹多了,肯定會信。不管是自(zì)己還是别人!
     FAST是一(yī)個與平台無關的(de)開源架構,根據FAST原理(lǐ)和(hé)規範實現的(de)CPU + FPGA 異構網絡設備形态都屬于FAST平台。點擊此處了解FAST——開源、開放、高(gāo)速、高(gāo)效。
     OpenBox是湖南新實全力打造的(de)一(yī)款面向計算機(jī)網絡實驗科(kē)研與教學(xué)平台設備的(de)品牌型号,是基于FAST架構實現的(de)一(yī)種支持軟硬件全功能編程的(de)網絡實驗開發平台。物如(rú)其名,其設備外觀如(rú)白色,盒狀;小巧,精緻;氣質樸素,純潔。其系統結構為(wèi)典型的(de)多核CPU+FPGA異構形式,輔以一(yī)個控制平台以太網接口和(hé)4個數據平台以太網接口。系統搭建遵循FAST架構規範,在多核CPU軟件側運行(xíng)普通Linux系統、通用SOCKET應用、FAST軟件開發環境和(hé)FAST應用。在FPGA硬件側運行(xíng)平台相關FPGA OS邏輯和(hé)用戶模塊邏輯。軟件使用C語言編程,硬件使用Verilog語言編程。OpenBox也本着開源、開放、高(gāo)速和(hé)高(gāo)效的(de)原則為(wèi)國(guó)內(nèi)外近百家高(gāo)校和(hé)科(kē)研院所提供平台定制、功能定制、協議定制、案例定制和(hé)全方位的(de)使用培訓、開發服務等功能。
軟件也編程,硬件也編程,軟硬都可(kě)以編程。如(rú)果您不想編程,這平台可(kě)能不适合您折騰。建議您換個頻道(dào)試試?我就想打造一(yī)個完全服從自(zì)己的(de)網絡世界,這才是真正的(de)定義網絡。
     一(yī)台OpenBox設備就是一(yī)個完整的(de)支持軟硬件全功能編程的(de)網絡實驗平台,平台提供了軟硬件二開發環境和(hé)大量應用開發案例,用戶可(kě)以在上面進行(xíng)軟硬件任何位置的(de)編程開發。
     一(yī)台OpenBox設備就能改變整個網絡?這個牛皮顯然是吹大了,但還不緻于會破。怎麽做(zuò)?我們絕對不會。下面說點我們平台會的(de)。
     1,編程語言
     OpenBox設備是一(yī)台小型嵌入式主機(jī),擁有(yǒu)完整的(de)操作系統和(hé)相關外設。其操作系統已經升級到ubuntu版本,開源庫中支持的(de)開發語言基本上都可(kě)以在該平台使用。如(rú)C、C++、shell、perl、Python等等。
     2,嵌入式開發
     我本是個嵌入式主機(jī),在我上面做(zuò)的(de)開發當然是嵌入式的(de)開發,還包括驅動移植等,如(rú)網絡驅動、GPIO、UART等等。
     3,網絡服務搭建
     apt-get install something。直接搭建和(hé)配置你想要的(de)服務器。如(rú)FTP服務器、NFS服務器、HTTP服務器和(hé)DHCP服務器等等。
     4,網絡協議編程
     A. 系統命令或工具:arp、route、ping、ftp、curl、iperf和(hé)tcpdump等。通過系統命令或工具産生或接收指定協議的(de)數據包;查看并分析協議格式內(nèi)容;通過其修改網絡協議的(de)數據內(nèi)容或處理(lǐ)行(xíng)為(wèi);
     B. 用戶态協議編程:使用libpcap和(hé)libnet兩個開發庫實現網絡協議的(de)ETH、ARP、IP、ICMP、TCP、UDP等協議內(nèi)容的(de)定義與構造,實現與對應網絡協議層次通信。libpcap的(de)分組獲取方式是接口所有(yǒu)流量送到CPU,通過libpcap的(de)內(nèi)核過濾器篩選後轉發用戶态處理(lǐ);
     C. 用戶态協議FAST編程:基于FAST軟件開發環境與編程接口,實現對網絡分組數據的(de)硬件篩選,截取分派到指定軟件應用編程處理(lǐ),用戶可(kě)以自(zì)定義其輸出格式內(nèi)容與轉發端口控制(單播、多播或組播)。分組內(nèi)容包含完整以太網幀,支持各層級完整協議解析與重組,且隻從硬件提取用戶關心的(de)小部分特征分組流送用戶态處理(lǐ)。如(rú)實現用戶态ARP功能應用、用戶态PING功能應用和(hé)用戶态DNS防禦功能等。收發任意用戶自(zì)定義網絡分組數據幀格式都可(kě)以,也就是說從二層自(zì)定義、三層自(zì)定義到其他任何分組協議層的(de)定義內(nèi)容均可(kě)以;
     D. 內(nèi)核态協議編程:實現諸如(rú)ARP內(nèi)核模塊、ICMP內(nèi)核模塊功能,類IP層模塊、類UDP模塊。在內(nèi)核插入一(yī)個能處理(lǐ)ARP協議的(de)模塊,添加一(yī)個類似IP層協議功能的(de)模塊(處理(lǐ)以太網幀類型為(wèi)自(zì)己定義的(de)內(nèi)核模塊),添加一(yī)個類似UDP層協議功能模塊(處理(lǐ)IP層協議字段為(wèi)自(zì)己定義的(de)內(nèi)核模塊)。
     5,網絡原型系統
     軟件二層交換機(jī):根據二層交換原理(lǐ),僅使用FAST用戶态API接口編程,設計與實現一(yī)個二層以太網交換機(jī)原型系統,支持多端口分組數據交換功能,實現基本的(de)單播與廣播功能,支持MAC轉發表老化;
     硬件二層交換機(jī):将軟件二層交換的(de)學(xué)習與老化功能留在CPU軟件端處理(lǐ),學(xué)習好MAC表後,配置到硬件FPAG的(de)轉發流表中,實現在硬件完成分組解析、MAC查表與輸出轉發功能;
     軟件三層路由器:根據三層路由原理(lǐ),基于FAST設計與實現一(yī)個路由器原型系統,實現設備接口的(de)ARP請求與響應功能、分組三層解析與修改、FIB查表和(hé)二層替換等功能。支持控制平面(轉交協議棧)與數據平面分開處理(lǐ),實現基本的(de)路由轉發功能;
     硬件三層路由器:将軟件三層路由器的(de)控制平台留在CPU軟件端處理(lǐ),并安裝Quagga路由學(xué)習軟件,将路由學(xué)習的(de)FIB表及鄰接表內(nèi)容更新到硬件FPGA的(de)相關表項,實現路由器的(de)數據平面完全硬件卸載處理(lǐ);
     軟件SDN交換機(jī):根據OpenFlow協議1.3版本實現一(yī)個精簡的(de)SDN交換機(jī),協議通道(dào)支持與Floodlight控制器互聯,數據平面支持IPv4和(hé)IPv6的(de)分組匹配和(hé)轉發功能;
     高(gāo)精度硬件測量:由軟件構造測量報文并配置測量報文的(de)發送時間及間隔,然後提交給硬件發送,硬件發送成功後可(kě)獲取每個報文的(de)硬件輸出時間。再等待測量報文返回,在接口标記其硬件輸入時間後轉發給測量軟件。最後由軟件計算測量數據。由于測量數據均由硬件控制,其時間精度可(kě)達到ns級别。發包間隔設置為(wèi)固定長(cháng)度,可(kě)在對端網絡測量網絡抖動,間隔設置為(wèi)零,則可(kě)以測量網絡的(de)實時帶寬;
     硬件SDN交換機(jī):将OpenFlow的(de)協議通道(dào)留在CPU軟件端完成,實現同步控制器下發的(de)FLOW_MOD消息內(nèi)容到硬件FPGA的(de)轉發流表,在硬件完成分組的(de)解析、查表和(hé)執行(xíng)動作等功能;
     SDN拓撲測量:根據LLDP協議和(hé)BBDP協議測量純SDN網絡環境與跨SDN網絡環境的(de)拓撲。支持用戶自(zì)定義拓撲探測協議數據的(de)分發與采集;
     基于OVS的(de)SDN交換機(jī):軟件運行(xíng)OVS,并将OVS的(de)內(nèi)核快速路徑流表卸載到硬件FPGA邏輯中,軟件實現OVS流表與硬件流表同步更新。
     軟件LISP路由器:根據LISP工作原理(lǐ),在軟件三層路由器基礎上增加對LISP功能的(de)支持,每個RLOC節點啓動後均自(zì)動與MS/MP注冊,獲取全網RLOC與EID的(de)映射信息。支持各RLOC下任意EID節點之間互聯互通;
     軟件段路由:根據段路由(segment routing,SR)工作原理(lǐ),在軟件三層路由器基礎上增加對段路由功能支持,支持用戶在路由實驗網中任意配置分段跳轉路由功能;
     軟件網絡編碼路由(暫未開源):感興趣的(de)朋(péng)友可(kě)上網搜索網絡編碼路由相關資料;
     時間敏感網絡系統(暫未開源):包含時間敏感網絡交換機(jī)與主機(jī)節點,各節點之間可(kě)動态靈活組網,時間同步自(zì)動完成。節點支持SDN流表轉發配置,輸出端口支持8個TT隊列,可(kě)将一(yī)條流在不同交換節點映射到不同優先級隊列調度輸出。隊列調度支持Qbv,可(kě)配置多種調度模式使用。主機(jī)節點加載高(gāo)實時操作系統及實時驅動與協議棧,與交換機(jī)時間同步、調度同步。
     1,技術支撐與培訓
     平台提供免費的(de)軟硬件源碼、開發環境、示例應用源碼及相關文檔。面向項目組建專屬服務微信群,提供免費培訓,講解和(hé)剖析平台原理(lǐ)構架、實現方法、開發流程和(hé)調測試步驟。免費為(wèi)用戶提供設計、開發指導及關鍵技術快速實現與測試驗證。
     2,專屬定制服務
     A. 系統架構:CPU可(kě)選:Intel、飛(fēi)騰和(hé)龍芯;FPGA可(kě)選:Inetl、Xilinx和(hé)國(guó)産型号;
     B. PCB器件:部分解決方案器件可(kě)實現全國(guó)産化;
     C. 設備外形:網卡、闆卡模塊、獨立1U/2U機(jī)箱、ATCA或VPX等;
     D. 設備接口:網口支持1G、10G、40G和(hé)100G,串口(或轉RJ45)、USB口、JTAG調試口;
     E. 操作系統:開源Linux或國(guó)産Linux;
     F. 內(nèi)核模塊及應用:PCIe驅動、以太網驅動、協議棧內(nèi)核模塊、協議棧用戶模塊和(hé)協議應用;
     G. 原型系統:交換、路由、SDN、TSN,根據用戶需求定制開發;
     H .硬件卸載加速:高(gāo)精度測量、TOE、根據用戶需求定制開發。
     OpenBox平台為(wèi)您提供了可(kě)以在網絡分組各個層次對分組數據進行(xíng)解析、處理(lǐ)、封裝和(hé)自(zì)定義的(de)能力,允許用戶在硬件FPAG、軟件內(nèi)核态和(hé)用戶态各環境下面處理(lǐ)和(hé)定義分組數據。同時還允許分組數據在軟件、內(nèi)核、用戶态自(zì)由靈活循環分派、處理(lǐ)和(hé)轉發。總有(yǒu)一(yī)個層次是适合您設計的(de),總有(yǒu)一(yī)個環境是适合您去(qù)開發的(de),總有(yǒu)一(yī)條分組處理(lǐ)流水線是可(kě)以滿足您業務或創新需求的(de)。
     OpenBox平台助力您在網絡學(xué)習、競賽、教學(xué)和(hé)科(kē)研各領域的(de)原理(lǐ)驗證與創新設計中迅速領跑、高(gāo)速騰飛(fēi)和(hé)極速穿越。
     未來網絡因您的(de)設計而變得更加美好!
      FAST官網:www.fastswitch.org
      湖南新實網絡官網:www.xperis.com.cn

關注FAST開源社區
FAST一(yī)一(yī)開源、開放、高(gāo)速、高(gāo)效、可(kě)編程、可(kě)定義!軟硬件協同并行(xíng)處理(lǐ)。