2022年2022年计算机网络实验报告 13.pdf
《2022年2022年计算机网络实验报告 13.pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机网络实验报告 13.pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计 算 机 网 络学生姓名学号专业班级指导教师学院信息科学与工程学院完成时间2014 年 5 月实 验 报 告名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 12 页 -实验一 分槽 ALOHA 协议仿真实验用于在多路访问信道上确定下一个使用者的协议属于数据链路层的一个子层,称为介质访问控制(Medium Access Control,MAC)子层,许多局域网都使用多路访问信道作为它的通信基础。最简单的信道分配方案是FDM(为每个站专门分配一段频率)和TDM(为每个站分配一个时槽),当站的数量比较大而且可变,或者流量具有突发性变化的时候,就需要用到纯 ALOHA协议或分槽ALOH
2、A协议。如果信道的状态可以被检测到,可以用到1-坚持型CSMA、非坚持 CSMA和 P-坚持 CSMA等协议。本实验模拟常见的几种MAC 层多路访问协议,具体实验要求及内容如下。【实验目的】1.掌握 VB、VC+、VS或 JAVA等集成开发环境编写仿真程序的方法;2.理解并掌握分槽ALOHA协议原理。【实验内容】编写仿真程序,对一定网络环境下MAC 层的多路访问协议的分槽ALOHA协议进行实现。通过仿真,学习协议采取的介质访问管理,包括介质分配和冲突解决机制,并对协议的性能与理论结果进行比较分析。【编程语言和环境】1.编程语言 C/C+/C#/Java/Matlab 等均可;2.编程环境Win
3、dows(MS Visual 系列,VC/VB/VS.Net;)和 Linux(编辑器vi+编译器GCC)均可;【实验报告】所交实验报告内容包括:1.实验目的与要求;2.实验内容与实现原理;3.实验具体设计实现及结果(含流程图及关键代码说明);4.实验设备与实验环境;5.实验总结1.实验内容与原理设置各站点初始产生包的时间点及产生包的时间间隔(均为随机值),得到所有站点成功发送 1000 个数据包的总时间以及这段时间内所有数据包的个数(包括各站点每次新产生的包以及由于冲突而重发的包),从而计算出每包时内尝试次数及其对应的吞吐量。2.实验具体设计实现及结果#include#include#inc
4、lude 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 12 页 -using namespace std;#define MAX_PORT_NUM 5 class Port public:float P;/站点发包概率0P1 int Apply;/站点状态 0=空闲,1=请求发送float PackTime;int CountPackNum_Suc;int CountPackNum_Col;Port()P=0.5;CountPackNum_Suc=0;CountPackNum_Col=0;ChangeApply(0);Port(float p)P=p;CountPackNum
5、_Suc=0;CountPackNum_Col=0;ChangeApply(0);void ChangeApply(float NowTime);void Port:ChangeApply(float NowTime)float P1=(rand()%1000)/1000.0;if(P1P)Apply=1;else Apply=0;PackTime=NowTime;class SlottedAloha public:float SlotTime;float NowTime;int CurrentMAX_PORT_NUM;/记录当前时槽内要发送的包,及发包站点,成为“包缓存”int CountA
6、llPort_suc;int CountAllPort_all;SlottedAloha(float t)SlotTime=t;NowTime=0;CountAllPort_suc=0;CountAllPort_all=0;void ALOHA(Port prt,int n);void SlottedAloha:ALOHA(Port prt,int n)for(int i=0;i+)/用一个死循环代表时间流逝,如果成功发送包达到1000 则 break NowTime=SlotTime*i;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 12 页 -int PackLen=0;/
7、记录时槽内要发包的总长度(个数)for(int k=0;kn;k+)if(prtk.Apply=1&prtk.PackTime=NowTime)Currentk=1;PackLen+;else Currentk=0;if(PackLen=1)/只有一个包,可以发 for(int k=0;k1)/有多个包,冲突 for(int k=0;kn;k+)/给所有当前冲突的包下一个随机发送时间 if(Currentk=1)prtk.ChangeApply(NowTime+SlotTime*(rand()%n+1);prtk.CountPackNum_Col+;/冲突数+else if(prtk.Appl
8、y=0)prtk.ChangeApply(NowTime+SlotTime);else if(PackLen=0)/无包发送 for(int k=0;kn;k+)if(prtk.Apply=0)prtk.ChangeApply(NowTime+SlotTime);CountAllPort_suc=0;CountAllPort_all=0;for(int k=0;k=1000)break;/以下是主函数int main(int argc,char*argv)srand(int)time(0);Port prt3;prt0=Port(0.2);prt1=Port(0.2);prt2=Port(0.
9、2);/设有三个站点,每个时槽内发包概率为0.2 SlottedAloha A(1.0);/创建时槽,时槽长度为1 A.ALOHA(prt,3);float G,S;G=A.CountAllPort_all/A.NowTime;S=A.CountAllPort_suc/A.NowTime;cout 成功发送包 A.CountAllPort_suc个,n 冲突包 A.CountAllPort_all-A.CountAllPort_suc 个,n 总共发送包 A.CountAllPort_all个。nendl;cout 每包时尝试次数G=Gendl;cout 吞吐量 S=Sendl;getchar
10、();return 0;实验结果截图:3.实验总结这个分槽 ALOHA 仿真模拟实验难度比较大,就算对此协议比较了解,但要通过编程来实现,也不是容易的事。况且以前从未做过类似的程序设计,对于我来说名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 12 页 -是个不小的挑战。经过很久的设计、讨论和尝试,我总算在截止时间前完成了任务。我的程序采用循环来代表时间流逝,用随机数来判断站点是否发包,成功地模拟了分槽 ALOHA 在物理介质的运行情况。我的主程序比较随意,主要是为了测试,所以没有设多个情况。默认只有三个站点,每个站点以 0.2 的概率发包,所以理论的G=0.6,S=0.329,
11、而实际测试情况出入很小,符合理论预期,所以实验结果很成功!如果进一步修改,可以测试不同的 G和 S,从而画出曲线,但限于时间和水平(C+中还不知道如何画图),这个环节暂时无法实现。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 12 页 -实验二 网络路由层协议模拟实验网络路由算法是路由器工作的核心,本实验针对因特网常用的距离向量路由算法和链路状态路由算法进行模拟实现,进一步掌握其工作原理及其相关性能。【实验目的和要求】1.掌握 VB、VC+、VS或 JAVA等集成开发环境编写路由仿真程序的方法;2.理解并掌握距离向量路由协议和链路状态路由协议的工作原理。【实验内容】(1,2任选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算机网络实验报告 13 2022 计算机网络 实验 报告
限制150内