TCP/IP协议篇之链路层:以太网和802.3帧格式

马谦马谦马谦 2017年10月19日22:58:44 发表评论
文章最后编辑于:2017-11-19 15:29:09

一、以太网

1.1 以太网和IEEE802标准的关系

以太网指一个标准,由DEC、Intel和Xerox公司在1980年共同发布的标准,第一个常见格式的以太网在目前被称为10Mb以太网共享以太网,后来被IEEE采纳修改成了802.3标准。

这种网络的所有的站点都工作在一条共享的线路上,网络结构通常为:
TCP/IP协议篇之链路层:以太网和802.3帧格式

二、CSMA/CD协议

传统以太网中的网络都连接在一个共享的线路上,从资源共享的角度来说,任何站点都可以在总线上发送和接收数据。而对于总线来说,一旦有站点在发送数据,总线资源就被占用。因此同一时刻只能允许一个站点发送数据,否则就会出现数据干扰无法正常通信。

因此,总线上就需要有一种能协调各站点数据发送的工作机制,来保证每一时刻只有一条线路发送数据,一旦有多个站点同时发送数据,应立即终止传输,这种工作机制在以太网中被称为载波监听多点接入/冲突检测(CSMA/CD)协议。改协议一共有三个部分:

  • “载波监听”:在发送数据之前,先监听线路上是否有数据传输,如果没有就发送数据,有则暂停传输。
  • “多点接入”:计算机以多点接入方式连接到一根总线上。
  • “冲突检测”:某一时刻线路空闲时,可能多个站点都在同时发送数据,此时就会导致数据发送冲突,应立即停止发送数据。

CSMA/CD的工作模型详见:以太网中的CSMA/CD协议及二进制指数退避算法详解

CSMA/CD协议这类型的访问方式更正式的名称为介质访问控制(MAC)协议,MAC协议有多种,有基于竞争的协议(CSMA/CD),也有基于预先安排的协议(例如规定每个站点的发送时间)。

1.3 发展

随着以太网的发展,更快的以太网也逐渐出现,速度从10Mb/s到100Mb/s、1000Mb/s、10Gb/s甚至更高。原始的共享物理电缆逐渐被双绞线替代,基于竞争的MAC协议也变得不流行,网络逐渐由共享网络结构变成星形的网络拓扑结构,通过交换机连接成单独的线路。

TCP/IP协议篇之链路层:以太网和802.3帧格式

二、以太网帧格式

原始的以太网由Intel等公司共同指定,这种格式被称为DIX格式或Ethernet Ⅱ格式,由IEEE标准化后的CSMA/CD网络,被称为802.3。带802前缀的标准定义了局域网和城域网的工作过程,当前最流行的802标准包括802.3(以太网)802.11(WLAN/Wi-Fi),无线局域网通常使用CSMA/CA(CA是“冲突检测”)协议。

2.1 Ethernet Ⅱ帧格式

Ethernet Ⅱ的帧格式如图所示:

TCP/IP协议篇之链路层:以太网和802.3帧格式

  • [ ] 报头:8个字节,前七个字节为0,最后一个字节为10101010,用于同步接收站。
  • [ ] 目标地址:6个字节,单播、多播或者广播。单播地址也叫个人、物理、硬件或MAC地址。广播地址为0xFFFFFFFF。
  • [ ] 源地址:6个字节,发送节点的单点广播地址。
  • [ ] 以太类型:2个字节,用来指出以太网帧内所含的上层协议。即帧格式的协议标识符。对于IP报文来说,该字段值是0x0800。对于ARP信息来说,以太类型字段的值是0x0806。
  • [ ] 有效负载:46-1500字节,包含一个上层写一单元PDU,最大长度1500字节,由于以太网的冲突检测特性,至少是46个字节。如果上层协议数据单元长度少于46个字节,必须增补到46个字节。
  • [ ] 校验:4个字节,验证比特序列的完整性。

2.2 802.3帧格式

以太网帧的开始是一个前导字段,通常为0xAA,随后是帧的起始分隔符SFD,SFD固定值为0xAB

TCP/IP协议篇之链路层:以太网和802.3帧格式

  • [ ] 前导:7个字节,每个字节固定为0xAA
  • [ ] SFD:1个字节,同步,固定值为0xAB
  • [ ] DST和SRC:6个字节,分别表示目的MAC地址源MAC地址
  • [ ] 长度或者标签:多数情况下用于确定有效载荷的数据包类型,TCP/IP网络中常见的值为:IPv4(0x0800)IPv6(0x86DD)ARP(0x0806)0x8100表示一个Q标签帧(可携带802.1q标准的VLAN ID)。通常一个基础的以太网帧长为1518字节,但是更多的新标准把这个值扩展为2000字节。
  • [ ] P/Q标签:虚拟局域网Qos标签,具体的下面介绍。
  • [ ] FCS:帧校验序列,也叫CRC校验/循环冗余校验,用于对帧进行完整性检查,详见:CRC循环冗余校验的原理和实现

2.3 以太网帧长度

以太网帧头部不包含前导字段和帧起始分隔符,长度为:目的地址(6)+源地址(6)+类型(2)+校验(4)=18字节。

以太网帧有限制最大长度和最小长度,最小为64个字节, 最大1518字节。

限制最小尺寸的原因是由于CSMA/CD中存在争抢期:以太网中的CSMA/CD协议及二进制指数退避算法详解,争抢期为51.2μs,在这个时间段内刚好能通过的数据为64个字节,所以最小的尺寸为64字节。同时就要求上层数据字段(有效载荷)必需大于等于48个字节,除去以太网18个字节的首部。

最大长度1518:以太网MTU限制为1500字节,加上首部18个字节所以最多为1518个字节。

三、使用wireshark抓取以太网数据包

详见:Wireshark抓取以太网数据包

 

本文共执行43次查询,耗时0.282秒!
马谦马谦马谦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: