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

马谦马谦马谦 TCP/IP评论1,6892字数 2044阅读 6 分 48 秒阅读模式

一、以太网

1.1 以太网和 IEEE802 标准的关系

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

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

二、 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帧格式-图片2

二、以太网帧格式

原始的以太网由 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帧格式-图片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帧格式-图片4

  • [ ] 前导: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 抓取以太网数据包

 

  最后更新:2017-11-19
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2017 年 10 月 19 日 22:58:44
  • 转载请务必保留本文链接:https://www.dyxmq.cn/network/tcpip/tcpip-ethernet-802-3.html
TCP协议中的三次握手和四次挥手 TCP/IP

TCP 协议中的三次握手和四次挥手

一、三次握手 TCP 协议的三次握手和四次挥手分别表示了 TCP 连接的建立和释放过程,在整个 TCP 协议是一个很重要的内容,同时也是面试时的常见考点。 趁着找工作的劲,使用 socket+tcpdump 分析了...
Wireshark抓取以太网数据包 Wireshark

Wireshark 抓取以太网数据包

一、概述 几乎所有的数据包都是通过以太网来传输,所以使用 wireshark 抓取以太网数据包非常容易,这里我们以 DNS 数据包为例。 二、抓包 1. 准备数据 打开 wireshark,在筛选栏输入 dns,...
TCP/TP协议篇:IP协议 TCP/IP

TCP/TP 协议篇:IP 协议

一、概述 IP 是 TCP/IP 协议族中的核心协议,所有 TCP UDP ICMP 以及 IGMP 数据都要通过 IP 协议来传输。 IP 是一种无连接协议,不负责维护网络连接中的任何连接状态,提供尽力而为 的服...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证