1、计算机网络课程设计帧封装课程设计说明书课程设计课题: 封装Ethernet帧 学 院 名 称: 信息工程学院 专业: 网络工程 教师: 学号: 班级: 姓名: 任务: 20 14 年 01 月 6 日1.设计目的通过课程设计的过程中,提高学生的动手设计的能力,深刻理解Ethernet帧,并将其封装成一个发送帧。帧是在数据链路层数据进行传输与交换的基本单位。构造帧对于理解网络协议的概念、协议执行过程以及网络问题处理的一般方法具有重要的意义。本次课程设计的目的是应用数据链路层与介质访问控制层的知识,根据数据链路层的基本原理,通过构造一个具体的Ethernet帧,从而深入理解网络协议的基本概念与网络
2、问题处理的一般方法。2.设计任务内容 总体任务是设计一个能够将数据封装成以太网帧的简易窗口软件。大体可分为三部分:分析帧的组成部分,分析校验算法,设计可视化界面。以太网帧组成部分:1、填充前导码以及帧前界定符;2、填充目的地址以及源地址;3、填充长度字段;4、封装十六进制数据;5、封装校验字段;3.设计工具 运行环境:Java语言Eclipse平台4.设计任务说明以及相应部分代码在本次的课程设计中,我的任务主要是设计程序界面以及将各种操作对应到界面内的各种元素并整理代码。该界面的排版是自定义的,具有绝对的位置坐标,所以窗口大小的变化对界面内元素的相对位置不会有影响。(1)该软件界面内实现了:圆
3、点按钮,标签文本输入框 按钮文本显示区域 滚轮 下拉菜单(2)程序细节特点介绍:1、两个圆点按钮JRadioButton,二者只能选中一个,并且执行相应的功能;2、对于文件名下方的文本输入框,可获取打开文件的文件名;3、校验算法选择下拉菜单,选择好算法后,单击校验按钮就可得到校验码;4、对于mac地址输入框,我植入了正则表达式来对mac地址的格式进行判断;5、显示封装结果的JTextArea,在其中加入了滚轮,可以显示够长的封装结果。程序初始界面如下图:/WinClose.java/FileExtensionFilter.java/CRC8.java/CRC16.java/CRC64.java
4、/由于/CRCcheck.java代码过长,只给出部分代码各种测试结果如下:1、封装输入的数据以CRC64校验结果如下:2、封装输入的数据以CRC32校验结果如下:3、封装已有的txt文件数据以CRC16校验结果如下: 4、封装已有的txt文件数据以CRC8校验结果如下: 5、若目的地址或源地址输入有误时:5. 总结与体会在这学期末为时两周的课程设计中,我们成功的利用Java语言编出了一个带有可视化界面的窗体程序,实现了对以太网帧的封装。以太网数据帧由七部分组成:前导码,帧前界定符,目的MAC地址,源MAC地址,数据长度字段,数据和校验字段。前导码与帧前界定符一般是aa aa aa aa aa aa aa ab 共八个字节;目的和源地址是6B的十六进制组成(例:12-ab-1b-1c-2c-cb);数据长度字段大小为2B(数据长度在46E1500B);数据在封装之前也要转成十六进制数据;得到检验字段是数据帧的重要部分,可由CRC64、CRC32、CRC16、CRC8等校验方法校验得到。这次的课设中,我更深刻的了解了以太网帧的七大组成部分,也是第一次制作窗体程序,刚好这学期学了Java语言,这让我在课设中省了不少的体力。在与其他同学之间的默契配合下,不断完善程序功能,以致于成功实现两种获得数据的方法,总的来说本次课程设计中我学到了不少的知识。