孫志剛 李韜

摘要:基于FPGA的可編程網絡實驗平臺對提高計算機網絡教學質量,特別是計算機網絡中路由交換原理的教學具有十分重要的意義。在美國,斯坦福大學研制了可編程的NetFPGA實驗平臺,并基于該平臺開設了“Building an Internet Router”實驗課程(編號CS344,以下簡稱CS344課程)。國內的國防科學技術大學開發了可編程網絡平臺NetMagic,基于NetMagic平臺也同樣開設了一門研究生實驗課程“路由器原理與設計”。文章比較斯坦福大學CS344課程和國防科學技術大學“路由器原理與設計”課程的基本情況、課程組織方法和學生的反饋情況,總結國防科學技術大學開設“路由器原理與設計”課程7年來的經驗與不足,最后提出進一步優化“路由器原理與設計”課程實驗組織的思路。
關鍵詞:可編程網絡實驗教學平臺;路由器原理與設計;NetMagic
1.背景
高性能路由器和交換機是互聯網的重要組成設備,其內部實現機制是決定互聯網性能、功能、安全等多維擴展能力的關鍵。現有關于計算機網絡的教學實驗中,學生大多只能開展基于Socket的用戶空間網絡編程,而把網絡作為一個透明的傳輸通道。由于IP層功能和處理機制主要體現在路由器等網絡設備上,因此在網絡實驗中,學生難以觸及IP路由轉發等互聯網技術的精髓。
斯坦福大學的網絡技術研究一直處于世界領先地位,其誕生了第一個接入ARPANET的計算機(1969年),誕生了思科公司和第一臺路由器(1985年),誕生了Openflow技術以及最早的Openflow/SDN實驗環境(2008年),因此其計算機網絡的人才培養與科研模式一直得到廣泛關注。早在2005年,斯坦福大學在計算機網絡教學中就指出:“目前設備制造商研制的高性能網絡設備,如路由器、交換機和各類中間盒(Middlebox),均使用ASIC/NP/FPGA等硬件芯片實現IP層分組的處理,而學生對高性能網絡設備原理的了解只限于書本,對高性能網絡設備研發,特別是網絡硬件的研制缺乏必要的了解,因此在就業方面缺乏競爭力”。為此,斯坦福大學在2004年春季開設了基于可編程硬件平臺NetFPGAt21的實驗課“Building an InternetRouter”(編號:CS344),要求在教學團隊指導下,學生獨立完成交換機、路由器等網絡設備的原型設計。從學生的反饋來看,該課程在加深對網絡設備工作原理的理解方面,特別是培養學生動手實踐能力方面取得了巨大成功。
國防科技大學(以下簡稱國防科大)在網絡技術研究,特別是高性能網絡設備研制方面,一直處于國內前列。先后于2001年和2004年研制成功我國第一臺具有自主知識產權的高性能IPv4路由器和第一臺交換能力超過千億比特的IPv6路由器。2009年,國防科大開設了研究生課程“路由器原理與設計”(編號:081206608),并研制了支持網絡實驗的可編程網絡平臺——NetMagic。教學團隊指導研究生基于NetMagic平臺開發簡單的防火墻、交換機和路由器等設備原型,一方面提高了研究生網絡設備研制的能力;另一方面,研究生基于NetMagic平臺開發了大量應用,支撐了課題組承擔的多項國家863和973課題。
2.基于FPGA平臺的網絡實驗課程
2.1課程基本情況
具有網絡接口的可編程硬件也稱為可編程網絡硬件,是計算機網絡實驗教學中開展IP層和鏈路層實驗的基礎。由于搭建可編程網絡硬件平臺具有一定復雜性,成本較高,且對教師自身的實驗能力要求較高,因此目前高校很少基于網絡硬件開展教學實驗,學生接觸FPGA平臺大多在數字系統設計課程實驗中,面向的對象主要聚焦在CPU設計上,與網絡系統設計無關。
為了提高網絡教學的效果,讓學生畢業后能夠在網絡行業更加具有競爭力,一向以網絡工程見長的斯坦福大學于2001年開始設計面向網絡教學的實驗平臺——NetFPGAvl,并于2004年在研究生課程中使用。NetFPGAvl是插在專用機柜中的非標準板卡,基于Altera FPGA設計,支持8個10Mbps以太網接口,學生通過遠程web的方式在該板卡上做實驗,雖然實驗鍛煉了學生的動手能力,特別是網絡硬件的設計能力,但由于NetFPGAvl硬件邏輯遠程調試不便,而且非標準的板卡也不便推廣,端口速率偏低,因此斯坦福大學設計了基于PCI總線和4個千兆接口的NetFPGAv2(見圖1(a))。NetFPGAv2獲得了巨大的成功,使基于該板卡的斯坦福實驗課“Building an Intemet Router”在網絡教學領域獲得極大聲望。
國防科技大學計算機學院長期從事高性能網絡設備研制,受斯坦福大學NetFPGA和CS344課程的影響,國防科大在《研究生2009培養方案》中“計算機科學與技術”一級學科研究生培養方案中增加了“路由器原理與設計”課程(編號081206608),講授高性能路由器等核心設備的體系結構、核心算法和案例分析,并通過基于可編程網絡硬件平臺,著重培養研究生從事網絡設備軟硬件的研制能力。
由于NetFPGA成本較高,研究生攜帶不方便,我們研制了網絡實驗硬件平臺NetMagic08,專門支持研究生的課程實驗。NetMagic08以AlteraFPGA為核心,具有8個千兆以太網接口,外觀類似交換機,因此攜帶方便。NetMagic08的外觀和內部電路板如圖1(b)、圖1(c)所示。與必須插在計算機上的NetFPGA不同,NetMagic08可以方便地部署在網絡中的任意位置,學生可通過網絡實現對NetMagic08的控制,因此增加了實驗的靈活性。
2.2學生評價
由于通過實驗可加深對網絡設備工作原理的認識,積累網絡設備研發經驗,因此學生對基于網絡硬件的實驗教學評價較高。例如,文獻給出了斯坦福學生對CS344課程的2條評價,“Overall it was awesome.I came in without knowing much about networks or routers.and I left with a wealth Of information.It must sound weird but I truly liked everything since I have never seenthis stuff in such detail beforehand.”(總體來說這門課有點可怕。上這門課之前,我對網絡和路由器知之甚少,但課程結束后,我感覺收獲很大,就像得到一筆財富。我從來沒有看到能夠在課前為教學做如此周全準備的教學團隊。我覺得這門課真是有點不可思議,但我確實很喜歡。);“It was one of the most satisfying,interesting,and time consuming courses Ive taken at Stanford.”(這是我在斯坦福遇到的一門最令人滿意,最吸引人的,但又需要花費大量時間的課程)。
參加國防科大“路由器原理與設計”課程的研究生對課程給他們帶來的工程實踐經驗評價也很高。例如,2015年春季課程結束后,研究生對課程的2條評價,“上這門課最大的收獲是動手能力的提高,另外實驗環節中參與其他小組報告的討論也幫助自己把理論課程中很多沒搞懂的問題搞懂了。”“通過分組實驗,我們的實踐和工程能力有了進一步的提高,原來我沒有做過這種不僅需要組內分工,又有組間合作的項目,本次鍛煉對之后的工作和學習有所幫助”。
2.3實驗教學產生的效益
由于研究生是科研中最具創新能力的群體。在實驗課程學習中獲得的網絡設備開發經驗會在他們后續的科研工作中得到應用。隨著NetFPGA在教學中的成功應用,越來越多的網絡研究者認識到,在高速網絡技術研究中,除了基于NS-2等模擬工具外,還能以較低成本和較低復雜性進行網絡設備原型系統的實現。短短幾年后,全球已經有超過150個科研機構使用NetFPGA進行網絡技術研究,包括實現了第一臺Openflow交換機。
在國防科大,每年大概有30-40名研究生選修《路由器原理與設計》實驗。隨著越來越多的研究生在網絡實驗課程中接觸并熟悉NetMagic。NetMagic也在研究生論文和國家級的科研項目中得到越來越多的應用。據統計,近五年來,國防科大有20名左右研究生在論文研究中使用NetMagic作為實驗驗證平臺。通過百度學術搜索“NetMagic”論文,顯示基于NetMagic的科研方向涉及路由器和SDN交換機設計、網絡延時測量、流媒體傳輸質量監控、分組深度監測、網絡加解密、網絡入侵檢測以及城域網流量仿真等多個方向。國防科大、清華大學、北京郵電大學、香港理工大學、湖南大學、東南大學等院校正在基于NetMagic平臺展開研究,支撐的國家級課題(如973和863課題)超過10個。基于NetMagic的測量研究在頂級會議SIGCOMM上進行了demo演示。
3.實驗教學的組織
3.1斯坦福大學CS344課程組織
斯坦福CS344課程是面向博士研究生、碩士研究生和高年級本科生開設的基于項目(Proiect-based)的課程,其主要內容就是學生分組進行基于NetFPGA平臺的路由器原型開發。在課程實驗中讓學生接觸到網絡系統軟硬件接口的設計,根據性能和復雜性考慮,決定哪些功能由硬件實現,哪些功能由軟件實現。斯坦福大學CS344課程的主要特點有以下幾個。
①分組實驗,一般每組包含1名硬件設計學生,1-2名軟件設計的學生,這2-3名學生完成一個獨立的實驗。
②教學組會在課程開始時提供硬件設計的范例(2個以太網端口的中繼器)和軟件開發的框架供學生參考。
③課程時間為10周,前6-8周完成老師規定的實驗內容,如實現4端口的以太網交換機和IP路由器原型,后2-4周完成自選內容,如實現網絡地址轉換(NAT)功能、組播轉發功能和訪問控制列表(ACL)功能。
④課程分8周完成,每周上課時間教學組對學生上周工作進展進行檢查,布置下一個節點的工作。
⑤課程結束前,每組學生對自己實現的功能進行演示和報告,教學組會邀請一些工業界的人士參加學生的演示報告,并對學生的工作進行評分。
3.2國防科大“路由器原理與設計”課程組織
國防科大于2009年開設“路由器原理與設計”課程,主要講述高性能路由器的原理,核心算法以及工程實現需要考慮的問題等。實驗內容主要基于NetMagic平臺,實現簡單的網絡設備原型。“路由器原理與設計”課程組織的主要特點如下。
①課程為12周,每周3學時,其中前6周講授路由器工作原理、體系結構、核心算法、網絡處理器設計、路由器系統剖析等。后6周基于NetMagic平臺進行課程實驗。
②在實驗環節,課程實驗分為2-3個硬件組和5-7個軟件組,每組3-4人。這些組各實現一個路由器的部分功能,教學團隊負責各組實驗內容的確定,主導進行組件接口的制定,各組的成果經集成后形成一個路由器原型。
③后六周每周課堂上各組匯報自己的研制方案,由教學團隊進行指導和點評,各組之間也可就接口劃分問題進行討論。
④建立論壇(bbs.netmagic.org)供上課學生之間以及與教學團隊之間進行交流,進行文檔的共享。學生可以辦理手續,從實驗中心將Netmagic平臺借出,在自己的宿舍進行調試。
⑤為彌補課堂學時的不足,在第6,7,8周的周末晚上,分別舉辦一次“Netmagic之夜”活動,由教學助理(TA,Teaching Assistant,一般由熟悉NetMagic平臺使用的高年級研究生組成)向參加課程的學生介紹NetMagic平臺的使用方法,軟硬件開發流程,并進行典型demo展示。
⑥在課表規定的12周授課時間結束后,教學團隊將選取連續多個周末組織學生進行實驗聯調。提供包括聯調場地、TA現場指導、免費食品和飲料等一切保障,鼓勵研究生完成預定的實驗目標。
4.“路由器原理與設計”課程的特色與差距
4.1我們的特色
斯坦福大學CS344課程最初是國防科大計算機學院設置“路由器原理與設計”課程所仿照的目標。經過教學團隊多年努力,在教學平臺、教學組織和教學效果等方面,我們也逐步形成了自己的特色。
1)課堂講授與實驗相結合。
課程前半程為理論講授,包括路由器體系結構的發展,核心算法以及典型設備剖析等,為研究生建立起網絡設備的基本概念;后半程進行課程實驗,提高研究生的動手能力,支持他們驗證在前半程中學習到的知識。
2)強調團隊協作。
與斯坦福CS344課程每組學生“單打獨斗”,獨立完成交換機路由器實驗不同,我們將一個路由器原型拆解成多個不同的硬件模塊和軟件模塊,每組獨立完成一個功能模塊的開發。課程要求組內人員應有具體分工,組間需要確定接口并實現最終聯調,因此在實驗中也培養了學生的工程項目組織和協調能力。
3)便攜式的NetMagic平臺。
由于NetMagic平臺的軟硬件開發環境(硬件為Altera公司的Quartus Ⅱ集成開發環境,軟件為Linux系統)通過虛擬機方式可在同一臺筆記本電腦上運行而相互不干擾,同時NetMagic具有易于攜帶的特點,因此研究生可以從實驗室將NetMagic平臺借出,在自己的宿舍或者圖書館等地進行調試,十分方便研究生的使用,提高了他們調試的效率。
4)強大的技術支持團隊。
由熟悉NetMagic使用的高年級碩士研究生或博士研究生組成NetMagic興趣小組,每年對參加“路由器原理與設計”的“新學員”進行輔導,包括組織“NetMagic之夜”活動,現場演示NetMagic平臺的使用方案,幫助“新學員”解決開發環境安裝問題,在集中聯調中協助解決開發調試中的bug等。
4.2主要差距
雖然沒有親身參加和觀摩斯坦福大學的CS344課程,但每次讀到介紹CS344課程的論文,我們都感到“路由器原理與設計”課程與其還存在較大差距。盡管學生在課程實驗中收獲很大,但大部分實驗小組都在課程結束前難以完成預定目標,分析原因如下。
1)教學團隊能力的差距。
斯坦福大學CS344課程主講老師為計算機系和電子工程系的Nick McKeown教授,曾在I-IP等多家公司就職,具有思科CSRl2000核心路由器設計經歷,對工業界的需求具有深刻的理解,在網絡設備體系結構和網絡實驗平臺設計方面具有豐富經驗,是Openflow技術的最初提出者,是軟件定義網絡(SDN)的主要推動者。CS344的助教團隊也是人才濟濟,包括工程經驗豐富的指導老師(例如John w.Lockwood教授,來斯坦福之前在華盛頓大學常年從事可編程FPGA平臺開發),也有干勁十足的研究生助教(例如Martin Casado,后來成為公認的SDN發明人,是被VMware以12.6億美金收購的Nicira公司的聯合創始人兼CTO)。
國防科大教學團隊主要老師也是我國第一臺IPv4核心路由器以及其他多種型號的高性能網絡設備的主要研制者,也正在從事大量相關的國家973、863項目的研制,對高性能網絡設備體系結構、硬件實現等具有深刻理解,但對整個技術趨勢的把握,以及與工業界的聯系等方面,還有較大差距。
2)課程準備的差距。
斯坦福CS344課程具有專門的主頁,上課之前給參與軟硬件設計的學生準備了可參考的設計,學生不但可通過閱讀這些參考設計,快速了解NetFPGA平臺的軟硬件開發流程和接口定義,有助于盡快理清下一步實驗思路,也可以通過設計復用(如硬件接口邏輯,PCI接口邏輯),簡化自己的工作量。
國防科大教學團隊也在NetMagic平臺上開發了標準的硬件模板,其中平臺的通用邏輯,包括通用數據路徑邏輯(CDP),管理模塊邏輯(MM),輸入控制邏輯(IM)、輸出控制邏輯(OM)和DDR接口邏輯已經完成并測試通過,學生只需根據用戶模塊(UM)的接口規范編寫實驗相關的邏輯。但相比CS344課程,這些準備還有差距,主要表現在設計文檔版本多但可讀性不好,參考設計較多但沒有提煉成易于使用的模板,對于初學者來說無從下手。
3)教學時間保證上的差距。
根據文獻的介紹,參加CS344課程的學生平均每周花費在實驗上的時間為10-20個小時,而前導基礎較差的學生則會花費更多的時間。
在斯坦福大學選修CS344課程的學生同時選修其他課程不會超過2門,而在國防科大,研究生一般在入學后第2學期選修“路由器原理與設計”課程,而此時學生同時選修的課程較多,因此實驗時間難以保證。例如,2015年春季我們的調查表明,參課學生最多同時在上8門課,最少5門,每周花費在實驗上的時間最多6-8小時,最少只有2小時。由于沒有足夠的時間投入,最終很難達到理想的實驗效果。
5.結語
下一步的工作:①進一步做好課前準備,提供可讀性更好的設計文檔和參考設計模版,降低學生使用實驗平臺的難度,提高實驗的效率;②與教學管理部門溝通,將“路由器原理與設計”課程教學的實驗環節調整到課程較少的暑期小學期集中開展,保證學生投入到實驗的時間和精力。
此外,教學團隊將以“路由器原理與設計”課程的教學和實驗內容為基礎,針對網絡工程專業本科教學的特點,面向高年級本科生規劃一門以路由器和交換機設計為核心的4-6周的綜合實驗課程,為進一步加強網絡工程專業本科教學的實驗環節提供支撐。