以太网(802.3)帧结构 (转)

来源:互联网 发布:sas软件是什么 编辑:程序博客网 时间:2024/05/17 23:24
图片
FR(前导码):包括了7 个字节的二进制“1”、“0”间隔的代码,即1010…10
共56 位。当帧在链路上传输时,接收方就能建立起同步,因为这种“1”、“0”间
隔的传输波形为一个周期性方波。同时也指明了传输的速率(10M 和100M 的方
波频率不一样,所以100M 网卡可以兼容10M 网卡)。
SD(帧数据定界符):它是长度为1 个字节的10101011 二进制序列,此码
表示表示下面跟着的是真正的数据。
DA(目的地址):目的以太网的物理地址,由48 位二进制组成(6 个字节),
说明该帧传输给哪个网卡。如果地址为FFFFFFFFFFFF(广播地址),则该网络
上的所有网卡都能接收到本帧数据。这个地址和下面的SA 就是我们常说的网卡
的MAC 地址。具体信息我们待会介绍。 
 
SA(源地址):48 位,说明该帧的数据是哪个网卡发的,即发送端的网卡物
理地址(MAC)。
 LENGTH/TYPE(长度/数据类型):指示后面的数据属于什么类型。如0800H
表示数据为IP 包,0806H 表示数据为ARP 包。这样,交给网络层后就可以由相
应的协议对后面的数据解析。如果这个字段小于0600H 的值,则表示数据包的
长度,在单片机的网络编程中不考虑这种用法。
 DATA(数据段):由网络层负责发送和解析的数据,因为以太网帧传输的数
据包最小不能小于64 字节,最大不能超过1518 字节。除去14 字节为DA、SA、
TYPE 以及4 字节的FCS,DATA 不能超过1500 字节。如果不够46(64-18)
字节,余下的由PAD 填充。
PAD(填充位):当DATA 的数据不足46 字节时,缺少的字节需要补上(可
补任意值)。
FCS(帧校验序列):由32 位(4 字节)循环冗余校检码(CRC)组成,其
校验范围不包括前导码FR 及帧数据定界符SD。此序列由发送端网卡自动生成,
自动填充到帧的最后。一般情况下,接收端网卡对收到的数据校验后也不会将
FCS 放到数据中上报。
由于网卡的自动管理,并且前导码FR 和帧数据定界符SD 的值是固定的,
也由网卡自动生成和插入。所以,网络层向网卡发送的数据或者网络层接收到的
数据一般是由DA、SA、TYPE 和DATA 组成(DATA 不足46 字节需要用PAD
补齐)。如表二。假如网络层的一个IP 包要发送出去,首先要填充接收网卡的地
址和本网卡的地址(MAC 地址),同时将TYPE 填充成0800H,紧跟着就是发送
的数据。网卡获取到这些数据后会组成物理传输帧发送出去。
图片 
 
由以太网的帧结构知道,在数据链路层就需要使用MAC 地址(即物理地
址)进行通讯,MAC 地址是数据的第一道关卡,由硬件自动识别来接收。因此,
MAC 地址就像是是网络设备的“身份证”一样,需要具有全球唯一性。我们在
实验室里做测试,可以修改MAC 地址,但也应该保证本地网络里MAC 的唯一
性。
 以太网的MAC 地址由48bit (6 字节)组成,如08:02:10:3A:85:23 就是一个
MAC 地址。前24 位(08:02:10)是由生产网卡的厂商向IEEE 申请的厂商地址,
后24 位(3A:85:23)是由厂家自己分配。每个厂商必须确保它所制造的每个以
太网设备都具有相同的前三个字节以及不同的后三个字节,这样就可保证世界上
每个以太网设备都具有唯一的MAC 地址。网卡的MAC 地址通常是由生产厂家
烧入网卡的EPROM 中(NE2000 系列网卡常用93C46,在网卡上可以找到)
MAC 地址又可以分成3 类:
(1)广播地址:只能用作目的地址。如果一个以太网帧的目的地址是广播
地址,则网络中的所有设备都能接收和处理该帧。广播地址的每一位都是1,即:
FF:FF:FF:FF:FF:FF。 
(2)组播地址:也只能用作目的地址。如果一个帧的目的地址是组播地址,
那么网络中预先定义的一组设备都能接收并处理该设备。以太网网MAC 的最高
有效字节的最低位为1 表示以太网帧是组播帧。如01:03:52:3A:85:23 就是组播
地址。101 的最低位为1 
(3)单机地址:除了广播和组播的地址就是单机地址,非广播和组播数据
包就要与这个地址匹配了才能被接收和处理。 

原创粉丝点击