第一篇:《計算機網(wǎng)絡設計》第2版 課程設計160題
易建勛《計算機網(wǎng)絡設計》
《計算機網(wǎng)絡設計》 133、Windows Server環(huán)境下DHCP服務器技術分析與實現(xiàn) 134、Windows Server環(huán)境下文件服務器技術分析與實現(xiàn) 135、Windows Server環(huán)境下打印服務器技術分析與實現(xiàn) 136、Exchange Server郵件服務器技術分析與實現(xiàn) 137、MDaemon郵件服務器技術分析與實現(xiàn)
138、Windows Media流媒體服務器技術分析與實現(xiàn) 139、Helix Server流媒體服務器技術分析與實現(xiàn)
140、Linux系統(tǒng)下DNS服務器技術分析與實現(xiàn)【Linux環(huán)境下實現(xiàn)】 141、Linux系統(tǒng)下Apache服務器技術分析與實現(xiàn)【Linux環(huán)境下實現(xiàn)】 142、Linux系統(tǒng)下FTP服務器技術分析與實現(xiàn)【Linux環(huán)境下實現(xiàn)】 143、Free BSD系統(tǒng)下服務器技術分析與實現(xiàn)【Free BSD環(huán)境下實現(xiàn)】 144、IBM Notes/Domino群件服務器技術分析與實現(xiàn) 145、Microsoft Virtual Server 虛擬機技術分析與實現(xiàn) 146、VM Server虛擬機技術分析與實現(xiàn) 147、Cisco IOS與華為IOS技術對比分析
網(wǎng)絡管理選題
148、企業(yè)網(wǎng)絡管理系統(tǒng)需求分析與設計 149、Ciscoworks網(wǎng)絡管理技術與實現(xiàn) 150、PPP CHAP認證技術分析與實現(xiàn) 151、AAA認證技術分析與實現(xiàn)
152、Sniffer Pro嗅探器技術與數(shù)據(jù)包捕獲分析
153、Linux下的SNMP網(wǎng)絡管理技術分析與應用【Linux環(huán)境下實現(xiàn)】 154、網(wǎng)絡遠程控制技術分析與實現(xiàn)
常用網(wǎng)絡設計選題
155、超市POS網(wǎng)絡系統(tǒng)分析與設計 156、組播技術在IPTV中的應用與設計
157、數(shù)字視頻監(jiān)控系統(tǒng)在城市交通中的應用 158、基于H.323的IP電話技術分析與設計 159、基于SIP的IP電話技術分析與設計 160、工業(yè)以太網(wǎng)技術分析與設計
說明:
1、“實現(xiàn)”類課題要求在實驗室網(wǎng)絡設備或模擬軟件中實現(xiàn)。
2、“應用”類課題要求在進行實例分析與設計。
3、“設計”類課題要求在進行實例分析與設計圖紙。
4、“分析”指從結構、性能、QoS、可靠性、安全性等方面進行具體案例分析。
5、課題要求:調式命令行代碼(必須注釋)、網(wǎng)絡結構圖、運行截圖、測試數(shù)據(jù)表格等。
6、每人一題,不允許重復選題。
7、自選課題指導老師同意后方可實行。[END]
第二篇:計算機網(wǎng)絡課設
計算機網(wǎng)絡應用課程設計
報告
系(院):
計算機科學學院 專業(yè)班級: 計科11511 姓
名: 鐘燦均 學
號: 201503687 指導教師: 余紹文 設計時間: 2017.6.12-2017.6.23 設計地點: 12教1樓機房
一、課程設計目的和意義
計算機網(wǎng)絡課程設計的目的,是為了讓我們更深入地掌握計算機網(wǎng)絡的核心內容,實現(xiàn)理論與實踐相結合。讓學生用具體的實踐成果,體現(xiàn)對理論知識的掌握程度。有利于學生提高計算機網(wǎng)絡的實踐能力,加深對計算機網(wǎng)絡理論知識的理解。其基本目的是:
1. 培養(yǎng)學生理論聯(lián)系實際的設計思想,訓練綜合運用所學的基礎理論知識,結合生產(chǎn)實際分析和解決網(wǎng)絡應用中問題的能力,從而使基礎理論知識得到鞏固和加深。2. 學習掌握網(wǎng)絡應用工程的一般設計過程和方法。
二、設計題目和要求
1.編寫程序,實現(xiàn)系統(tǒng)的基本功能;
2.要有用戶界面:要求至少采用文本菜單界面;鼓勵采用圖形菜單界面; 3.寫課程設計報告,內容包括: ? 封面(參見附錄I)
? 需求分析:以無歧義的陳述說明程序設計的任務,強調的是程序要做什么?給出功能模塊圖和流程圖。同時明確規(guī)定:輸入的形式和輸出值的范圍;輸出的形式;程序所能夠達到的功能;測試數(shù)據(jù),包括正確的輸入及其輸出結果和含有錯誤的輸入及其輸出結果。? 概要設計:包括程序設計組成框圖,程序中使用的存儲結構設計說明(如果指定存儲結構請寫出該存儲結構的定義)。
? 詳細設計:包括模塊功能說明(如函數(shù)功能、入口及出口參數(shù)說明,函數(shù)調用關系描述等),每個模塊的算法設計說明(可以是描述算法的流程圖)。其中源程序要按照寫程序的規(guī)則來編寫,結構清晰,重點函數(shù)的重點變量,重點功能部分要加上清晰的程序注釋。? 運行結果:包括典型的界面、輸入和輸出數(shù)據(jù)等;
? 總結:包括課程設計中遇到的問題,解決問題的過程及體會、收獲、對課程設計的認識與思考等。
? 附錄:包括主要程序清單,要有適當?shù)淖⑨?,使程序容易閱讀。? 開發(fā)環(huán)境:windows 10
? 開發(fā)工具: vs2008
題目3:基于UDP協(xié)議的簡易聊天機器人
設計目標:
1.了解Socket通信的原理,在此基礎上編寫一個聊天程序; 2.理解upd原理;課程設計系統(tǒng)組成及模塊功能: 此課程設計實現(xiàn)了基于UDP的客戶/服務器通信程序,需要實現(xiàn)以下一些基本功能: 1.客戶端連接聊天機器人服務器;
2.消息發(fā)送:客戶端發(fā)送消息給機器人服務器。
3.消息接收:客戶端接收到機器人服務器發(fā)送給他的消息。4.可以有多個客戶端同時連接
5.智能回復功能:根據(jù)用戶發(fā)送的消息內容,稍微有點智能回復。
運行效果:
服務器端和客戶端截圖
三、設計內容
1、UDP傳送數(shù)據(jù)前并不與對方建立連接,即UDP是無連接的,在傳輸數(shù)據(jù)前,發(fā)送方和接收方相互交換信息使雙方同步。
2、UDP不對收到的數(shù)據(jù)進行排序,在UDP報文的首部中并沒有關于數(shù)據(jù)順序的信息(如TCP所采用的序號),而且報文不一定按順序到達的,所以接收端無從排起。
3、UDP對接收到的數(shù)據(jù)報不發(fā)送確認信號,發(fā)送端不知道數(shù)據(jù)是否被正確接收,也不會重發(fā)數(shù)據(jù)。
4、UDP傳送數(shù)據(jù)較TCP快速,系統(tǒng)開銷也少。
5、由于缺乏擁塞控制(congestion control),需要基于網(wǎng)絡的機制來減小因失控和高速UDP流量負荷而導致的擁塞崩潰效應。換句話說,因為UDP發(fā)送者不能夠檢測擁塞,所以像使用包隊列和丟棄技術的路由器這樣的網(wǎng)絡基本設備往往就成為降低UDP過大通信量的有效工具。數(shù)據(jù)報擁塞控制協(xié)議(DCCP)設計成通過在諸如流媒體類型的高速率UDP流中增加主機擁塞控制來減小這個潛在的問題。
從以上UDP協(xié)議特點可知,UDP提供的是無連接的、不可靠的數(shù)據(jù)傳送方式,是一種盡力而為的數(shù)據(jù)交付服務。
1.服務端
1.2.3.4.5.加載協(xié)議棧; 創(chuàng)建套接字;
將套接字綁定到一個本地地址和端口bind; 等待接收數(shù)據(jù)recvfrom;關閉套接字;
2.客戶端
1.2.3.4.加載協(xié)議棧;
創(chuàng)建套接字socket;
向服務器發(fā)送數(shù)據(jù)sendto;關閉套接字; 3.相關代碼顯示:(客戶端)
int main(int argc, char* argv[]){
system(“@color 0e”);WORD socketVersion = MAKEWORD(2, 2);WSADATA wsaData;if(WSAStartup(socketVersion, &wsaData)!= 0){ } sockaddr_in sin;sin.sin_family = AF_INET;sin.sin_port = htons(8888);sin.sin_addr.S_un.S_addr = inet_addr(m);int len = sizeof(sin);return 0;以上代碼為相關版本信息及熱啟動的一些操作;;
結構體端口號及相關地址信息以及轉化函數(shù),將輸入的信息轉化為計算機可識別的二進制代碼,進行相關構造
char * sendData = new char[255];cout << “主人:”;cin >> sendData;while(strcmp(sendData, “#”)!= 0){
sendto(sclient, sendData, strlen(sendData), 0,(sockaddr *)&sin, len);char recvData[255];int ret = recvfrom(sclient, recvData, 255, 0,(sockaddr *)&sin, &len);if(ret > 0){
} recvData[ret] = 0x00;cout << “機器人:”;printf(recvData);4.相關代碼展示:(服務端)
SOCKET serSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);if(serSocket == INVALID_SOCKET){
} printf(“socket error!”);return 0;3
if(bind(serSocket,(sockaddr *)&serAddr, sizeof(serAddr))== SOCKET_ERROR){
} sockaddr_in remoteAddr;int nAddrLen = sizeof(remoteAddr);char * sendData = new char[255];char recvData[255];while(true){
int ret = recvfrom(serSocket, recvData, 255, 0,(sockaddr *)&remoteAddr, //printf(recvData);if(ret > 0){
} struct Ro { char recv[255];char send[255];recvData[ret] = 0x00;printf(“接受到一個連接:%s rn”, inet_ntoa(remoteAddr.sin_addr));cout << “主人:”;printf(recvData);printf(“bind error!”);closesocket(serSocket);return 0;以上為對套接字的綁定及判斷綁定是否成功,以及對于相關信息的初始化
&nAddrLen);}Ro;FILE *fp;fp = fopen(“G:機器人問答機制.txt”, “r”);while(!feof(fp)){
} fscanf(fp, “%s %s”, Ro.recv, Ro.send);if(strcmp(recvData, Ro.recv)== 0){
} else { } strcpy(sendData, Ro.send);break;strcpy(sendData, “對不起,我不知道”);4
fclose(fp);cout << endl;cout << “機器人:” << sendData << endl;sendto(serSocket, sendData, strlen(sendData), 0,(sockaddr *)&remoteAddr, nAddrLen);
四、設計成果以及心得 1.成果
2.心得
通過對課設的相關的操作,加強了對于相關知識的理解,對于知識的應用也得以加強,在課設過程中,聊天機器人制作較為有趣,對于TCP與UDP的通信方式有了進一步的理解和加強,對于socket編程的相關基礎也得以進一步的理解和學習。在今后的學習過程中希望可以將所學知識應用于實際,學以致用。而且對于課設中存在的問題和不足,以及通過老師的講解,對一些算法加以分析和改進,從而不斷完善課設內容,對內容的理解得以加深。
指導老師意見:
成績:
教師簽名: 2017年6月23日
第三篇:C1 CRC12計算機網(wǎng)絡課設
計算機通信網(wǎng)絡課程設計
C1 CRC-12 校驗通信軟件設計
所在學院: 信息科學與工程學院
專業(yè)班級: 通信工程
學生姓名:
學生學號:
指導教師: 時 間: 2015年9月20
引言:
循環(huán)冗余碼 CRC 檢驗技術廣泛應用于測控及通信領域,CRC計算可以靠專用的硬件來實現(xiàn),但是對于低成本的微控制器系統(tǒng),在沒有硬件支持下實現(xiàn)CRC檢驗,關鍵的問題就是如何通過軟件來完成CRC計算,也就是CRC算法的問題。CRC碼是數(shù)據(jù)通信領域中最常用的一種差錯檢驗碼,其特征是信息字段和校驗字段的長度可以任意選定。
實驗設計要求:
C1.CRC-12 校驗通信軟件設計
環(huán)境要求:Windows/XP/7;C;信息交換內容為鍵盤輸入的字符串;通信傳輸通過共享文件實現(xiàn)
編碼要求:用模2 除法計算CRC 碼,生成多項式為CRC-12
功能要求:能在兩臺計算機機上運行程序,一臺產(chǎn)生CRC 碼,另一臺校驗。
課程設計目標:
用C語言設計課程程序,完成用模2出發(fā)計算CRC碼的CRC校驗軟件設計,1.掌握CRC碼的計算方法;
2.掌握用C語言計算CRC碼的算法;
3.熟練并掌握C語言在通信網(wǎng)絡中的編程實現(xiàn)方式及功能。
CRC 簡介
CRC 校驗的基本思想是利用線性編碼理論,在發(fā)送端根據(jù)要傳送的 k 位二進制碼序 列,以一定的規(guī)則產(chǎn)生一個校驗用的監(jiān)督碼(既 CRC 碼)r 位,并附在信息后邊,構成 一個新的二進制碼序列數(shù)共(k+r)位,最后發(fā)送出去。在接收端,則根據(jù)信息碼和 CRC 碼之間所遵循的規(guī)則進行檢驗,以確定傳送中是否出錯。
12位的 CRC 碼產(chǎn)生的規(guī)則是先將要發(fā)送的二進制序列數(shù)左移 12 位(既乘以2)后,再除以一個多項式,最后所得到的余數(shù)既是 CRC 碼,如式(2-1)式所示,其中 B(X)表示 n 位的二進制序列數(shù),G(X)為多項式,Q(X)為整數(shù),R(X)是余數(shù)(既 CRC 碼)。
12B(x)?212R(x)(2-1)?Q(x)?G(x)G(x)求CRC碼所采用模 2 加減運算法則,既是不帶進位和借位的按位加減,這種加減運算實際上就是邏輯上的異或運算,加法和減法等價,乘法和除法運算與普通代數(shù)式的乘除法運算是一樣,符合同樣的規(guī)律。生成CRC碼的多項式如下,CRC-12 則產(chǎn)生的是 12 位的CRC碼。CRC-12:G(x)?x?x?x?x?x?1
接收方將接收到的二進制序列數(shù)(包括信息碼和 CRC 碼)除以多項式,如果余數(shù)為0,則說明傳輸中無錯誤發(fā)生,否則說明傳輸有誤,關于其原理這里不再多述。用軟件計算 CRC 碼時,接收方可以將接收到的信息碼求 CRC 碼,比較結果和接收到的 CRC 碼是否相同。
CRC原理:
CRC碼為循環(huán)冗余校驗碼,基本表示方式為(n,k),其中n為數(shù)據(jù)位數(shù),k為校驗碼位數(shù)。CRC碼校驗的基本思想是利用線性編碼理論,在發(fā)送端根據(jù)要傳送的(n,k)位二進制碼序列,121132以一定的規(guī)則產(chǎn)生一個校驗用的監(jiān)督碼(既CRC碼)r位,并附在信息后邊,構成一個新的二進制碼序列數(shù)共(k+r)位,最后發(fā)送出去。在接收端,則根據(jù)信息碼和CRC碼之間所遵循的規(guī)則進行檢驗,以確定傳送中是否出錯。采用CRC校驗時,發(fā)送方和接收方用同一個生成多項式g(x),并且g(x)的首位和最后一位的系數(shù)必須為1。CRC的處理方法是:發(fā)送方以g(x)去除t(x),得到余數(shù)作為CRC校驗碼。校驗時,以計算的校正結果是否為0為據(jù),判斷數(shù)據(jù)幀是否出錯。CRC校驗可以100%地檢測出所有奇數(shù)個隨機錯誤和長度小于等于k(k為g(x)的階數(shù))的突發(fā)錯誤。所以CRC的生成多項式的階數(shù)越高,那么誤判的概率就越小。
程序流程圖:
CRC-12校驗方法:
多項式是0x180D,有13位,crc12本來是12位,16進制的0x80D前面補了個1,所以就是13位的。然后我們的信息是一串字符,每個字符8個位二進制,假如我們有3個字符,總共有24位。所以我們的運算就是先獲取前面13位,這里的前13位二進制是指第一位是1的13位二進制。這個前13位和0x180D異或后,得到了一個異或結果,這個結果除去前面的0,應該是小于13位的。這時是不夠13位的,所以我們可以在繼續(xù)往后加二進制,假如3個字符,那么總共有24位進制,我們還有14到24位這些還沒有加。
直到最后所有位都已經(jīng)處理好了,得到的結果就是crc碼。
文件共享: 將計算的數(shù)據(jù)存入共享的文件夾中,所以我們必須要先建立一個codecode的文件夾,并設為共享,將要共享的數(shù)據(jù)存在code.txt文件里。
fp_crc=fopen(“D:codecodecode.txt”,“w”);
//打開文件夾 fprintf(fp_crc,“%d ”,len+2);
//存入數(shù)據(jù)+crc的長度 for(int i=0;i fprintf(fp_crc,“%c”,ch[i]); //存入字符串 } fprintf(fp_crc,“%c”,(crcnum>>4)); //先去12位crc碼的前8位 fprintf(fp_crc,“%c”,(crcnum<<4)&0xF0);//再取crc碼的后4位,然后剩下的補0,使其夠8位fclose(fp_crc); //最后存入文檔中 另一臺計算機從計算機中的共享文件夾讀取數(shù)據(jù),讀出后數(shù)據(jù)進行CRC-12校驗,若讀出數(shù)據(jù)對生成多項式取余,若余數(shù)為0,則信息傳輸正確,否則信息傳輸錯誤。 fp_code=fopen(“Pc14codecodecode.txt”,“r”);//共享計算機組名為Pc14的codecode文件夾 fscanf(fp_code,“%d”,&len);//讀取長度 fscanf(fp_code,“%c”,&bb);//讀取長度后一個空格 for(int i=0;i fscanf(fp_code,“%c”,&data_t[i]);//按照長度讀取每一個字節(jié) fclose(fp_code); int ju=crc12(data_t,len); //crc12校驗,返回 程序清單: 發(fā)送端: #include /*buf輸入的信息,len信息長度*/ int crc12(uchar buf[],int len){ int wcrc;int i,iq;uchar ir;wcrc=0;///crc碼 iq=0;//buf字符串下標,從0到len-1,初始化為0 ir=0;//初始化為0,0到7的變換,while(iq