收藏 分享(赏)

计算机网络课程设计 帧封装.doc

上传人:tangtianxu2 文档编号:2891486 上传时间:2018-09-29 格式:DOC 页数:21 大小:95.29KB
下载 相关 举报
计算机网络课程设计 帧封装.doc_第1页
第1页 / 共21页
计算机网络课程设计 帧封装.doc_第2页
第2页 / 共21页
计算机网络课程设计 帧封装.doc_第3页
第3页 / 共21页
计算机网络课程设计 帧封装.doc_第4页
第4页 / 共21页
计算机网络课程设计 帧封装.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、学 号: 课 程 设 计题 目 帧封装学 院 计算机科学与技术学院专 业 软件工程专业班 级 软件 0902 班姓 名指导教师2012 年 6 月 20 日xxx计算机网络课程设计说明书2课程设计任务书学生姓名: 专业班级: 软件 0902 班 指导教师: 工作单位: 计算机学院 题目一: 帧封装 初始条件:(1)学习相关知识(2)C/C+/VC/VB/JAVA 语言(3)PC 机一台要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)编写程序,根据给出的原始数据,组装一个 IEEE802.3 格式的帧(题目默认的输入文件为二进制原始数据(文件名为 input1

2、和 input2) ) 。1)要求程序为命令行程序。比如,可执行文件名为 framer.exe,则命令行形式如下:framer inputfile outputfile其中,inputfile 为原始数据文件,outputfile 为输出结果。使用操作系统、语言、编程环境不限,但在报告中必须注明。2)输出:对应 input1 和 input2 的结果分别为 output1 和 output2。时间安排:第一、二天:查阅资料,学习算法第三、四天:编程调试第五天:书写报告指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日xxx计算机网络课程设计说明书3目录1. 引言 .42. 以太网

3、帧格式的发展 .43. IEEE802.3 帧结构 54. 错检测 65. 实现步骤 75.1 前导符 75.2 目的地址及源地址 75.3 长度及数据字段 85.4 帧检验序列 86. 源代码 107. 运行结果示例 178. 心得体会 189. 参考文献 19xxx计算机网络课程设计说明书4帧封装1. 引言以太网这个术语通常是指由 DEC、Intel 和 Xerox 公司在 1982 年联合公布的一个标准,它是当今 TCP/IP 采用的主要的局域网技术,它采用一种称作 CSMA/CD 的媒体接入方法。在 TCP/IP 世界中,以太网 IP 数据报文的封装在 RFC 894 中定义。以太网采

4、用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。通过查看包含在帧中的目标地址,确定是否进行接收或放弃。如果证明数据确实是发给自己的,工作站将会接收数据并传递给高层协议进行处理。以太网采用 CSMA/CD(Carrier Sense Multiple Access/Collision Detection)媒体访问机制,任何工作站都可以在任何时间访问网络。在以太网中,所有的节点共享传输介质。如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题。帧是在数据链路层数据进行传输与交换的基本单位。构造帧对于理解网络协议的概念、协议执行过程以及网络问题处

5、理的一般方法具有重要的意义。本次课程设计的目的是应用数据链路层与介质访问控制层的知识,根据数据链路层的基本原理,通过构造一个具体的 Ethernet 帧,从而深入理解网络协议的基本概念与网络问题处理的一般方法。2. 以太网帧格式的发展1980,DEC、Intel、Xerox 制订了 Ethernet I 的标准;1982,DEC、Intel、Xerox 又制订了 Ehternet II 的标准;1982,IEEE 开始研究 Ethernet 的国际标准 802.3;1983,迫不及待的 Novell 基于 IEEE 的 802.3 的原始版开发了专用的 Ethernet 帧格式;1985,IE

6、EE 推出 IEEE 802.3 规范,后来为解决 EthernetII 与 802.3 帧格式的兼容问题,推出折衷的 Ethernet SNAP 格式。xxx计算机网络课程设计说明书53. IEEE802.3 帧结构数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。“帧”数据大致由两部分组成:帧头和帧数据。帧头包括接收方主机物理地址的定位以及

7、其它网络信息。帧数据区含有一个数据体。为确保计算机能够解释数据帧中的数据,这两台计算机使用一种公用的通讯协议。互联网使用的通讯协议简称 IP,即互联网协议。IP 数据体由两部分组成:数据体头部和数据体的数据区。数据体头部包括 IP 源地址和 IP 目标地址,以及其它信息。数据体的数据区包括用户数据协议( UDP) ,传输控制协议(TCP) ,还有数据包的其他信息。这些数据包都含有附加的进程信息以及实际数据。8 6 6 2 46 1500 4前导符 目的地址 源地址 长度 数据 FCS图 3.1 IEEE802.3 帧结构常用的以太网 MAC 帧格式用两种标准,一种是 DIX Ethernet

8、V2 标准(即以太网 V2标准) ,另一种是 IEEE 的 802.3 标准。这里只介绍符合 IEEE802.3 标准的帧,其格式如图3.1 所示。它的组成比较简单,由 6 个字段组成。接下来对这 6 个部分详细介绍一下。(1)前导符:由 7 字节的前同步码和 1 字节的帧起始定界符构成。前同步码:这个字段有 7 个字节(56 位)交替出现的 1 和 0,它的作用就是提醒接收系统有帧的到来,以及使到来的帧与计时器进行同步。前同步码其实是在物理层添加上去的,并不是(正式的)帧的一部分。前同步码的目标是允许物理层在接收到实际的帧起始符之前检测载波,并且与接收到的帧时序达到稳定同步。帧起始定界符:这

9、个字段用 1 字节(10101011)作为帧开始的信号,表示一帧的开始。最后两位是 11,表示下面的字段是目的地址。(2)目的地址(DA) 48 位,表示帧准备发往目的站的地址,共 6 个字节,可以是单址(代表单个站) 、多址(代表一组站)或全地址(代表局域网上的所有站) 。xxx计算机网络课程设计说明书6当目的地址出现多址时,表示该帧被一组站同时接收,称为“组播” (Multicast) 。目的地址出现全地址时,表示该帧被局域网上所有站同时接收,称为“广播” (Broadcast) ,通常以 DA 的最高位来判断地址的类型,若第一字节最低位为“0”则表示单址,第一字节最低位为“1”则表示组播

10、。(3)源地址(SA)48 位,表明该帧的数据是哪个网卡发的,即发送端的网卡地址。(4)该字段是“长度/类型” 。当这个字段的值大于 0X0600 时(相当于十进制的1536) ,就表示“类型” 。这样的帧和以太网 V2 MAC 帧完全一样。只有当这个字段的值小于 0X0600 时才表示“长度” ,即 MAC 帧的数据部分长度。(5)数据字段的最小长度必须为 46 字节以保证帧长至少为 64 字节,这意味着传输一字节信息也必须使用 46 字节的数据字段:如果填入该字段的信息少于 46 字节,该字段的其余部分也必须进行填充。数据字段的默认最大长度为 1500 字节。(6)帧检验序列(FCS)是

11、32 位冗余检验码(CRC) ,检验除前导、SFD 和 FCS 以外的内容。当发送站发出帧时,一边发送,一边逐位进行 CRC 检验。最后形成一个 32位 CRC 检验和填在帧尾 FCS 位置中一起在媒体上传输。接收站接收后,从 DA 开始同样边接收边逐位进行 CRC 检验。最后接收站形成的检验和若与帧的检验和相同,则表示媒体上传输帧未被破坏。反之,接收站认为帧被破坏,则会通过一定的机制要求发送站重发该帧。4. 错检测在校验字段中,使用的是 CRC 校验。校验的范围包括目的地址字段、源地址字段、长度字段、LLC 数据字段。循环冗余编码(CRC)是一种重要的线性分组码、编码和解码方法,具有简单、检

12、错和纠错能力强等特点,在通信领域广泛地用于实现差错控制。CRC 校验码的检错能力很强,不仅能检查出离散错误,还能检查出突发错误。利用 CRC 进行检错的过程可简单描述如下:在发送端根据要传送的 k 位二进制码序列,以一定的规则产生一个校验用的 r 位监督码(CRC 码),附在原始信息的后边,构成一个新的二进制码序列(共 k+r 位),然后发送出去。在接收端,根据信息码和 CRC 码之间xxx计算机网络课程设计说明书7所遵循的规则进行检验,以确定传送中是否出错。这个规则在差错控制理论中称为“生成多项式” 。循环冗余校验码的特点:(1)CRC 校验码可检测出所有单个错误。(2)CRC 校验码可检测

13、出所有奇数位错误。(3)CRC 校验码可检测出所有双位的错误。(4)CRC 校验码可检测出所有小于、等于校验位长度的突发错误。(5)CRC 校验码可以 的概率检测出长度为(K+1)位的突发错误。5. 实现步骤前导符前导符包括 7 字节的前发送码和 1 字节的帧起始定界符。由于这些都是固定写法,因此添加起来非常简单。对应方法如下。public static boolean appendPrefix() / 前导符中前 7 个字节是交替出现的 1 和 0for (int i = 0; i = 1) / 计算当前位,0 或者 1curBit = (curByte / 首先将余数左移 1 位,并把当前

14、位添加到余数的最低位currentR 8);tmp.add(size);/ 然后添加数据字段for (int i = 0; datai != -1 out.write(R 16);out.write(R 8);out.write(R); catch (IOException e) e.printStackTrace();return false;return true;xxx计算机网络课程设计说明书16public static int nextR(int currentR, int curByte) int mask = 0X80;int curBit = 0;for (int i = 0;

15、 i = 1) / 计算当前位,0 或者 1curBit = (curByte / 首先将余数左移 1 位,并把当前位添加到余数的最低位currentR tmp = new LinkedList();7. 运行结果示例为了演示需要,首先新建一个文本文件,内容为“ChenJiaHui” (不含引号) ,如图7.1 所示。用文本文件的一个好处是可以方便的检测输出文件(即帧的格式)是否正确。图 7.1 输入文件接下来将源程序进行编译和运行。命令“javac”表示将源代码编译成类文件。命令“java”表示执行一个类文件,其后跟着的“input1 input2”分别表示输入文件和输出文件,其中输入文件是

16、所要包装的数据,即上文提到的文本文件,输出文件表示将帧封装好之后保存到哪个文件中,文件不存在时自动创建,存在时会覆盖。如图 7.2 所示。图 7.2 编译运行由于实验只需要将数据封装成帧,并不要求检验,但如果不检验的话,又不知道是否封装正确,因此我另外写了一段程序,用以检验帧是否封装正确。在图 7.3 中可以看到,这个类的名字为“check ”,它接收一个参数,用以指明所要检验的帧,这里是“input2” ,即由 framer 程序产生的帧文件。由于 input2 是一个二进制文件,因此无法通过一般的编xxx计算机网络课程设计说明书18辑器将其打开以查看其中的内容。图 7.3 检测输出文件第一

17、行有 64 位,前 56 位是前同步码,后 8 位是帧起始定界符。第二行是目的地址。因为没有显示指定目的地址,所以程序中将目的地址设为“FF:FF:FF:FF:FF:FF”。第三行是源地址。源地址为本机的 MAC 地址。第四行是长度,表示原输入文件的大小。由于输入文件 input1 只含有“ChenJiahui”10 个字符,因此该文件的大小的确是 10.接下来十行是源文件中的 10 个字节,为了避免输出过于冗余,所以只输出前 10 个字节,可以看到,每个字节均对应正确的字符,比如“1000011”表示字符“C” 。最后四行是 4 个字节的 FCS。以上输出中,有些字节不足 8 位,是因为均忽

18、略了前导 0。8. 心得体会xxx计算机网络课程设计说明书19帧是数据链路层最重要的概念。数据链路层属于计算机网络的低层。我们知道,两个主机之间的数据传输,总是在一段一段的链路上传送的,也就是说,在两个相邻结点之间(主机和路由器或两个路由器之间)传送数据是直接传送的(点对点) 。这时就需要专门的链路层的协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP 数据报组装成帧(framing ) ,在两个相邻结点间的链路上“透明”地传送帧(frame)中的数据。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等) 。典型的帧长是几百字节到一千多字节。在接收数据时,控制信息

19、使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层收到一个帧后,就可从中提取出数据部分,上交给网络层。控制信息还使接收端能够检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出现差错的帧,以免继续传送下去白白浪费网络资源。在此次的课程设计中,刚开始两天我先是收集资料,查阅了很多帧的封装的知识,对帧及其封装的方法有了一定程度的了解和掌握。从最开始对帧的一个模糊的印象到对帧的结构的完全掌握,有了很大的收获,并且使帧的封装得以实现。同时,在近一周的课程设计中,我的动手能力得到了很大的提高,而且将这学期所学的网络的知识和以前所学的编程的知识充分的联系起来,对这门课

20、的认识又提高了一层。除此之外,在做课程设计的时候也遇到了很多的问题,最后在同学的帮助下正确的解决了。从最开始的遇到问题到最后的正确解决问题,我懂得了正确出来问题的方法,也知道了自己的不足之处。此次的课程设计也是一个认识自我的好机会。9. 参考文献1 谢希仁. 计算机网络. 第 5 版. 北京. 电子工业出版社. 2008.1.12 唐朔飞. 计算机组成原理. 第 2 版. 北京. 高等教育出版社. 2008.1.13 (美)特南鲍姆, (美)韦瑟罗尔 著. 严伟,潘爱民 译. 计算机网络. 第 5 版. 北京. 清华大学出版社. 2012.3.14 (美)埃克尔 著. 陈昊鹏 译. Java 编程思想 . 第 4 版. 北京. 机械工业出版社. 2007.6.1xxx计算机网络课程设计说明书20本科生课程设计成绩评定表班级:软件工程 0902 班 姓名: 学号:序号 评分项目 满分 实得分1 学习态度认真、遵守纪律 102 设计分析合理性 103设计方案正确性、可行性、创造性204 设计结果正确性 405 设计报告的规范性 106 设计验收 10总得分/等级评语:注:最终成绩以五级分制记。优(90-100 分) 、良(80-89 分) 、中(70-79 分) 、及格(60-69 分) 、60 分以下为不及格指导教师签名:201 年 月 日xxx计算机网络课程设计说明书21

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报