Ethernet帧结构解析..
ethernet的拓扑结构
ethernet的拓扑结构
以太网是一种常见的局域网技术,它可以采用不同的拓扑结构来连接设备。常见的以太网拓扑结构包括总线型、星型和环型。
首先,总线型拓扑结构是指所有设备都连接到同一根传输介质(通常是一根电缆),设备通过共享这根传输介质来进行通信。在总线型拓扑结构中,所有设备可以看到在传输介质上发送的所有数据帧,但每个设备只能接收并处理发送给它的数据帧。
其次,星型拓扑结构是指所有设备都连接到一个集线器或交换机,集线器或交换机起到中继数据的作用。在星型拓扑结构中,每个设备通过独立的链路与集线器或交换机相连,这样可以提高网络的可靠性和扩展性。
最后,环型拓扑结构是指每个设备都与相邻的两个设备相连,形成一个闭合的环路。在环型拓扑结构中,数据帧沿着环路传输,每个设备都可以接收并发送数据帧。这种拓扑结构通常使用双绞线或光纤作为传输介质。
除了这些常见的以太网拓扑结构外,还有混合拓扑结构,即将
不同的拓扑结构组合在一起,以满足特定的网络需求。例如,一个大型以太网网络可能会采用星型拓扑结构的子网,而这些子网之间则采用总线型或环型拓扑结构相连。
总的来说,以太网可以根据不同的拓扑结构来构建局域网,每种拓扑结构都有其特点和适用场景,网络管理员需要根据实际情况选择合适的拓扑结构来搭建网络。
以太网(Ethernet)的帧结构
IEEE802.3帧结构
帧前 帧校 前导 目的 源地 数据 定界 验字 长度 码 地址 址 字段 符 段 46~1 7B 1B 6B 6B 2B 4B 500B
Ethernet V2.0帧结构组成详解
1)前导码与帧前定界符字段 ) 2)目的地址和源地址字段 ) 3)类型字段 ) 4)数据字段 5)帧校验字段
以太网( 以太网(Ethernet)的帧结构 )
以太网(wk.baidu.comthernet)的帧结构
1.Ethernet V2.0帧结构 2. IEEE802.3帧结构 3. Ethernet V2.0帧结构组成详解
Ethernet V2.0帧结构
帧前 帧校 前导 目的 源地 数据 定界 验字 类型 码 地址 址 字段 符 段 46~1 7B 1B 6B 6B 2B 4B 500B 注:Ethernet帧的最小长度为64B,最大长 度为1518B。(前导码与帧前定界符不计入 帧头长度中)
前导码与帧前定界符字段
前导码的组成: 前导码的组成:56位(7B)10101010…10 1010比特序列。 作用: 作用:提醒接收系统有帧的到来,以及使到来的 帧与计时器进行同步。 帧前定界符的组成: 帧前定界符的组成:8位(1B)10101011比特 序列。 作用: 作用:表示下面的字段是目的地址。
数据字段
数据字段的组成: 数据字段的组成:长度在46~1500B之间的比 特序列。 特点: 特点:如果数据的长度少于46B,需要加填充 字节,补充到46B。填充字节是任意的,不计 入长度字段中。
Ethernet帧结构解析程序C++
char temp; outfile.get(temp);
>>= 1)
for (unsigned char i = (unsigned char)0x80; i>0; i
{ if (crc & 0x80) { crc <<= 1; if (temp) crc ^= 0x01;
crc ^= 0x70; } else {
crc <<= 1; if (temp&i)
crc ^= 0x01; } } } outfile.seekp(nCrc, ios::beg); //将文件写指针移到数据字 段后 outfile << crc << endl; //将CRC余数写入帧校验字段 cout << "帧校验字段:" << hex << (int)crc << dec << "(" << (int)crc << ")" << endl;
//计算封帧个数 int truelen = data.length(); //数据的真实长度 int length = data.length(); int frameTotal = 0; //总的帧的个数 if (length>MAXLENGTH) {
列出ethernet v2标准的数据帧的5个字段
列出ethernet v2标准的数据帧的5个字段
Ethernet V2标准是以太网传输技术的第二个版本,它在网络通信中广泛应用。Ethernet V2数据帧是实现数据传输的基本单位,具有特定的结构。本文将介绍Ethernet V2数据帧的5个字段,并阐述它们的作用和意义。
1.目的地址(Destination MAC Address):目的地址字段用于标识数据帧的接收方。它位于数据帧的开头,长度为6字节。发送方通过目的地址字段将数据帧发送到接收方。接收方在接收到数据帧后,根据目的地址字段判断是否需要处理这个数据帧。如果目的地址与接收方的MAC地址匹配,则接收方会处理这个数据帧;如果不匹配,则数据帧会被丢弃。
2.源地址(Source MAC Address):源地址字段用于标识数据帧的发送方。它位于数据帧的目的地址之后,长度也为6字节。发送方通过源地址字段将自己的MAC地址附加到数据帧中,以便接收方能够识别发送方。同时,源地址字段有助于实现数据帧的追踪和路由。
3.类型(Type):类型字段用于指示数据帧中所携带的数据类型。它位于源地址字段之后,长度为2字节。类型字段的值表示数据帧中数据部分的字节顺序,常用的值为0x0806(IPV4)和0x0815(ARP)。接收方根据类型字段值判断数据帧中携带的数据是否为己知类型,从而决定如何处理数据帧。
4.数据(Data):数据字段是数据帧的核心部分,用于承载实际传输的数据。数据字段的长度可变,根据数据类型和实际需求而定。在数据传输过程中,发送方将数据加载到数据字段中,接收方收到数据帧后,根据数据字段中的数据进行处理。数据字段长度的不固定性使得Ethernet V2标准具有较高的
以太数据帧结构
DIX Ethernet V2数据帧结构:
前导码
帧
启
始 定
目的地址
界
ቤተ መጻሕፍቲ ባይዱ
符
源地址
类 型
数据
帧校验 序列
(FCS)
7字节
1
字
6字节
节
6字节
2
字
46~1500字节
节
数据链路层封装
物理层封装
4字节
802.3数据帧格式区别在于将“类型”字段拆分为“长度 / 类型”
1、字段值>1500 时,表示“类型”,此时与以太网 V2 帧完全一样。 2、字段值<=1500时,表示“长度”,此时“数据”字段须装入LLC 帧。
G(2)二进制值
二进制 模二除法
二进制 余数
余数不够 高位 0 凑
Data
CRC
对方使用相同G(x) 一定能够整除
三、随堂练习
一、判断题
1、以太数据帧中,类型字段代表该数据帧是802.3帧还是Ethernet II帧 ( )
2、每个以太数据帧能够封装的最大网络层报文大小为1500字节
()
二、选择题
10111
10100 10111
异或运算: 1⊕1=0,0⊕0=0 1⊕0=1,0⊕1=1 相同为0,不同为1
11000 10111
1111
计算机网络以太帧
计算机网络以太帧
1. 简介
以太网是一种常用的局域网技术,其通信基本单位是以太帧(Ethernet Frame)。以太帧是数据链路层中用于在网络中传输数据的基本单元。本文将详细介绍以太帧的结构、功能和处理过程。
2. 以太帧结构
以太帧是由一系列字段组成的数据包,通常包括以下几个部分:
2.1 帧前导码
帧前导码是一个固定的字段,由7个字节构成。它的作用是在数据传输之前进行同步和定时,以确保接收方能正确解读数据。帧前导码的内容为10101010。
2.2 目的MAC地址
目的MAC地址是一个6个字节的字段,用于识别帧的接收方。每个网络设备都有一个唯一的MAC地址,用于标识其在网络中的位置。
2.3 源MAC地址
源MAC地址是一个6个字节的字段,用于识别帧的发送方。与目的MAC地址类似,源MAC地址也是设备的唯一标识符。
2.4 类型/长度字段
类型/长度字段用于指示数据字段的类型或长度。它可以表示以太网上使用的协议类型,如IP、ARP等,或者表示数据
字段的长度。
2.5 数据字段
数据字段包含实际传输的数据。它的长度可以根据类型/长度字段的指示进行变化。
2.6 帧校验序列
帧校验序列是一个4字节的字段,用于检测帧在传输过程
中是否发生了错误。接收方会根据帧的内容计算校验序列,并与接收到的校验序列进行比较,以确认接收到的帧是否正确。
3. 以太帧的工作流程
了解以太帧的工作流程对理解其在计算机网络中的作用非
常重要。下面是以太帧的基本工作流程:
3.1 数据封装
在发送端,数据从应用层逐层向下传输,最终被封装成以
太帧。数据会按照特定的格式组织,然后与目的MAC地址、源MAC地址等信息一起构建帧。
以太网帧结构详解
以太⽹帧结构详解
⽹络通信协议
⼀般地,关注于逻辑数据关系的协议通常被称为上层协议,⽽关注于物理数据流的协议通常被称为低层协议。
IEEE802就是⼀套⽤来管理物理数据流在局域⽹中传输的标准,包括在局域⽹中传输物理数据的802.3以太⽹标准。还有⼀些⽤来管理物理数据流在使⽤串⾏介质的⼴域⽹中传输的标准,如帧中继FR(FrameRelay),⾼级数据链路控制HDLC(High-LevelDataLinkControl),异步传输模式ATM(AsynchronousTransferMode)。
分层模型0OSI
国际标准化组织ISO于1984年提出了OSIRM(OpenSystemInterconnectionReferenceModel,开放系统互连参考模型)。OSI参考模型很快成为了计算机⽹络通信的基础模型。
OSI参考模型具有以下优点:简化了相关的⽹络操作;提供了不同⼚商之间的兼容性;促进了标准化⼯作;结构上进⾏了分层;易于学习和操作。
OSI参考模型各个层次的基本功能如下:
物理层:在设备之间传输⽐特流,规定了电平、速度和电缆针脚。
数据链路层:将⽐特组合成字节,再将字节组合成帧,使⽤链路层地址(以太⽹使⽤MAC地址)来访问介质,并进⾏差错检测。
⽹络层:提供逻辑地址,供路由器确定路径。
传输层:提供⾯向连接或⾮⾯向连接的数据传递以及进⾏重传前的差错检测。
会话层:负责建⽴、管理和终⽌表⽰层实体之间的通信会话。该层的通信由不同设备中的应⽤程序之间的服务请求和响应组成。
表⽰层:提供各种⽤于应⽤层数据的编码和转换功能,确保⼀个系统的应⽤层发送的数据能被另⼀个系统的应⽤层识别。
以太网帧格式
以太网帧格式----6aa37ab8-7156-11ec-87a5-7cb59b590d7d
在以太网的帧头和帧尾中有几个用于实现以太网功能的域,每个域也称为字段,有其特定的名称和目的。下图显示了以太帧的3种不同形式。图1以太网帧的3种不同形式
Dix(数字设备公司,英特尔,施乐——数字设备公司,英特尔,施乐)
ieee802.3(original)
ieee802。3(1997年修订)
历史上以太网帧格式有五种:
1.以太网V1:这是最原始的格式。它是施乐arc提出的3mbps CSMA/CD以太网标准的封装格式。后来,Dec、Intel和Xerox在1980年对其进行了标准化,形成了以太网V1标准
2.ethernetv2(arpa):由dec,intel和xerox在1982年公布其标准,主要更改了ethernetv1的电气特性和物理接口,在帧格式上并无变化;ethernetv2出现后迅速取代ethernetv1成为以太网事实标准;ethernetv2帧头结构为6bytes的源地址+6bytes的目标地址+2bytes的协议类型字段+数据。
3.802。3:这是Novell在1983年发布其地标Netware/86网络套件时采用的专用以太网帧格式。该格式基于当时未正式发布的802.3标准;然而,当两年后IEEE正式发布802.3标准时,情况发生了变化——IEEE在802.3帧头中添加了802.2 LLC(逻辑链路控制)头,这使得Novell的raw802.3格式与正式的IEEE 802.3格式相同。标准互不兼容
数字传输系统帧结构
数字传输系统帧结构
数字传输系统的帧结构可以根据不同的协议和应用而有所不同。以下是一般数字传输系统的常见帧结构:
1. SDH(同步数字系列层次结构)帧结构:
SDH是一种同步光纤传输技术,它的帧结构包括多个层次。其中,最常见的SDH帧结构是STM-1(Synchronous Transport Module level-1),它的帧周期是125微秒。STM-1帧结构如下:
```
- 9行270 列的容器(Container)
- 3行90 列的终端传输容器(Tributary Unit)
```
2. SONET(同步光网络)帧结构:
SONET是SDH的北美版本,其帧结构也有多个层次。最常见的SONET帧结构是STS-1(Synchronous Transport Signal level-1),它的帧周期是125微秒。STS-1帧结构如下:
```
- 3个12行90 列的VT(Virtual Tributary)容器
- 1个9行90 列的STU(Synchronous Transport Unit)容器
```
3. Ethernet 帧结构:
在以太网中,数据帧的结构是最为常见的。一个标准的以太网帧结构如下:
```
-前导码:标志着数据帧的开始
-目的MAC地址:接收数据的设备MAC地址
-源MAC地址:发送数据的设备MAC地址
-长度/类型字段:指示数据字段长度或指明上层协议类型
-数据字段:携带传输的数据
-帧校验序列:用于检测数据传输过程中的错误
```
需要注意的是,不同的数字传输系统和网络协议会有不同的帧结构,而且不同的帧结构适用于不同的数据传输需求。上述提到的帧结构仅仅是其中的一部分,具体的帧结构会根据传输系统的要求和协议规范来设计。
3、Ethernet II 分析
实验三
一、实验名称:分析Ethernet II帧
二、实验目的:(1)掌握使用wireshark分析俘获的踪迹文件的基本技能);
(2)深刻理解Ethernet II帧结构
三、实验内容和要求:(1)分析俘获的或踪迹文件的Ethernet II帧结构
(2)分析以太网帧结构
四、实验环境:win7下wireshark环境
五、实验步骤:
查看自己主机的ip地址和mac(物理)地址
(一)、分析俘获的或踪迹文件的基本操作
用wireshark俘获踪迹文件
取2号帧进行分析,将Frame这个标志点击开,可以观察有关Frame 的信息,包括了接口id下图黄色标记部分,帧到达的时间,等信息
点击Ethernet II可以观察Ethernet II的内容,同样的点开其他选项就可以观察他们的具体内容了,它显示了Ethernet II帧的源地址和目的地址,以及Ethernet II帧的类型它是包含了ip数据报的帧。
点击Protocol Version4可以观察Protocol Version4的内容,我们可以看到ip的源地址和目的地址,以及ip的版本是4,并且其头的长度为20个字节。
点击User Datagram Protocol 可以观察User Datagram Protocol 的内容,显示了源端口号,还有目的端口号,以及udp协议的长度,和包头检验和的结果(checksum)
最后点开Data可以观察Data的内容,可以看出Data的长度为49
以上操作完成俘获踪迹文件并且可以到各个目录下查看俘获的帧的具体信息,包括帧接受的时间,帧的源ip地址,目的ip地址,帧传输所使用的协议,帧的长度以及源端口和目的端口;也可以观察Frame、Ethernet II、Internet Protocol Version4等的具体信息,对wireshark的使用有了基本的能力。
列出ethernet v2标准的数据帧的5个字段
列出ethernet v2标准的数据帧的5个字段
Ethernet V2标准的数据帧包含以下五个字段:
1. 前导码(Preamble):为了同步接收和发送设备的时钟,数据
帧的开始部分包含7个字节的前导码。前导码是一个以10101010(10个比特)和10101011(11个比特)交替的模式。
2. 目标MAC地址(Destination MAC Address):6个字节字段,
表示数据帧发送至的目标设备的物理地址。MAC地址标识网
络中的每个设备。
3. 源MAC地址(Source MAC Address):6个字节字段,表示数据帧发送方的物理地址。
4. 类型(Type):2个字节字段,指示数据帧所携带的数据的类
型或协议。它可以是IP协议、ARP协议、RARP协议或其他
协议。
5. 数据(Data):46-1500个字节字段,包含实际传输的数据。
这部分字段的长度取决于网络中的MTU(Maximum Transmission Unit)设置,表示一次传输的最大数据量。
值得注意的是,Ethernet V2数据帧还包括CRC32校验和字段,用于验证数据的完整性。
Ethernet帧结构解析
Ethernet帧结构解析
计算机网络实验
学院:计算机科学与信息工程学院
班级:
学号:
2
姓名:
实验1 Ethernet帧结构解析
1. 需求分析
实验目的:掌握Ethernet帧各个字段的含义与帧接收过程;
掌握Ethernet帧解析软件设计与编程方法;
掌握Ethernet帧CRC校验算法原理与软件实现方法。
实验任务:实现帧解析的软件编程
实验环境:1台PC机
操作系统:Windows 7
开发环境:Visual Studio 2010。
1.1问题重述
根据给出的IEEE802.3格式的Ethernet帧结构,编写程序来解析并显示帧的各个字段值,并将得到的数据字段值组合写入输出文件。Ethernet帧数据从输入文件获得,默认文件为二进制数据文件。
2概要设计
2.1原理概述
TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如Ethernet,令牌环网,FDDI(Fiber Distributed Data Interface,光纤分布式数据接口)等。基于不同的硬件的网络使用不同形式的帧结构,Ethernet是当今应用最广泛的局域网技术。
Ethernet V2.0的帧结构:
前导码帧前定界符目的地址DA 源地址SA 类型字段数据字段帧校验字段
7B 1B 6B 6B 2B 46~1500B 4B
1.前导码和帧前定界符。
字段前导码由56位(7B)的101010...1010比特序列组成,帧前定界符由一个8位的字节组成,其比特序列为10101011。
如果将前导码与帧前定界符一起看,那么在62位101010...1010比特序列之后出现11。在这个11之后便是Ethernet帧的目的地址字段。从Ethernet物理层角度看,接收电路从开始接收比特到进入稳定状态,需要一定的时间。设计前62位1和0的交替比特序列的目的是保证接收电路在帧的目的地址到来之前到达正常状态。接收端在收到最后两位11时,标志在他之后应该是帧的目的地址。前导码与帧前定界符主要起到接收同步的作用,这8个字节接收后不需要保留,也不计入帧头长度。
以太网帧格式_EthernetⅡ和ETHERNET_802.3_IEEE802.2.SAP和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,它标识着以太网帧的开始。前导字符的作用是使接收节点进行同步并做好接收数据帧的准备。
(整理)以太网帧格式Ethern...
(整理)以太⽹帧格式Ethern...
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,它标识着以太⽹帧的开始。前导字符的作⽤是使接收节点进⾏同步并做好接收数据帧的准备。
以太网帧格式和IEEE802
3 以太网帧格式
目前,有四种不同格式的以太网帧在使用,它们分别是:
●Ethernet II即DIX 2.0:Xerox与DEC、Intel在1982年制定的以太网标准帧格式。Cisco 名称为:ARPA。
●Ethernet 802.3 raw:Novell在1983年公布的专用以太网标准帧格式。Cisco名称为:Novell-Ether。
●Ethernet 802.3 SAP:IEEE在1985年公布的Ethernet 802.3的SAP版本以太网帧格式。Cisco名称为:SAP。
●Ethernet 802.3 SNAP:IEEE在1985年公布的Ethernet 802.3的SNAP版本以太网帧格式。Cisco名称为:SNAP。
在每种格式的以太网帧的开始处都有64比特(8字节)的前导字符,如图3所示。其中,前7个字节称为前同步码(Preamble),内容是16进制数0xAA,最后1字节为帧起始标志符0xAB,它标识着以太网帧的开始。前导字符的作用是使接收节点进行同步并做好接收数据帧的准备。
图3 以太网帧前导字符
除此之外,不同格式的以太网帧的各字段定义都不相同,彼此也不兼容。
3.1 Ethernet II帧格式
如图4所示,是Ethernet II类型以太网帧格式。
图4 Ethernet II帧格式
Ethernet II类型以太网帧的最小长度为64字节(6+6+2+46+4),最大长度为1518字节(6+6+2+1500+4)。其中前12字节分别标识出发送数据帧的源节点MAC地址和接收数据帧的目标节点MAC地址。
ethernet工作原理
ethernet工作原理
Ethernet是一种局域网传输技术,它使用电缆或光纤连接网络
设备,以实现数据的传输和通信。以下是Ethernet的工作原理:
1. 使用CSMA/CD协议:Ethernet采用载波侦听多路访问/冲突
检测(CSMA/CD)协议,即在发送数据之前会先监听媒介上
是否有其他设备发送数据。如果检测到冲突,则会暂停发送并随机等待一段时间,然后再次发送。
2. 数据帧的传输:数据在Ethernet网络中以数据帧的形式传输。一个数据帧通常包括源和目标设备的物理地址(MAC地址),以及数据的实际内容。数据帧会沿着网络传输,并在接收端被解析和处理。
3. 分组交换:当两台设备之间进行通信时,数据被分割为较小的数据包,称为分组。这些分组通过Ethernet网络中的交换机
进行路由,以最高效和快速地到达目标设备。交换机会根据目标设备的MAC地址将数据包转发到相应的端口。
4. 信号传输和解析:Ethernet使用Baseband信号传输,即以数字形式表示数据。发送设备将数字数据转换为电信号,并通过电缆或光纤传输。接收设备接收信号,并将其重新转换为数字数据。这种数字到模拟的转换过程在发送设备和接收设备之间实现。
5. 网络拓扑:Ethernet可以以多种拓扑结构部署,如总线型、
星型、环形或混合型拓扑。拓扑结构定义了网络中设备之间的
连接方式,并影响数据的传输效率和可靠性。
总的来说,Ethernet通过使用CSMA/CD协议、数据帧传输、
分组交换、信号传输和解析等机制实现数据的高效传输和通信。这种技术广泛应用于现代计算机网络中,提供了可靠和快速的数据传输方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一Ethernet帧结构解析
一.需求分析
实验目的:(1)掌握Ethernet帧各个字段的含义与帧接收过程;
(2)掌握Ethernet帧解析软件设计与编程方法;
(3)掌握Ethernet帧CRC校验算法原理与软件实现方法。
实验任务:(1)捕捉任何主机发出的Ethernet 802.3格式的帧和DIX Ethernet V2(即Ethernet II)格式的帧并进行分析。
(2)捕捉并分析局域网上的所有ethernet broadcast帧进行分析。
(3)捕捉局域网上的所有ethernet multicast帧进行分析。
实验环境:安装好Windows 2000 Server操作系统+Ethereal的计算机
实验时间; 2节课
二.概要设计
1.原理概述:
以太网这个术语通常是指由DEC,Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD的媒体接入方法。几年后,IEEE802委员会公布了一个稍有不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络;此三种帧的通用部分由802.2标准来定义,也就是我们熟悉的802网络共有的逻辑链路控制(LLC)。以太网帧是OSI参考模型数据链路层的封装,网络层的数据包被加上帧头和帧尾,构成可由数据链路层识别的数据帧。虽然帧头和帧尾所用的字节数是固定不变的,但根据被封装数据包大小的不同,以太网帧的长度也随之变化,变化的范围是64-1518字节(不包括8字节的前导字)。
帧格式Ethernet II和IEEE802.3的帧格式分别如下。
EthernetrII帧格式:
----------------------------------------------------------------------------------------------
| 前序| 目的地址| 源地址| 类型| 数据
| 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字节的长度;所幸的是,后者定义的有效长度值与前者定义的有效类型值无一相同,这样就容易区分两种帧格式
2程序流程图:
三.详细设计:
1.CRC校验部分设计:
为了对以太网帧的对错进行检验,需要设计CRC校验部分。采用以为相与的方式对帧的首部相继作8位CRC校验
输入参数:
chCurrByte 低8位数据有效,记录了上一次CRC校验的余数
chNextByte 低8位数据有效,记录了本次要继续校验的一个字节
传出参数:
chCurrByte 低8位数据有效,记录了本次CRC校验的余数
void checkCRC(int &chCurrByte, int chNextByte)
{
// CRC循环:每次调用进行8次循环,处理一个字节的数据。
for (int nMask = 0x80; nMask > 0; nMask >>= 1)
{
if ((chCurrByte & 0x80) != 0) // 首位为1:移位,并进行异或运算
{
chCurrByte <<= 1; // 移一位
if ( (chNextByte & nMask) != 0) // 补一位
{
chCurrByte |= 1;
}
chCurrByte ^= 7; // 首位已经移出,仅对低8位进行异或运算,7的二进制为0000,0111
}
else // 首位为0,只移位,不进行异或运算
{
chCurrByte <<= 1; // 移一位
if ( (chNextByte & nMask) != 0) // 补一位
{
chCurrByte |= 1;
}
}
}
}
2.部分变量的声明:
int nSN = 1; // 帧序号
int nCheck = 0; // 校验码
int nCurrDataOffset = 22; // 帧头偏移量
int nCurrDataLength = 0; // 数据字段长度
bool bParseCont = true; // 是否继续对输入文件进行解析
int nFileEnd = 0; // 输入文件的长度
3.计算数据段的长度:
nCurrDataLength =
bParseCont ? // 是否到达文件末尾
(file.tellg() - 8 - 1 - nCurrDataOffset) : // 没到文件末尾:下一帧头位置- 前导码和定界符长度- CRC校验码长度- 数据字段起始位置
(file.tellg() - 1 - nCurrDataOffset); // 已到达文件末尾:文件末尾位置- CRC校验码长度- 数据字段起始位置
4.主函数的设计:
void main(int argc, char* argv[])
{
// 检测命令行参数的正确性
if (argc != 2)
{
cout << "请以帧封装包文件为参数重新执行程序" << endl;
exit(0);
}
// 检测输入文件是否存在,并可以按所需的权限和方式打开
ifstream file(argv[1], ios::in|ios::binary|ios::nocreate);
if (!file.is_open())
{
cout << "无法打开帧封装包文件,请检查文件是否存在并且未损坏" << endl;
exit(0);