模拟Etherner帧的发送过程.doc

模拟Etherner帧的发送过程.doc

ID:25642571

大小:101.50 KB

页数:13页

时间:2018-11-21

模拟Etherner帧的发送过程.doc_第1页
模拟Etherner帧的发送过程.doc_第2页
模拟Etherner帧的发送过程.doc_第3页
模拟Etherner帧的发送过程.doc_第4页
模拟Etherner帧的发送过程.doc_第5页
资源描述:

《模拟Etherner帧的发送过程.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、模拟Etherner帧的发送过程摘要近年来,局域网技术发展十分迅速,目前已在企业、机关、学校的信息管理与信息服务领域中得到了广泛的应用。在早期,人们将局域网归为一种数据通信网络。随着局域网体系结构和协议标准研究的进展、操作系统的发展以及光纤技术的引入,局域网技术得到了快速发展。目前,Ethernet是应用最广泛的局域网。本次课程设计模拟Ethernet帧的发送过程,熟悉Ethernet帧的数据发送流程,即CSMA/CD运作流程。关键字CSMA/CD数据通信协议标准Ethernet帧截止二进制指数后退算法模拟发送1设计题目与要求1.1设计题目:模拟Ethernet帧的发送过程1.2设计要求:

2、本课程设计的目的是模拟Ethernet帧的发送过程,使读者熟悉Ethernet帧的数据发送流程,即CSMA/CD32运作流程:1)、用两个线程a和b来模拟Ethernet上的两台主机。2)、用一个双字类型变量Bus来模拟总线(将其初始化为””,并且总线等于””时表示总线空闲)。3)、两个子线程向总线发送自己的数据。数据用该线程的线程号进行模拟,发送数据用线程号和Bus的“或”操作进行模拟(即Bus=Bus

3、ID,ID为该线程的线程号)。4)、每台主机必须将总线上发送成功10次数据,如果其中某次数据发送失败,则该线程结束。5)、发送流程必须遵循CSMA/CD。随机延迟算法中的冲突窗口

4、取0.005。在数据发送成功(即Bus==ID)后,报告“IDsendsuccess”,产生冲突(即Bus!=ID)后报告“IDsendconllision”,发送失败(即冲突计数器值为0)后报告“IDsendfailure”。随着主机发送次数增加,报告其已经发送成功的次数,如“主机A发送成功数=3”。2开发平台、语言、工具2.1系统平台:Windows系统2.2编程语言:C/C++语言2.3编程工具:VisualC++6.03.设计思想与算法结构3.1设计思想3.1.1Ethernet帧的发送流程1)载波侦听过程。Ethernet中每个结点利用总线发送过程,总线是每个结点共享的公共传输介

5、质。所以结点在发送一个帧前,必须侦听总线是否空闲。由于Ethernet的数据采用曼彻斯特方式,所以可以通过判断总线电平是否跳变来确定总线是否空闲。若总线空闲,就可以启动发送,否则继续侦听。2)冲突检测。在数据发送过程中,可能会产生冲突(冲突是指总线上同时出现两个或两个以上的发送信号,它们叠加后的信号波形与任何发送结点输出的信号波形不相同。因为可能有多个主机都在侦听总线,当它们侦听到总线空闲时,都会往总线上发送数据)。所以在发送数据的过程中,也应该进行冲突检测,只要发现冲突就应该停止发送数据。3)随机延迟后重发。在检测到冲突、停止发送后,结点进行随机延迟后重发。若重发16次后还没成功,则宣告

6、发送失败,取消该帧的发送。随机延迟的计算方法一般采用截止二进制指数后退算法。该算法可表示为:τ=2k*R*a。其中τ为结点重新发送需要的后退延迟时间,a为冲突窗口值(冲突窗口为总线最大长度和电磁波在介质中的传播速度比值的2倍),R为随机数,k的取值为k=min(n,10),n为该帧已被发送的次数。图1给出了Ethernet帧的发送流程。图13.1.2模拟Ethernet结点的数据发送流程1)、用两个线程a和b来模拟Ethernet上的两台主机。2)、用一个双字类型变量Bus来模拟总线(将其初始化为””,并且总线等于””时表示总线空闲)。3)、两个子线程向总线发送自己的数据。数据用该

7、线程的线程号进行模拟,发送数据用线程号和Bus的“或”操作进行模拟(即Bus=Bus

8、ID,ID为该线程的线程号)。4)、每台主机必须将总线上发送成功10次数据,如果其中某次数据发送失败,则该线程结束。5)、发送流程必须遵循CSMA/CD。随机延迟算法中的冲突窗口取0.005。在数据发送成功(即Bus==ID)后,报告“IDsendsuccess”,产生冲突(即Bus!=ID)后报告“IDsendconllision”,发送失败(即冲突计数器值为0)后报告“IDsendfailure”。随着主机发送次数增加,报告其已经发送成功的次数,如“主机A发送成功数=3”。3.2主程序模拟冲突的过程,

9、在这个程序中不能使用任何线程同步机制。若程序中不能模拟出冲突,可在某些地方加入延时。主程序流程图2:图2 主流程图主程序代码部分:...…HANDLEhThrd;DWORDID1,ID2,Bus=0;DWORDWINAPIaThread(LPVOIDpParam);DWORDWINAPIbThread(LPVOIDpParam);/*进程的主线程由操作系统自动生成,Win32提供了CreateThreadAPI来完成用户

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。