封装Ethernet帧课程设计

封装Ethernet帧课程设计
封装Ethernet帧课程设计

目录

1.课程设计目的. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 2.课程设计要求. . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 3.相关知识. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 4.课程设计分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 5.相关扩展. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 6.程序代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 7.运行结果与分析. . . . . . . . . . . . . . . . . . . . . . . . . . . .16 8.参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

1课程设计目的

帧是在数据链路层中进行数据传输的基本单位。熟悉帧结构对于理解网络协议的概念、网络层次结构与协议执行过程具有重要的意义。本课程设计的主要目的是通过封装Ethernet帧,了解Ethernet帧中各个字段的含义与用途。

2 课程设计要求

根据后面介绍的IEEE802.3帧结构,编写程序将指定数据封装为Ethernet帧。

1)以命令行形式运行:

EncapFrame input_file output_file

其中,EncapFrame为程序名,input_file为输入数据文件,output_file为输出文件。

2) 输出内容:Ethernet帧的各字段内容。

3相关知识

1.帧

术语“帧”来源于串行线路上的通信。其中,发送者在发送数据的前后分别添加特殊的字符,使它们成为一个帧。Ethernet从某种程度上可以被看做是机器之间的数据链路层连接。

首先我们来认识一下帧结构,EthernerV2.0规范和IEEE802.3标准中的Ethernet帧结构有一些差别,这里我们按802.3标准的帧结构进行讨论。图为帧结构图

如上图所示,802.3标准的Ethernet帧结构由7部分组成。

(1)前导码与帧前定界符字段

前导码由56位(7B)的10101010…10101010位序列组成。帧前定界符可以视为前导码的延续。1B的帧前定界符结构为10101011.

如果将前导码与帧前定界符一起看,那么在62位101010…1010位序列之后出现11。在11之后是Ethernet帧的目的地址字段。前导码与帧前定界符主要是保证接收同步,这8B接收后不需要保留,也不记入帧头长度中。

(2)目的地址和源地址

目的地址(DA)与源地址(SA)分别表示帧的接收结点地址与发送结点的硬件地址。

在Ethernet帧中,目的地址和源地址字段长度可以是2B或6B。目前的Ethernet都使用6B长度的地址。

Ethernet帧的目的地址可以是单播地址、多播地址与广播地址,目的地址的第一位为0表示单播地址,为1表示多播地址,目的地址为全1则表示广播地址。

(3)长度字段

Ethernet帧用2B定义数据字段包含的字节数。协议规定,帧数据的最小长度为46B,最大长度为1500B。设置最小帧长度的目的是使每个接收结点能够有足够时间检测到冲突。

(4)数据字段

帧数据字段的最小长度为46B。如果帧的LLC数据少于46B,则应将数据字段填充只46B。填充字符是任意的,不计入长度字段值中。

(5)校验字段

帧校验字段(FCS)采用32位的CRC校验。校验的范围包括目的地址字段、源地址字段、长度字段、LLC数据字段。

此处,为了简便起见,采用8位的CRC校验。CRC校验的生成多项式为:

G(X)=X^8+X^2+X+1

某些帧结构中还会包括帧类型字段,用来识别此帧所承载的数据的类型。当一个帧到达指定的计算机时,操作系统根据帧类型决定用哪个协议软件模块对它进行处理。自识别帧的主要优点是,可以在同一物理网络中使用多个协议而互不干扰。

2.CRC校验

循环冗余编码的编码方式。

过程:在发送端,根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位监督码,附在原始信息的后边,构成一个新的二进制码序列,然后发送出去。在接收端,根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。

(1)C RC编码的代数学原理

将一个码组表示为一个多项式,码组中的各码元作为多项式的系数。设编码前的原始信息多项式为P(x),P(x)最高次幂加1等于k;生成多项式为G(x),它的最高次幂等于r;CRC多项式为R(x);编码后的带CRC的信息多项式为T(x)。

发送方编码的方法是:P(x)乘以x^r,再除以G(x),得余式即为R(x)。

接收方得解码方法是:将T(x)除以G(x),如果余数为0,则说明传输中无错误发生,否则说明传输有错误。

(2)C RC的基本实现

以CRC-8(X^8+X^2+X^1为例,它由多个移位寄存器和加法器组成。编码、解码前将各寄存器初始化为0,输入位作为最右边异或操作的输入之一。三个寄存器上的移位操作同时进行,均为左移一位,左边的寄存器的最左一位作为三个异或操作的输入之一。每次移位时,最右边的寄存器内容作为中间异或操作的输入之一,中间的寄存器的内容作为最左边异或操作输入之一,各个异或操作的结果作为与它左边那个寄存器的移入位。重复以上步骤,每输入一位就做一次移位操作,直到输入了所有要计算的数据为止。这时,这个寄存器组中的数据就是CRC-8的结果。

CRC的工作原理是:CRC在发送端编码和接收端校验时,都可以利用事先约定的生成多项式G(x)来得到,K位要发送的信息位可对应于一个(k-1)次多项式K(x),r位冗余位对应于一个(r-1)次多项式R(x),由r位冗余位组成的n=k+r位码对应于一个(n-1)次多项式T(x)=X^r*K(x)+R(x)。

(3)循环冗余校验码的特点

CRC校验码的检错能力很强,不仅能检查出离散错误,还能检查出突发错误.CRC校验码具有以下的检错能力:

CRC校验码可检测出所有单个错误,所有奇数位错误,所有双位的错误,所有小于、等于校验位长度的突发错误。

4课程设计分析

1.填充帧头部字段

要完成一次帧封装的过程,首先要完成的是帧头部的装入,这一过程只要将前导码、定界符、目的地址、源地址、长度字段的相应数值按顺序写入就可以了。其中,长度字段的值即为要发送的数据的实际长度。有以下两种方式来获得长度字段的值。

方法一:

While(!in.eof())

{in.get(a);

buf[j]=a;

j++;

}

方法二:

infile.open(argv[1],ios::binary);

infile.seekg(0,ios::end);

short length=(short)infile.tellg();

file.put(char(length/256));

file.put(char(length%256));

2.填充数据字段

在填充数据字段的过程中要注意的主要问题是数据字段的长度。802.3标准中规定了帧数据字段的最小长度为46B,最大长度为1500B。如果数据不足46B,则需要通过填充0来补足;若数据长度超过1500B,则将超过部分封装入下一个帧进行发送。

由于帧头部分应该包括6B目的地址、6B源地址、2B长度字段以及4B帧校验字段,因此帧头部分长度为18B。前导码与帧前定界符不计入帧头长度中。那么,Ethernet帧的最小长度为64B,最大长度为1518B。

填充数据字段的代码如下:

if(len==1500)

{…

len=0;

}

if(len<46)

{for(i=len;i<46;i++)

fr.data[i]=0x00;

}

data_len=len;

3.CRC校验

帧封装的最后一步就是对数据进行校验,并将校验结果记入帧校验字段。CRC编码实际上就是一个循环移位的模二运算。流程描述为:

把CRC中的值置为0

在原始数据input后添加8个0

while(数据未处理完)

begin

if(crc首位是1)

crc=crc XOR 100000111

把crc中的值左移一位,从input中读取一位新的数据并置于crc的0位

crc中的后8位就是经过CRC-8校验的余数。这样,我们只需要看后8位即可,因此上面流程可以简化。构造一个8位的寄存器crc,初始值为0,数据依次移入crc的0位,同时crc的7位移出。当移出的数据为1时,crc才和00000111进行XOR运算;移出数据为0时,不做运算。每次crc中数据位为1时还需要对crc0位进行处理

伪代码:

while(数据未处理完)

begin

if(crc的首位是1)

crc左移1位

crc=crc XOR 00000111

else

crc左移1位

if(从input中读入的新的数据为1)

将crc 0位置1

end

5相关扩展

1.比特型运算法

定义一个寄存器组,初始化为全1.依照电路图,每输入一个信息位,相当于一个时钟

脉冲到来,从高到低依次移位。移位前信息位与bit0相加产生临时位,其中bit15移入临时位,bit10、bit3还要加上临时位。当全部信息位输入完成后,从寄存器组取出它们的值,这就是CRC码。

该算法的代码如下:

typedef union

{u16 val;

struct

{u16 bit0:1;

u16 bit1:1;

}bits;

}CRCREGS

CRCRESGS regs;

void crcInitRegisters()

{regs.val=0xffff;

}

void crcInputBit(bit in)

{bit a;

a=regs.bits.bit0^in;

regs.bits.bit0=regs.bits.bit1;

regs.bits.bit1= regs.bits.bit2;

regs.bits.bit2= regs.bits.bit3;

regs.bits.bit3= regs.bits.bit4^a;

regs.bits.bit4= regs.bits.bit5;

regs.bits.bit5= regs.bits.bit6;

regs.bits.bit6= regs.bits.bit7;

regs.bits.bit7= regs.bits.bit8;

regs.bits.bit8= regs.bits.bit9;

regs.bits.bit9= regs.bits.bit10;

regs.bits.bit10= regs.bits.bit11^a;

regs.bits.bit11= regs.bits.bit12;

regs.bits.bit12= regs.bits.bit13;

regs.bits.bit13= regs.bits.bit14;

regs.bits.bit14= regs.bits.bit15;

regs.bits.bit15=a;

}

u16 crcGetRegisters()

{return regs.val;}

crcInputBit(bit in)

{bit a;

a=regs.bits.bit0^in;

regs.val>>1;

if(a) regs.val^=0x8408;

}

2.字节型算法

数字通信系统一般是对一帧数据进行CRC校验,而字节是帧的基本单位。最常用的是一种按字节查表的快速算法。该算法基于这样一个事实:计算本字节后的CRC码,等于上一字节CRC右移8位和本字节之和再与上一字节余式CRC码的低8位左移8位相加后所求得的CRC码。如果我们把8位二进制序列数的CRC全部计算出来,放在一个表里,那么编码时只要从表中查找对应的值进行处理即可。

算法如下:

1)寄存器组初始化为全1。

2)寄存器组向右移动一个字节。

3)刚移出的那个字节与数据字节进行异或运算,得出一个指向值表的索引。

4)将索引所指的表值与寄存器组做异或运算。

5)数据指针加1,如果数据没有全部处理完,则重复步骤2.

6)寄存器组取反,得到CRC,附加在数据之后。

验证算法:

1)寄存器组初始化为全1.

2)寄存器组向右移动一个字节。

3)刚移出的那个字节与数据字节进行异或运算,得出一个指向值表的索引。

4)将索引所指的表值与寄存器组做异或运算。

5)数据指针加1,如果数据没有全部处理完,则重复步骤2.

6)判断寄存器组的值是否等于“Magic Value”,若相等则通过,

7)否则失败。

图2程序流程图:

图3.CRC计算流程图

6程序代码

#include

#include

void main(int argc,char*argv[])

{

if(argc!=3)

{

cout<<"请按以下格式输入命令行: framer inputfile outputfile"<

return;

}

fstream file;

file.open(argv[2],ios::in|ios::out|ios::binary|ios::trunc);

for(int i=0;i<7;i++) file.put(char(0xaa));

file.put(char(0xab));

long pCrcs=file.tellp();

char dst_addr[6]={char(0x00),char(0x00),char(0x80),char(0x1a),char(0xe6),char(0x65)};

file.write(dst_addr,sizeof(dst_addr));

ifstream infile;

infile.open(argv[1],ios::binary);

infile.seekg(0,ios::end);

short length=(short)infile.tellg();

file.put(char(length/256));

file.put(char(length%256));

char*data=new char[length];

infile.seekg(0,ios::beg);

infile.read(data,length);

infile.close();

delete data;

if(length<46) for(int i=0; i<46-length;i++) ;file.put(char(0x00));

long pCrc=file.tellp();

file.put(char(0x00));

short total=short(file.tellp())-(short)pCrcs;

file.seekg(pCrcs,ios::beg);

unsigned char crc=0;

while(total--)

{

unsigned char temp;

file.get(temp);

for(unsigned char i=(unsigned char)0x80;i>0;i>>=1)

{

if(crc&0x80)

{

crc<<=1;

if(temp&i) crc^=0x01;

crc^=0x07;

}

else

{

crc<<=1;

if(temp&i) crc^=0x01;

}

}

}

file.seekg(pCrc,ios::beg);

file.put(crc);

while(!file.eof())

{

unsigned char temp;

file.get(temp);

cout<

}

cout<<"帧文件"<

}

7运行结果与分析

图4.运行结果图1

图5.运行结果图2

实验小结:

实现帧的封装,主要是将帧的七个部分---前导码、帧前定界符、目的地址、源地址、长度字段、数据字段和校验字段,一个一个按顺序封装的,最后使得一个帧的封装得以完成。同时,在编写程序的过程中,用到了很多的函数,这些函数的运用使得程序简便而且正确的运行出来。

8参考文献

[1]谢希仁编著. 计算机网络(第6版) .北京:电子工业出版社,2012

[2]吴宜功吴英编著. 计算机网络课程设计(第2版). 北京: 机械工业出版社,2012

以太网帧的封装实验

实训报告以太网帧的封装实验 1.实训目的 1)观察以太网帧的封装格式 2)对比单播以太网帧和广播以太网帧的目标MAC地址 2.实训拓扑图 以太网帧实验拓扑 PC IP地址子网掩码 PC0 PC1 PC2 PC3 3.主要操作步骤及实训结果记录 (1)任务一:观察单播以太网帧的封装 步骤1:准备工作 打开对应文件,完成初始化,删除练习文件中预设场景 步骤2:捕获数据包 进入Simulation模式。添加数据包,单击auto capture/play捕获数据包,再次单击停止捕获 步骤3:观察以太网帧的封装格式 步骤4:观察该广播包的以太网封装

DEST MAC: MAC: 步骤4:观察交换机是否会修改以太网帧各字段取值 DEST MAC:MAC:

(2)任务二:观察广播以太网帧的封装 步骤1:捕获数据包 Pc0数据帧被交换机转发给pc1、pc2、pc3(所有节点),pc1、pc2、pc3(所有节点)接收该广播帧。 步骤2:观察该广播包的以太网封装 DEST MAC:字段的取值: MAC字段取值的含义:广播地址。

4.实训结果分析及心得体会 (1)任务一中,观察到以太网帧封装格式中前导字段的取值是什么阐述其在数据帧传输过程中的作用。 答:任务一中,前导码字段取值为···1010;以太网使用曼彻斯特编码传输数据,其特征是每个码元中间有一次电压的跳变,用于接收方提取同步信号,以太网帧中的前导码有何作用前导码是为了隔离每个以太网帧的,也是定位符。因为以太网是变长的,所以每个帧之间需要前导来区分。 (2)任务一中,Switch0转发数据帧时是否修改其源MAC地址和目标MAC地址 答:switch0转发给pc2地数据帧中源MAC地址和目标MAC地址并未进行修改。 (3)交换机接收数据帧后,依据什么判断该数据帧是单播还是广播或依据什么判断向哪个目标节点转发 答:交换机工作在数据链路层,依据数据帧中的目标MAC地址的取值判断数据帧是单播还是广播,依据目标MAC地址判断向哪个目标节点转发。

以太网帧格式

以太网帧格式 百科名片 现在的以太网帧格式 以太网帧格式,即在以太网帧头、帧尾中用于实现以太网功能的域。目录

编辑本段 编辑本段历史分类 1.Ethernet V1 这是最原始的一种格式,是由Xerox PARC提出的3Mbps CSMA/CD以太网标准的封装格式,后来在1980年由DEC,Intel和Xerox标准化形成Ethernet V1标准. 2.Ethernet V2(ARPA) 由DEC,Intel和Xerox在1982年公布其标准,主要更改了Ethernet V1的电气特性和物理接口,在帧格式上并无变化;Ethernet V2出现后迅速取

代Ethernet V1成为以太网事实标准;Ethernet V2帧头结构为6bytes的源地址+6bytes的目标地址+2Bytes的协议类型字段+数据。 以太网帧格式 3.RAW 802.3 这是1983年Novell发布其划时代的Netware/86网络套件时采用的私有以太网帧格式,该格式以当时尚未正式发布的802.3标准为基础;但是当两年以后IEEE正式发布802.3标准时情况发生了变化—IEEE在802.3帧头中又加入了802.2 LLC(Logical Link Control)头,这使得Novell的RAW 802.3格式跟正式的IEEE 802.3标准互不兼容. 4.802.3/802.2 LLC 这是IEEE 正式的802.3标准,它由Ethernet V2发展而来。它将Ethernet V2帧头的协议类型字段替换为帧长度字段(取值为0000-05dc;十进制的1500);并加入802.2 LLC头用以标志上层协议,LLC头中包含DSAP,SSAP以及Crontrol字段. 5.802.3/802.2 SNAP 这是IEEE为保证在802.2 LLC上支持更多的上层协议同时更好的支持IP协议而发布的标准,与802.3/802.2 LLC一样802.3/802.2 SNAP也带有LLC头,但是扩展了LLC属性,新添加了一个2Bytes的协议类型域(同时将SAP的值置为AA),从而使其可以标识更多的上层协议类型;另外添加了一个3Bytes的OUI字段用于代表不同的组织,RFC 1042定义了IP报文在802.2网络中的封装方法和ARP协议在802.2 SANP中的实现. 802.3以太网帧格式备注: 前导码(7字节)、帧起始定界符(1字节)、目的MAC地址(6字节)、源MAC地址(6字节)、类型/长度(2字节)、数据(46~1500字节)、帧校验序列(4字节)[MAC地址可以用2-6字节来表示,原则上是这样,实际都是6字节] 图2 IEEE802.3以太帧头

实验二使用Wireshark分析以太网帧与ARP协议

实验二使用Wireshark分析以太网帧与ARP协议 一、实验目的 分析以太网帧,MAC地址和ARP协议 二、实验环境 与因特网连接的计算机网络系统;主机操作系统为windows;使用Wireshark、IE等软件。 三、实验步骤: IP地址用于标识因特网上每台主机,而端口号则用于区别在同一台主机上运行的不同网络应用程序。在链路层,有介质访问控制(Media Access Control,MAC)地址。在局域网中,每个网络设备必须有唯一的MAC地址。设备监听共享通信介质以获取目标MAC地址与自己相匹配的分组。 Wireshark 能把MAC地址的组织标识转化为代表生产商的字符串,例如,00:06:5b:e3:4d:1a也能以Dell:e3:4d:1a显示,因为组织唯一标识符00:06:5b属于Dell。地址ff:ff:ff:ff:ff:ff是一个特殊的MAC地址,意味着数据应该广播到局域网的所有设备。 在因特网上,IP地址用于主机间通信,无论它们是否属于同一局域网。同一局域网间主机间数据传输前,发送方首先要把目的IP地址转换成对应的MAC 地址。这通过地址解析协议ARP实现。每台主机以ARP高速缓存形式维护一张已知IP分组就放在链路层帧的数据部分,而帧的目的地址将被设置为ARP高速缓存中找到的MAC地址。如果没有发现IP地址的转换项,那么本机将广播一个报文,要求具有此IP地址的主机用它的MAC地址作出响应。具有该IP地址的主机直接应答请求方,并且把新的映射项填入ARP高速缓存。 发送分组到本地网外的主机,需要跨越一组独立的本地网,这些本地网通过称为网关或路由器的中间机器连接。网关有多个网络接口卡,用它们同时连接多个本地网。最初的发送者或源主机直接通过本地网发送数据到本地网关,网关转发数据报到其它网关,直到最后到达目的主机所在的本地网的网关。 1、俘获和分析以太网帧 (1)选择工具->Internet 选项->删除文件

以太网帧的封装与成帧设计

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2015年秋季学期 计算机通信课程设计 题目:以太网帧的封装与成帧设计 专业班级: 姓名: 学号: 指导教师:王慧琴 成绩:

摘要 从二十世纪八十年代开始,以太网就成为最普遍采用的网络技术,它统治着世界各地的局域网和企业骨干网,并且正在向局域网发起攻击。随着万兆以太网标准的提出,以太网为征服广域网、存储和宽带领域中的新领地做好了准备。以太网帧的封装和成帧是以太网快速迅猛发展的基础。本课题根据帧的具体结构,将帧结构中目的地址源地址等与数据一起进行封装并解析,构造一个具体的Ethernet帧,通过实现帧的封装和成帧,来了解网络通信协议的基本工作原理,掌握基本思路和方法。 关键词:以太网帧;封装;成帧;库函数

目录 前言 (1) 一、基本原理 (2) 1、以太网的工作原理 (2) 2、以太网帧格式的发展 (3) 3、 IEEE802.3帧结构 (4) 4、错检测 (5) 二、需求分析 (7) 三、系统设计与分析 (8) 1、系统分析 (8) 2、系统设计 (11) 以太网帧的封装 (12) 以太网帧的解析 (13) 四、系统结果 (15) 五、心得体会 (16) 六、参考文献 (17) 七、附录 (18)

前言 以太网这个术语通常是指由DEC、Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD 的媒体接入方法。在TCP/IP世界中,以太网IP数据报文的封装在RFC 894中定义。 1976年,梅特卡夫和他的助手David Boggs发表了一篇名为《以太网:局域计算机网络的分布式包交换技术》的文章。1977年底,梅特卡夫和他的合作者获得了“具有冲突检测的多点数据通信系统”的专利。多点传输系统被称为CSMA/CD(带冲突检测的载波侦听多路访问),从此标志以太网的诞生。

以太网帧格式

以太网帧格式详解: Etherne II 报头8 目标地址6 源地址6 以太类型2 有效负载46-1500 帧检验序列4 报头:8个字节,前7个0,1交替的字节(10101010)用来同步接收站,一个1010101011字节指出帧的开始位置。报头提供接收器同步和帧定界服务。 目标地址:6个字节,单播、多播或者广播。单播地址也叫个人、物理、硬件或MAC地址。广播地址全为1,0xFF FF FF FF。 源地址:6个字节。指出发送节点的单点广播地址。 以太网类型:2个字节,用来指出以太网帧内所含的上层协议。即帧格式的协议标识符。对于IP报文来说,该字段值是0x0800。对于ARP信息来说,以太类型字段的值是0x0806。 有效负载:由一个上层协议的协议数据单元PDU构成。可以发送的最大有效负载是1500字节。由于以太网的冲突检测特性,有效负载至少是46个字节。如果上层协议数据单元长度少于46个字节,必须增补到46个字节。 帧检验序列:4个字节。验证比特完整性。 IEEE 802.3 根据IEEE802.2 和802.3标准创建的,由一个IEEE802.3报头和报尾以及一个802.2LLC报头组成。 报头7 起始限定符1 目标地址6(2)源地址6(2)长度2 DSAP1 SSAP1 控件2 有效负载3 帧检验序列4 -----------802.3报头--------------§- --802.2报头----§ §-802.3报尾-§

IEEE802.3报头和报尾 报头:7个字节,同步接收站。位序列10101010 起始限定符:1个字节,帧开始位置的位序列10101011。 报头+起始限定符=Ethernet II的报头 目标地址:同Ethernet II。也可以为2个字节,很少用。 源地址:同Ethernet II。也可以为2个字节,很少用。 长度:2个字节。 帧检验序列:4个字节。 IEEE802.2 LLC报头 DSAP:1个字节,指出帧的目标节点的上层协议。Destination Service Access Point SSAP:1个字节,指出帧的源节点的上层协议。Source Service Access Point DSAP和SSAP相当于IEEE802.3帧格式的协议标识符。为IP定义的DSAP和SSAP 字段值是0x06。但一般使用SNAP报头。 控件:1-2个字节。取决于封装的是LLC数据报(Type1 LLC)还是LLC通话的一部分(Type2 LLC)。 Type1 LLC:1个字节的控件字段,是一种无连接,不可靠的LLC数据报。无编号信息,UI帧,0x03。 Type2 LLC:2个字节的控件字段,是一种面向连接,可靠的LLC对话。 对IP和ARP,从不使用可靠的LLC服务。所以,都只用Type1 LLC,控件字段设为0x03。 区分两种帧 根据源地址段后的前两个字节的类型不同。 如果值大于1500(0x05DC),说明是以太网类型字段,EthernetII帧格式。值小于等于1500,说明是长度字段,IEEE802.3帧格式。因为类型字段值最小的是0x0600。而长度最大为1500。 IEEE802.3 SNAP 虽然为IP定义的SAP是0x06,但业内并不使用该值。RFC1042规定在IEEE802.3, 802.4, 802.5网络上发送的IP数据报和ARP帧必须使用SNAP(Sub Network Access Prototol)封装格式。 报头7 起始限定符1 目标地址6 源地址6 长度2 DSAP1 SSAP1 控件1 组织代码3 以太类型2 IP数据报帧检验序列 ----IEEE802.3报头-----------§IEEE8023 LLC报头---§--SNAP报头----§ §802.3报尾§ 0x0A 0x0A 0x03 0x00-00-00 0x08-00 (38-1492字节) Ethernet地址 为了标识以太网上的每台主机,需要给每台主机上的网络适配器(网络接口卡)分配一个唯一的通信地址,即Ethernet地址或称为网卡的物理地址、MAC 地址。 IEEE负责为网络适配器制造厂商分配Ethernet地址块,各厂商为自己生产的每块网络适配器分配一个唯一的Ethernet地址。因为在每块网络适配器出厂时,其Ethernet地址就已被烧录到网络适配器中。所以,有时我们也将此地址称为烧录地址(Burned-In-Address,BIA)。

(整理)以太网帧格式EthernetⅡ和ETHERNET8023IEEE8022SAP和SNAP的区别

EthernetⅡ/ETHERNET 802.3 IEEE802.2.SAP/SNAP的区别 1.Ethernet V1:这是最原始的一种格式,是由Xerox PARC提出的3Mbps CSMA/CD 以太网标准的封装格式,后来在1980年由DEC,Intel和Xerox标准化形成Ethernet V1标准; 2.Ethernet V2(ARPA): 这是最常见的一种以太网帧格式,也是今天以太网的事实标准,由DEC,Intel 和Xerox在1982年公布其标准,主要更改了Ethernet V1的电气特性和物理接口,在帧格式上并无变化;Ethernet V2出现后迅速取代Ethernet V1成为以太网事实标准;Ethernet V2帧头结构为6bytes的源地址+6bytes的目标地址 +2Bytes的协议类型字段+数据。 常见协议类型如下: 0800 IP 0806 ARP 8137 Novell IPX 809b Apple Talk 如果协议类型字段取值为0000-05dc(十进制的0-1500),则该帧就不是Ethernet V2(ARPA)类型了,而是下面讲到的三种802.3帧类型之一;Ethernet可以支持TCP/IP,Novell IPX/SPX,Apple Talk Phase I等协议;RFC 894定义了IP报文在Ethernet V2上的封装格式; Ethernet_II中所包含的字段:

在每种格式的以太网帧的开始处都有64比特(8字节)的前导字符,如图所示。其中,前7个字节称为前同步码(Preamble),内容是16进制数0xAA,最后1字节为帧起始标志符0xAB,它标识着以太网帧的开始。前导字符的作用是使接收节点进行同步并做好接收数据帧的准备。 ——PR:同步位,用于收发双方的时钟同步,同时也指明了传输的速率(10M和100M的时钟频率不一样,所以100M网卡可以兼容10M网卡),是56位的二进制数101010101010..... ——SD: 分隔位,表示下面跟着的是真正的数据,而不是同步时钟,为8位的10101011,跟同步位不同的是最后2位是11而不是10. ——DA:目的地址,以太网的地址为48位(6个字节)二进制地址,表明该帧传输给哪个网卡.如果为FFFFFFFFFFFF,则是广播地址,广播地址的数据可以被任何网 卡接收到. ——SA:源地址,48位,表明该帧的数据是哪个网卡发的,即发送端的网卡地址, 同样是6个字节. ----TYPE:类型字段,表明该帧的数据是什么类型的数据,不同的协议的类型字段不同。如:0800H 表示数据为IP包,0806H 表示数据为ARP包,814CH是SNMP 包,8137H为IPX/SPX包,(小于0600H的值是用于IEEE802的,表示数据包的长度。) ----DATA:数据段,该段数据不能超过1500字节。因为以太网规定整个传输包的最大长度不能超过1514字节。(14字节为DA,SA,TYPE) ----PAD:填充位。由于以太网帧传输的数据包最小不能小于60字节, 除去(DA,SA,TYPE 14字节),还必须传输46字节的数据,当数据段的数据不足46字节时,后面补000000.....(当然也可以补其它值) ----FCS:32位数据校验位.为32位的CRC校验,该校验由网卡自动计算,自动生成,自动校验,自动在数据段后面填入.对于数据的校验算法,我们无需了解.

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

课程设计 题目帧封装 学院计算机科学与技术学院专业软件工程专业 班级软件0902班 姓名 指导教师 2012 年 6 月20 日

课程设计任务书 学生:专业班级:软件0902班 指导教师:工作单位:计算机学院 题目一: 帧封装 初始条件: (1)学习相关知识 (2)C/C++/VC/VB/JAVA语言 (3)PC机一台 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 编写程序,根据给出的原始数据,组装一个IEEE802.3格式的帧(题目默认的输入文件为二进制原始数据(文件名为input1和input2))。 1)要求程序为命令行程序。比如,可执行文件名为framer.exe,则命令行形式如下: framer inputfile outputfile 其中,inputfile为原始数据文件,outputfile为输出结果。使用操作系统、语言、编程环境不限,但在报告中必须注明。 2)输出:对应input1和input2的结果分别为output1和output2。 时间安排: 第一、二天:查阅资料,学习算法 第三、四天:编程调试 第五天:书写报告 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 1.引言 (4) 2.以太网帧格式的发展 (4) 3.IEEE802.3帧结构 (5) 4.错检测 (6) 5.实现步骤 (7) 5.1前导符 (7) 5.2目的地址及源地址 (7) 5.3长度及数据字段 (8) 5.4帧检验序列 (8) 6.源代码 (10) 7.运行结果示例 (17) 8.心得体会 (18) 9.参考文献 (19)

计算机网络课程设计报告 帧封装

课程设计报告 课程名称:计算机网络课程设计 设计题目:帧封装 姓名: 专业:计算机科学与技术 班级:计算机13-3班 学号:

计算机科学与技术学院 2016年1 月1 日 设计项目:帧封装 一、选题背景 以太网这个术语通常是指由DEC、Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD的媒体接入方法。在TCP/IP世界中,以太网IP数据报文的封装在RFC894中定义。 以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。通过查看包含在帧中的目标地址,确定是否进行接收或放弃。如果证明数据确实是发给自己的,工作站将会接收数据并传递给高层协议进行处理。 以太网采用CSMA/CD(Carrier Sense Multiple Access/Collision Detection)媒体访问机制,任何工作站都可以在任何时间访问网络。在以太网中,所有的节点共享传输介质。如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题。 帧是在数据链路层数据进行传输与交换的基本单位。构造帧对于理解网络协议的概念、协议执行过程以及网络问题处理的一般方法具有重要的意义。本次课程设计的目的是应用数据链路层与介质访问控制层的知识,根据数据链路层的基本原理,通过构造一个具体的Ethernet帧,从而深入理解网络协议的基本概念与网络问题处理的一般方法。

二.设计思路 数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。 “帧”数据大致由两部分组成:帧头和帧数据。帧头包括接收方主机物理地址的定位以及其它网络信息。帧数据区含有一个数据体。为确保计算机能够解释数据帧中的数据,这两台计算机使用一种公用的通讯协议。互联网使用的通讯协议简称IP,即互联网协议。IP 数据体由两部分组成:数据体头部和数据体的数据区。数据体头部包括IP源地址和IP目标地址,以及其它信息。数据体的数据区包括用户数据协议(UDP),传输控制协议(TCP),还有数据包的其他信息。这些数据包都含有附加的进程信息以及实际数据 以802.3的帧结构由六部分组成: 常用的以太网MAC帧格式用两种标准,一种是DIX Ethernet V2标准(即以太网V2标准),另一种是IEEE的802.3标准。这里只介绍符合IEEE802.3标准的帧,其格式如上图所示。

计算机网络课程设计-帧封装

课程设计 】 题目帧封装 学院计算机科学与技术学院 专业软件工程专业 班级 ? 软件0902班 姓名 指导教师 [ 2012年6月20日'

课程设计任务书 学生姓名:专业班级:软件0902班 指导教师:工作单位:计算机学院 题目一: 帧封装 初始条件: (1)学习相关知识 " (2)C/C++/VC/VB/JAVA语言 (3)PC机一台 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 编写程序,根据给出的原始数据,组装一个格式的帧(题目默认的输入文件为二进制原始数据(文件名为input1和input2))。 1)要求程序为命令行程序。比如,可执行文件名为,则命令行形式如下: framer inputfile outputfile 其中,inputfile为原始数据文件,outputfile为输出结果。使用操作系统、语言、编程环境不限,但在报告中必须注明。 - 2)输出:对应input1和input2的结果分别为output1和output2。 时间安排: 第一、二天:查阅资料,学习算法 第三、四天:编程调试 第五天:书写报告 指导教师签名:年月日。 系主任(或责任教师)签名:年月日

目录 1.引言 (4) 2.以太网帧格式的发展 (4) 3.帧结构 (5) 4.错检测 (6) : 5.实现步骤 (7) 前导符 (7) 目的地址及源地址 (7) 长度及数据字段 (8) 帧检验序列 (8) 6.源代码 (10) 7.运行结果示例 (17) 8.心得体会 (18) ~ 9.参考文献 (19)

帧封装 1.引言 以太网这个术语通常是指由DEC、Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD的媒体接入方法。在TCP/IP世界中,以太网IP数据报文的封装在RFC 894中定义。 以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。通过查看包含在帧中的目标地址,确定是否进行接收或放弃。如果证明数据确实是发给自己的,工作站将会接收数据并传递给高层协议进行处理。 以太网采用CSMA/CD(Carrier Sense Multiple Access/Collision Detection)媒体访问机制,任何工作站都可以在任何时间访问网络。在以太网中,所有的节点共享传输介质。如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题。 < 帧是在数据链路层数据进行传输与交换的基本单位。构造帧对于理解网络协议的概念、协议执行过程以及网络问题处理的一般方法具有重要的意义。本次课程设计的目的是应用数据链路层与介质访问控制层的知识,根据数据链路层的基本原理,通过构造一个具体的Ethernet帧,从而深入理解网络协议的基本概念与网络问题处理的一般方法。 2.以太网帧格式的发展 1980,DEC、Intel、Xerox制订了Ethernet I的标准; 1982,DEC、Intel、Xerox又制订了Ehternet II的标准; 1982,IEEE开始研究Ethernet的国际标准; 1983,迫不及待的Novell基于IEEE的的原始版开发了专用的Ethernet帧格式; 1985,IEEE推出IEEE 规范,后来为解决EthernetII与帧格式的兼容问题,推出折

关于以太网和Vlan的几种封装

以下是各种封装: 1.以太网II封装: 以太网技术的基础是以太网帧,也作标准以太网帧,也称为ARPA,即以太网II帧(最初的以太网II标准也称为DIX,由Digital,Intel和Xerox三家 发起公司的首字母拼合而成)。帧格式如下: 图1:以太网II报文格式 下面解释以太网II帧中的各个字段: ?Preamble—也作“Syncword”,用来同步。(在这里为10101010) ?Des-MAC—此目的地址可以是广播地址0xFFFFFFFFFFFF;可以是基于目的节点MAC地址的特定的48比特的单播地址;或者多播地址。此 MAC地址可以从协议同步期间消息的源地址字段中找到。 ?Sou-MAC—此源地址是发送方的48比特的MAC地址。 ?Type—即“以太网类型”,此字段用于识别上层协议。(详见下文) ?Payload—负载,即数据,包含了封装的数据(如:IP分组)。以太网II 的数据有效长度范围是46~1500字节。 ?FCS—此字段包含32比特的循环冗余校验(Cyclic Redundancy Check,CRC)值,用来校验损坏的帧。 最初的以太网II帧格式有一些缺陷。为了允许冲突检测,10Mbits/s以太网 要求分组大小最小为64字节。这就意味着如果帧长达不到标准就必须用0 来填充短帧。因此,上层协议需要包含一个“长度”字段来将实际数据与填充值区分开来。 幸运的是,为“以太网类型”字段所分配的值—0x0600XNS(施乐)、 0x0800IP(Internet协议)和0x6003DECNET—总是大于十进制值1500 (0x05DC)这一最大帧长度。所以IEEE的802委员会对这一任务的解决方案提供了一个标准,即802.3。此方法通过以长度两个8位组的“类型/协 议”字段代替同样两个8位组的“以太网类型”字段。从而将以太网II帧 与802.3帧区分开来。具体如下: ?如果此字段值大于十进制值1500,则此字段表示以太网类 型,且是类型II。 ?如果此字段值小于等于十进制值1500,则此字段表示长度, 且是802.3。(相见2. IEEE 802.3 LLC封装中的描述) 2.IEEE 802.3 LLC封装:

以太网帧格式分析

实验报告 实验名称以太网帧格式分析 姓名学号实验日期 实验报告要求:1.实验目的 2.实验要求 3.实验环境 4.实验作业 5.问题及解决 6.思考问题 7.实验体会 【实验目的】 1.复习Wireshark抓包工具的使用及数据包分析方法。 2.通过分析以太网帧了解以太网数据包传输原理。 【实验要求】 用Wireshark1.4.9截包,分析数据包。 观察以太网帧,Ping同学的IP地址,得到自己和同学的mac地址。 观察以太网广播地址,观察ARP请求的帧中目标mac地址的格式。 用ping-l指定数据包长度,观察最小帧长和最大帧长。 观察封装IP和ARP的帧中的类型字段。 【实验环境】 用以太网交换机连接起来的windows 7操作系统的计算机,通过802.1x方式接入Internet。 【实验中出现问题及解决方法】 1.在使用命令行“ping -l 0 IP”观察最小帧长时抓到了长度为42字节的帧,与理论上最小帧长64字节相差甚远。通过询问教员和简单的分析,知道了缺少字节的原因是当Wireshark抓到这个ping请求包时,物理层还没有将填充(Trailer)字符加到数据段后面,也没有算出最后4字节的校验和序列,导致出现最小42字节的“半成品”帧。可以通过网卡的设置将这个过程提前。 2.在做ping同学主机的实验中,发现抓到的所有ping请求帧中IP数据部分的头校验和都是错误的。原本以为错误的原因与上一个问题有关,即校验和错误是因为物理层还没有将填充字符加到数据段后面。但是这个想法很快被证明是错误的,因为在观察最大帧长时,不需要填充字符的帧也有同样的错误。一个有趣的现象是,封装在更里层的ICMP数据包的校验和都是正确的。这就表明IP层的头校验和错误并没有影响正常通信。进一步观察发现,这些出错的头校验和的值都是0x0000,这显然不是偶然的错误。虽然目前还没有得到权威的答案,但是可以推测,可能是这一项校验实际上并没有被启用。作为中间层的IP头的意义是承上启下,而校验的工作在更需要的上层的IMCP包和下层MAC头中都有,因此没有必要多此一举。 【思考问题】 1.为什么可以ping到同宿舍(连接在同一个交换机上)的主机而ping不到隔壁宿舍的主机? 通常情况下,如果配置正确,设备都连接着同一个网络(互联网),而且没有防火墙等阻拦,就可以正常ping到同一网络中的任何主机。在第一次实验中,我们曾成功地ping到了https://www.360docs.net/doc/cb18505569.html,的IP。 在ping其他宿舍的IP时需要通过宿舍的交换机将ping请求先转发给楼层交换机,再由楼层交换机转发给目标IP所在的宿舍交换机。分析无法ping到隔壁宿舍主机的原因,很可能是楼层交换机设置了禁止内部ping的防火墙,阻止了本楼层交换机地址段内的主机相互ping对方。而同宿舍之所以可以相互ping 到,是因为ping请求没有经过楼层交换机,直接由宿舍交换机转发给了目标IP主机。 2.什么是ARP攻击? 让我们继续分析4.1 ARP原理,A得到ARP应答后,将B的MAC地址放入本机缓存。但是本机MAC 缓存是有生存期的,生存期结束后,将再次重复上面的过程。(类似与我们所学的学习网桥)。 然而,ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。 这时,我们假设局域网中的某台机器C冒充B向A发送一个自己伪造的ARP应答,即IP地址为B

2-2 以太网帧的封装实验

科目:计算机网络专业:计算机应用技术班级:K0314320 姓名:王杰学号:K031432013 日期:20160503 1.实验目的: ①观察以太网帧的封装格式。 ②对比单播以太网帧和广播以太网帧的目标MAC地址。 2.实验拓扑图: 以太网帧实验拓扑 3.主要操作步骤及实验结果记录: 任务一:观察单播以太网帧的封装 ?步骤1:准备工作 打开对应文件,完成初始化,删除练习文件中预设场景, ?步骤2:捕获数据包 进入Simulation模式。添加数据包,单击auto capture/play捕获数据包,再次单击停止捕获。 ?步骤3:观察以太网帧的封装格式。 观察ethernet对应的封装格式。 DEST MAC:000A.4189.ADC6 SRC MAC:0060.2F6C.C118

?步骤4:观察交换机是否会修改以太网帧各字段取值 DEST MAC:000A.4189.ADC6 SRC MAC:0060.2F6C.C118 任务二:观察广播以太网帧的封装 ?步骤1:捕获数据包 Pc0数据帧被交换机转发给pc1、pc2、pc3(所有节点),pc1、pc2、pc3(所有节点)接收该广播帧。 ?步骤2:观察该广播包的以太网封装 DEST MAC:字段的取值:FFFF.FFFF.FFFF DEST MAC字段取值的含义:广播地址。 4.实验结果分析: (1)任务一中,观察到以太网帧封装格式中前导字段的取值是什么?阐述其在数据帧传输过程中的作用。 答:任务一中,前导码字段取值为10101010···1010;以太网使用曼彻斯特编码传输数据,其特征是每个码元中间有一次电压的跳变,用于接收方提取同步信号,前导码的作用就是接收方提取同步信号,实现与发送方的时钟同步。 10101010…1010;作用:以太网使用曼彻斯特编码传输数据,其特征是每个码元中间有一次电压的跳变,用于接收方提取同步信号,前导码的作用就是供接收方提取同步信号,实现与发送方的时钟同步。 (2)任务一中,Switch0转发数据帧时是否修改其源MAC地址和目标MAC地址? 答:switch0转发给pc2地数据帧中源MAC地址和目标MAC地址并未进行修改。 (3)交换机接收数据帧后,依据什么判断该数据帧是单播还是广播?或依据什么判断向哪个目标节点转发? 答:交换机工作在数据链路层,依据数据帧中的目标MAC地址的取值判断数据帧是单播还是广播,依据目标MAC地址判断向哪个目标节点转发。

常见以太网帧结构详解

常见以太网帧结构详解 1 以太网相关背景 以太网这个术语通常是指由DEC,Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD的媒体接入方法。几年后,IEEE802委员会公布了一个稍有不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络;此三种帧的通用部分由802.2标准来定义,也就是我们熟悉的802网络共有的逻辑链路控制(LLC)。由于目前CSMA/CD的媒体接入方式占主流,因此本文仅对以太网和IEEE 802.3的帧格式作详细的分析。 在TCP/IP世界中,以太网IP数据报文的封装在RFC 894中定义,IEEE802.3网络的IP数据报文封装在RFC 1042中定义。标准规定: 1)主机必须能发送和接收采用RFC 894(以太网)封装格式的分组; 2)主机应该能接收RFC 1042(IEEE 802.3)封装格式的分组; 3)主机可以发送采用RFC 1042(IEEE 802.3)封装格式的分组。 如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是RFC 894(以太网)。 最常使用的封装格式是RFC 894定义的格式,俗称Ethernet II或者Ethernet DIX。 下面,我们就以Ethernet II称呼RFC 894定义的以太帧, 以IEEE802.3称呼RFC 1042定义的以太帧。 2 帧格式 Ethernet II和IEEE802.3的帧格式分别如下。 Ethernet II帧格式: ---------------------------------------------------------------------------------------------- | 前序 | 目的地址 | 源地址 | 类型 | 数据 | FCS | ---------------------------------------------------------------------------------------------- | 8 byte | 6 byte | 6 byte | 2 byte | 46~1500 byte | 4 byte| IEEE802.3一般帧格式 -------------------------------------------------------------------------------------------------------------- | 前序 | 帧起始定界符 | 目的地址 | 源地址 | 长度 | 数据 | FCS | ------------------------------------------------------------------------------------------------------------ | 7 byte | 1 byte | 2/6 byte |2/6 byte| 2 byte | 46~1500 byte | 4 byte | Ethernet II和IEEE802.3的帧格式比较类似,主要的不同点在于前者定义的2字节的类型,而后者定义的是2字节的长度;所幸的是,后者定义的有效长度值与前者定义的有效类型值无一相同,这样就容易区分两种帧格式了。 一、前序字段 前序字段由8个(Ethernet II)或7个(IEEE802.3)字节的交替出现的1和0组成,设置该字段的目的是指示帧的开始并便于网络中的所有接收器均能与到达帧同步,另外,该字段本身(在Ethernet II中)或与帧起始定界符一起(在IEEE802.3中)能保证各帧之间用于错误检测和恢复操作的时间间隔不小于9.6毫秒。 二、帧起始定界符字段 该字段仅在IEEE802.3标准中有效,它可以被看作前序字段的延续。实际上,该字段的组成方式继续使用前序字段中的格式,这个一个字节的字段的前6个比特位置由交替出现的1和0构成。该字段的最后两个比特位置是11,这两位中断了同步模式并提醒接收后面跟随的是帧数据。 当控制器将接收帧送入其缓冲器时,前序字段和帧起始定界符字段均被去除。类似地当控制器发送帧时,它将这两个字段(如果传输的是IEEE802.3帧)或一个前序字段(如果传输的是真正的以太网帧)作为前缀加入帧中。 三、目的地址字段

802.3帧和EthernetII帧格式的区别

局域网包括:以太网、令牌环、光纤分布式数据接口FDDI。 IP数据报必须用数据链路层的报文和报尾封装后才能在物理媒介上发送。数据链路层的报文和报尾提供以下服务: 1. 定界帧彼此分开。每个帧的开始和结束位置被标出,其有效负载也与报头报尾分开。 2. 协议识别许多组织使用不同协议套件,如TCP/IP,IPX或AppleTalk,每种协议必须区分开。 3. 寻址为了共享以太网等局域网技术,必须指出源节点和目标节点。 4.比特级完整性检验每帧校验和形式检查比特级错误。 同一网段上的所有节点(通过路由器连在一起)必须使用相同的帧格式才能相互通信。 以太网发展: 最早:美国夏威夷大学ALOHA 9.6Kbit/s无线电发射系统,所有发射器共享同一频段,争用技术。1972年,施乐公司研制2.94Mbit/s网络,称作以太网,检测载波,先监听再发射。 1979年,DIX(Digital、Intel、Xerox)研制行业标准,10Mbit/s以太网,即Ethernet II。 1981年,IEEE Project802成立802.3 小组委员会,使10Mbit/s以太网成为国际标准。 1995年,IEEE批准了100Mbit/s以太网,称为快速以太网。 Etherne II 报头8 目标地址6 源地址6 以太类型2 有效负载46-1500 帧检验序列4 报头:8个字节,前7个0,1交替的字节(10101010)用来同步接收站,一个1010101011字节指出帧的开始位置。报头提供接收器同步和帧定界服务。 目标地址:6个字节,单播、多播或者广播。单播地址也叫个人、物理、硬件或MAC地址。广播地址全为1,0xFF FF FF FF。 源地址:6个字节。指出发送节点的单点广播地址。 以太类型:2个字节,用来指出以太网帧内所含的上层协议。即帧格式的协议标识符。对于IP报文来说,该字段值是0x0800。对于ARP信息来说,以太类型字段的值是0x0806。 有效负载:由一个上层协议的协议数据单元PDU构成。可以发送的最大有效负载是1500字节。由于以太网的冲突检测特性,有效负载至少是46个字节。如果上层协议数据单元长度少于46个字节,必须增补到46个字节。 帧检验序列:4个字节。验证比特完整性。 IEEE 802.3 根据IEEE802.2 和802.3标准创建的,由一个IEEE802.3报头和报尾以及一个802.2LLC报头组成。

20134-以太网帧的封装

计算机科学与技术学院计算机网络实验报告 年级2013 学号姓名成绩 专业2013计科实验地点c1-422 指导教师 实验项目以太网帧的封装实验日期2016-4-15 实验报告要求: 一、实验目的 1.观察以太网帧的封装格式。 2. 对比单波以太网和广播以太网的目标MAC地址。 二、实验原理 单播地址:拥有单播地址的数据帧发送给唯一一个站点,该站点的MAC地址与目标MAC地址相同。拥有单播地址的数据帧称为单播帧。 多播地址:拥有多播地址的帧发送给网络中由组播地址指定的一组站点。拥有多播地址的数据帧称为多播帧。 广播地址:拥有广播地址的帧发送给网络中所有的站点。拥有广播地址的数据帧称为广播帧。 三、实验要求 1.拓扑图 如图2-7所示,4台PC(PC0-PC3)通过一台交换机组成一个简单的以太网。 2.IP地址配置

四、实验步骤、结果及分析 任务一: 步骤一、 打开该实验对应的练习文件“2-2以太网帧的封装实验.pka”,若此时交换机端口指示灯呈橙色,则单击主窗口右下角Realtime和Simulation模式切换按钮数次,直至交换机指示灯呈绿色。此步骤可加速完成交换机的初始化。 单击下方Delete按钮,删除练习文件中的预设场景。 步骤二、 进入Simulation模式。设置Event List Filters只显示ICMP事件。 单击Add Simple PDU按钮,在拓扑图中添加PC0到PC2发送的数据包。 单击Auto Capture/Play按钮,捕获数据包。当PC2发送的响应包返回PC0后通信结束,再次单击Auto Capture/Play按钮,停止数据包的捕获。 步骤三、 选择事件列表中第二个数据包,单击其右端Info项中的色块。注意弹出窗口信息——PDU Information at Device:Switch0。在弹出窗口中选择Inbound PDU Details 选项卡。 观察其中Ethernet对应的封装格式。重点观察第一个字段PREAMVBLE的组成,DEST MAC和SRC MAC的取值,并将其记录下来。 步骤四、 选择时间列表中第三个数据包,单击其右端单击其右端Info项中的色块。注意弹出窗口信息——PDU Information at Device:Switch0。在弹出窗口中选择Inbound PDU Details选项卡。 仔细观察其中Ehternet各字段取值,与步骤2中观察的各字段取值进行对比,看哪些字段取值发生了变化。重点观察DEST MAC和SRC MAC。 任务二: 步骤一、 单击下方Delete按钮,删除任务一中的产生场景。 单击Add Complex PDU按钮,单击PC0,在弹出的对话框中设置参数:Destination IP Address设置为255.255.255.255;Source IP Address设置为 192.168.1.1;Sequence Number设置为1;Simulation Settings选中One Shot,其Time设置为1。然后单击该对话框下方的Create PDU按钮,创建数据包。 单击Auto Capture/Play按钮,捕获数据包。当不再产生数据包时,表示通信结束,可再次单击Auto Capture/Play按钮,停止捕获。 步骤二、 选择时间列表中第二个数据包,单击其右端单击其右端Info项中的色块。注意弹出窗口信息——PDU Information at Device:Switch0。在弹出窗口中选择Inbound PDU Details选项卡。 观察其中Ethernet对应的封装格式。重点观察第一个字段PREAMVBLE的组成,DEST MA的取值。 截图:

相关文档
最新文档