计算机网络实验指导书2015-修改.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络实验指导书2015-修改

计算机网络实验要求及指导 实验时间-2节 8:00-9:40 6月14日 1-2节 8:00-9:40 实验一 分槽ALOHA协议仿真实验 用于在多路访问信道上确定下一个使用者的协议属于数据链路层的一个子层,称为介质访问控制(Medium Access Control,MAC)子层,许多局域网都使用多路访问信道作为它的通信基础。最简单的信道分配方案是FDM(为每个站专门分配一段频率)和TDM(为每个站分配一个时槽),当站的数量比较大而且可变,或者流量具有突发性变化的时候,就需要用到纯ALOHA协议或分槽ALOHA协议。如果信道的状态可以被检测到,可以用到1-坚持型CSMA、非坚持CSMA和P-坚持CSMA等协议。本实验模拟常见的几种MAC层多路访问协议,具体实验要求及内容如下。 【实验目的】 掌握VB、VC++、VS或JAVA等集成开发环境编写仿真程序的方法; 理解并掌握分槽ALOHA协议原理。 【实验内容】 编写仿真程序,对一定网络环境下MAC层的多路访问协议的分槽ALOHA协议进行实现。通过仿真,学习协议采取的介质访问管理,包括介质分配和冲突解决机制,并对协议的性能与理论结果进行比较分析。 【编程语言和环境】 编程语言C/C++/C#/Java/Matlab等均可; 编程环境Windows(MS Visual系列,VC/VB/VS.Net;)和Linux(编辑器vi+编译器GCC)均可; 【实验报告】 所交实验报告内容包括: 实验目的与要求; 实验内容与实现原理; 实验具体设计实现及结果(含流程图及关键代码说明); 实验设备与实验环境; 实验总结 【主要功能实现说明】 仿真思路 设置各站点初始产生包的时间点及产生包的时间间隔(均为随机值),得到所有站点成功发送10000个数据包的总时间以及这段时间内所有数据包的个数(包括各站点每次新产生的包以及由于冲突而重发的包),从而计算出每包时内尝试次数及其对应的吞吐量。针对不同的包产生间隔,得到不同的每包时内尝试次数及其对应的吞吐量,将其画成一条曲线。 具体步骤(示例代码为matlab) 初始化各站点产生包的时间点(可采用0到1的随机数),统一归并到时槽开始的时间点。 Mgtime =[ Ttime / log(1-X/Mnum) ]* log(rand(1,Mnum)); % 初始化各站点包产生的时间点,为[0,1]的随机数 mtime = (fix(mgtime/slot)+1) * slot; % 各站点数据包发送时间点,归并到时槽的开始处 其中:Ttime为发送一个包所需的时间,Mnum为站点的总个数,可通过 改变不同的X值得到不同的包产生时间点。X的取值小于站点总个数 选出最早产生数据包的站点作为初始发送站点,若此时槽只有一个数据包,则发送成功;若有两个以上数据包,则冲突。记录此时槽内所有包的个数 idx = find(mtime==now_time); % finding of the terminal which transmission start if length(idx) 0 State(idx) = TRANSMIT; %State为各站点在此时槽的状态 mtime(idx) = now_time + Mplen(idx) / Srate; % 发送结束时间,Mplen为数据包的长度,Srate为发送的速率 mtime(idx) = round(mtime(idx)/slot) * slot; Tplen = Tplen + sum(Mplen(idx)); %此时槽内所有包的总长度 end ? idx = find(State==TRANSMIT | State==COLLISION); if length(idx) 1 State(idx) = COLLISION; % 当有两个以上数据包时,发生冲突 end 若成功,则发送成功的数据包数加1,程序结束点也是成功的个数为10000时。然后根据生成包的随机时间间隔,得出此站点下一次发送包的时间点。 idx = find(mtime==now_time State==TRANSMIT); % finding of the terminal which transmission succeeded if length(idx) 0

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档