计算机网络课程设计报告--- CSMACD协议仿真.docVIP

  • 46
  • 0
  • 约7.84千字
  • 约 13页
  • 2018-06-13 发布于贵州
  • 举报

计算机网络课程设计报告--- CSMACD协议仿真.doc

计算机网络课程设计实验报告 -- CSMA/CD协议仿真 学院:计算机科学与通信工程 一、CSMA/CD协议工作原理(查资料)及性能分析(指标与影响因素) ??CSMA/CD是carrier?sense?multiple?access/collision?detected?的缩写,“载波侦察听多路访问/冲突检测”,或“带有冲突检测的载波侦听多路访问”。所谓载波侦听(carrier?sense),意思是网络上各个工作站在发送数据前都要总线上有没有数据传输。若干数据传输?(称总线为忙),则不发送数据;若无数据传输(称总线为空),立即发送准备好的数据。所谓多路访问(multiple?access)意思是网络上所有工作站收发数据共同使用同一条总线,且发送数据是广播式的。所谓冲突(collision),意思是,若网上有两个或两个以上工作站同时发送数据,在总线上就会产生信号的混合,哪个工作站都同时发送数据,在总线上就会产生信号的混合,哪个工作站都辨别不出真正的数据是什么。这种情况称数据冲突又称碰撞。为了减少冲突发生后又的影响。工作站在发送数据过程中还要不停地检测自己发送的数据,有没有在传输过程中与其它工作站的数据发生冲突,这就是冲突检测(collision?detected)。? CSMA/CD媒体访问控制方法的工作原理,可以概括如下:?先听后说,边听边说;? ???? ?一旦冲突,立即停说;? ????? 等待时机,然后再说;? ?注:“听”,即监听、检测之意;“说”,即发送数据之意。? 上面几句话在发送数据前,先监听总线是否空闲。若总线忙,则不发送。若总线空闲,则把准备好的数据发送到总线上。在发送数据的过程中,工作站边发送检测总线,是否自己发送的数据有冲突。若无冲突则继续发送直到发完全部数据;若有冲突,则立即停止发送数据,但是要发送一个加强冲突的JAM信号,以便使网络上所有工作站都知道网上发生了冲突,然后,等待一个预定的随机时间,且在总线为空闲时,再重新发送未发完的数据。???CSMA/CD控制方式的优点是:原理比较简单,技术上易实现,网络中各工作站处于平等地位?,不需集中控制,不提供优先级控制。但在网络负载增大时,发送时间增长,发送效率急剧下降。时间片 512比特时间 帧问间隔 9.6微秒 尝试极限16 退避极限 10 人为干扰长 32比特 最大帧长 1518字节 最小帧长 512字节 地址字段长 48比特? )#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,TCHAR* argv[],TCHAR*envp[]) { int nRetCode=0; if(!AfxWinInit(::GetModuleHandle(NULL),NULL, ::GetCommandLine(),0)) { cout_T(Fata1 Error:MFC initialization failed) endl; nRetCode=1; } else { thread1=AfxBeginThread(aThread,NULL); //启动线程a ID1=thread1-m_nThreadID; //获取线程ID号 thread2=AfxBeginThread(bThread,NULL); //启动线程b ID2=thread2-m_nThreadID; //获取线程ID号 getchar(); } return nRetCode; } UINT aThread(LPVOID pParam)

文档评论(0)

1亿VIP精品文档

相关文档