下载此文档

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


文档分类:IT计算机 | 页数:约20页 举报非法文档有奖
1/20
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/20 下载此文档
文档列表 文档介绍
该【计算机网络课程设计帧封装 】是由【夜紫儿】上传分享,文档一共【20】页,该文档可以免费在线阅读,需要了解更多关于【计算机网络课程设计帧封装 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。学
号:
课程设计

学专

院业
帧封装
计算机科学与技术学院软件工程专业




软件0902班
指导教师
2023年 6 月20 日
xxx《计算机网络》课程设计说明书
10
课程设计任务书
学生姓名:
专业班级:
软件0902班
指导教师:
题目一:帧封装初始条件:
工作单位:
计算机学院
学****相关学问
C/C++/VC/VB/JAVA语言
PC机一台
要求完成的主要任务:〔包括课程设计工作量及其技术要求,以及说明书撰写等具体要求〕
编写程序,依据给出的原始数据,〔题目默认的输入文件为二进制原始数据〔文件名为input1和input2〕〕。
要求程序为命令行程序。比方,,则命令行形式如下:framerinputfileoutputfile
其中,inputfile为原始数据文件,outputfile为输出结果。使用操作系统、语言、编程环境不限,但在报告中必需注明。
输出:对应input1和input2的结果分别为output1和output2。
时间安排:
第一、二天:查阅资料,学****算法第三、四天:编程调试
第五天:书写报告
指导教师签名: 年 月 日
系主任〔或责任教师〕签名: 年 月 日
名目
引言 4
以太网帧格式的进展 4
5
错检测 6
实现步骤 7
前导符 7
目的地址及源地址 7
长度及数据字段 8
帧检验序列 8
源代码 10
运行结果例如 17
心得体会 18
参考文献 19
xxx《计算机网络》课程设计说明书
10
帧封装
引言
以太网这个术语通常是指由DEC、Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP承受的主要的局域网技术,它承受一种称作CSMA/CD的媒体接入方法。在TCP/IP世界中,以太网IP数据报文的封装在RFC894中定义。
以太网承受播送机制,全部与网络连接的工作站都可以看到网络上传递的数据。通过查看包含在帧中的目标地址,确定是否进展接收或放弃。假设证明数据确实是发给自己的,工作站将会接收数据并传递给高层协议进展处理。
以太网承受CSMA/CD〔CarrierSenseMultipleAccess/CollisionDetection〕媒体访问机制,任何工作站都可以在任何时间访问网络。在以太网中,全部的节点共享传输介质。如何保证传输介质有序、高效地为很多节点供给传输效劳,就是以太网的介质访问掌握协议要解决的问题。
帧是在数据链路层数据进展传输与交换的根本单位。构造帧对于理解网络协议的概念、协议执行过程以及网络问题处理的一般方法具有重要的意义。本次课程设计的目的是应用数据链路层与介质访问掌握层的学问,依据数据链路层的根本原理,通过构造一个具体的Ethernet帧,从而深入理解网络协议的根本概念与网络问题处理的一般方法。
以太网帧格式的进展
1980,DEC、Intel、Xerox制订了EthernetI的标准;1982,DEC、Intel、Xerox又制订了EhternetII的标准;1982,;
1983,;
1985,,,推出折衷的EthernetSNAP格式。
xxx《计算机网络》课程设计说明书
10

数据在网络上是以很小的称为帧〔Frame〕的单位传输的,帧由几局部组成,不同的局部执行不同的功能。帧通过特定的称为网络驱动程序的软件进展成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告知操作系统帧已到达,然后对其进展存储。
“帧”数据大致由两局部组成:帧头和帧数据。帧头包括接收方主机物理地址的定位以及其它网络信息。帧数据区含有一个数据体。为确保计算机能够解释数据帧中的数据,这两台计算机使用一种公用的通讯协议。互联网使用的通讯协议简称IP,即互联网协议。IP数据体由两局部组成:数据体头部和数据体的数据区。数据体头部包括IP源地址和IP目标地址,以及其它信息。数据体的数据区包括用户数据协议〔UDP〕,传输掌握协议〔TCP〕,还有数据包的其他信息。这些数据包都含有附加的进程信息以及实际数据。
前导符
目的地址
源地址
长度
数据
FCS
8 6 6 2 46–1500 4

常用的以太网MAC帧格式用两种标准,一种是DIXEthernetV2标准〔即以太网V2
标准〕,。,其格式如图
所示。
它的组成比较简洁,由6个字段组成。接下来对这6个局部具体介绍一下。
前导符:由7字节的前同步码和1字节的帧起始定界符构成。
前同步码:这个字段有7个字节〔56位〕交替消灭的1和0,它的作用就是提示接收系统有帧的到来,以及使到来的帧与计时器进展同步。前同步码其实是在物理层添加上去的,并不是〔正式的〕帧的一局部。前同步码的目标是允许物理层在接收到实际的帧起始符之前检测载波,并且与接收到的帧时序到达稳定同步。
帧起始定界符:这个字段用1字节〔10101011〕作为帧开头的信号,表示一帧的开头。最终两位是11,表示下面的字段是目的地址。
目的地址〔DA〕48位,表示帧预备发往目的站的地址,共6个字节,可以是单址〔代表单个站〕、多址〔代表一组站〕或全地址〔代表局域网上的全部站〕。
当目的地址消灭多址时,表示该帧被一组站同时接收,称为“组播”〔Multicast〕。目
xxx《计算机网络》课程设计说明书
10
的地址消灭全地址时,表示该帧被局域网上全部站同时接收,称为“播送”〔Broadcast〕,通常以DA的最高位来推断地址的类型,假设第一字节最低位为“0”则表示单址,第一字节最低位为“1”则表示组播。
源地址〔SA〕48位,说明该帧的数据是哪个网卡发的,即发送端的网卡地址。
该字段是“长度/类型”。当这个字段的值大于0X0600时〔相当于十进制的1536〕,就表示“类型”。这样的帧和以太网V2MAC帧完全一样。只有当这个字段的值小于0X0600时才表示“长度”,即MAC帧的数据局部长度。
数据字段的最小长度必需为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必需使用46字节的数据字段:假设填入该字段的信息少于46字节,该字段的其余局部也必需进展填充。数据字段的默认最大长度为1500字节。
帧检验序列〔FCS〕是32位冗余检验码〔CRC〕,检验除前导、SFD和FCS以外的内容。当发送站发出帧时,一边发送,一边逐位进展CRC检验。最终形成一个32位CRC检验和填在帧尾FCS位置中一起在媒体上传输。接收站接收后,从DA开头同样边接收边逐位进展CRC检验。最终接收站形成的检验和假设与帧的检验和一样,则表示媒体上传输帧未被破坏。反之,接收站认为帧被破坏,则会通过肯定的机制要求发送站重发该帧。
错检测
在校验字段中,使用的是CRC校验。校验的范围包括目的地址字段、源地址字段、长度字段、LLC数据字段。
循环冗余编码(CRC)是一种重要的线性分组码、编码和解码方法,具有简洁、检错和纠错力量强等特点,在通信领域广泛地用于实现过失掌握。CRC校验码的检错力量很强,不仅能检查出离散错误,还能检查出突发错误。
利用CRC进展检错的过程可简洁描述如下:在发送端依据要传送的k位二进制码序列,以肯定的规章产生一个校验用的r位监视码(CRC码),附在原始信息的后边,构成一个的二进制码序列(共k+r位),然后发送出去。在接收端,依据信息码和CRC码之间所遵循的规章进展检验,以确定传送中是否出错。这个规章在过失掌握理论中称为“生成多项式”。
循环冗余校验码的特点:
xxx《计算机网络》课程设计说明书
10
CRC校验码可检测出全部单个错误。
CRC校验码可检测出全部奇数位错误。
CRC校验码可检测出全部双位的错误。
CRC校验码可检测出全部小于、等于校验位长度的突发错误。
CRC校验码可以的概率检测出长度为(K+1)位的突发错误。
实现步骤
前导符
前导符包括7字节的前发送码和1字节的帧起始定界符。由于这些都是固定写法,因此添加起来格外简洁。对应方法如下。
publicstaticbooleanappendPrefix{
//前导符中前7个字节是交替消灭的1和0for(inti=0;i<7;++i){
(0XAA);
}
//(0XAB);
returntrue;
}
目的地址及源地址
我们知道,目的机器的硬件地址是通过ARP协议得到的,这需要发送ARP恳求包才能得到,为了简化程序的设计,突出本次设计的要点,因此将目的地址固定写成“FF:FF:FF:FF:FF:FF”。类似地,获得本机地址也需要通过一系列的函数调用,在程序中就直接写成的硬件地址“74:E5:0B:7D:CE:3A”。对应方法如下。
xxx《计算机网络》课程设计说明书
10
publicstaticbooleanappendAddress{
// 由于未显式要求目的地址,因此程序中将目的地址固定为
FF:FF:FF:FF:FF:FF
for(inti=0;i<6;++i){(0XFF);
}
//本机地址为74:E5:0B:7D:CE:3A
(0X74);(0XE5);(0X0B);(0X7D);(0XCE);(0X3A);
returntrue;
}
长度及数据字段
对于发送端来说,必需先获得数据的长度,将长度字段添加到帧中之后才能再添加数据字段,这就限定了必需访问输入文件两次,第一次用于获得文件长度,其次次用于封装帧。固然在进展CRC计算的时候有一些地方可以优化。
本程序的文件是通过FileInputStream进展读入,通过FileOutputStream进展输出。
帧检验序列
计算FCS是本程序最困难的局部。算法描述如下:
输入需要检验的序列M,以及发送方与接收方商定好的除数P,并初始化余数R
为0,假设P有n位,则R有n–1位;
xxx《计算机网络》课程设计说明书
10
对序列M中的每一位〔记为b〕进展步骤〔3〕。完毕后R即为FCS。
将R左移1位,并将b添加到R的最低位,推断R的最高位,假设是0,则连续〔3〕,假设是1,则将R和P进展按位与操作,结果保存到R中。

,其实现如下,其中curByte为一个字节,currentR为从开头到现在已经循环计算所得的余数。
publicstaticintnextR(intcurrentR,intcurByte){intmask=0X80;
intcurBit=0;
xxx《计算机网络》课程设计说明书
10
for(inti=0;i<8;++i,mask>>=1){
//计算当前位,0或者1
curBit=(curByte&mask)==0?0X0:0X1;
//首先将余数左移1位,并把当前位添加到余数的最低位currentR<<=1;
currentR+=curBit;
//推断余数最高位是否为0
//假设为1,则将除数和余数进展异或操作,将结果保存为余数if((currentR&MASK_HIGH)!=0){
currentR=currentR^P;
}
}
returncurrentR;
}
源代码
;
;;;;;;;
publicclassframer{
xxx《计算机网络》课程设计说明书
10

计算机网络课程设计帧封装 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数20
  • 收藏数0 收藏
  • 顶次数0
  • 上传人夜紫儿
  • 文件大小117 KB
  • 时间2023-02-05