文档介绍:计算机网络课程设计实验报告
-- CSMA/CD协议仿真
学院:计算机科学与通信工程
一、CSMA/CD协议工作原理(查资料)及性能分析(指标与影响因素)
  CSMA/CD是carrier sense multiple access/collision detected 的缩写,可译为“载波侦察听多路访问/冲突检测”,或“带有冲突检测的载波侦听多路访问”。所谓载波侦听(carrier sense),意思是网络上各个工作站在发送数据前都要总线上有没有数据传输。若干数据传输 (称总线为忙),则不发送数据;若无数据传输(称总线为空),立即发送准备好的数据。所谓多路访问(multiple access)意思是网络上所有工作站收发数据共同使用同一条总线,且发送数据是广播式的。所谓冲突(collision),意思是,若网上有两个或两个以上工作站同时发送数据,在总线上就会产生信号的混合,哪个工作站都同时发送数据,在总线上就会产生信号的混合,哪个工作站都辨别不出真正的数据是什么。这种情况称数据冲突又称碰撞。为了减少冲突发生后又的影响。工作站在发送数据过程中还要不停地检测自己发送的数据,有没有在传输过程中与其它工作站的数据发生冲突,这就是冲突检测(collision detected)。 
CSMA/CD媒体访问控制方法的工作原理,可以概括如下: 
先听后说,边听边说; 
      一旦冲突,立即停说; 
      等待时机,然后再说; 
 注:“听”,即监听、检测之意;“说”,即发送数据之意。 
上面几句话意思是在发送数据前,先监听总线是否空闲。若总线忙,则不发送。若总线空闲,则把准备好的数据发送到总线上。在发送数据的过程中,工作站边发送检测总线,是否自己发送的数据有冲突。若无冲突则继续发送直到发完全部数据;若有冲突,则立即停止发送数据,但是要发送一个加强冲突的JAM信号,以便使网络上所有工作站都知道网上发生了冲突,然后,等待一个预定的随机时间,且在总线为空闲时,再重新发送未发完的数据。 
  CSMA/CD控制方式的优点是:原理比较简单,技术上易实现,网络中各工作站处于平等地位 ,不需集中控制,不提供优先级控制。但在网络负载增大时,发送时间增长,发送效率急剧下降。
性能指标:信道利用率、吞吐量、介质利用率
CSMACD的主要影响因素:传播时延、工作站数。
①CSMA/CD对站点个数不是很敏感,对实际的输入负载比较敏感。
②CSMA/CD对传播时延a比较敏感。
③CSMA/CD冲突不可避免。
④CSMA/CD的介质利用率随a的上升下降较快。
⑤CSMA/CD适合通信量不大,交互频繁的场合
⑥对于CSMA/CD帧越长,吞吐量越太,要求帧具有最小长度,当有许多短消息时,带宽浪费严重。
⑦CSMA/CD在轻负载时提供最短延迟,但对重负载敏感。
主要参数:
时间片 512比特时间
帧问间隔
尝试极限16
退避极限 10
人为干扰长 32比特
最大帧长 1518字节
最小帧长 512字节
地址字段长 48比特 
二、CSMA/CD协议基本工作流程
载波侦听过程。结点在发送一个帧前,必须侦听总线是否空闲。由于以太的数据采用曼彻斯特编码方式,所以可以通过判断总线电平是否跳变来确定总线是否空闲。若总线空闲,就可启动发送,否则继续侦听。
冲突检测。在数据发送过程中,可能会产生冲突。所以在发送数据的过程中,也应该进行冲突检测,只要发现冲突就应该停止发送数据。
随机延迟后重发。在检测到冲突、停止发送后,结点进行随机延迟后重发。若重发16次后还没成功,则宣告发送失败,取消该帧的发送。随机延迟的计算方法一般采用截止二进制指数后退算法。该算法可表示为:T=2*R*a。其中T为结点重新发送需要的后退延迟时间,a为冲突窗口值,R为随机数,从0到2k-1中取值,k的取值为min(n,10),n为该帧已被发送的次数,下图为以太帧的发送流程。
发送帧
装配帧
总线忙?
启动发送
冲突?
发送完成?
冲突加强
冲突次数加1
冲突多于16?
发送失败败
计算后退延迟
等待后退延迟时间
发送成功
N
N
N
N
帧接收流程大致可以分为以下三个步骤:
检查是否发生冲突,若发生冲突,则丢弃该帧,若没有冲突,进入下一步。
检查该帧的目的地址看是否可以接收该帧,若可以接收,则进入下一步。
检查CRC校验和LLC数据长度。若都正确,接收该帧,否则丢弃。
三、分析、理解所给的仿真程序(对照流程图说明是如何仿真的、每个sleep函数的作用)
#include ""
#include "csm