CSMA-CD模拟实验指导书..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CSMA-CD模拟实验指导书.

实验一 CSMA/CD协议模拟实验 一、实验目的 以太网是目前应用最广泛的局域网。本课程设计的目的是通过模拟以太帧的发送过程,使大家能进一步理解和掌握以太网核心协议CSMA/CD。 二、实验要求 编写程序模拟以太结点的数据发送流程。具体要求: 用两个线程a和b模拟两台主机。 用一个双字类型变量Bus来模拟总线(将其初始化为“\0”,并且总线等于“\0”时表示总线空闲)。 两个子线程向总线发送自己的数据。数据用该线程的线程号进行模拟,发送数据用线程号和Bus的“或”操作进行模拟(即Bus=Bus|ID,ID为该线程的线程号)。 每台主机须向总线上成功发送10次数据,如果其中某次数据发送失败,则该线程结束。 发送流程须遵循CSMA/CD。随机延迟算法中的冲突窗口取0.005。在数据发送成功(即Bus==ID)后,报告“ID send success”,产生冲突(Bus!=ID)后报告“ID send conllision”,发送失败(即冲突计数器值为0)后报告“ID send failure”。随着主机发送成功次数增加,报告其已发送成功的次数,如“主机A发送成功数=3”。 三、相关知识 1. CSMA/CD协议工作原理及性能分析 以太网的核心技术是随机争用型介质访问控制方法,即带有冲突检测的载波侦听多路访问CSMA/CD方法。 它的工作原理是: 发送数据前先侦听信道是否空闲,若空闲,则立即发送数据。若信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数据;若在上一段信息发送结束后,同时有两个或两个以上的节点都提出发送请求,则判定为冲突。若侦听到冲突,则立即停止发送数据,等待一段随机时间,再重新尝试。 其原理简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发。   性能指标:信道利用率、吞吐量、介质利用率等   CSMACD的主要影响因素:传播时延、工作站数等。   ①CSMA/CD对站点个数不是很敏感,对实际的输入负载比较敏感。   ②CSMA/CD对传播时延a比较敏感。   ③CSMA/CD冲突不可避免。   ④CSMA/CD的介质利用率随a的上升下降较快。   ⑤CSMA/CD适合通信量不大,交互频繁的场合   ⑥对于CSMA/CD帧越长,吞吐量越太,要求帧具有最小长度,当有许多短消息时,带宽浪费严重。 ⑦CSMA/CD在轻负载时提供最短延迟,但对重负载敏感。 2.以太帧的发送流程 载波侦听过程。结点在发送一个帧前,必须侦听总线是否空闲。由于以太的数据采用曼彻斯特编码方式,所以可以通过判断总线电平是否跳变来确定总线是否空闲。若总线空闲,就可启动发送,否则继续侦听。 冲突检测。在数据发送过程中,可能会产生冲突。所以在发送数据的过程中,也应该进行冲突检测,只要发现冲突就应该停止发送数据。 随机延迟后重发。在检测到冲突、停止发送后,结点进行随机延迟后重发。若重发16次后还没成功,则宣告发送失败,取消该帧的发送。随机延迟的计算方法一般采用截止二进制指数后退算法。该算法可表示为:T=2*R*a。其中T为结点重新发送需要的后退延迟时间,a为冲突窗口值,R为随机数,从0到2k-1中取值,k的取值为min(n,10),n为该帧已被发送的次数,图1为以太帧的发送流程。 3.以太帧的接收流程 帧接收流程大致可以分为以下三个步骤: 检查是否发生冲突,若发生冲突则丢弃该帧,若没有冲突,进入下一步。 检查该帧的目的地址看是否可以接收该帧,若可以接收,则进入下一步。 检查CRC校验和LLC数据长度。若都正确,接收该帧,否则丢弃。 图1 以太网的发送过程 四、参考仿真程序 #include stdafx.h #include csmacd.h #include cstdio #include iostream #include cmath #include windows.h #ifdef _DEBUG #define new1 DEBUG_NEW #undef THIS_FILE HIS_FILE[]=_FILE_; #endif //static char T CWinThread *thread1,*thread2; //定义变量 DWORD ID1,ID2,Bus=0; //初始化共享 UINT aThread(LPVOID pParam); //线程a,代表主机a UINT bThread(LPVOID pParam); //线程b,代表主机b using namespace std; int _tmain(int argc,

文档评论(0)

kaiss + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档