摘要:提出一種基于逆向工程與重疊網(wǎng)絡(luò)開展計算機網(wǎng)絡(luò)協(xié)議分析與開發(fā)實驗教學(xué)的方法。通過協(xié)議逆向工程實驗,提高學(xué)生的協(xié)議分析能力,并可以讓學(xué)生利用協(xié)議分析結(jié)果進行協(xié)議開發(fā)。利用重疊網(wǎng)絡(luò),學(xué)生可以在完全不觸及操作系統(tǒng)底層網(wǎng)絡(luò)協(xié)議棧的情況下,自行設(shè)計一個完整的網(wǎng)絡(luò)協(xié)議棧。它可以模擬TCP/IP協(xié)議棧的基本功能和特性,如路由協(xié)議、滑動窗口協(xié)議、信號協(xié)議等。這種實驗教學(xué)方法不僅可以培養(yǎng)學(xué)生的協(xié)議分析與設(shè)計能力,而且可以極大的提高學(xué)生的協(xié)議開發(fā)能力。
關(guān)鍵詞:網(wǎng)絡(luò)實驗;教學(xué)方法;逆向工程;重疊網(wǎng)絡(luò)
1背景
作為與高等院校計算機專業(yè)的網(wǎng)絡(luò)理論課程相配套的網(wǎng)絡(luò)實驗課程,目前主要有兩個實驗課程設(shè)計方向:一個是面向真實網(wǎng)絡(luò)環(huán)境的網(wǎng)絡(luò)工程實驗設(shè)計,其目的主要是讓學(xué)生熟悉真實網(wǎng)絡(luò)環(huán)境中路由器/交換機的配置、網(wǎng)絡(luò)環(huán)境的搭建和網(wǎng)絡(luò)管理方法;另一個是面向網(wǎng)絡(luò)協(xié)議分析與開發(fā)的網(wǎng)絡(luò)實驗設(shè)計,其目的主要是讓學(xué)生具備對網(wǎng)絡(luò)協(xié)議的獨立分析與設(shè)計、驗證能力。
這兩類計算機網(wǎng)絡(luò)實驗課程分別從網(wǎng)絡(luò)工程和網(wǎng)絡(luò)協(xié)議的分析與開發(fā)兩個方面彌補了計算機網(wǎng)絡(luò)理論課程教學(xué)的不足,其中網(wǎng)絡(luò)協(xié)議分析與開發(fā)對鞏固和加深學(xué)生對計算機網(wǎng)絡(luò)核心協(xié)議的理解、掌握網(wǎng)絡(luò)協(xié)議棧的開發(fā)方法尤為重要。
目前高校開設(shè)的計算機網(wǎng)絡(luò)協(xié)議分析與開發(fā)實驗的內(nèi)容,在協(xié)議分析方面,普遍側(cè)重于通過數(shù)據(jù)包嗅探軟件對現(xiàn)有協(xié)議進行分析(如利用Ethereal/ Wireshark等軟件分析數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層協(xié)議[1]),或通過網(wǎng)絡(luò)仿真器進行協(xié)議及其性能的分析(如利用NS2分析網(wǎng)絡(luò)協(xié)議[2-3]);在協(xié)議開發(fā)方面,則側(cè)重于利用套接字編程進行應(yīng)用層協(xié)議的開發(fā)[4],或利用一些網(wǎng)絡(luò)協(xié)議開發(fā)實驗平臺進行底層協(xié)議開
發(fā)(如利用NetRiver進行網(wǎng)絡(luò)協(xié)議的編程、調(diào)試和可視化執(zhí)行[5])。
這些實驗課程從設(shè)計內(nèi)容上大致分為3類:網(wǎng)絡(luò)協(xié)議分析驅(qū)動實驗、網(wǎng)絡(luò)服務(wù)與應(yīng)用驅(qū)動實驗、網(wǎng)絡(luò)協(xié)議開發(fā)驅(qū)動實驗。
1) 網(wǎng)絡(luò)協(xié)議分析驅(qū)動實驗。這類實驗主要以一些配置觀察實驗或驗證性實驗為主,它們有時候也與工程類的網(wǎng)絡(luò)實驗課程相結(jié)合[6]。學(xué)生利用數(shù)據(jù)包嗅探軟件或網(wǎng)絡(luò)仿真器對協(xié)議進行分析。其優(yōu)點是學(xué)生通過實驗,可以加深對主要網(wǎng)絡(luò)協(xié)議的理解,并具備一定的網(wǎng)絡(luò)協(xié)議分析能力;其缺點是未能將協(xié)議分析能力應(yīng)用于新協(xié)議的設(shè)計,沒有培養(yǎng)學(xué)生獨立設(shè)計、開發(fā)協(xié)議棧的能力。
2) 網(wǎng)絡(luò)服務(wù)與應(yīng)用驅(qū)動實驗。這類實驗主要以一些網(wǎng)絡(luò)服務(wù)的配置管理、網(wǎng)絡(luò)應(yīng)用程序的開發(fā)為主。其優(yōu)點是學(xué)生通過實驗可以熟悉常用網(wǎng)絡(luò)服務(wù)的安裝、管理方法,熟悉套接字編程;其缺點是缺乏協(xié)議分析內(nèi)容,協(xié)議開發(fā)集中在對應(yīng)用層協(xié)議的開發(fā),底層協(xié)議的實驗內(nèi)容不足。
3) 網(wǎng)絡(luò)協(xié)議開發(fā)驅(qū)動實驗。由于商用的路由器/交換機等網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)協(xié)議棧代碼不對外開放,而開源系統(tǒng)如Linux的網(wǎng)絡(luò)協(xié)議棧代碼又過于復(fù)雜,不太適用于實驗教學(xué),因此目前這類實驗主要是利用一些商業(yè)的網(wǎng)絡(luò)協(xié)議開發(fā)實驗平臺[7-8]來進行,硬件上包括實驗控制設(shè)備、協(xié)議測試設(shè)備等,軟件上包括實驗集成開發(fā)平臺、數(shù)據(jù)包發(fā)送器、數(shù)據(jù)包分析器、實驗管理系統(tǒng)等。其優(yōu)點是實驗環(huán)境集成度高,便于學(xué)生編寫、調(diào)試和運行程序,也方便教師對實驗信息、系統(tǒng)和學(xué)生進行管理;其缺點是學(xué)生在一個受限的環(huán)境中進行實驗,實驗內(nèi)容靈活性不夠,各實驗內(nèi)容之間關(guān)聯(lián)度不夠緊密。
總體來說,這些網(wǎng)絡(luò)協(xié)議分析與設(shè)計實驗課程或多或少存在下列兩個問題:
1) 協(xié)議分析與協(xié)議開發(fā)實驗內(nèi)容相對獨立,未能有效地將兩者相結(jié)合,充分體現(xiàn)協(xié)議分析在協(xié)議開發(fā)中的作用;
2) 協(xié)議開發(fā)實驗內(nèi)容比較分散,學(xué)生缺乏對一個完整的網(wǎng)絡(luò)協(xié)議棧開發(fā)方法的理解。
通過上述分析,根據(jù)我系計算機網(wǎng)絡(luò)課程教學(xué)目標(biāo)的要求,我們設(shè)計了一套基于逆向工程與重疊網(wǎng)絡(luò)的協(xié)議分析與開發(fā)實驗,以將協(xié)議分析與協(xié)議開發(fā)有機結(jié)合,并使學(xué)生具備獨立設(shè)計、開發(fā)一個完整網(wǎng)絡(luò)協(xié)議棧的能力,有效地解決了上述問題。
2設(shè)計方法概述
2.1協(xié)議逆向工程
對于開放協(xié)議(如IP、TCP、HTTP),其協(xié)議規(guī)范都可以通過公開文檔(如RFC)獲取。在傳統(tǒng)的計算機網(wǎng)絡(luò)協(xié)議分析實驗中,學(xué)生都是通過數(shù)據(jù)包嗅探軟件對開放協(xié)議進行觀察分析或驗證性分析,并滿足于此。這雖然對學(xué)生理解與掌握網(wǎng)絡(luò)核心協(xié)議很有幫助,但卻未能真正有效地提高學(xué)生的協(xié)議分析能力,并將協(xié)議分析與協(xié)議開發(fā)結(jié)合起來。
所謂協(xié)議逆向工程,就是利用數(shù)據(jù)包嗅探軟件,通過分析網(wǎng)絡(luò)中的信息交換活動,做出一個獨立的實現(xiàn)用以模擬那些活動。協(xié)議逆向工程實驗不僅可以讓學(xué)生了解協(xié)議分析的重要性,極大地調(diào)動學(xué)生進行協(xié)議分析的興趣,提高其協(xié)議分析的能力,而且可以讓學(xué)生利用協(xié)議分析結(jié)果進行協(xié)議開發(fā),從而充分體現(xiàn)協(xié)議分析在協(xié)議開發(fā)中的作用。
在具體的實驗課程設(shè)計中,考慮到封閉協(xié)議(如SMB、Skype)的復(fù)雜性[9],教師可以通過自行設(shè)計的協(xié)議來讓學(xué)生進行逆向分析,進而重塑協(xié)議。
2.2基于重疊網(wǎng)絡(luò)的協(xié)議棧設(shè)計
重疊網(wǎng)絡(luò)是一個位于一個或者多個已存在網(wǎng)絡(luò)之上的獨立的虛擬網(wǎng)絡(luò)。它的典型應(yīng)用包括應(yīng)用層組播、Web content分布式網(wǎng)絡(luò)、彈性重疊網(wǎng)等[10]。在計算機網(wǎng)絡(luò)協(xié)議開發(fā)實驗中利用重疊網(wǎng)絡(luò)的好處是,我們可以在完全不觸及操作系統(tǒng)底層網(wǎng)絡(luò)協(xié)議棧的情況下,自行設(shè)計一個完整的網(wǎng)絡(luò)協(xié)議棧。我們將該協(xié)議棧命名為NjucsNet,它模擬了TCP/IP協(xié)議棧的基本功能和特性,如路由協(xié)議、滑動窗口協(xié)議、信號協(xié)議等。
1)NjucsNet協(xié)議棧概述。
一個完整的NjucsNet協(xié)議棧允許客戶和服務(wù)器創(chuàng)建套接字、打開連接以進行可靠的數(shù)據(jù)傳輸。
NjucsNet協(xié)議棧是一個分層架構(gòu),第n-1層為第n層提供服務(wù)和API。它分為4層:重疊網(wǎng)絡(luò)層ON、簡單網(wǎng)絡(luò)層SIP、簡單傳輸層STCP和應(yīng)用層APP。其中,簡單傳輸層為應(yīng)用層提供可靠的字節(jié)流服務(wù)。簡單網(wǎng)絡(luò)層為簡單傳輸層提供類似IP的端到端連接。重疊網(wǎng)絡(luò)層為運行NjucsNet協(xié)議棧的主機建立重疊網(wǎng)絡(luò)。主機自身的TCP/IP層則運行在重疊網(wǎng)絡(luò)之下。
2) 重疊網(wǎng)絡(luò)層設(shè)計。
重疊網(wǎng)絡(luò)拓撲定義在一個數(shù)據(jù)文件中,它定義了重疊網(wǎng)絡(luò)中節(jié)點之間的直接鏈路代價,這個數(shù)據(jù)將被簡單網(wǎng)絡(luò)層中的路由協(xié)議調(diào)用。
重疊網(wǎng)絡(luò)層通過重疊網(wǎng)絡(luò)進程ON實現(xiàn)。ON進程維護該機器與所有它的鄰居之間的連接和一個與簡單網(wǎng)絡(luò)層SIP之間的本地連接。ON進程持續(xù)接收來自其鄰居的報文(有兩種類型的報文:普通數(shù)據(jù)報文和路由更新報文),并將它轉(zhuǎn)發(fā)給SIP層。同時,ON進程持續(xù)接收來自SIP層的報文,并將這些報文發(fā)送給下一跳節(jié)點。
3) 簡單網(wǎng)絡(luò)層設(shè)計。
在簡單網(wǎng)絡(luò)層中,我們使用節(jié)點號來標(biāo)識一個主機,其作用與TCP/IP中的IP地址類似,節(jié)點號是一個主機IP地址的最后8位代表的整數(shù)。
簡單網(wǎng)絡(luò)層通過SIP進程實現(xiàn)。該進程分別通過本地連接與ON進程和STCP進程互連。該進程主要負責(zé)路由和轉(zhuǎn)發(fā)數(shù)據(jù)包。SIP層在轉(zhuǎn)發(fā)數(shù)據(jù)包時需要根據(jù)本機為源節(jié)點、中間節(jié)點和目的節(jié)點這3種不同情況分別進行處理。SIP層維護一個路由表,該路由表由SIP中的路由協(xié)議構(gòu)建。
4) 簡單傳輸層設(shè)計。
簡單傳輸層STCP提供了類似TCP的可靠按序字節(jié)流。它需實現(xiàn)以下機制:連接管理、并發(fā)連接、校驗和、序列號、使用GBN協(xié)議確保數(shù)據(jù)的可靠傳輸、數(shù)據(jù)和信號的重傳。為方便學(xué)生在規(guī)定的時間內(nèi)開發(fā)協(xié)議,與TCP協(xié)議相比,我們對STCP協(xié)議需實現(xiàn)的功能做了簡化,它只需實現(xiàn)數(shù)據(jù)的單向傳輸、連接只由客戶端發(fā)起和關(guān)閉、協(xié)議不需要支持流控和擁塞控制。
簡單傳輸層STCP的設(shè)計包含了兩部分的內(nèi)容:信號控制和數(shù)據(jù)傳輸。信號控制部分主要是讓學(xué)生熟悉傳輸層協(xié)議是如何建立連接,以及如何解決信號數(shù)據(jù)的丟失和損壞。數(shù)據(jù)傳輸部分則是讓學(xué)生掌握發(fā)送/接收緩沖區(qū)的設(shè)計、滑動窗口協(xié)議和校驗和計算。
5) 應(yīng)用層設(shè)計。
應(yīng)用層程序分為客戶端程序和服務(wù)器程序,它們分別通過調(diào)用簡單傳輸層STCP提供的針對客戶端和服務(wù)器的API來實現(xiàn)網(wǎng)絡(luò)通信。我們要求學(xué)生設(shè)計的API應(yīng)模擬套接字API的功能,并且具有類似的函數(shù)名。
2.3關(guān)鍵技術(shù)
1) 基于重疊網(wǎng)絡(luò)的數(shù)據(jù)收發(fā)。NjucsNet協(xié)議棧使用重疊網(wǎng)絡(luò)層的TCP連接來發(fā)送和接收數(shù)據(jù),由于在使用TCP的情況下,數(shù)據(jù)是以字節(jié)流的形式發(fā)送,為了能夠讓接收端確認收到一個完整的數(shù)據(jù),我們采用了在字節(jié)流中添加數(shù)據(jù)開始分隔符和結(jié)束分隔符的方法。這些特殊分隔符不能在傳遞的數(shù)據(jù)中出現(xiàn)。
2) 數(shù)據(jù)丟失和段錯誤的模擬。因為重疊網(wǎng)絡(luò)層是通過TCP而不是UDP建立的,所以我們不會有數(shù)據(jù)丟失和段錯誤的發(fā)生。為生成這類錯誤,我們需要在簡單網(wǎng)絡(luò)層向簡單傳輸層提供的API接口中調(diào)用模擬函數(shù),按一定的概率丟棄數(shù)據(jù)和產(chǎn)生段錯誤。
3) 有限狀態(tài)機FSM的設(shè)計。簡單傳輸層中客戶端、服務(wù)器的狀態(tài)定義和狀態(tài)轉(zhuǎn)換,以及客戶端和服務(wù)器中GBN的事件驅(qū)動都需要用到FSM。但協(xié)議內(nèi)部FSM的設(shè)計并不是固定不變的,學(xué)生在實驗中,可以根據(jù)自己對協(xié)議功能和內(nèi)部狀態(tài)的理解來設(shè)計FSM。
4) 發(fā)送/接收緩沖區(qū)的設(shè)計。學(xué)生對簡單傳輸層中發(fā)送/接收緩沖區(qū)的設(shè)計,對整個簡單傳輸層設(shè)計的成功與否也起著十分重要的作用。其中涉及到的關(guān)鍵技術(shù)包括:發(fā)送緩沖區(qū)中保存的未確認數(shù)據(jù)段及其數(shù)目的定義、接收緩沖區(qū)中數(shù)據(jù)的保存和提取定義、發(fā)送/接收緩沖區(qū)的生存期定義、發(fā)送/接收緩沖區(qū)的互斥訪問。
3實驗課程設(shè)計
我們設(shè)計的實驗課程以自底向上的方法逐步展開,由7個實驗組成,最終目標(biāo)是讓學(xué)生通過實驗,能夠基于重疊網(wǎng)絡(luò)構(gòu)建一個完整的網(wǎng)絡(luò)協(xié)議棧,并能在其上運行應(yīng)用程序。
網(wǎng)絡(luò)協(xié)議棧4KQYYD4GUgqFtsi/qGpBMdozLECA5gIMAcqX89S+rs0=設(shè)計的關(guān)鍵是各層功能的劃分和各層之間API接口的定義。我們提供給學(xué)生參考的一個NjucsNet協(xié)議棧及各層之間的API接口定義如圖1所示。
圖1NjucsNet協(xié)議棧API
3.1實驗1:Wireshark數(shù)據(jù)包嗅探
由于整個實驗課程的協(xié)議分析與開發(fā)都要依賴于一個協(xié)議分析軟件來開展,而Wireshark是目前最為流行的開放源碼協(xié)議分析軟件,所以我們將對Wireshark軟件的介紹與使用作為課程的第一個實驗,其目的是為了讓學(xué)生熟悉協(xié)議分析軟件Wireshark和數(shù)據(jù)包嗅探的基本方法,為后續(xù)的實驗打下堅實的基礎(chǔ)。實驗內(nèi)容包括:
1) 掌握協(xié)議分析軟件Wireshark的使用方法;
2) 掌握通過數(shù)據(jù)包嗅探進行協(xié)議分析的方法;
3) 選擇典型協(xié)議,并閱讀相應(yīng)的協(xié)議RFC文檔。
3.2實驗2:協(xié)議的逆向分析與實現(xiàn)
這個實驗的目的是讓學(xué)生理解協(xié)議的逆向分析方法并掌握客戶端、服務(wù)器的套接字編程方法。學(xué)生利用Wireshark軟件捕獲并分析教師提供的客戶、服務(wù)器之間交互的報文,并最終重塑客戶、服務(wù)器協(xié)議軟件。實驗內(nèi)容包括:
1) 閱讀經(jīng)典的協(xié)議逆向分析文檔(如Skype),掌握協(xié)議逆向分析方法;
2) 通過協(xié)議逆向分析,實現(xiàn)與教師提供的客戶、服務(wù)器軟件等效的協(xié)議軟件。
3.3實驗3:重疊網(wǎng)絡(luò)層實現(xiàn)
從這個實驗開始,后續(xù)實驗都需要學(xué)生分組完成,一般3~4個人一組,這是因為協(xié)議棧每一層的開發(fā)都需要多臺機器之間的配合。
重疊網(wǎng)絡(luò)層位于學(xué)生需要實現(xiàn)的完整協(xié)議棧和主機自身的TCP/IP協(xié)議棧之間。這個實驗的目的是讓學(xué)生實現(xiàn)NjucsNet協(xié)議棧中的重疊網(wǎng)絡(luò)層ON,然后使用一個簡單的網(wǎng)絡(luò)驅(qū)動程序來測試重疊網(wǎng)絡(luò)層的實現(xiàn)。實驗內(nèi)容包括:
1) 熟悉重疊網(wǎng)絡(luò)概念和實現(xiàn)方法;
2) 編寫重疊網(wǎng)絡(luò)層ON;
3) 編寫一個簡單的網(wǎng)絡(luò)層協(xié)議對ON進行測試。
學(xué)生在做這個實驗時,需要為重疊網(wǎng)絡(luò)層預(yù)先定義其拓撲結(jié)構(gòu),圖2顯示了一個包含4個節(jié)點的重疊網(wǎng)絡(luò)和其對應(yīng)的拓撲數(shù)據(jù)文件內(nèi)容。
圖2重疊網(wǎng)絡(luò)拓撲
3.4實驗4:簡單網(wǎng)絡(luò)層實現(xiàn)
這個實驗的目的是讓學(xué)生實現(xiàn)NjucsNet協(xié)議棧中的簡單網(wǎng)絡(luò)層協(xié)議SIP。實驗內(nèi)容包括:
1) 掌握簡單網(wǎng)絡(luò)層協(xié)議SIP的設(shè)計、實現(xiàn)方法;
2) 掌握距離矢量協(xié)議的設(shè)計、實現(xiàn)方法;
3) 編寫簡單網(wǎng)絡(luò)層協(xié)議SIP。
我們要求學(xué)生設(shè)計的SIP路由協(xié)議是一個距離矢量路由協(xié)議。它使用鏈路代價作為路由度量值。當(dāng)在兩個節(jié)點之間存在多條鏈路時,應(yīng)選擇具有較低總鏈路代價的路徑。SIP路由協(xié)議通過各節(jié)點定期發(fā)送的路由更新報文構(gòu)造路由表。在圖2所示的重疊網(wǎng)絡(luò)中,當(dāng)網(wǎng)絡(luò)穩(wěn)定時,各節(jié)點的最終路由表如圖3所示。
圖3各節(jié)點路由表
3.5實驗5:簡單傳輸層協(xié)議實現(xiàn)——信號部分
由于簡單傳輸層協(xié)議涉及的內(nèi)容較多,我們將它分為兩個實驗來完成。本實驗實現(xiàn)的是STCP的信號部分,它的目的是讓學(xué)生熟悉傳輸控制層信號協(xié)議的設(shè)計、實現(xiàn)。熟悉傳輸控制層協(xié)議是如何建立連接,以及如何解決信號數(shù)據(jù)包的丟失和損壞。實驗內(nèi)容包括:
1) 掌握傳輸層信號協(xié)議的設(shè)計、實現(xiàn)方法;
2) 掌握傳輸層協(xié)議建立連接、處理報文丟失和損壞的方法;
3) 掌握通過有限狀態(tài)機FSM要求編寫代碼的方法;
4) 編寫簡單傳輸層協(xié)議的信號部分。
3.6實驗6:簡單傳輸層協(xié)議實現(xiàn)——數(shù)據(jù)傳輸部分
本實驗實現(xiàn)的是STCP的數(shù)據(jù)傳輸部分。它的目的是讓學(xué)生熟悉傳輸控制層數(shù)據(jù)傳輸協(xié)議的設(shè)計、實現(xiàn)。熟悉滑動窗口協(xié)議和校驗和計算。通過完成本實驗和上一個實驗,學(xué)生能夠完全掌握傳輸控制層協(xié)議的核心組件的設(shè)計和實現(xiàn),包括支持并發(fā)連接、支持按序可靠的字節(jié)流、能夠處理數(shù)據(jù)包的丟失和損壞。實驗內(nèi)容包括:
1) 掌握傳輸層數(shù)據(jù)傳輸協(xié)議的設(shè)計、實現(xiàn)方法;
2) 掌握滑動窗口協(xié)議和校驗和計算;
3) 編寫簡單傳輸層協(xié)議的GBN和checksum部分以構(gòu)成一個完整的傳輸層協(xié)議。
3.7實驗7:完整協(xié)議棧測試
作為整個實驗課程的最后一個實驗,本實驗要求學(xué)生利用簡單傳輸層STCP向應(yīng)用層提供的API編寫應(yīng)用層程序,以構(gòu)成一個完整的協(xié)議棧。應(yīng)用層程序最好能實現(xiàn)多臺機器之間的互相通信,以方便小組成員協(xié)同測試。我們在課程中要求學(xué)生實現(xiàn)的是一個簡化版的即時通信軟件。實驗內(nèi)容包括:
1) 熟悉應(yīng)用層協(xié)議的設(shè)計、實現(xiàn)方法;
2) 將應(yīng)用層、STCP、SIP和ON整合以構(gòu)成一個完整的協(xié)議棧。
4結(jié)語
計算機網(wǎng)絡(luò)協(xié)議分析與開發(fā)實驗一直是計算機網(wǎng)絡(luò)實驗教學(xué)中的一個難點,如何能讓學(xué)生通過實驗真正掌握協(xié)議分析與開發(fā)的精髓,并具備協(xié)議分析與開發(fā)的能力是此類實驗要重點關(guān)注的內(nèi)容。本文提出了一種基于逆向工程與重疊網(wǎng)絡(luò)開展協(xié)議分析與開發(fā)實驗的方法,介紹了系統(tǒng)組成、關(guān)鍵技術(shù)和課程設(shè)計內(nèi)容,學(xué)生通過實驗,可以獨立設(shè)計并開發(fā)出一個完整的網(wǎng)絡(luò)協(xié)議棧,這對提高學(xué)生的協(xié)議分析、設(shè)計和開發(fā)能力有著極大的好處。
參考文獻:
[1] Jeanna Matthews. Computer Networking: Internet Protocols in Action[M]. NewYork:Wi