什么股票杠杆率最高呢-股票最新资讯-【东方资本】,股票免息配资骗局揭秘视频,股票t 0怎么操作举例,香港怎么开户买股票交易

0731-84728105
15116127200
FAST項目技術白皮書
發布時間: 2016-11-20
1.引言
     軟件定義網絡(SDN)采用控制與轉發分離結構,由于允許網絡擁有者和運營商對網絡行為進行編程而取得巨大的成功,在工業界得到廣泛認可。各種開源項目,如ODL和ONOS等,在SDN技術發展中扮演重要角色,是推動SDN應用的最大動力。
     可編程交換是當前SDN的研究熱點之一。如何實現高性能的openflow流表查表,如何擴展SDN交換平面功能,如何實現對高級語言編程(P4)的支持等在學術界都得到了廣泛研究。然而與目前存在的大量開源SDN控制器不同,開源SDN交換機難以滿足SDN科研與教學的需要。OpenVSwitch功能全面,但全軟件的實現方式難以滿足高性能處理需求;NetFPGA實現了openflow 1.0交換,但近年來很難看到后續的發展;國內南京疊鍶的ONetSwitch在FPGA上實現了完善的SDN交換功能,但交換機采用FPGA內嵌的處理器,能力較弱,難以在處理器上進行數據路徑處理功能的擴展。
     2011年開始,國防科技大學、北京郵電大學和東南大學等單位相關的課題組基于可編程交換平臺NetMagic08進行了SDN實驗平臺的開發,形成了支持openflow1.0/1.3的SDN交換機。并采用多核CPU+FPGA的架構(Netmagic Pro平臺),實現了支持SDN數據平面功能擴展的Labelcast交換機以及軟件定義隧道交換機(SDTS)等成果。2016年,課題組基于上述成果形成FAST(Fpga bAsed Sdn swiTch)開源項目,支持國內SDN交換技術的創新研究和相關的教學工作。
2. 科研與教學對開源SDN交換機的需求
      與在工業界應用不同,面向科研與教學領域的開源項目的目標用戶主要是研究機構和大學中參與SDN技術研究的老師和研究生,這些人員在網絡知識儲備、編程水平、有意投入工程實現的時間等方面具有較大差異,因此對開源SDN交換項目也有不同的需求,主要具有以下特點。
   (1)內部交換機內部的實現流程可見
     研究人員、老師和學生可以看到交換機內部詳細的工作流程,包括硬件對報文的處理波形,交換機內部軟硬件交互的流程,以及交換機通過南向接口與控制器的通信流程。目前的市場采購的SDN交換機無法看到內部工作流程,對研究人員來說是一個典型的“黑盒”,只能通過各種配置命令改變交換機的處理行為,或在開源的控制器一側通過抓包軟件觀測交換機的外部行為,對SDN交換技術的研究支持不足。
   (2)能夠在交換機中增加自己的創新工作
     SDN的創新研究有可能需要增加一個定制的模塊來修改硬件處理邏輯,如支持新的分組格式,新的調度算法,也有可能是通過在硬件邏輯中(或者流表中)設置一個“鉤子”,將指定的流量定向到CPU,通過編寫軟件代碼實現對特定流量施加特定處理。目前基于ASIC的商用SDN交換機難以支持上述功能,新型可編程SDN芯片(如Barefoot支持P4的芯片)尚未成熟,而且也是無法在硬件處理層次的創新實驗。
   (3)需要更好的應用和開發支持
     由于在教學科研領域的研究人員,特別是研究生,水平層次不齊。特別電子工程專業的可能擅長硬件設計,計算機專業的可能擅長軟件編程,以論文為目標的研究人員可能更加注重原理的驗證而不是工作的穩定性,而部分科研院所希望能夠穩定可靠的工作,成為產品的原型。因此研究人員希望能夠獲得更加專業,甚至是定制的服務。
   (4)平臺中立,不涉及具體的商業利益
     科研教學領域的研究主要是面向關鍵技術的突破和驗證,以及SDN原理的學習。基本不涉及到各種商業利益的紛爭,因此平臺應該具有中立性,不能依賴特定的平臺和操作系統,也不能與其他特定的開源項目綁定發展。
     因此,100G/40G高速接口和幾十甚至是上百個的端口密度不是科研與教學平臺的第一需求,內部處理流程可見,平臺處理功能可定制,良好的服務技術支持,以及不帶有商業傾向性的平臺設計才是科研教學領域的最重要需求。
3.FAST的技術路線
3.1 FAST硬件架構
FAST的FPGA設計主要分為平臺相關邏輯、FAST流水線模塊庫以及工程配置文件庫三部分,如圖1所示。平臺相關邏輯主要是各類用于網絡實驗的FPGA平臺,如NetMagic08,NetMagic Pro以及NetFPGA等為了支持FAST交換機需要提供的基本功能,包括物理網絡接口分組的收發,與CPU的通信,訪問板卡外圍協處理器(如TCAM)和存儲器的接口等。
FAST流水線模塊庫包含了實現SDN交換邏輯的主要功能模塊,這些模塊是在前期項目開發中積累的,包括協議分析,關鍵字提取、查表,動作(封頭/去頭,令牌桶限速等)、緩沖區管理和計數器等模塊。用戶可根據這些模塊,針對自己的需求搭建自己的SDN轉發流水線。
工程配置文件庫類似C語言的makefile文件,用戶可使用工程配置文件指定FPGA選用的平臺,將平臺相關邏輯以及FAST流水線多個模塊組成一個工程。由于在FAST流水線模塊設計中依賴一些器件相關的宏(如基于Altera Quartus II工具生成的FIFO、PLL等實例),因此目前工程配置庫只支持基于Altera FPGA的可編程板卡。
FAST UM規范定義了平臺相關邏輯與FAST交換邏輯的接口,詳細見《FAST UM接口規范》。基于FAST UM規范設計的SDN轉發邏輯可以方便的在不同的,支持FSAT 的FPGA平臺上移植。例如SDN轉發邏輯可以在相對簡單的NetMagic08平臺上調試,完成后再移植到NetMagic Pro平臺。

圖1 FAST項目的硬件架構
     FAST軟件由4部分組成,包括平臺相關通信庫,核心管理軟件,轉發面擴展軟件以及配置管理軟件。其中平臺無關的核心管理軟件,轉發面擴展軟件以及配置管理軟件都是FAST用戶可以修改的,統稱為UA(User Application)。
     平臺相關通信庫實現CPU軟件與交換FPGA的通信,根據FPGA平臺的不同,會采用不同的通信方式,例如與NetMagic08平臺采用以太網方式進行通信,對于NetMagic Pro平臺、NetFPGA平臺則采用PCIe總線通信的方式。但平臺相關軟件與FPGA不同的通信方式對上層軟件(核心管理軟件、轉發面功能擴展軟件等)是透明的。即FAST項目定義了平臺相關通信庫對上層接口的規范,詳見《FAST UA設計規范》。基于該規范開發的上層軟件可不考慮下層的具體通信方式。

圖2 FAST項目的軟件架構
     核心管理軟件主要是SDN交換機數據平面中由CPU軟件實現的基本功能,包括各種表管理軟件,硬件相關的驅動和管理軟件以及軟硬件協同處理中的軟件功能實現部分。各部分主要功能如下。
     (1)表管理軟件:負責所有控制器配置表格的維護,控制器flowmod命令對交換機表操作的命令主要由核心管理軟件響應和實現。
     (2)算法相關軟件:是對硬件平臺的驅動。例如NetMagic Pro平臺硬件采用TCAM實現帶掩碼的查表,而NetMagic08平臺采用SBV算法實現288位帶掩碼的查表。算法相關軟件需要根據表管理軟件要求,根據平臺相關的算法實現特點,實現對硬件中流表的管理。
     (3)統計管理軟件:例如實現SDN交換機計數器的管理,將硬件實現的計數器(如流表項匹配分組數目計數器、端口接收計數器)和軟件實現的計數器(流表項存活時間)進行統一的管理。又如數據平面實現的令牌桶參數、輸出調度器配置的參數計算等。
配置管理軟件主要實現SDN交換機的外部配置管理接口,包括SDN交換機需要的南向接口協議,如openflow協,以及本地的配置管理界面等。
4.基于FAST架構的用戶開發
     FAST是面向教學科研的開源項目,必須為網絡技術研究和教學提供簡單的第三方開發接口。根據不同科研單位的不同需求,這些開發接口分為多個層次。用戶可以選擇全定制功能開發模式,即基于平臺提供的FPGA開發接口(UM接口)和軟件開發接口(UA接口)開發自己的功能,優點是可以全新打造自己的功能,效率高,但難度較大,周期長,對開發人員的要求較高。FAST社區不推薦用戶采用全定制功能開發的模式,而推薦采用用戶定義功能模塊開發模式。
     用戶可借鑒已有的FAST軟硬件架構和已有成熟的功能模塊,只增加與自己應用相關的模塊,優點是開發時間短,對人員要求較低,而且可以得到FAST社區最大程度的技術支持。用戶可選擇只開發自定義的硬件功能模塊,或自定義的軟件功能模塊,或者同時開發硬件和軟件模塊,實現特定網絡功能的協同處理,FAST用戶定義模塊開發示意如圖3所示。
4.1 硬件UM開發
     FAST社區已經開發了可工作的SDN轉發的流水線demo程序,如圖3所示。主要包含協議分析(Parser)、查表(match)以及動作執行(match)等階段。用戶可以在現有基礎上增加自己的模塊,如對新協議的parser模塊(P4),新的動作執行模塊(H4)等,而不需修改其他部分。FAST UM規范定義了5個接口,分別是A(從物理端口接收報文)、B(向物理接口發送報文)、C(將報文送軟件處理)、D(從軟件接收報文)和E(軟件對硬件的配置接口)。
     用戶開發的硬件模塊如果需要軟件管理配置,只要將需要管理配置的寄存器、計數器和控制表等預先映射到虛擬地址空間中,軟件UA按照虛擬空間的地址,通過平臺提供的API可以直接訪問到這些資源。虛擬地址空間的原理見《FAST虛擬地址空間設計和使用方法》。
4.2軟件UA開發
      用戶可在CPU的用戶空間進行定制模塊的開發。用戶程序通過平臺提供的接口接收和發送數據包, 在每個數據包之前會攜帶32個字節的metadata,Metadata的定義和使用詳見4.3節。
     軟件模塊的開發主要遵循FAST UA規范中定義的F(接收Matadata和分組的接口)、G(發送Matadata和分組的接口)和H(向系統注冊用戶定義功能模塊的接口,獲取自己的MID號等),并將需要管理的硬件模塊的資源在虛擬地址空間中定義。
      根據圖2中的軟件架構,用戶定義的模塊位于SDN交換機數據平面,因此一方面可實現對L2-L3功能的軟硬件協同處理,例如對新性網絡協議的解析,另一方面也可實現數據平面對L4-L7處理功能的擴展,如擴展有狀態防火墻功能,擴展對指定流的DPI功能等。

圖3 用戶定義功能模塊開發原理示意圖
(a)用戶模塊的工作原理(b)軟硬件模塊通信攜帶的metadata格式
4.3軟硬件協同處理機制
     FAST通過兩種機制實現軟硬件處理的協同。一是將軟硬件處理模塊統一編址,為每個action模塊分配統一的MID(Module ID)。例如圖3(a)中三個硬件action模塊(H1、H2和H3)和一個軟件功能模塊(S1)都會分配一個唯一的MID。流表可以按照匹配結果將一個報文顯示的分派到指定的軟件或者硬件功能模塊。二是軟硬件分組通信時同時攜帶32字節的metadata。Metadata的定義如圖3(b)所示。
     FAST規范顯式定義了Matadata的前16字節(Metadata0),如表1所示。通過Matadata,FPGA UM可將報文接收的端口、長度、接收的精確時間和序列號,以及發出的硬件模塊,目的軟件模塊等信息送給軟件,平臺相關軟件根據DMID信息將其送給指定的用戶UA程序。用戶UA程序處理完分組后,又可通過Metadata信息將其送給指定的硬件模塊,也可直接指定目的輸出接口(輸出調度器也通過DMID指定)。
     FAST沒有對Matadata的后16字節(Metadata1)進行定義。當SMID和DMID都是用戶自己設計時,可以自行約定Metadata1的含義,平臺相關硬件和軟件不對Metadata1進行任何檢查和修改。
4.4 FAST.0參考設計
     目前基于圖1和圖2的硬件和軟件架構,以及圖3的軟硬件協同模型,國防科大課題組已經開發了支持openflow1.3的交換機原型FAST.0。FAST.0運行在NetMagic Pro平臺,實現了與floodlight控制器的互聯互通,以及標準的二層轉發功能。
     在FPGA硬件方面,FAST.0支持以太網/IPv4分組的解析,L2-L4層關鍵字的提取,以及基于比特向量算法(BV)的288位帶掩碼的規則匹配功能;在CPU軟件方面,支持BV算法的管理,通用流表管理,標準的openflow 1.3的接口軟件等。FAST.0軟硬件代碼已經完全開源,可作為用戶基于FAST架構進行定制開發的基礎。
5.基于FAST的創新研究示例
     目前FAST項目基于NetMagic Pro等多個平臺已經有支持openflow1.3的標準SDN交換機原型。基于這個原型,用戶可以進一步增加自己的許多功能。本節通過兩個例子說明基于FAST項目進行SDN交換機功能擴展研究的方法和流程。
     在5.1的基于內容的轉發機制ICN-X實現中,用戶只需進行相關用戶態軟件開發,不需任何硬件編程;5.2實現的精準測量服務AMS(Accurate Measurement Service)中,需要分別設計軟件和硬件模塊,實現精確分組發送時刻控制以及時間戳標記。
5.1支持基于內容的轉發機制(ICN-X)
用戶可在FAST交換機上實現內容中心的轉發機制ICN-X。這種機制在網絡中可以與IPv4,IPv6轉發機制共存。在FAST交換機上實現ICN-X轉發機制的方法如下。      
(1)將以太網type/length設置為“X”,用于指代上層協議為ICN-X;交換機可根據該域的值區別以太網幀封裝的上層協議分組為IPv4,IPv6,ARP、MPLS或是ICN-X。      
(2)在用戶空間開發ICN-X協議轉發軟件ICN-X UA,ICN-X UA實現ICN-X的分組轉發控制,ICN-X機制的路由和其他管理分組可通過ICN-X UA重新定向成Packet-in分組,發給控制器上相關的應用處理。      
(3)ICN-A UA啟動時向UA管理器(UA-M)注冊,注冊信息包括:      
ICN-X UA的模塊版本號/開發者信息;      
ICN-X UA中需要控制器管理的流表(如由控制器APP計算的轉發表等);      
(4)UA-M給ICN-X UA分配唯一的模塊號MID=Y;      
(5)SDN控制器(應用)通過南向接口或其他方式獲取ICN-X UA的模塊號Y,以及需要通過FlowMod消息管理的流表信息;      
(6)控制器(應用)根據Packet-in消息計算ICN-UA中轉發規則,并通過flowMod消息配置這些規則;      
(7)控制器(應用)產生并配置UM流表中的“鉤子規則”,如: Rule =“Type/length=X”,“other field= don’t care” Atcion = Goto Module Y 經過上述步驟,用戶定制的FAST交換機就可以在正常進行IP分組交換的同時,支持新的ICN-X交換機制了。ICN-X UA完成分組轉發和二層封裝后,直接將分組發送回FAST UM,同時在metadata中設置輸出端口號以及輸出調度器的MID。該分組會通過平臺相關的軟件和硬件送到UM的輸出調度模塊,不經修改的從相應的物理接口發出。
5.2支持精準測量服務(AMS)
     主動測量是獲取網絡狀態的有效手段。例如利用香港理工大學提出的oneProbe測試方法,通過在用戶網中向分布在全球的web服務器發送背靠背的TCP分組對(packet pair),通過計算服務器對分組對得響應情況,精確的推斷出用戶主機到分布在全球的互聯網服務器之間的帶寬和延時情況,從而進一步推斷廣域網的鏈路特性。
     這種測試的精確性取決于能否控制分組對真正的背靠背發送(中間沒有插入延時),能否精確的獲取分組對發出以及返回的時間戳。由于基于標準服務器的實現存在測量進程收到內核調度,中斷處理以及系統時鐘不精確等特點,很難保證測量的精確性,因此測量必須借助專用的,昂貴的可編程網卡實現,而且發送進程與網卡之間的時間和狀態同步控制也比較復雜。
     通過對部署在用戶網絡中的FAST交換機進行擴充,可以在交換機上方便的提供對精確的主動測量的支持。設發起測量的主機H連接FAST交換機端口A,連接被測網絡的是FAST交換機的接口B,基本測量的流程為:測量主機H通過FAST接口A發送兩個背靠背的TCP分組P1和P2,這兩個分組經過交換機轉發后從端口B發向被測網絡;被測網絡通過接口B返回對這兩個分組的響應P1’和P2’,交換機將這兩個分組通過接口A返回測試主機H。
     通過對FAST交換機功能擴展,提供的精準測量服務包括:(1)交換機嚴格控制P1和P2從接口B背靠背發出,中間不插入任何延時;(2)交換機能夠精確記錄B口發出P1和P2,以及接收P1’和P2’的時間戳;(3)FAST交換機將時間戳信息通告給測試主機H。
     要在FAST交換機上實現用戶定義的精準測量服務,需要在FAST UM中開發專用的分組輸出調度模塊Hams,以及相關控制軟件AMS UA。主機H使用FAST交換機擴展的AMS服務流程如下。
     (1)控制器上AMS APP配置交換機的流表規則,將主機H與被測服務器S之間的測量報文(用H和S的地址標識,這些信息可通過離線方式或在線的方式通知控制器上的AMS APP),對送軟件中的(預先完成向UA-M注冊,并獲取到MID)AMS UA模塊處理;      
(2)AMS UA將P1和P2兩個報文標記為測量報文對,通過Matadata1中自定義的字段發給FAST UM中的Hams模塊,Hams模塊對輸出調度器具有最高優先級,在收到兩個報文后,通過輸出調度模塊背靠背發出,同時將發出時間記錄在Hams模塊中,在虛擬地址空間預先注冊的寄存器中,AMS UA通過輪訓讀寫該寄存器,獲得報文發出的精確時間戳。      
(3)P1’和P2’從B端口返回后,根據流表中的規則,會定向到AMS UA處理。AMS UA根據報文matadata0可獲取分組到達的精確時間戳。      
(4)控制器上AMS APP從南向接口獲取主機H測量必須的分組對精確發出時間和響應的返回時間,并提交給主機H,完成AMS服務。
6.總結
      綜上所述,FAST技術架構具有以下特點。一是基于FPGA加多核CPU的異構處理平臺設計,用戶可以根據自己的特點通過軟件編程或硬件編程實現自己定制的模塊,進行交換功能的擴充;二是FAST平臺采用開源結構,內部分組的處理流程完全可見;三是軟硬件設計基于平臺無關接口,不依賴特定的平臺實現,可移植性好;四是具有完善的軟硬件參考設計,研究人員可以根據自己研究的需求定制自己的交換機。
參考文獻
(1)《FAST UM接口規范》
(2)《FAST UA設計規范》
(3)《FAST虛擬地址空間設計和使用方法》
(4)《FAST.0 硬件設計說明》
(5)《FAST.0 軟件設計說明》
(以上文檔整在修訂,即將陸續發布。。。)