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