课程设计专用纸.doc_第1页
课程设计专用纸.doc_第2页
课程设计专用纸.doc_第3页
课程设计专用纸.doc_第4页
课程设计专用纸.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳理工大学课程设计专用纸 No15目 录摘 要1 课程设计目的12 课程设计要求13相关知识24课程设计分析45程序代码106运行结果与分析107参考文献10沈阳理工大学1 课程设计目的Ethernet是当前应用最广泛的局域网类型。学习Ethernet技术对深入掌握局域网知识是非常重要的。本课程设计的主要目的是通过模拟Ethernet帧的发送过程,熟悉Ethernet的基本工作原理。特别是CSMA/CD介质访问控制方法。2 课程设计要求根据Ethernet的工作原理,编写程序模拟Ethernet帧的发送过程。(1) 以命令行心事运行:SendFrame为程序名。(2) 用两个线程a和b模拟Ethernet上的两台主机,用一个双字类型变量Bus模拟总线。(3) 两个子线程向总线发送自己的数据。数据用该线程的线程号进行模拟,发送数据用线程号和Bus的“或”操作进行模拟。每台主机必须向总线上成功发送5次数据,如果其中某次数据发送失败,则该线程结束。 (4)发送流程须遵循CSMA/CD方法。随机延迟算法中的冲突窗口值取0.005.数据发送成功(Bus=ID)后,报告“XXX send success”,产生冲突后,报告“XXX send collision”,数据发送失败后,报告“XXX send failure”。其中XXX为其线程的线程号。在主机发送成功次数增加后,报告已将发送成功次数。3 相关知识 Ethernet的核心技术是随机争用型介质访问方法,即带有冲突检测的载波侦听多路访问(CDMA/CD)方法。1、 Ethernet的帧的发送流程(1)载波侦听过程。Ethernet中每个结点利用总线发送数据,总线是每个结点共享的公共传输介质。所以结点在发行一个帧前,必须侦听总线是否空闲。由于Ethernet对的数据采用曼彻斯特编码方式,所以可以通过判断总线电平是否跳变来确定总线是否空闲。若总线空闲,就可启动发送,否则继续侦听。(2)冲突检测。在数据发送过程中,可能会产生冲突(冲突是指总线上同时出现两个或两个以上的发送信号,它们叠加后的信号波形与任何发送结点输出的信号波形不相同。因为可能有多个主机都在侦听总线,当它们侦听到总线空闲时,都会往总线上发送数据)。所以在发送数据的过程中,也应该进行冲突检测,只要发现冲突就应该停止发送数据。 (3)随机延迟后重发。在检测到冲突、停止发送后,结点进行随机延迟后重发。若重发16次后还没成功,则宣告发送失败,取消该帧的发送,随机延迟的计算方法一般采用截止二进制指数后退算法。以下是Ethernet帧的发送流程: 发送帧装配帧总线忙?启动发送冲突?冲突加强发送完成?冲突次数增加1冲突多于16次?发送失败发送成功等待后退延迟时间计算后退延迟2、 Ethernet帧接收流程帧接收流程大致可以分为以下三个步骤:(1) 价差是否发生冲突,若发生冲突,则丢弃该帧;若没有冲突,进入下一步。(2) 检查该帧的目的地址是否可以接收该帧,若可以接收,则进入下一步。(3) 检查CRC校验和LLC数据长度。若都正确,接收该帧,否则丢弃。4 课程设计分析1、 设计中的重点和难点(1) 模拟冲突的过程,在这个程序中不要适用任何线程同步机制。(2) 若程序中不能模拟出冲突,可以在某些地方加入延时。2、核心代码int i=0;int CollisionCounter=16;double collisionWindow=0.005;int randNum=rand()%3;Loop:if(Bus=0)Bus=Bus|ID1;Sleep(12);if(Bus=ID1) printf(“%d Send Successnn”,ID1);Bus=0;CollisionCounter=16;Sleep(rand()%10);i+;printf(“主机a发送成功次数=%dnn”,i);if(i0) Sleep(randNum*(int)pow(2,(CollisionCounter10)?10:CollisionCounter) *collisionWindow); goto Loop; else printf(“%ld Send Failurenn”,ID1); else goto Loop;return 0;3、 程序流程(1) 主程序流程图开始启动线程A启动线程B结束(2) 主程序中的线程流程图,线程A和线程B的流程图跟主程序的相同。开始总线闲?发送数据(Bus=Bus|ID)冲突?报告完成,Bus清零报告冲突,Bus清零成功次数加1,报告成功次数冲突计数器1计算随机延迟时间并延迟复原冲突计数器冲突计数器=0?成功计数器=10报告失败结束5 程序代码6 运行结果与分析(运行结果是否正确,课程设计过程中出现的问题及其解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论