版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課程設(shè)計IV課程設(shè)計</p><p><b> 設(shè)計說明書</b></p><p><b> 計算機科學(xué)與技術(shù)系</b></p><p><b> 2011年9月9日</b></p><p> 課程設(shè)計IV課程設(shè)計評閱書</p>&l
2、t;p> 注:指導(dǎo)教師成績60%,答辯成績40%,總成績合成后按五級制記入。</p><p><b> 課程設(shè)計任務(wù)書</b></p><p> 2011—2012學(xué)年第一學(xué)期</p><p> 專業(yè): 學(xué)號: 姓名: </p><p> 課程設(shè)計
3、名稱: 課程設(shè)計IV課程設(shè)計 </p><p> 設(shè)計題目: Ping命令模擬實現(xiàn) </p><p> 完成期限:自 2011 年 8 月 29 日 至 2011
4、 年 9 月 9 日共 2 周</p><p> 設(shè)計依據(jù)、要求及主要內(nèi)容(可另加附頁):</p><p> 1. 了解并掌握ICMP協(xié)議。</p><p> 2. 了解Ping命令的使用,其常用格式為Ping XXX.XXX.XXX.XXX。</p><p> 3. Ping命令執(zhí)行原理及實現(xiàn)步驟。</p>
5、<p> 4. 模擬ping命令的實現(xiàn)過程。</p><p> 5. 對此次課程設(shè)計的總結(jié)</p><p> 指導(dǎo)教師(簽字): 教研室主任(簽字): </p><p> 批準日期: 年 月 日</p><p><b> 摘要&
6、lt;/b></p><p> 隨著計算機技術(shù)及網(wǎng)絡(luò)技術(shù)的迅速發(fā)展 ,個人、家庭或宿舍中擁有多臺計算機已變得十分的普遍 , 將多臺計算機組建成網(wǎng)絡(luò)可以提高資源的利用率和協(xié)同工作的效率 , 所以網(wǎng)絡(luò)技術(shù)無論在教學(xué)還是在現(xiàn)實生活中都變得異常的重要。在實際學(xué)習(xí)中,由于資源設(shè)備的限制,提供完善的實驗環(huán)境存在一定的難度,所以提供一種模擬的組建網(wǎng)絡(luò)的平臺具有很強的現(xiàn)實意義。根據(jù) Ping命令的運行的運行原理,對他進行
7、的模擬實現(xiàn),相應(yīng)的其他網(wǎng)檢查網(wǎng)絡(luò)狀態(tài)命令。</p><p> 關(guān)鍵詞:計算機;網(wǎng)絡(luò); Ping</p><p><b> 目錄</b></p><p><b> 一.課題內(nèi)容5</b></p><p> 1.1課程設(shè)計目的5</p><p> 1.2課程設(shè)計要求
8、5</p><p> 1.3 實驗步驟和注意事項5</p><p> 二. Ping命令及ICMP協(xié)議簡介6</p><p> 2.1. Ping命令簡介6</p><p> 2.2.ICMP協(xié)議簡介6</p><p> 三.實現(xiàn)原理和步驟10</p><p> 3.1.
9、實現(xiàn)原理10</p><p> 3.2.實現(xiàn)步驟10</p><p> 3.3.注意事項13</p><p><b> 總結(jié)14</b></p><p><b> 參考文獻:15</b></p><p><b> 1.課題內(nèi)容</b>
10、</p><p><b> 1.1課程設(shè)計目的</b></p><p> PING程序是我們使用的比較多的用于測試網(wǎng)絡(luò)連通性的程序。PING程序基于ICMP,使用ICMP</p><p> 的回送請求和回送應(yīng)答來工作。由計算機網(wǎng)絡(luò)課程知道,ICMP是基于IP的一個協(xié)議,ICMP包通IP的</p><p> 裝之后
11、傳遞。課程設(shè)計中選取PING程序的設(shè)計,其目的是希望同學(xué)們通過PING程序的設(shè)計能初</p><p> TCP/IP網(wǎng)絡(luò)協(xié)議的基本實現(xiàn)方法,對網(wǎng)絡(luò)的實現(xiàn)機制有進一步的認識。</p><p> 1.2課程設(shè)計要求 1) 定義數(shù)據(jù)結(jié)構(gòu)</p><p> 需要定義好IP數(shù)據(jù)報、ICMP包等相關(guān)的數(shù)據(jù)結(jié)構(gòu)。 2) 程序?qū)崿F(xiàn) 在WINDOWS環(huán)境下實現(xiàn)PIN
12、G程序。 3) 程序要求 在命令提示符下輸入:</p><p> PING ΧΧΧ.ΧΧΧ.ΧΧΧ.ΧΧΧ 其中ΧΧΧ為目的主機的IP地址,不要求支持域名,對是否帶有開關(guān)變量也不做要求。不帶開關(guān)變量時,要求返回響應(yīng)。 返回信息的格式: REPLY FROM ΧΧΧ.ΧΧΧ.ΧΧΧ.ΧΧΧ 或 REQUEST TimeOut (無法PING通的情況)
13、 </p><p> 1.3 實驗步驟和注意事項 1) 熟悉IP以及ICMP協(xié)議的工作機制 2) 編寫PING的實現(xiàn)程序 3) 在模擬實現(xiàn)環(huán)境下調(diào)試并運行自己編寫的PIN程序</p><p> 2. Ping命令及ICMP協(xié)議簡介</p><p> 2.1. Ping命令簡介</p><p> ping命令是用
14、來查看網(wǎng)絡(luò)上另一個主機系統(tǒng)的網(wǎng)絡(luò)連接是否正常的一個工具。ping命令的工作原理是:向網(wǎng)絡(luò)上的另一個主機系統(tǒng)發(fā)送ICMP報文,如果指定系統(tǒng)得到了報文,它將把報文一模一樣地傳回給發(fā)送者,這有點象潛水艇聲納系統(tǒng)中使用的發(fā)聲裝置。</p><p> 例如,在Linux終端上執(zhí)行ping localhost命令將會看到以下結(jié)果: PING localhost.localdomain (127.
15、0.0.1) from 127.0.0.1 : 56(84) bytes of data. 64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=0 ttl=255
16、time=112 usec 64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=255 time=79 usec 64 bytes from localhost.l
17、ocaldomain (127.0.0.1): icmp_seq=2 ttl=255 time=78 usec 64 bytes from localhost.localdomain (127.0.0.1): i</p><p> 由上面的執(zhí)行結(jié)果可以看到,
18、ping命令執(zhí)行后顯示出被測試系統(tǒng)主機名和相應(yīng)IP地址、返回給當(dāng)前主機的ICMP報文順序號、ttl生存時間和往返時間rtt(單位是毫秒,即千分之一秒)。要寫一個模擬ping命令,這些信息有啟示作用。 要真正了解ping命令實現(xiàn)原理,就要了解ping命令所使用到的TCP/IP協(xié)議。</p><p> 2.2.ICMP協(xié)議簡介</p><p> ICMP(Interne
19、t Control Message,網(wǎng)際控制報文協(xié)議)是為網(wǎng)關(guān)和目標(biāo)主機而提供的一種差錯控制機制,使它們在遇到差錯時能把錯誤報告給報文源發(fā)方。ICMP協(xié)議是IP層的一個協(xié)議,但是由于差錯報告在發(fā)送給報文源發(fā)方時可能也要經(jīng)過若干子網(wǎng),因此牽涉到路由選擇等問題,所以ICMP報文需通過IP協(xié)議來發(fā)送。ICMP數(shù)據(jù)報的數(shù)據(jù)發(fā)送前需要兩級封裝:首先添加ICMP報頭形成ICMP報文,再添加IP報頭形成IP數(shù)據(jù)報。<
20、/p><p> (1)IP報頭格式 </p><p> (2)由于IP層協(xié)議是一種點對點的協(xié)議,而非端對端的協(xié)議,它提供無連接的數(shù)據(jù)報服務(wù),沒有端口的概念,因此很少使用bind()和connect()函數(shù),若有使用也只是用于設(shè)置IP地址。發(fā)送數(shù)據(jù)使用sendto()函數(shù),接收數(shù)據(jù)使用recvfrom()函數(shù)</p><p><b> IP報頭格式如下
21、:</b></p><p> 在Linux中,IP報頭格式數(shù)據(jù)結(jié)構(gòu)()定義如下:</p><p> struct ip </p><p><b> { </b></p><p> #if __BYTE_ORDER == __LITTLE_ENDIAN</
22、p><p> unsigned int ip_hl:4; /* header length */</p><p> unsigned int ip_v:4; /* version */</p><p><b> #endif</b></p><p> #if __BYTE_ORDER == __BIG
23、_ENDIAN unsigned int ip_v:4; /* version */unsigned int ip_hl:4; /* header length */#endifu_int8_t ip_tos; /* type of service */u_short ip_len; /* total length */ u_short ip_id; /* identification */u_short ip_of
24、f; /* fragment offset field */#define IP_RF 0x8000 /* reserved fragment flag*/#define IP_DF 0x4000 /* dont fragment flag*/#define IP_MF 0x2000 /* more fragments flag */#define IP_OFFMASK 0x1fff /* mask for fragmentin
25、g bits */u_int8_t ip_ttl; /* ti</p><p> 是上述IP數(shù)據(jù)結(jié)構(gòu)的ip_hl變量。生存時間TTL(Time To Live)――以秒為單位,指出Ip</p><p> 數(shù)據(jù)報能在網(wǎng)絡(luò)上停留的最長時間,其值由發(fā)送方設(shè)定,并在經(jīng)過路由的每一個節(jié)點時減一,當(dāng)該值</p><p> 為0時,數(shù)據(jù)報將被丟
26、棄,是上述IP數(shù)據(jù)結(jié)構(gòu)的ip_ttl變量。</p><p> (2)ICMP報頭格式 ICMP報文分為兩種,一是錯誤報告報文,二是查詢報文。每個ICMP報頭均包含類型、編碼和校驗和這三項內(nèi)容,長度為8位,8位和16位,其余選項則隨ICMP的功能不同而不同。</p><p> Ping命令只使用眾多ICMP報文中的兩種: "請求回送 "(ICMP_ECHO)和
27、 "請求回應(yīng) "(ICMP_ECHOREPLY)。在Linux中定義如下:#define ICMP_ECHO 0#define ICMP_ECHOREPLY 8這兩種ICMP類型報頭格式如下:在Linux中ICMP數(shù)據(jù)結(jié)構(gòu)()定義如下:struct icmp{u_int8_t icmp_type; /* type of message, see below */u_int8_t
28、 icmp_code; /* type sub code */u_int16_t icmp_cksum; /* ones complement checksum of struct */union{u_char ih_pptr; /* ICMP_PARAMPROB */struct in_addr ih_gwaddr; /* gateway address */struct ih_idseq /* e
29、cho datagram */{u_int16_t icd_id;u_int16_t ic</p><p> (3)ICMP數(shù)據(jù)報 Ping命令中需要顯示的信息,包括icmp_seq和ttl都已有實現(xiàn)的辦法,但還缺rtt往返時間。為了實現(xiàn)這一功能,可利用ICMP數(shù)據(jù)報攜帶一個時間戳。使用以下函數(shù)生成時間戳:#includeint gettimeofday(struct timeval *tp,v
30、oid *tzp) 其中timeval結(jié)構(gòu)如下:struct timeval{long tv_sec;long tv_usec;</p><p> } 其中tv_sec為秒數(shù),tv_usec微秒數(shù)。在發(fā)送和接收報文時由gettimeofday分別生成兩個timeval結(jié)構(gòu),兩者之差即為往返時間,即ICMP報文發(fā)送與接收的時間差,而timeval結(jié)構(gòu)由ICMP數(shù)據(jù)報攜帶,tzp指針表示時區(qū),一般都不
31、使用,賦NULL值。(5)數(shù)據(jù)統(tǒng)計 系統(tǒng)自帶的ping命令當(dāng)它接送完所有ICMP報文后,會對所有發(fā)送和所有接收的ICMP報文進行統(tǒng)計,從而計算ICMP報文丟失的比率。為達此目的,定義兩個全局變量:接收計數(shù)器和發(fā)送計數(shù)器,用于記錄ICMP報文接受和發(fā)送數(shù)目。丟失數(shù)目=發(fā)送總數(shù)-接收總數(shù),丟失比率=丟失數(shù)目/發(fā)送總數(shù)。</p><p><b> 3.實現(xiàn)原理和步驟</b></p&g
32、t;<p><b> 3.1.實現(xiàn)原理</b></p><p> 首先裝載ICMP.DLL連接庫,查找給定機器的IP地址信息,然后通過三個指針函數(shù)pIcmpCreateFile、pIcmpCloseHandle、pIcmpSendEcho從ICMP.DLL中得到函數(shù)入口地址,打開ping服務(wù),構(gòu)造并發(fā)送ping數(shù)據(jù)包,完成ping命令的模擬實現(xiàn)。</p>&l
33、t;p><b> 3.2.實現(xiàn)步驟</b></p><p> ?。?)啟動visual C++,進入集成開發(fā)環(huán)境。</p><p> ?。?)建立一個“Win32 Console Application”類型的工程,工程名為pb55</p><p> ?。?)在該工程下,建立一個源程序文件,即選擇“C+Soure File”,文件名為p
34、b55</p><p> ?。?)輸入源程序如下:</p><p> #include<iostream.h></p><p> #include<winsock.h></p><p> #include<windowsx.h></p><p> #include"
35、icmpdefs.h"</p><p> #pragma comment(lib,"ws2_32.lib")</p><p> //ping 實現(xiàn)部分</p><p> int doit(int argc,char* argv[])</p><p><b> {</b></p&
36、gt;<p> //裝載ICMP.DLL連接庫</p><p> HINSTANCE hIcmp=LoadLibrary("ICMP.DLL");</p><p> if(hIcmp==0)</p><p><b> {</b></p><p> cerr<<&qu
37、ot;Unable to locate ICMP.DLL!"<<endl;</p><p><b> return 2;</b></p><p><b> }</b></p><p> //查找給定機器的IP地址信息</p><p> struct hostent* p
38、he;</p><p> if((phe=gethostbyname(argv[1]))==0)</p><p><b> {</b></p><p> cerr<<"Could not find IP address for "<<argv[1]<<endl;</p>
39、<p><b> return 3;</b></p><p><b> }</b></p><p> //定義函數(shù)三個指針類型</p><p> typedef HANDLE (WINAPI* pfnHV)(VOID);</p><p> typedef BOOL (WINAP
40、I* pfnBH)(HANDLE);</p><p> typedef DWORD (WINAPI* pfnDHDPWPipPDD)(HANDLE,DWORD,LPVOID,WORD,</p><p> PIP_OPTION_INformATION,LPVOID,DWORD,DWORD);//evil,no?</p><p> //定義三個指針函數(shù)</p
41、><p> pfnHV pIcmpCreateFile;</p><p> pfnBH pIcmpCloseHandle;</p><p> pfnDHDPWPipPDD pIcmpSendEcho;</p><p> //從ICMP.DLL中得到函數(shù)入口地址</p><p> pIcmpCreateFile=(
42、pfnHV)GetProcAddress(hIcmp,"IcmpCreateFile");</p><p> pIcmpCloseHandle=(pfnBH)GetProcAddress(hIcmp,"IcmpCloseHandle");</p><p> pIcmpSendEcho=(pfnDHDPWPipPDD)GetProcAddress(
43、hIcmp,"IcmpSendEcho");</p><p> if((pIcmpCreateFile==0)||(pIcmpCloseHandle==0)||(pIcmpSendEcho==0))</p><p><b> {</b></p><p> cerr<<"Failed to get
44、pro addr for function."<<endl;</p><p><b> return 4;</b></p><p><b> }</b></p><p> //打開ping服務(wù)</p><p> HANDLE hIP=pIcmpCreateFile();
45、</p><p> if(hIP==0)</p><p><b> {</b></p><p> cerr<<"Unable to open ping service."<<endl;</p><p><b> return 5;</b></
46、p><p><b> }</b></p><p> //構(gòu)造ping數(shù)據(jù)包</p><p> char acPingBuffer[64];</p><p> memset(acPingBuffer,'\xAA',sizeof(acPingBuffer));</p><p>
47、PIP_ECHO_REPLY pIpe=(PIP_ECHO_REPLY)GlobalAlloc(GMEM_FIXED|GMEM_ZEROINIT,</p><p> sizeof(IP_ECHO_REPLY)+sizeof(acPingBuffer));</p><p> if(pIpe==0)</p><p><b> {</b><
48、;/p><p> cerr<<"Failed to allocate global ping packet buffer."<<endl;</p><p><b> return 6;</b></p><p><b> }</b></p><p> p
49、Ipe->Data=acPingBuffer;</p><p> pIpe->DataSize=sizeof(acPingBuffer);</p><p> //發(fā)送ping數(shù)據(jù)包</p><p> DWORD dwStatus=pIcmpSendEcho(hIP,*((DWORD*)phe->h_addr_list[0]),</p&g
50、t;<p> acPingBuffer,sizeof(acPingBuffer),NULL,pIpe,</p><p> sizeof(IP_ECHO_REPLY)+sizeof(acPingBuffer),5000);</p><p> if(dwStatus!=0)</p><p><b> {</b></p&g
51、t;<p> cout<<"Addr:"<<</p><p> int(LOBYTE(LOWORD(pIpe->Address)))<<"."<<</p><p> int(HIBYTE(LOWORD(pIpe->Address)))<<".&quo
52、t;<<</p><p> int(LOBYTE(HIWORD(pIpe->Address)))<<"."<<</p><p> int(HIBYTE(HIWORD(pIpe->Address)))<<"."<<</p><p> "RTT
53、:"<<int(pIpe->RoundTripTime)<<"ms,"<<</p><p> "TTL:"<<int(pIpe->Options.Ttl)<<endl;</p><p><b> }</b></p><p&g
54、t;<b> else</b></p><p><b> {</b></p><p> cerr<<"Error obtaining info from ping packet."<<endl;</p><p><b> }</b></p>
55、;<p><b> //關(guān)閉,回收資源</b></p><p> GlobalFree(pIpe);</p><p> FreeLibrary(hIcmp);</p><p><b> return 0;</b></p><p><b> }</b>&l
56、t;/p><p><b> //主函數(shù)//</b></p><p> int main(int argc,char* argv[])</p><p><b> {</b></p><p> WSAData wsaData;</p><p> if(WSAStartup(
57、MAKEWORD(1,1),&wsaData)!=0)</p><p><b> {</b></p><p> return 255;</p><p><b> }</b></p><p> if(argc<2)</p><p><b> {
58、</b></p><p> cerr<<"usage:ping<host>"<<endl;</p><p><b> return 1;</b></p><p><b> }</b></p><p> int retval=
59、doit(argc,argv);</p><p> return retval;</p><p><b> }</b></p><p> //以下是頭文件icmpdefs.h代碼</p><p> //ICMP.DLL函數(shù)中需要的結(jié)構(gòu)//</p><p> typedef struct{
60、</p><p> unsigned char Ttl;//time to live</p><p> unsigned char Tos;//type of service</p><p> unsigned char Flags;//ip header flags</p><p> unsigned char OptionsSiz
61、e; //size in bytes of options data</p><p> unsigned char *OptionsData;//pointer to options data</p><p> }IP_OPTION_INformATION,*PIP_OPTION_INformATION;</p><p> typedef struct{<
62、;/p><p> DWORD Address;//replying address</p><p> unsigned long Status;//reply status</p><p> unsigned long RoundTripTime;//rtt in milliseconds</p><p> unsigned short
63、DataSize;//echo data size </p><p> unsigned short Reserved;//reserved for system use</p><p> void *Data;//pointer to the echo data</p><p> IP_OPTION_INformATION Options;//reply o
64、ptions</p><p> }IP_ECHO_REPLY,*PIP_ECHO_REPLY;</p><p> ?。?)編譯,連接并生成EXE程序</p><p> ?。?)進入命令行提示符下運行程序(格式同Ping程序,Ping XXX.XXX.XXX.XXX)。</p><p><b> 3.3.注意事項</b&g
65、t;</p><p> 在具體運行之前,要先配置環(huán)境變量,具體步驟為:“我的電腦”—>“屬性”—>“高級”—>“環(huán)境變量”配置用戶變量,具體配置內(nèi)容如下所示:</p><p> PATH=C:\Program Files\Microsoft Visual Studio\VC98\Bin;C:\Program Files\Microsoft Visual Studio\
66、Common\MSDev98\Bin INCLUDE=C:\Program Files\Microsoft Visual Studio\VC98\Include;C:\Program Files\Microsoft Visual Studio\VC98\MFC\Include LIB=C:\Program Files\Microsoft Visual Studio\VC98\Lib;C:\Program Files\Micros
67、oft Visual Studio\VC98\MFC\Lib</p><p> 配置完成后,點擊“開始”—>“運行”,輸入cmd進入DOS界面,VC++的編譯程序為cl.exe,編譯格式為cl E:\cl\cl.cpp,編譯連接成功后即可運行程序,具體可見運行結(jié)果部分。</p><p><b> 運行結(jié)果:</b></p><p>&
68、lt;b> 圖3.1運行結(jié)果</b></p><p><b> 總結(jié)</b></p><p> 通過此次設(shè)計我們了解了Ping命令模式的實現(xiàn),并了對TCP/IP協(xié)議有了更加深刻的了解和認識。同時對網(wǎng)路的一些工作原理進行了進一步的了解,我們通過調(diào)試程序,運行出結(jié)果。使我們收獲很多。</p><p> 在此次的設(shè)計中,我們
69、分組共同完成設(shè)計內(nèi)容,一起查閱資料,共同的合作探討,終于完成了此次的內(nèi)容,我們了解了有關(guān)Ping命令的內(nèi)容,同時實現(xiàn)了Ping命令的模擬,收獲了很多知識。</p><p><b> 參考文獻:</b></p><p> [1] 劉永華.《Windows sever 2003 網(wǎng)絡(luò)操作系統(tǒng)》.北京:清華大學(xué)出版社,2010.</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計---ping程序設(shè)計與實現(xiàn)
- ping命令大全
- 使用ping命令
- ping命令使用指南
- ping和ipconfig命令詳解
- 計算機網(wǎng)絡(luò)課程設(shè)計--編程實現(xiàn)基于udp的ping
- 計算機網(wǎng)絡(luò)基礎(chǔ)課程設(shè)計--ping程序的實現(xiàn)
- ping命令檢測網(wǎng)絡(luò)連接
- ping命令在網(wǎng)絡(luò)維護中的巧用
- ping命令作用及失敗解析
- 網(wǎng)絡(luò)常用命令ping的使用
- 計算機網(wǎng)絡(luò)課程設(shè)計-----基于icmp的ping設(shè)計
- ping程序的設(shè)計與實現(xiàn)
- 課程設(shè)計---小型數(shù)據(jù)庫命令解析器、數(shù)據(jù)存儲的設(shè)計與實現(xiàn)設(shè)計與實現(xiàn)
- 課程設(shè)計報告--模擬通信系統(tǒng)的設(shè)計與實現(xiàn)
- 課程設(shè)計--銀行家算法的模擬實現(xiàn)
- ping和etstat和arp命令使用詳解
- 課程設(shè)計報告--磁盤調(diào)度算法的模擬實現(xiàn)
- 銀行家算法模擬實現(xiàn)課程設(shè)計
- 畢業(yè)論文---ping命令在網(wǎng)絡(luò)維護中的巧用
評論
0/150
提交評論