版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、中南大學計算機網絡實驗報告信息科學與工程學院實驗一分槽ALOHA協(xié)議仿真實驗用于在多路訪問信道上確定下一個使用者的協(xié)議屬于數(shù)據(jù)鏈路層的一個子層,稱為介 質訪問控制(Medium Access Control, MAC)子層,許多局域網都使用多路訪問信道作為它 的通信基礎。最簡單的信道分配方案是FDM (為每個站專門分配一段頻率)和TDM (為每 個站分配一個時槽),當站的數(shù)量比較大而且可變,或者流量具有突發(fā)性變化的時候,就需 要用到純ALOHA協(xié)議或分槽ALOHA協(xié)議。如果信道的狀態(tài)可以被檢測到,可以用到1-堅 持型CSMA、非堅持CSMA和P-堅持CSMA等協(xié)議。本實驗模擬常見的幾種MAC層
2、多路訪 問協(xié)議,具體實驗要求及內容如下?!緦嶒災康摹空莆誚B、VC+、VS或JAVA等集成開發(fā)環(huán)境編寫仿真程序的方法;理解并掌握分槽ALOHA協(xié)議原理?!緦嶒瀮热荨烤帉懛抡娉绦颍瑢σ欢ňW絡環(huán)境下MAC層的多路訪問協(xié)議的分槽ALOHA協(xié)議進 行實現(xiàn)。通過仿真,學習協(xié)議采取的介質訪問管理,包括介質分配和沖突解決機制, 并對協(xié)議的性能與理論結果進行比較分析?!揪幊陶Z言和環(huán)境】編程語言 C/C+/C#/Java/Matlab 等均可;編程環(huán)境 Windows(MS Visual 系列,VC/VB/VS.Net;)和 Linux (編輯器 vi+編譯器 GCC)均可;1.仿真思路設置各站點初始產生包的時
3、間點及產生包的時間間隔(均為隨機值),得到所有站點 成功發(fā)送10000個數(shù)據(jù)包的總時間以及這段時間內所有數(shù)據(jù)包的個數(shù)(包括各站點每 次新產生的包以及由于沖突而重發(fā)的包),從而計算出每包時內嘗試次數(shù)及其對應的 吞吐量?!揪唧w實現(xiàn)(java)】對站點的仿真:設置開始發(fā)送的時間和發(fā)送的間隔: private Random r = new Random();/開始發(fā)送時間 private long start;/ 時間間隔private long d;start = r.nextInt(1000);d = r.nextInt(30) + 20;模擬站點發(fā)送的過程:for (int i = 0; i 1
4、) temp = r.nextInt(5) + 1;Thread.sleep(temp * 20);System.out.println(sp.getNum() + 沖 突);System.out.println(發(fā)送成功:第 + sp.getNum() + 號第 + i + 個數(shù)據(jù)包 ”);Thread.sleep(sp.getD(); catch (Exception e) 設置一個變量來記錄同時發(fā)送的數(shù)據(jù)包數(shù)量,這個變量用來判斷是否發(fā)生沖突。private long t;public void run() while (true) try t = t + 1; Thread.sleep(
5、1);創(chuàng)建六個不同的站點并啟動 TOC o 1-5 h z AlohaThread at1=newAlohaThread(sp1,j,a);AlohaThread at2=newAlohaThread(sp2,j,a);AlohaThread at3=newAlohaThread(sp3,j,a);AlohaThread at4=newAlohaThread(sp4,j,a);AlohaThread at5=newAlohaThread(sp5,j,a);AlohaThread at6 = new AlohaThread(sp6, j, a);at1.start();at2.start();a
6、t3.start();at4.start();at5.start();at6.start();測試結果:發(fā)送完畢前的部分包的狀態(tài),每個站點模擬發(fā)送100個包。發(fā)送成功:第2號第96個數(shù)據(jù)包、 發(fā)送成功:第4號第99個數(shù)據(jù)包 發(fā)送成功:第5號第97個數(shù)據(jù)包七 1沖突座送成功:第5號第9&個數(shù)掘包- 1沖突6沖突發(fā)送成功:第1號第9?個數(shù)據(jù)包 發(fā)送成功:第6號第94個數(shù)據(jù)包心 麥送成功:第5號第99個數(shù)據(jù)包山 2沖突發(fā)送成功:第2號第97個數(shù)據(jù)包 發(fā)送成功:第1號第98個數(shù)據(jù)包 發(fā)送成功:第2號第個數(shù)據(jù)包七 6沖突發(fā)送成功:第6號第95個數(shù)據(jù)包、 發(fā)送成功:第1號第99個數(shù)據(jù)包 發(fā)送成功:第2號第
7、99個數(shù)據(jù)包 發(fā)送成功:第6號第96個數(shù)據(jù)包 發(fā)送成功:第B號第97個數(shù)據(jù)包- 盅送成功:第6號第98個數(shù)據(jù)包 發(fā)送成功;第6號第99個數(shù)據(jù)包實驗三Socket通信實驗網絡編程是通過使用套接字來達到進程間通信目的的編程,Socket編程是網絡編 程的主流工具,Socket API是實現(xiàn)進程間通信的一種編程設施,也是一種為進程間提 供底層抽象的機制,提供了訪問下層通信協(xié)議的大量系統(tǒng)調用和相應的數(shù)據(jù)結構。本 實驗利用Socket API編寫網絡通信程序,具體實驗要求及內容如下?!緦嶒災康暮鸵蟆空莆誚B、VC+、VS或JAVA等集成開發(fā)環(huán)境編寫網絡程序的方法;掌握客戶/服務器(C/S)應用的工作方
8、式;學習網絡中進程之間通信的原理和實現(xiàn)方法;理解單播、組播和廣播的原理并比較其不同之處;要求本機既是客戶端又是服務器端;【實驗內容】所編寫的程序應具有如下功能:具有點對點通信功能,任意客戶端之間能夠發(fā)送消息;具有群組通信功能,客戶端能夠向組內成員同時發(fā)送消息,其他組成員不能收到;具有廣播功能,客戶端能夠向所有其他成員廣播消息;【編程語言和環(huán)境】編程語言C/C+/C#/Java等均可;編程環(huán)境 Windows(MS Visual 系列,VC/VB/VS.Net;)和 Linux (編輯器 vi+編譯器 GCC)均可;【具體實現(xiàn)】建立服務器開辟端口server = new ServerSocket
9、(9922);讓服務器等待客戶連接socket = server.accept();建立連接socket = new Socket(”, 9922);服務器和客戶端之間的通信的實現(xiàn)接受信息:DataInputStream in = new DataInputStream( socket.getInputStream();String accpet = in.readUTF();輸出到屏幕:jta.append(accpet + n);發(fā)送消息:out = new DataOutputStream(socket.getOutputStream();/把從控制臺得到的信息傳送給服
10、務器 out.writeUTF(客戶端”+array.size()+: + str);一對多通信建立鏈表存貯客戶端信息:ArrayList array = new ArrayList();建立對應的鏈表和客戶端保持連接、接收和發(fā)送消息:ArrayList list = new ArrayList();當需要群發(fā)時,對鏈表中的每個元素都發(fā)送信息:if (s.equals(群發(fā)”)jta.append(Everyone: + str + n);for(int i=0;ilist.size();i+)ThreadDemo th=list.get(i);th.Send();當需要單個發(fā)消息時,在鏈表中
11、找到對應元素再發(fā)送:else if(s.equals(發(fā)給:)從文本框獲取要發(fā)送信息的客戶端的序號。int index=Integer.parseInt(jt2.getText();/在鏈表中找到對應元素ThreadDemo th=list.get(index-1);th.Send();/發(fā)送jt.setText();/清空輸入框程序測試:服務器端:可以創(chuàng)建新用戶,群發(fā),單一發(fā)送??蛻舳耍嚎梢院头掌髦g進行消息傳遞。言亡篇1.1=1 1工已連接到脂音器!圖容戶蔬N口1LJ已連接到耶號器!圄客戶卻S3已連接到服務器!.鳥客戶端4CZI3已連接到耶兮器!發(fā)諼發(fā)送信息:群發(fā):I*.客戶品4已連搔至I服務器!服務器:你好!已連接到耶務器! 服務器:你好!客戶端1已成N連接! 客戶端2已成沖連接! 客戶端3已成沖連接! 客戶端4已成功連接! Everyone:你好!也客戶益衛(wèi)你好!國客戶蔬1已連接到服務器!限務器:你好!I,客戶端3日連接至I服務器! 服務器:你好!新用戶單獨發(fā)給客戶端4:當客戶端&些客戶端I三逢棧頸務喜!冊務器:時二在接M甩是囂!】g:倆!弗瑙:你好!已應接到月湘!月睹者:你好! S:卷是空圈宮戶岸!脂去翌:柚!富戶帶-已成攻注志!客尸料W已擊歡巨在!客戶孺3已質謎撞!喜戶端日成/正宜!Eveone;你
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際仲裁法律制度-深度研究
- 2025年廣西工商職業(yè)技術學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 朗格漢斯細胞與免疫細胞互作研究-深度研究
- 2025年廣東郵電職業(yè)技術學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年廣東碧桂園職業(yè)學院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 2025年廣東建設職業(yè)技術學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 大數(shù)據(jù)存儲與管理-深度研究
- 2025年山西職業(yè)技術學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2025年山西同文職業(yè)技術學院高職單招職業(yè)適應性測試近5年??及鎱⒖碱}庫含答案解析
- 2025年山西華澳商貿職業(yè)學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2024年國家焊工職業(yè)技能理論考試題庫(含答案)
- 特魯索綜合征
- 《向心力》 教學課件
- 結構力學數(shù)值方法:邊界元法(BEM):邊界元法的基本原理與步驟
- 2024年山東省泰安市高考語文一模試卷
- 北師大版物理九年級全一冊課件
- 2024年第三師圖木舒克市市場監(jiān)督管理局招錄2人《行政職業(yè)能力測驗》高頻考點、難點(含詳細答案)
- RFJ 006-2021 RFP型人防過濾吸收器制造與驗收規(guī)范(暫行)
- 盆腔炎教學查房課件
- 110kv各類型變壓器的計算單
- 新概念英語課件NCE3-lesson15(共34張)
評論
0/150
提交評論