计算机网络课设-模拟Ethernet帧的发送过程
本作品内容为计算机网络课设-模拟Ethernet帧的发送过程,格式为 doc ,大小 699432 KB ,页数为 15页
('学号:课程设计课程名称计算机网络学院计算机科学与技术学院专业软件工程专业班级姓名指导教师2014——2015学年第2学期课程实践设计任务书学生姓名:专业班级:指导教师:刘东飞工作单位:计算机学院题目二:模拟Ethernet帧的发送过程初始条件:(1)学习相关知识(2)C/C++/VC/VB/JAVA语言(3)PC机一台要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)编写程序模拟Ethernet节点的数据发送流程。具体要求:1)用两个线程a和b来模拟Ethernet上的两台主机。2)用一个双字类型变量Bus来模拟总线(将其初始化为“\\0”,并且总线等于“\\0”时表示总线空闲)。3)两个子线程向总线发送自己的数据。数据用该线程的线程号进行模拟,发送数据用线程号和Bus的“或”操作进行模拟(即Bus=BusID,ID为该线程的线程号)。4)每台主机需向总线上成功发送10次数据,如果其中某次数据发送失败,则该线程结束。5)发送流程必须遵循CSMA/CD。随即延迟算法中的冲突窗口取0.005。在数据发送成功(即Bus==ID)后,报告“IDsendsuccess”,产生冲突(即Bus!=ID)后报告“IDsendconllision”,发送失败(即冲突计数值为0)后报告“IDsendfailure”。随着主机发送成功次数增加,报告其已发送成功的次数,如“主机A发送成功数=3”。时间安排:第一、二天:查阅资料,学习算法第三、四天:编程调试第五天:书写报告指导教师签名:年月日系主任(或责任教师)签名:年月日目录一、知识背景..........................................................................................................................51.网络协议..........................................................................................................................52.以太网..............................................................................................................................53.CSMA/CD协议................................................................................................................54.截断二进制指数退避算法...............................................................................................6二、程序设计分析..................................................................................................................71.程序框架..........................................................................................................................82.环境介绍..........................................................................................................................83.数据结构..........................................................................................................................94.子线程..............................................................................................................................95.获得子线程ID.................................................................................................................96.发送数据........................................................................................................................10三、实验截图.........................................................................................................................11四、课设总结........................................................................................................................13五、程序清单........................................................................................................................13一、知识背景1.网络协议开放系统互连参考模型(OpenSystemInterconnect简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IPDatagram)。这是一个与硬件无关的虚拟包,由首部和数据两部分组成,其格式如图所示。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部中的源地址和目的地址都是IP协议地址。2.以太网以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术,并以10M/S的速率运行在多种类型的电缆上。以太网与IEEE802.3系列标准相类似。包括标准的以太网(10Mbit/s)、快速以太网(100Mbit/s)和10G(10Gbit/s)以太网。它们都符合IEEE802.33.CSMA/CD协议CSMA/CD(CarrierSenseMultipleAccesswithCollisionDetection)即带冲突检测的载波监听多路访问技术。在传统的共享以太网中,所有的节点共享传输介质。如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题CSMA/CD是一种争用型的介质访问控制协议。它起源于美国夏威夷大学开发的ALOHA网所采用的争用型协议,并进行了改进,使之具有比ALOHA协议更高的介质利用率。主要应用于现场总线Ethernet中。另一个改进是,对于每一个站而言,一旦它检测到有冲突,它就放弃它当前的传送任务。换句话说,如果两个站都检测到信道是空闲的,并且同时开始传送数据,则它们几乎立刻就会检测到有冲突发生。它们不应该再继续传送它们的帧,因为这样只会产生垃圾而已;相反一旦检测到冲突之后,它们应该立即停止传送数据。快速地终止被损坏的帧可以节省时间和带宽。CSMA/CD控制方式的优点是:原理比较简单,技术上易实现,网络中各工作站处于平等地位,不需集中控制,不提供优先级控制。但在网络负载增大时,发送时间增长,发送效率急剧下降。CSMA/CD应用在OSI的第二层数据链路层它的工作原理是:发送数据前先侦听信道是否空闲,若空闲,则立即发送数据。若信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数据;若在上一段信息发送结束后,同时有两个或两个以上的节点都提出发送请求,则判定为冲突。若侦听到冲突,则立即停止发送数据,等待一段随机时间,再重新尝试。其原理简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发4.截断二进制指数退避算法截断二指数指数退避算法并不复杂。具体的退避算法如下:1.确定基本退避时间,它就是争用期。以太网把争用期定为51.2us。对于10Mb/s以太网,在争用期内可发送512bit,即64字节。也可以说争用期是512比特时间。1比特时间就是发送1比特所需要的时间。所以这种时间单位与数据率密切相关。2.从离散的整数集合[0,1,…,]中随机取出一个数,记为r。重传应推后的时间就是r倍的争用期。上面的参数k按下面的公式计算:k=Min[重传次数,10]可见当重传次数不超过10时,参数k等于重传次数;但当重传次数超过10时,k就不在增大而一直等于10。3.当重传达16次仍不能成功时(这表明同时打算发送的数据站太多,以致连续发生冲突),则丢弃该,并向高层报告。例如,在第1次重传时,k=1,随机数r从整数{0,1}中选一个数。因此重传推迟的时间是0或争用期,在这两个时间中随机选择一个。若再发生碰撞,则重传时,k=2,随机数r就从整数{0,1,2,3}中选一个数。因此重传推迟的时间是在0,2,4和6这4个时间中随机抽取一个。同样,若在发生碰撞,则重传时k=3,随机数r就从整数{0,1,2,3,4,5,6,7}中选一个数。以此类推。若连续多次发生冲突,就表明可能有较多的站参与争用信道。但使用退避算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。我们还注意到,适配器每发送一个新的帧,就要执行一次CMSA/CD算法。适配器对过去发生过的碰撞并无记忆功能。因此,当好几个适配器正在执行指数退避算法时,很可能有某一个适配器发送的新帧能够碰巧立即成功插入到信道中,得到了发送权。我们可以看出,以太网在发送数据时,如果帧的前64字节之内没有发生冲突,那么后续的数据就不会发生冲突。换句话说,如果发生冲突就立即中止发送,这时已经发送出去的数据一定小于64字节,因此以太网规定了最短有效的帧长为64字节,凡长度小于64字节的帧都是由于冲突而异常中止的无效帧。收到了这种无效帧就应当立即丢弃。二、程序设计分析1.程序框架2.环境介绍操作系统Ubuntu14.04G++4.4.33.数据结构使用wchar_t来表示双字节。而在C++中推荐使用const来代替define4.子线程C++11开始支持多线程编程,之前多线程编程都需要系统的支持,在不同的系统下创建线程需要不同的API如pthread_create(),Createthread(),beginthread()等,使用起来都比较复杂,C++11提供了新头文件
提供计算机网络课设-模拟Ethernet帧的发送过程会员下载,编号:1700774721,格式为 docx,文件大小为15页,请使用软件:wps,office word 进行编辑,PPT模板中文字,图片,动画效果均可修改,PPT模板下载后图片无水印,更多精品PPT素材下载尽在某某PPT网。所有作品均是用户自行上传分享并拥有版权或使用权,仅供网友学习交流,未经上传用户书面授权,请勿作他用。若您的权利被侵害,请联系963098962@qq.com进行删除处理。