计算机网络课程设计--模拟以太网帧封装

计算机网络课程设计--模拟以太网帧封装

ID:9855276

大小:320.00 KB

页数:12页

时间:2018-05-12

计算机网络课程设计--模拟以太网帧封装_第1页
计算机网络课程设计--模拟以太网帧封装_第2页
计算机网络课程设计--模拟以太网帧封装_第3页
计算机网络课程设计--模拟以太网帧封装_第4页
计算机网络课程设计--模拟以太网帧封装_第5页
资源描述:

《计算机网络课程设计--模拟以太网帧封装》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、课程设计报告课程设计题目:模拟以太网帧封装专业:信息工程班级:姓名:学号:指导教师:2013年12月20日目录1.设计任务和目的21.1课程设计任务21.2课程设计目的22.设计原理22.1802.3标准帧结构22.2CRC的基本实现33.设计实现43.1设计思路43.1.1填充帧头部字段43.1.2填充数据字段43.1.3计算填充CRC43.2流程图53.2.1程序流程图63.2.2CRC计算流程图74.程序源码85.运行结果106.总结体会11111.设计任务和目的1.1课程设计任务根据给出的原始数据,组

2、装一个IEEE802.3格式的帧。默认的输入文件为二进制原始数据。封装得到的帧输出到二进制数据文件中。1.2课程设计目的(1)使学生掌握网络通信协议的基本工作原理;(2)培养学生基本掌握网络编程的基本思路和方法;(3)能提高学生对所学计算机网络理论知识的理解能力;(4)能提高学生对所学知识的实际应用能力和创新能力;(5)提高学生的科技论文写作能力。2.设计原理2.1802.3标准帧结构以太网Ethernet帧格式:前序(P)目的地址(SD)源地址(SA)长度数据FCS8B6B6B2B46~1500B4B 1.

3、前序字段前序字段由7个字节的交替出现的1和0组成,设置该字段的目的是指示帧的开始并便于网络中的所有接收器均能与到达帧同步。2.帧起始定界符字段它可以被看作前序字段的延续。实际上,该字段的组成方式继续使用前序字段中的格式,这个一个字节的字段的前6个比特位置由交替出现的1和0构成。该字段的最后两个比特位置是11,这两位中断了同步模式并提醒接收后面跟随的是帧数据。3.目的地址字段目的地址字段确定帧的接收者。6个字节的源地址和目的地址字段是局域网中的所有工作站必须使用同样的地址结构。4.源地址字段源地址字段标识发送帧

4、的工作站。和目前地址字段类似,源地址字段的长度六个字节。5.长度字段11用于IEEE802.3的两字节长度字段定义了数据字段包含的字节数。从前序到FCS字段的帧长度最小必须是64字节。基于最小帧长为64字节和使用六字节地址字段的要求,意味着每个数据字段的最小长度为46字节。如果传输数据少于46个字节,应将数据字段填充至46字节。不过,填充字符的个数不包括在长度字段值中,数据字段的最大长度为1500字节。6.数据字段数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字

5、节的数据字段:如果填入该该字段的信息少于46字节,该字段的其余部分也必须进行填充零。数据字段的最大长度为1500字节。7.校验序列字段将计算出的CRC填入32位的FCS校验字段。帧校验序列字段提供了一种错误检测机制,包括了地址字段、长度字段和数据字段的循环冗余校验(CRC)码。2.2CRC的基本实现利用CRC进行检错的过程可简单描述如下:在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位监督码(CRC码),附在原始信息的后边,构成一个新的二进制码序列(共k+r位),然后发送出去。在接收端,

6、根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则在差错控制理论中称为“生成多项式”。3.设计实现3.1设计思路3.1.1填充帧头部字段在这一部分需要向输出文件写入前导码、帧前定界符、目的地址、源地址和长度字段。写入前四个部分相对简单,而写入长度字段时需要计算输入文件的长度。所以计算输入文件长度的方法如下:intlength=0;infile.seekg(0,ios::end);//将读指针移到文件末尾。//计算指针偏移量,即为输入文件的长度length=infile.tellg()

7、;//创建字符指针并根据文件长度初始化unsignedchar*data=newunsignedchar[length];infile.seekg(0,ios::beg);//将读指针移到文件开始。//将文件数据读入到字符指针data中infile.read(data,length);11//将data内容写入到输出文件中file.write(data,length);3.1.2填充数据字段在数据字段中,数据字段的最小长度为46B。如果帧的LLC数据少于46B,则应将数据字段填充至46B。填充字符是任意的,不

8、计入长度字段值中。在程序中是用一下方法实现的://如果输入文件长度不足46B,则用补足46Bif(length<46){for(intj=length;j<46;j++)file.put(char(0x00));}3.1.3计算填充CRC帧封装的最后一步就是对数据进行校验,并将校验结果记入帧校验字段。本程序中实现的是CRC-8校验算法,即多项式G(x)=x^8+x^2+x+1,方法如下所示:file

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

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

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