0109 郭俊铭 模拟ethernet帧的发送过程

0109 郭俊铭 模拟ethernet帧的发送过程

ID:6349023

大小:210.18 KB

页数:10页

时间:2018-01-11

0109 郭俊铭 模拟ethernet帧的发送过程_第1页
0109 郭俊铭 模拟ethernet帧的发送过程_第2页
0109 郭俊铭 模拟ethernet帧的发送过程_第3页
0109 郭俊铭 模拟ethernet帧的发送过程_第4页
0109 郭俊铭 模拟ethernet帧的发送过程_第5页
资源描述:

《0109 郭俊铭 模拟ethernet帧的发送过程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、计算机网络课程设计报告课题:模拟Ethernet帧的发送过程姓名:郭俊铭学号:201317030109同组姓名:李凌飞专业班级:网络工程13101班指导教师:聂方彦设计时间:2014年下学期第15周评阅意见:评定成绩:指导老师签名:年月日目录一、课程设计目的和意义2二、课程设计题目描述和要求3三、实验报告内容3四、运行结果:9五、总结10六、参考文献10一、课程设计目的和意义局域网技术发展十分迅速,目前已在企业、机关、学校的信息管理与信息服务领域中得到了广泛的应用。在早期,人们将局域网归为一种数据通信网络。随着局域网体系结构和协议标准研究的进展、操作系统的发展

2、以及光纤技术的引入,局域网技术得到了快速发展。目前Ethernet是应用最广泛的局域网。因此,学习Ethernet技术对深入掌握局域网知识是非常重要的。本课程设计的目的是模拟Ethernet帧的发送过程,熟悉Ethernet帧的数据发送流程,即CSMA/CD工作流程。二、课程设计题目描述和要求题目:编写程序模拟Ethernet结点的数据发送流程设计要求:(1)用两个线程a,b来模拟Ethernet上的两台主机。(2)用一个双字类型变量Bus来模拟总线(将其初始化为“/0”,并且总线等于“/0”时表示总线空闲)。(3)两个子线程向总线发送自己的数据。数据用该线程

3、的线程信号进行模拟,发送数据用线程号和Bus的“或”操作进行模拟(即Bus=Bus

4、ID,ID为该线程的线程号)。(4)每台主机须向总线成功发送10次数据,如果其中某次数据发送失败,则该线程结束。(5)发送流程须遵循CSMA/CD。随机延迟算法中的冲突窗口取0.005。在数据发送成功(即Bus==ID)后,报告“IDsendsuccess”,产生冲突(即Bus!=ID)后,报告“IDsendcollision”,发送失败(即冲突计数器值为0)后报告“IDsendfailure”。随着主机发送成功次数的增加,报告其已发送成功的次数,如“主机A发送成功次数=3”。

5、三、实验报告内容(一)相关知识Ethernet的核心技术是随机争用型介质访问方法,即带有冲突检测的载波侦听多路访问(CSMA/CD)方法。1.Ethernet帧的发送流程1)载波侦听过程。Ethernet中每个结点利用总线发送数据,总线是每个结点共享的公共传输介质。所以结点在发送一个帧前,必须侦听总线是否空闲。由于Ethernet的数据采用曼彻斯特编码方式,所以可以通过判断总线电平是否跳变来确定总线是否空闲。若总线空闲,就可以启动发送,否则继续侦听。2)冲突检测。在数据发送过程中,可能会产生冲突(冲突是指总线上同时出现两个或两个以上的发送信号,他们叠加后的信号

6、波形与任何发送结点的输出波形都不相同)。因为可能有多个主机都在侦听总线,当它们侦听到总线空闲时,就会往总线上发送数据。所以在发送数据的过程中,也应该进行冲突检测,只要发现冲突就应该立即停止发送数据。3)随即延迟后重发。在检测到冲突、停止发送后,结点进行随机延迟后重发。若发16次后还没成功,则宣告发送失败,取消该帧的发送。随机延迟的算法一般采用截断的二进制指数退避算法。当出现线路冲突时,如果冲突的各站点都采用同样的退避间隔时间,则很容易产生二次、三次的碰撞。因此,要求各个站点的退避间隔时间具有差异性。这要求通过退避算法来实现。当一个站点发现线路忙时,要等待一个延

7、时时间M,然后再进行侦听工作。延时时间M由以下算法决定:M=2k*R*a。其中a为冲突窗口值(冲突窗口为总线最大长度和电磁波在介质中传播速度比值的2倍),R为随机数,k的取值为k=min(n,16),n为该帧已被发送的次数。图1给出了Ethernet帧的发送流程。2Ethernet帧的接收流程帧的接收流程大致可以分为以下三个步骤:1)检查是否发生冲突,若发生冲突,则丢弃该帧;若没有冲突,进入下一步。2)检查该帧的目的地址看是否可以接收该帧,若可以接收,则进入下一步。3)检查CRC检验和LLC数据长度。若都正确,接受该帧,否则丢弃。图1Ethernet帧的发送流

8、程(二)课程设计分析1.设计中的重点及难点1)模拟冲突过程,在这个程序中不要使用任何线程同步机制。2)若程序中不能模拟出冲突,可以在某些地方加入延时。2.核心代码inti=0;//发送成功次数intCollisionCounter=16;//冲突计数器初始值为16doubleCollisionWindow=0.005;//冲突窗口值取值0.005intrandNum=rand()%3;//随机数loop:if(Bus==0)//总线空闲{Bus=Bus

9、ID1;//模拟发送包Sleep(12);if(Bus==ID1)//无冲突{printf("%dSendS

10、uccess",ID1);//

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

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

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