TCPIP协议与网络编程实验指导书

实验一 Ethernet帧的封装与解析

1. 实验目的:

2. 掌握数据链路层的基本原理,通过封装与解析标准格式的Ethernet帧,了解帧结构中各

个字段的含义和用途;

3. 掌握Ethernet帧的CRC校验的编程过程。

2. 实验学时

2学时

3. 实验类型

综合性实验

4. 实验原理

帧结构

帧是网络通信的基本传输单元,熟悉帧结构对于理解网络协议的概念、协议执行过程以及网络层次结构具有重要的意义。本次作业的目的是应用数据链路层与介质访问控制子层的知识,根据数据链路层的基本原理,通过封装和解析Ethernet 帧,了解Ethernet 帧结构中各个字段的含义,从而深入理解Internet 协议族中的最底层协议——数据链路层协议。

网络节点间发送数据都要将它放在帧的有效部分,分为一个或多个帧进行传送。节点之间可靠的帧传输不仅是通信的保障,而且还可以实现网络控制等各种功能。

1980年,Xerox、DEC与Intel等三家公司合作,第一次公布了Ethernet的物理层、数据链路层规范;1981年Ethernet V2.0规范公布;IEEE 802.3 标准是

在Ethernet V2.0规范的基础上制定的,IEEE 802.3针对整个CSMA/CD网络,它的制定推动了Ethernet技术的发展和广泛应用。Ethernet V2.0规范和IEEE802.3标准中的Ethernet帧结构有一些差别,这里我们按Ethernet V2.0的帧结构进行讨论。图 1给出了Ethernet帧结构图。

前导码 (7B) 帧前定界符 目的地址 (1B) 源地址 长度字段 (2B) LLC数据 (46~1500B) 帧校验字段FCS (4B) (2/6B) (2/6B) 图 1.1 IEEE802.3标准Ethernet帧结构

如图1.1所示,802.3标准中Ethernet帧结构由以下几个部分组成:

(1) 前导码和帧前定界符

前导码由56位(7Byte)的10101010…1010比特序列组成,帧前定界符由一个8位的字节组成,其比特序列位10101011。前导码用于使接收端同步,不计入帧头长度。帧前定界符也不计入帧头长度。 (2) 目的地址和源地址

目的地址与源地址均分别表示帧的接收结点与发送结点的硬件地址。硬件地址一般称作MAC 地址或物理地址。在Ethernet 帧中,目的地址和源地址字段长度可以是2B 或6B。早期的Ethernet 曾经使用过2B 长度的地址,但是目前所有的Ethernet 都使用6B(即48 位)长度的地址。为了方便起见,通常使用16 进制数书写(例如,00-13-d3-a2-42-a8)。为了保证MAC地址的唯一性,世界上由一个专门的组织负责为网卡的生产厂家分配MAC地址。

Ethernet帧的目的地址可以分为以下3种。

? 单播地址(unicast address):目的地址的第一位为0表示单播地址。目的地址是单播地址,则表示该帧只被与目的地址相同的结点所接收。

? 多播地址(multicast address):目的地址的第一位为1表示多播地址。目的地址是多播地址,则表示该帧被一组结点所接接收。

? 广播地址(broadcast address):目的地址为全1则表示广播地址。目的地址是广播地址,则表示该帧被所有结点接收。 (3) 数据长度字段

802.3标准中的帧用2B定义LLC数据字段包含的字节数。描述了LLC数据的

实际长度。 (4) 数据字段

IEEE802.3 协议规定LLC 数据的长度在46B 与1500B 之间。如果数据的长度少于46B,需要加填充字节,补充到46B。填充字段是任意的,不计入长度字段值中。帧头部分长度为18B,包括6B 的目的地址字段、6B 的源地址字段、2B 的长度字段、4B 的帧校验和字段,而前导码与帧前界定符不计入帧头长度中,那么,Ethernet 帧的最小长度为64B,最大长度为1518B。设置最小帧长度的一个目的是使每个接收结点能够有足够的时间检测到冲突。 (5) 帧校验字段

帧校验字段FCS采用32位CRC校验。校验的范围包括目的地址字段、源地址字段、长度字段、LLC数据字段。在接收端进行校验,如果发现错误,帧将被丢弃。在本次作业中,为了简便起见,采用8位的CRC校验。8位CRC校验的生成多项式为:

G(x)?x8?x2?x1?1

CRC校验

通常的CRC校验(循环冗余校验)都是32位的。在发送数据之前对需要校验的数据运行CRC算法,得到一个32比特的CRC校验值存放在帧尾部。接受方收到帧后也对同样的数据进行CRC校验,如果所得到的结果和该帧携带的校验和相同则说明该帧是正确的,否则说明该帧为错误的,要丢弃该帧。

R7 R6 R5 R4 R3 R2 xor R1 xor R0 输入 xor 图1.2 :CRC-8的基本实现

5. 实验环境

平台:Windows

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4