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

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

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

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