计算机网络实验指导书2016

上传人:汽*** 文档编号:423593856 上传时间:2023-07-13 格式:DOCX 页数:7 大小:18.38KB
返回 下载 相关 举报
计算机网络实验指导书2016_第1页
第1页 / 共7页
计算机网络实验指导书2016_第2页
第2页 / 共7页
计算机网络实验指导书2016_第3页
第3页 / 共7页
计算机网络实验指导书2016_第4页
第4页 / 共7页
计算机网络实验指导书2016_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《计算机网络实验指导书2016》由会员分享,可在线阅读,更多相关《计算机网络实验指导书2016(7页珍藏版)》请在金锄头文库上搜索。

1、计算机网络实验要求及指导实验一分槽ALOHA协议仿真实验用于在多路访问信道上确定下一个使用者的协议属于数据链路层的一个子层,称为介质 访问控制(Medium Access Control, MAC)子层,许多局域网都使用多路访问信道作为它的 通信基础。最简单的信道分配方案是FDM (为每个站专门分配一段频率)和TDM (为每个 站分配一个时槽),当站的数量比较大而且可变,或者流量具有突发性变化的时候,就需要 用到纯ALOHA协议或时隙ALOHA协议。本实验模拟常见的几种MAC层多路访问协议,具 体实验要求及内容如下。【实验目的】1. 掌握VB、VC+、VS或JAVA等集成开发环境编写仿真程序的

2、方法;2. 理解并掌握分槽ALOHA协议原理。【实验内容】编写仿真程序,对一定网络环境下MAC层的多路访问协议的时隙ALOHA协议进行实现。 通过仿真,学习协议采取的介质访问管理,包括介质分配和冲突解决机制,并对协议的性能 与理论结果进行比较分析。【编程语言和环境】1. 编程语言 C/C+/C#/Java/Matlab 等均可;2. 编程环境 Windows (MS Visual 系列,VC/VB/VS.Net;)和 Linux (编辑器 vi+编译器 GCC)均可;【实验报告】所交实验报告内容包括:1. 实验目的与要求;2. 实验内容与实现原理;3. 实验具体设计实现及结果(含流程图及关键代

3、码说明);4. 实验设备与实验环境;5. 实验总结【主要功能实现说明】1. 仿真思路设置各站点初始产生包的时间点及产生包的时间间隔(均为随机值),得到所有站点成 功发送10000 个数据包的总时间以及这段时间内所有数据包的个数(包括各站点每次新产生 的包以及由于冲突而重发的包),从而计算出每包时内尝试次数及其对应的吞吐量。针对不 同的包产生间隔,得到不同的每包时内尝试次数及其对应的吞吐量,将其画成一条曲线。2. 具体步骤(示例代码为 matlab)1)初始化各站点产生包的时间点(可采用0到1的随机数),统一归并到时槽开始的时间 点。Mgtime = Ttime / log(1-X/Mnum)

4、* log(rand(1,Mnum);% 初始化各站点包产生的时间点,为0,1的随机数 mtime = (fix(mgtime/slot)+1) * slot;% 各站点数据包发送时间点,归并到时槽的开始处其中:Ttime为发送一个包所需的时间,Mnum为站点的总个数,可通过 改变不同的X 值得到不同的包产生时间点。X的取值小于站点总个数2) 选出最早产生数据包的站点作为初始发送站点,若此时槽只有一个数据包,则发送成功; 若有两个以上数据包,则冲突。记录此时槽内所有包的个数idx = find(mtime=now_time);% finding of the terminal which tr

5、ansmission startif length(idx) 0State(idx) = TRANSMIT; %State为各站点在此时槽的状态 mtime(idx) = now_time + Mplen(idx) / Srate;%发送结束时间,Mplen为数据包的长度,Srate为发送的速率 mtime(idx) = round(mtime(idx)/slot) * slot;Tplen = Tplen + sum(Mplen(idx); %此时槽内所有包的总长度endidx = find(State=TRANSMIT | State=COLLISION);if length(idx) 1

6、State(idx) = COLLISION;% 当有两个以上数据包时,发生冲突end3) 若成功,则发送成功的数据包数加1,程序结束点也是成功的个数为10000 时。然后根 据生成包的随机时间间隔,得出此站点下一次发送包的时间点。idx = find(mtime=now_time & State=TRANSMIT);% finding of the terminal which transmission succeededif length(idx) 0Spnum = Spnum + 1; %发送成功的数据包数加1Splen = Splen + Mplen(idx);%总共发送成功数据包的长

7、度(计算吞吐量) State(idx) = STANDBY;%设置此站点发送状态为等待mgtime(idx) = now_time + Ttime / log(1-X/Mnum) * log(1-rand);% 算出此站点下次产生的时间点mtime(idx) = (fix(mgtime(idx)/slot)+1) * slot;% 归并到时槽的开始点end4) 若发生冲突,根据随机后退时间,得出此站点下一次发送包的时间点。idx = find(mtime=now_time & State=COLLISION);% finding of the terminal which transmissi

8、on failedif length(idx) 0 State(idx) = STANDBY;mtime(idx) = now_time + Ttime / log(1-X/Mnum) * log(rand(1,length(idx);% 站点等待的时间,下次重发此数据包的时间点 mtime(idx) = (fix(mtime(idx)/slot)+1) * slot; % 归并到时槽的开始处 end5) 依次循环上述过程,直至 10000 个数据包成功发送。计算出每包时内传输次数及其吞吐 量traffic = Tplen / Srate / now_time; %每包时内传输次数 %总共传输

9、的包(包括站点新产生的包及由于冲突重传的包)的总长度除以发 送速率再除以发送完最后一个包的时间thoughput=Splen/Srate/now_time; %吞吐量 %成功传输的包的总长度除以发送速率再除以发送完最后一个包的时间实验二 网络路由层协议模拟实验网络路由算法是路由器工作的核心,本实验针对因特网常用的距离向量路由算法和链 路状态路由算法进行模拟实现,进一步掌握其工作原理及其相关性能。【实验目的和要求】1. 掌握VB、VC+、VS或JAVA等集成开发环境编写路由仿真程序的方法;2. 理解并掌握距离向量路由协议和链路状态路由协议的工作原理。【实验内容】(1,2 任选其一实现)1. 模拟

10、距离向量路由算法的路由表交换过程,演示每轮交换后路由表的变化。 基本要求(动态生成网络拓扑图,节点间的距离随机生成。从初始路由表开始,进行交换路 由表,演示每轮交换后的路由表的变化。观察和讨论多少轮交换后路由表稳定)2. 实现链路状态路由算法的模拟。 基本要求(动态生成网络拓扑图,节点间的距离随机生成。每个节点生成自己的链路状态分 组,依据收到的链路状态表得到整体网络结构,在得到的整体网络结构上用最短路径算法, 生成每个节点的路由表)进一步的要求:可以将模拟实验的每个节点程序部署在不同的电脑上,通过socket通信程 序完成路由表信息或者链路状态分组的发送(与实验三结合)。请用两台机器虚拟成多

11、个网 络节点(一台机器上开启多个通信进程,每个进程虚拟成一个节点),完成每个虚拟节点的 路由表生成,进而按照路由表转发数据包。【编程语言和环境】1. 编程语言C/C+/C#/Java等均可;2. 编程环境 Windows (MS Visual 系列,VC/VB/VS.Net;)和 Linux (编辑器 vi+编译器 GCC)均可;【实验报告】所交实验报告内容包括:1. 实验目的与要求;2. 实验内容与实现原理;3. 实验具体设计实现及结果(含流程图及关键代码说明);4. 实验设备与实验环境;5. 实验总结实验三 Socket 通信实验网络编程是通过使用套接字来达到进程间通信目的的编程, Soc

12、ket 编程是网络编程的 主流工具,Socket API是实现进程间通信的一种编程设施,也是一种为进程间提供底层抽象 的机制,提供了访问下层通信协议的大量系统调用和相应的数据结构。本实验利用Socket API 编写网络通信程序,具体实验要求及内容如下。【实验目的和要求】3. 掌握VB、VC+、VS或JAVA等集成开发环境编写网络程序的方法;4. 掌握客户/服务器(C/S )应用的工作方式;5. 学习网络中进程之间通信的原理和实现方法;6. 理解单播、组播和广播的原理并比较其不同之处;7. 要求本机既是客户端又是服务器端;【实验内容】所编写的程序应具有如下功能:1. 具有点对点通信功能,任意客

13、户端之间能够发送消息;2. 具有群组通信功能,客户端能够向组内成员同时发送消息,其他组成员不能收到;3. 具有广播功能,客户端能够向所有其他成员广播消息;【编程语言和环境】3. 编程语言C/C+/C#/Java等均可;4. 编程环境 Windows (MS Visual 系列,VC/VB/VS.Net;)和 Linux (编辑器 vi+编译器 GCC)均可;【实验报告】所交实验报告内容包括:6. 实验目的与要求;7. 实验内容与实现原理;8. 实验具体设计实现及结果(含流程图及关键代码说明);9. 实验设备与实验环境;10. 实验总结【实验主要功能实现说明】以下为针对三个实验内容实现方法的简要

14、说明,示例所用语言为C#。1. 点对点通信功能实现网络点对点通讯程序的关键步骤就是实现信息在网络中的发送和接收。数据接收使 用的是Socket,数据发送使用的是Networkstream。1.1 利用 Socket 来接收信息TcpListener tlListen1 = new TcpListener ( 8889 ) ;/ 侦听端口号tlListen1.Start ( ) ;Socket skSocket = tlListen1.AcceptSocket ( ) ;/ 接受远程计算机的连接请求,并获得用以接收数据的 Socket 实例EndPoint tempRemoteEP = skSo

15、cket.RemoteEndPoint ;/ 获得远程计算机对应的网络远程终结点while ( true )Byte byStream = new Byte80 ;/ 定义从远程计算机接收到数据存放的数据缓冲区int i = skSocket.ReceiveFrom ( byStream , ref tempRemoteEP ) ;/ 接收数据,并存放到定义的缓冲区中string sMessage = System.Text.Encoding.UTF8.GetString ( byStream ) ;/ 以指定的编码,从缓冲区中解析出内容MessageBox.Show ( sMessage ) ;/ 显示传送来的数据1.2 利用 NetworkStream 来传送信息TcpClient tcpc = new TcpClient ( 10.138.198.213 , 8888 ) ;/对 IP 地址为“10.138.198.213 ”的计算机的 8888 端口提出连接申请NetworkStream tcpStream = tcpc.GetStream ( ) ;/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号