- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中南大学计算机网络实验.docx
中南大学计算机网络实验报告信息科学与工程学院实验一 分槽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个数据包的总时间以及这段时间内所有数据包的个数(包括各站点每次新产生的包以及由于冲突而重发的包),从而计算出每包时内尝试次数及其对应的吞吐量。【具体实现(java)】对站点的仿真:1.设置开始发送的时间和发送的间隔:private Random r = new Random();// 开始发送时间private long start;// 时间间隔private long d;start = r.nextInt(1000);d = r.nextInt(30) + 20;模拟站点发送的过程:for (int i = 0; i 100; i++) {a[j.getN()] = a[j.getN()] + 1;try {Thread.sleep(1);// 冲突while (a[j.getN()] 1) {temp = r.nextInt(5) + 1;Thread.sleep(temp * 20);System.out.println(sp.getNum() + 冲突);}System.out.println(发送成功:第 + sp.getNum() + 号第 + i + 个数据包~);Thread.sleep(sp.getD());} catch (Exception e) {}}设置一个变量来记录同时发送的数据包数量,这个变量用来判断是否发生冲突。private long t;public void run() {while (true) {try {t = t + 1;Thread.sleep(1);}创建六个不同的站点并启动AlohaThread at1 = new AlohaThread(sp1, j, a);AlohaThread at2 = new AlohaThread(sp2, j, a);AlohaThread at3 = new AlohaThread(sp3, j, a);AlohaThread at4 = new AlohaThread(sp4, j, a);AlohaThread at5 = new AlohaThread(sp5, j, a);AlohaThread at6 = new AlohaThread(sp6, j, a);at1.start();at2.start();at3.start();at4.start();at5.start();at6.start();测试结果:发送完毕前的部分包的状态,每个站点模拟发送100个包。实验三Socket通信实验网络编程是通过使用/view/538713.htm套接字来达到/view/1492468.htm进程间通信目的的编程,Socket编程是网络编程的主流工具,Socket API是实现进程间通信的一种编程设施,也是一种为进程间提供底层抽象的机制,提供了访问下层通信协议的大量系统调用和相应的数据结构。本实验利用Socket API编写网络通信程序,具体实验要求及内容如下。【实验目的和要求】掌握VB、VC++、VS或JAVA等集成开发环境编写网络程序的方法;掌握客户/服务器(C/S)应用的工作方式;学习网络中进程之间通信的原理和实现方法;理解单播、组播和广播的原理并比较其不同之处;要求本机既是客户端又是服务器端;【实验内容】所编写的程序
文档评论(0)