计算机网络课程设计报告--模拟Enthernet帧的发送过程.docx
《计算机网络课程设计报告--模拟Enthernet帧的发送过程.docx》由会员分享,可在线阅读,更多相关《计算机网络课程设计报告--模拟Enthernet帧的发送过程.docx(6页珍藏版)》请在第一文库网上搜索。
1、计算机网络课程设计报告题目:模拟Enthernet帧的发送过程一、问题描述(把你所选的题目及要求说一下)本次课程设计的目的是模拟Enthernet帧的发送过程,我们采用线程代替计算机,利用带有冲突检测的CSMA/CD协议进行信道侦听,采用截断的二进制指数退避算法解决信道冲突问题。二、概要设计(抽象数据类型定义)程序开始发送帧时,首先要检测信道是否空闲,如果不空闲就继续检测,如果空闲就看信道上是否发生冲突,如果发生冲突,数据帧就结束发送,冲突加强,冲突次数加一,如果冲突次数大于16就丢弃这个帧,不大于16就推迟一定时间继续检测信道的忙闲,准备发送。intbus()函数,用于随机模拟实际信道是否空
2、闲;返回1表示空闲;intCo1IiSion()函数,用于模拟信道冲突是否发生;返回1表示发生冲突;重写线程的run()函数,用于实现功能逻辑;intcount用于累计发生冲突的次数,以便应用CSMA/CD规则一一连续16冲突则发送失败。三、详细设计(主要算法和函数间的调用关系)分析Enthernet帧的发送过程:(1)载波侦听过程。Enthernet利用信道发送数据,信道是每个帧共享的公共传输介质.所以每个帧在发送数据之前,总是先侦听信道是否空闲。若信道空闲,就可以启动发送,否则继续侦听。(2)冲突检测。当侦听到信道空闲时,可能有多个线程同时发送数据。所以在发送数据的过程中,也应该进行冲突检
3、测,一旦发现冲突,就立即停止发送数据。(3)随后延迟重发。在检测到冲突后,立即停止发送帧,然后等待一段随机时间(随机时间的取值为在2倍的争用期乘以rand%(2Ck-1),其中k=min(重传次数,10)再重新发送。若发送16次还没有成功,则说明帧发送失败。主要函数:intco11ision();intbus();voidrun();函数调用:在VOidrun()函数中调用intbus()函数和intco11ision()函数。核心代码:pub1icintco11ision()随机判断是否发生冲突intisCo11ision=(int)(Math.random。*(10+1);冲突是否发生if
4、(isCo11ision%2=0)System.OUt.printIn(检测到冲突!”);return1;e1seSystem.out.PrintIn(没有检测到冲突!);returnO;)pub1icintbus()随机判断是否发生阻塞intxindao=(int)(Math,random()*(10+1);信道是否空闲(010之间的随机数,2的倍数是信道忙)if(xindao%2=0)System.OUt.printIn(信道忙!);returnO;e1seSystem,out.printin(“信道空闲!”);return1;)pub1icvoidrun()(intcount=O;重传次
5、数System.OU.Print1n(线程一数据帧已经封装完成!一开始侦听信道n);for(inti=0;i10?10:count)-1);SyStCmprintin(“数据帧发送停止!n);if(count=16)(SyStCm.out.PrintI.n(线程发送失败!n);)break;)System.01邛14111111(”数据帧发送成功11);)e1se信道忙(System.OUE.printin(信道忙,继续侦听n);)四、调试分析(调式过程中出现的问题及如何改正)1、 在判断信道是否忙闲和信道是否冲突时,生成用(T1O之间的随机数,对2求余,等0是分别表示:信道忙和冲突2、 当信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 课程设计 报告 模拟 Enthernet 发送 过程
