- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中南大学计算机网络实验报告.
计算机网络实验报告
专业班级:信息安全1202班
指导老师:王伟平
姓 名:
学 号:0909122824
实验一 分槽ALOHA协议仿真实验
【实验目的】
掌握VB、VC++、VS或JAVA等集成开发环境编写仿真程序的方法;
理解并掌握分槽ALOHA协议原理。
【实验内容】
编写仿真程序,对一定网络环境下MAC层的多路访问协议的分槽ALOHA协议进行实现。通过仿真,学习协议采取的介质访问管理,包括介质分配和冲突解决机制,并对协议的性能与理论结果进行比较分析。
【编程语言和环境】
编程语言C/C++/C#/Java/Matlab等均可;
编程环境Windows(MS Visual系列,VC/VB/VS.Net;)和Linux(编辑器vi+编译器GCC)均可;
【实验原理】
用于在多路访问信道上确定下一个使用者的协议属于数据链路层的一个子层,称为介质访问控制(Medium Access Control,MAC)子层,许多局域网都使用多路访问信道作为它的通信基础。最简单的信道分配方案是FDM(为每个站专门分配一段频率)和TDM(为每个站分配一个时槽),当站的数量比较大而且可变,或者流量具有突发性变化的时候,就需要用到纯ALOHA协议或分槽ALOHA协议。
分槽ALOHA的基本思想是把信道时间分成离散的时间槽,槽长为一个帧所需的发送时间站点在时槽开始时发送。10000个数据包的总时间以及这段时间内所有数据包的个数(包括各站点每次新产生的包以及由于冲突而重发的包),从而计算出每包时内尝试次数及其对应的吞吐量。
【流程图】
【关键代码说明】
1.初始化时槽:
time t = new time();
t.setN(i); //第N个时槽
初始化站点:
AlohaThread at1 = new AlohaThread(sp1,j,a);
//开始发送时间
private long start;
//时间间隔
private long d;
若此时槽只有一个数据包,则发送成功;若有两个以上数据包,则冲突。记录此时槽内所有包的个数。
4.若发生冲突,根据随机后退时间,得出此站点下一次发送包的时间点。
while(a[j.getN()]1) {
temp = r.nextInt(5)+1;
Thread.sleep(temp*20);//推后到后面的时间槽
System.out.println(sp.getNum()+冲突);
}
时间槽的需要开一个线程
try {
N = N+1;
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
【实验总结】
实验一是首先自己温习了一遍书上的内容,在网上查询了一些资料后,分析修改他人代码所得。虽然说自我感觉也对ALOHA有了一定理解,但始终并不是自己的成果。这次实验给我的教训是,自己对协议的分析一定要最先做,否则分析了别人的思路,怎样想也走不出那个范围,自己反而无所适从。
实验三Socket通信实验
【实验目的和要求】
掌握VB、VC++、VS或JAVA等集成开发环境编写网络程序的方法;
掌握客户/服务器(C/S)应用的工作方式;
学习网络中进程之间通信的原理和实现方法;
理解单播、组播和广播的原理并比较其不同之处;
要求本机既是客户端又是服务器端;
【实验内容】
所编写的程序应具有如下功能:
具有点对点通信功能,任意客户端之间能够发送消息;
具有群组通信功能,客户端能够向组内成员同时发送消息,其他组成员不能收到;
具有广播功能,客户端能够向所有其他成员广播消息;
【编程语言和环境】
编程语言C/C++/C#/Java等均可;
编程环境Windows(MS Visual系列,VC/VB/VS.Net;)和Linux(编辑器vi+编译器GCC)均可;
【实验原理】
网络编程是通过使用来达到目的编程
成功发送
初始化时间槽
时槽开始时发送
等待下一个时间槽
初始化站点
重新发送
冲突
1
文档评论(0)