CSMA-CD模拟实验指导书

CSMA-CD模拟实验指导书

ID:37622538

大小:157.50 KB

页数:10页

时间:2019-05-26

CSMA-CD模拟实验指导书_第1页
CSMA-CD模拟实验指导书_第2页
CSMA-CD模拟实验指导书_第3页
CSMA-CD模拟实验指导书_第4页
CSMA-CD模拟实验指导书_第5页
资源描述:

《CSMA-CD模拟实验指导书》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验一CSMA/CD协议模拟实验一、实验目的以太网是目前应用最广泛的局域网。本课程设计的目的是通过模拟以太帧的发送过程,使大家能进一步理解和掌握以太网核心协议CSMA/CD。二、实验要求编写程序模拟以太结点的数据发送流程。具体要求:1)用两个线程a和b模拟两台主机。2)用一个双字类型变量Bus来模拟总线(将其初始化为“”,并且总线等于“”时表示总线空闲)。3)两个子线程向总线发送自己的数据。数据用该线程的线程号进行模拟,发送数据用线程号和Bus的“或”操作进行模拟(即Bus=Bus

2、ID,ID为该线程的线程号)。4)每台主机须向总线上成功发送10次数据,如果其中某次数据发送失败,

3、则该线程结束。5)发送流程须遵循CSMA/CD。随机延迟算法中的冲突窗口取0.005。在数据发送成功(即Bus==ID)后,报告“IDsendsuccess”,产生冲突(Bus!=ID)后报告“IDsendconllision”,发送失败(即冲突计数器值为0)后报告“IDsendfailure”。随着主机发送成功次数增加,报告其已发送成功的次数,如“主机A发送成功数=3”。10三、相关知识1.CSMA/CD协议工作原理及性能分析以太网的核心技术是随机争用型介质访问控制方法,即带有冲突检测的载波侦听多路访问CSMA/CD方法。它的工作原理是:发送数据前先侦听信道是否空闲,若空闲,则立即发送

4、数据。若信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数据;若在上一段信息发送结束后,同时有两个或两个以上的节点都提出发送请求,则判定为冲突。若侦听到冲突,则立即停止发送数据,等待一段随机时间,再重新尝试。其原理简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发。  性能指标:信道利用率、吞吐量、介质利用率等  CSMACD的主要影响因素:传播时延、工作站数等。  ①CSMA/CD对站点个数不是很敏感,对实际的输入负载比较敏感。  ②CSMA/CD对传播时延a比较敏感。  ③CSMA/CD冲突不可避免。  ④CSMA/CD的介质利用率随a的上升下降较快。  ⑤CSMA/CD

5、适合通信量不大,交互频繁的场合  ⑥对于CSMA/CD帧越长,吞吐量越太,要求帧具有最小长度,当有许多短消息时,带宽浪费严重。⑦CSMA/CD在轻负载时提供最短延迟,但对重负载敏感。2.以太帧的发送流程1)载波侦听过程。结点在发送一个帧前,必须侦听总线是否空闲。由于以太的数据采用曼彻斯特编码方式,所以可以通过判断总线电平是否跳变来确定总线是否空闲。若总线空闲,就可启动发送,否则继续侦听。2)冲突检测。在数据发送过程中,可能会产生冲突。所以在发送数据的过程中,也应该进行冲突检测,只要发现冲突就应该停止发送数据。3)随机延迟后重发。在检测到冲突、停止发送后,结点进行随机延迟后重发。若重发16

6、次后还没成功,则宣告发送失败,取消该帧的发送。随机延迟的计算方法一般采用截止二进制指数后退算法。该算法可表示为:T=2*R*a。其中T为结点重新发送需要的后退延迟时间,a为冲突窗口值,R为随机数,从0到2k-1中取值,k的取值为min(n,10)10,n为该帧已被发送的次数,图1为以太帧的发送流程。3.以太帧的接收流程帧接收流程大致可以分为以下三个步骤:1)检查是否发生冲突,若发生冲突则丢弃该帧,若没有冲突,进入下一步。发送帧装配帧总线忙?启动发送冲突?发送完成?冲突加强冲突次数加1冲突多于16161516?发送失败败计算后退延迟等待后退延迟时间发送成功NNNN2)检查该帧的目的地址看是

7、否可以接收该帧,若可以接收,则进入下一步。3)检查CRC校验和LLC数据长度。若都正确,接收该帧,否则丢弃。图1以太网的发送过程10四、参考仿真程序#include"stdafx.h"#include"csmacd.h"#include#include#include#include#ifdef_DEBUG#definenew1DEBUG_NEW#undefTHIS_FILEHIS_FILE[]=_FILE_;#endif//staticcharTCWinThread*thread1,*thread2;//定义变量D

8、WORDID1,ID2,Bus=0;//初始化共享UINTaThread(LPVOIDpParam);//线程a,代表主机aUINTbThread(LPVOIDpParam);//线程b,代表主机busingnamespacestd;int_tmain(intargc,TCHAR*argv[],TCHAR*envp[]){intnRetCode=0;if(!AfxWinInit(::GetModuleHandle(NULL),NUL

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

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

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