数据帧封装实验文档剖析.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据帧封装实验文档剖析

程序开发的基础知识帧的描述术语“帧”来源于串行线路上的通信。其中,发送者在发送数据的前后各添加特殊的字符,使它们成为一个帧。Ethernet从某种程度上可以被看作是机器之间的数据链路层连接。按802.3标准的帧结构如表1.1所示,802.3标准的Ethernet帧结构由6部分组成:表1.1 802.3标准的帧结构前导码帧前定界符目的地址源地址长度字段数据字段校验字段7B1B(2/6B)(2/6B)(2B)(长度可变)(4B)前导码与帧前定界符字段前导码由56位(7B)101010位序列组成。帧前定界符可以视为前导码的延续。1B的帧前定界符结构如果将前导码与帧前定界符一起看,那么在62位101010…1010位序列之后出现11。在11之后是Ethernet的目的地址字段。前导码与帧前定界符主要是保证接收同步,这8B接收后不需要保留,也不记入帧头长度中。目的地址和源地址目的地址(DA)与源地址(SA)分别表示帧的接收结点地址与发送结点的硬件地址。在Ethernet帧中,目的地址和源地址字段长度可以是2B或6B。目前的Ethernet都使用6B(即(48位)长度的地址。Ethernet帧的地址可以是单播地址(unicast address)、多播地址(multicastadderss)与广播地址(broadcastaddress),目的地址的第一位为0表示单播地址,为1表示多播地址,目的地址为全1则表示广播地址。长度字段802.3标准中的帧用2B定义数据字段包含的字节数。协议规定,帧数据的最小长度为46B,最大长度为1500H。设置最小帧长度的目的是使每个接收结点能够有足够的时间检测到冲突。数据字段帧数据字段的最小长度为46B,最大为1500B。如果帧的LLC数据少于46B,则应将数据字段填充至46B。设置最小帧长度的目的是使每个接收点能够由足够的时间检测到冲突。填充字符是任意的,不计入长度字段值中。校验字段帧校验字段(FCS)彩位的CRC校验。校验的范围包括目的地址字段、源地址字段、长度字段、LLC数据字段。在这个程序实现中,彩位的CRC校验。CRC校验的生成多项式为:某些帧结构中还会包括帧类型字段,用来识别此帧所承载的数据的类型。当一个帧到达指定的计算机时,操作系统根据帧类型决定用哪个协议软件模块对它进行处理。自识别帧的主要优点是,可以在同一物理网络中使用多个协议而互不干扰。CRC校验循环冗余编码(Cyclic Redundanry Code,CRC)是一种重要的线性分组码、编码和解码方法,具有简单、检错和纠错能力强等特点,在通信领域广泛地用于实现差错控制。利用CRC进行检错的过程可简单描述如下:在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位监督码(CRC码),附在原始信息的后边,构成一个新的二进制码序列(共k+r位),然后发送出去。在接收端,根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则在差错控制理论中称为“生成多项式”。CRC编码的代数学原理在代数编码理论中,将一个码组表示为一个多项式,码组中的各码元作为多项式的系数。例如,1100101表示为,即。设编码前的原始信息多项式为P(x),P(x)的最高幂次加1等于k;生成多项式为G(x),G(x)的最高幂次等于r;CRC多项式为R(x);编码后的带CRC的信息多项式为T(x)。发送方编码的方法是:将P(x)乘以(即对应的二进制码序列左移r位),再除以G(x),即用二进制的模2运算进行乘M的运算,得余式即为R(x)。用模2运算进行加法时不进位,如,1111+1010=0101。减法和加法一样,按加法规则计算。用公式可以表示为: [2]接收方解码的方法是:将T(x)除以G(x),如果余数为0,则说明传输中无错误发生,否则说明传输有误。例如,信息码为1100,生成多项式为1011,即,,则可以用以下方法计算CRC:即R(x)=x。注意到G(x)的最高幂次r=3,得出CRC为010。如果用竖式除法,计算过程为:因此,,即1100000+010=1100010。如果传输无误,无余式。看一下上面的竖式除法,如果被除数是1100010,显然在商第3个1时,就能除尽。CRC的基本实现以CRC-8为例(如图1.1所示),它由多个移位寄存器和加法器组成。编码、解码前将各寄存器初始化为0,输入位作为最右边异或操作的输入之一。三个寄存器上的移位操作同时进行,均为左移一位,左边寄存器的最左一位作为三个异或操作的输入之一。每次移位时,最右边的寄存器内容作为中间异或的输入之一,中间的寄存器的内容作为最左边异或操作输入之一,各个异或操作的结果作为与它左边那个寄存

文档评论(0)

586334000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档