计算机网络课程设计[模拟ethernet帧的发送过程]

上传人:wt****50 文档编号:38036508 上传时间:2018-04-26 格式:DOC 页数:14 大小:221KB
返回 下载 相关 举报
计算机网络课程设计[模拟ethernet帧的发送过程]_第1页
第1页 / 共14页
计算机网络课程设计[模拟ethernet帧的发送过程]_第2页
第2页 / 共14页
计算机网络课程设计[模拟ethernet帧的发送过程]_第3页
第3页 / 共14页
计算机网络课程设计[模拟ethernet帧的发送过程]_第4页
第4页 / 共14页
计算机网络课程设计[模拟ethernet帧的发送过程]_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《计算机网络课程设计[模拟ethernet帧的发送过程]》由会员分享,可在线阅读,更多相关《计算机网络课程设计[模拟ethernet帧的发送过程](14页珍藏版)》请在金锄头文库上搜索。

1、武汉理工大学计算机科学与技术学院计算机网络课程设计1学学 号:号: 课课 程程 设设 计计课程名称课程名称计算机网络论文题目论文题目模拟模拟 Ethernet 帧的发送过程帧的发送过程学学 院院专专 业业班班 级级姓姓 名名指导教师指导教师武汉理工大学计算机科学与技术学院计算机网络课程设计220112012 学年 第 2 学期目目 录录一、课程设计目的和意义一、课程设计目的和意义.2.2二、课程设计题目描述和要求二、课程设计题目描述和要求2 2三、可行性分析三、可行性分析.2.21.技术可行性.22.功能分析.3四、帧结构分析四、帧结构分析.3.3五、五、Ethernet 帧的发送接收流程帧的

2、发送接收流程441. Ethernet 帧的发送流程帧的发送流程4 2 Ethernet 帧的接收流程帧的接收流程5六、详细设计六、详细设计661.设计中的重点及难点设计中的重点及难点6 2.核心代码核心代码6 3.程序流程程序流程7 4.完整程序完整程序8七、运行结果七、运行结果1111八、总结八、总结1212九、参考文献九、参考文献1313武汉理工大学计算机科学与技术学院计算机网络课程设计3一、课程设计目的和意义一、课程设计目的和意义帧是在数据链路层数据进行传输与交换的基本单位。构造帧对于理解网络协议的概念、协议执行过程以及网络问题处理的一般方法具有重要的意义。本次课程设计的目的是应用数据

3、链路层与介质访问控制层的知识,根据数据链路层的基本原理,通过构造一个具体的 Ethernet 帧,从而深入理解网络协议的基本概念与网络问题处理的一般方法。二、课程设计题目描述和要求二、课程设计题目描述和要求题目:编写程序模拟 Ethernet 结点的数据发送流程设计要求:(1)用两个线程 a,b 来模拟 Ethernet 上的两台主机。(2)用一个双字类型变量 Bus 来模拟总线(将其初始化为“/0” ,并且总线等于“/0”时表示总线空闲) 。(3)两个子线程向总线发送自己的数据。数据用该线程的线程信号进行模拟,发送数据用线程号和 Bus 的“或”操作进行模拟(即 Bus=Bus|ID,ID

4、为该线程的线程号) 。(4)每台主机须向总线成功发送 10 次数据,如果其中某次数据发送失败,则该线程结束。(5)发送流程须遵循 CSMA/CD。随机延迟算法中的冲突窗口取 0.005。在数武汉理工大学计算机科学与技术学院计算机网络课程设计4据发送成功(即 Bus=ID)后,报告“ID send success” ,产生冲突(即 Bus!=ID)后,报告“ID send collision” ,发送失败(即冲突计数器值为 0)后报告“ID send failure” 。随着主机发送成功次数的增加,报告其已发送成功的次数,如“主机 A 发送成功次数=3” 。 三、三、可行性分析可行性分析1.技术

5、可行性技术可行性分析包括:风险分析、资源分析和技术分析。风险分析的任务是,在给定的约束条件下,判断能否设计并实现系统所需功能和性能。资源分析的任务是,论证是否具有系统开发所需的各类人员(管理人员和各类专业技术人员) 、软件、硬件资源和工作环境等。技术分析的任务是,论证当前的科学技术是否支持系统开发的全过程。其中最主要的是分析技术条件是否能顺利完成开发工作,硬、软件能否满足开发者的需要等。2.功能分析基本功能1.在一台计算机上实现,用多个程序或线程来模拟多个计算机 2.使用一个共享数据区来模拟总线 3.模拟实现载波监听的过程4. 模拟实现发生冲突的过程和冲突的处理机制四、帧结构分析四、帧结构分析

6、1帧的介绍术语“帧”来源于串行线路上的通信。其中,发送者在发送数据的前后各添加特殊的字符,使它们成为一个帧。Ethernet 从某种程序上可以被看作是机器这间的数据链路层连接。首先我们来认识一下 Ethernet 帧结构,Ethernet V2.0 规范和 IEEE802.3标准中的 Ethernet 帧结构有一些差别,这里我们按 802.3 标准的帧结构进行讨论,图一给出了 Ethernet 帧结构图。前导码帧前定界符目的地址源地址长度字段数据字段校验字段(7B)(1B)(2/6B)(2/6B)(2B)(长度可变)(4B)图一 Ethernet 帧结构武汉理工大学计算机科学与技术学院计算机网

7、络课程设计5如图一所示,802.3 标准的 Ethernet 帧结构由 6 部分组成。(1)前导码与帧前定界符字段前导码由 56 位(7B)的 1010101101010 位序列组成。帧前定界符可以视为前导码的延续。1B 的帧前定界符结构为 10101011。如果将前导码与帧定界符一起看,那么在 62 位 1010101010 位序列之后出现 11。在 11 之后是 Ethernet 帧的目的地址字段。前导码与帧前定界符主要是保证接收同步,这 8B 接收后不需要保留,也不记入帧头长度中。(2)目的地址和源地址目的地址(DA)与法制地址(SA)分别表示帧的接收结点地址与发送结点的硬件地址。 在

8、Ethernet 帧中,目的地址和法制地址字段长度可以是 2B 或 6B。目前的 Ethernet 都使用 6B(即 48 位)长度的地址。 Ethernet 帧的目的地址可以是单播地址(unicast address)、多播地址(multicast address)与广播地址(broadcast address),目的地址的第一位为 0 表示单播地址,为 1 表示多播地址,目的地址为全 1 表示广播地址。(3)长度字段8023 标准中的帧用 2B 定义数据字段包含的字节数。协议规定,帧数据的最小长度为 46B,最大长度为 1500B。设置最小帧长度的目的是使每个接收结点能够有足够的时间检测到

9、冲突。(4)数据字段帧数据字段的最小长度为 46B。如果帧的 LLC 数据少于 46B,则应将数据字段填充至 46B。填充字符是任意的,不计入长度字段值中。(5)检验字段帧校验字段(FCS)采用 32 位的 CRC 校验。校验的范围包括目的地址字段、源地址字段、长度字段、LLC 数据字段。此处,为了简便起见,采用 8 位的 CRC 校验。CRC 校验的生成多项式为:G(x)= x8+ x2+x+1武汉理工大学计算机科学与技术学院计算机网络课程设计6某些帧结构中还会包括帧类型字段,用来识别些帖所承载的数据的类型。当一个帧到达指定的计算机时,操作系统根据帧类型决定用哪个协议软件模块对它进行处理。自

10、识别帧的主要优点是,可以在同一物理网络中使用多个协议而互不干扰。五. Ethernet 帧的发送与接收流程1 Ethernet 帧的发送流程1)载波侦听过程。Ethernet 中每个结点利用总线发送数据,总线是每个结点共享的公共传输介质。所以结点在发送一个帧前,必须侦听总线是否空闲。由于Ethernet 的数据采用曼彻斯特编码方式,所以可以通过判断总线电平是否跳变来确定总线是否空闲。若总线空闲,就可以启动发送,否则继续侦听。2)冲突检测。在数据发送过程中,可能会产生冲突(冲突是指总线上同时出现两个或两个以上的发送信号,他们叠加后的信号波形与任何发送结点的输出波形都不相同) 。因为可能有多个主机

11、都在侦听总线,当它们侦听到总线空闲时,就会往总线上发送数据。所以在发送数据的过程中,也应该进行冲突检测,只要发现冲突就应该立即停止发送数据。3)随即延迟后重发。在检测到冲突、停止发送后,结点进行随机延迟后重发。若发 16 次后还没成功,则宣告发送失败,取消该帧的发送。随机延迟的算法一般采用截断的二进制指数退避算法。当出现线路冲突时,如果冲突的各站点都采用同样的退避间隔时间,则很容易产生二次、三次的碰撞。因此,要求各个站点的退避间隔时间具有差异性。这要求通过退避算法来实现。当一个站点发现线路忙时,要等待一个延时时间 M,然后再进行侦听工作。延时时间 M 由以下算法决定:M=2k*R*a。其中 a

12、 为冲突窗口值(冲突窗口为总线最大长度和电磁波在介质中传播速度比值的 2 倍) ,R 为随机数,k 的取值为 k=min(n,16),n 为该帧已被发送的次数。图 1 给出了 Ethernet 帧的发送流程。2 Ethernet 帧的接收流程帧的接收流程大致可以分为以下三个步骤:1)检查是否发生冲突,若发生冲突,则丢弃该帧;若没有冲突,进入下一步。2)检查该帧的目的地址看是否可以接收该帧,若可以接收,则进入下一步。3)检查 CRC 检验和 LLC 数据长度。若都正确,接受该帧,否则丢弃。武汉理工大学计算机科学与技术学院计算机网络课程设计7图 1 Ethernet 帧的发送流程武汉理工大学计算机

13、科学与技术学院计算机网络课程设计8YNYY发送帧装配帧总线忙启动发送冲突?发送完成?发送成功冲突加强冲突次数加 1等待后退 延迟时间计算后 退延迟发送失败冲突次数16?YNNN六.详细设计 1.设计中的重点及难点1)模拟冲突过程,在这个程序中不要使用任何线程同步机制。2)若程序中不能模拟出冲突,可以在某些地方加入延时。2.核心代码int i=0; /发送成功次数 int CollisionCounter=16; /冲突计数器初始值为 16 double CollisionWindow=0.005; /冲突窗口值取值 0.005 int randNum=rand()%3; /随机数 loop: if(Bus=0) /总线空闲武汉理工大学计算机科学与技术学院计算机网络课程设计9Bus=Bus|ID1; /模拟发送包Sleep(12);if (Bus=ID1) /无冲突printf(“%d Send

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号