以太网帧格式

以太网帧发展

1980 DEC,Intel,Xerox制订了Ethernet I的标准;
1982 DEC,Intel,Xerox又制订了Ehternet II的标准;
1982 IEEE开始研究Ethernet的国际标准802.3
1983 迫不及待的Novell基于IEEE的802.3的原始版开发了专用的Ethernet帧格式;
1985 IEEE推出IEEE 802.3规范;
后来为解决EthernetII与802.3帧格式的兼容问题推出折衷的Ethernet SNAP格式 。(其中早期的Ethernet I已经完全被其他帧格式取代了所以现在Ethernet只能见到后面几种Ethernet的帧格式现在大部分的网络设备都支持这几种Ethernet的帧格式如:cisco的路由器在设定Ethernet接口时可以指定不同的以太网的帧格式:arpa,sap,snap,novell-ether)。

在每种格式的以太网帧的开始处都有64比特(8字节)的前导字符:

其中,前7个字节称为前同步码(Preamble),内容是16进制数0xAA.

最后1字节为帧起始标志符0xAB,它标识着以太网帧的开始。

前导字符的作用是使接收节点进行同步并做好接收数据帧的准备。

各种不同的帧格式

Ethernet II 类型:以太网帧的最小长度为 64 字节(6+6+2+46+4),最大长度为 1518 字节(6+6+2+1500+4)。其中:

(1)前 12 字节分别标识出发送数据帧的源节点 MAC 地址(S.MAC)和接收数据帧的目标节点 MAC 地址(D.MAC);

(2)接下来的 2 个字节标识出以太网帧所携带的上层数据类型,如 16 进制数0x0800代表 IP 协议数据,16 进制数0x86dd代表 IPv6 协议数据,16 进制数0x809B代表 AppleTalk 协议数据,16 进制数0x8138代表 Novell 类型协议数据等 ;

(3)在不定长的数据字段(Data):其长度是 46 至 1500 字节;

(4)4 个字节的帧校验序列(Frame. Check Sequence,FCS),采用 32 位 CRC 循环冗余校验对从“目标 MAC 地址”字段到“数据”字段的数据进行校验

Novell Ethernet

它的帧头与Ethernet有所不同其中EthernetII帧头中的类型域变成了长度域,后面接着的两个字节为0xFFFF用于标示这个帧是Novell Ether类型的Frame,由于前面的0xFFFF站掉了两个字节所以数据域缩小为44-1498个字节,帧校验不变。

 IEEE802.3

EEE802.3帧格式类似于Ethernet_II帧,只是Ethernet_II帧的Type域被802.3帧的Length域取代,并且占用了Data字段的8个字节作为LLC和SNAP字段

Length字段定义了Data字段包含的字节数

逻辑链路控制LLC(Logical Link Control):由目的服务访问点DSAP(Destination Service Access Point)、源服务访问点SSAP(Source Service Access Point)和Control字段组成。

SNAP(Sub-network Access Protocol):由机构代码(Org Code)和类型(Type)字段组成。Org code三个字节都为0。Type字段的含义与Ethernet_II帧中的Type字段相同。IEEE802.3帧根据DSAP和SSAP字段的取值又可分为以下几类:

1)  当DSAP和SSAP都取特定值0xff时,802.3帧就变成了Netware- ETHERNET帧,用来承载NetWare类型的数据。

2)当DSAP和SSAP都取特定值0xaa时,802.3帧就变成了  ETHERNET_SNAP帧。         ETHERNET_SNAP帧可以用于传输多 种协议。

3) DSAP和SSAP其他的取值均为纯IEEE802.3帧。

区分802.3帧与EthernetII帧

Type/Length域<=0x05DC---------------------为802.3帧

Type/Length域>0x05DC-----------------------为以太网帧

802.3以太网帧格式备注

以太网帧格式多达5种,事实上,今天的大多数TCP/IP应用都是用Ethernet V2帧格式(IEEE802.3-1997改回了对这一格式的兼容),而交换机之间的BPDU(桥协议数据单元)数据包则是IEEE802.3/LLC的帧,VLAN Trunk协议如802.1Q和Cisco的CDP(思科发现协议)等则是采用IEEE802.3SNAP的帧。

----------------------------------------------------------------------------------------------------------------------------

VLAN帧格式

帧格式

IEEE 802.1Q标准对Ethernet帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入4字节的802.1Q Tag。VLAN帧格式是普通的帧格式+VLAN Tag.

VLAN帧最小帧长为64字节。

VLAN帧格式

字段 长度 含义
Destination address 6字节 目的MAC地址。
Source address 6字节 源MAC地址。
Type 2字节 长度为2字节,表示帧类型。取值为0x8100时表示802.1Q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
PRI 3比特 Priority,长度为3比特,表示帧的优先级,取值范围为0~7,值越大优先级越高。用于当阻塞时,优先发送优先级高的数据包。

如果设置用户优先级,但是没有VLANID,则VLANID必须设置为0x000。

CFI 1比特 CFI (Canonical Format Indicator),长度为1比特,表示MAC地址是否是经典格式。CFI为0说明是标准格式,CFI为1表示为非标准格式。用于区分以太网帧、FDDI(Fiber Distributed Digital Interface)帧和令牌环网帧。在以太网中,CFI的值为0。
VID 12比特 LAN ID,长度为12比特,表示该帧所属的VLAN。在VRP中,可配置的VLAN ID取值范围为1~4094。0和4095协议中规定为保留的VLAN ID。

三种类型:

  • Untagged帧:VID 不计
  • Priority-tagged帧:VID为 0x000
  • VLAN-tagged帧:VID范围0~4095

三个特殊的VID:

  • 0x000:设置优先级但无VID
  • 0x001:缺省VID
  • 0xFFF:预留VID
Length/Type 2字节 指后续数据的字节长度,但不包括CRC检验码。
Data 42~1500字节 负载(可能包含填充位)。
CRC 4字节 用于帧内后续字节差错的循环冗余检验(也称为FCS或帧检验序列)。

二。VLAN的类型
计算机发送的帧都是不带标签(Tag)的。当计算机发送一个不带标签的帧给交换机时,交换机需要通过某种划分原则来判断这个帧应该划到哪个特定的VLAN 中。

1.基于端口的VLAN(也称为:物理层VLAN、一层VLAN)

划分原则:将VLAN的编号(VLAN ID)配置影射到交换机的物理端口上,从某一物理端口进入交换机的、由终端计算机发送的不带标签的帧都被划分到该端口的VLAN ID所表明的那个VLAN。

优点:划分原则简单、直观、容易实现、安全可靠。

注意:这种类型的VLAN,当计算机接入交换机的端口发生了变化时,该计算机发送的帧的VLAN归属也可能发生改变。

2.基于MAC地址的VLAN(也称为:二层VLAN)

划分原则:交换机内部建立并维护了一个MAC地址与VLAN ID的对应表,当交换机接收到计算机发送的不带标签的帧时,交换机将分析帧中的源MAC地址,然后查询MAC地址与VLAN ID的对应表,根据其中的对应关系把这个帧划分到相应的VLAN中。

优点:划分灵活、当计算机接入交换机的端口发生了变化时,该计算机发送的帧的VLAN归属不会发生改变。

缺点:划分原则复杂、安全性不高(因为恶意的计算机很容易伪造自己的MAC地址)

3.基于协议的VLAN(也称为:三层VLAN)

划分原则:交换机根据计算机发送的不带标签的帧中的帧的类型字段的值来决定帧的VLAN 归属。
---------------------------------------------------------------------------------------------------------------------

QinQ报文封装格式

在802.1Q报文的基础上增加一层802.1Q标签。

因为IEEE 802.1Q中定义的VLAN Tag域只有12个比特,仅能表示4096个VLAN,无法满足城域以太网中标识大量用户的需求,于是产生了QinQ技术,拓展VLAN的数量空间。QinQ在原有的802.1Q报文的基础上增加一层802.1Q标签,使得VLAN数量增加到4094×4094。

在公网的传输过程中,设备只根据外层VLAN Tag转发报文,并根据报文的外层VLAN Tag进行MAC地址学习,而用户的内层VLAN Tag将被当作报文的数据部分进行传输。QinQ的内外层标签可以代表不同的信息,如内层标签代表用户,外层标签代表业务。

图1-2 802.1Q封装和QinQ封装

帧大小

QinQ报文比802.1Q报文多四个字节,因此建议用户在组网时适当增加运营商网络中各接口的最大帧长(至少为1504 字节)。目前交换机缺省支持的最大帧长超过1504字节,不需要手动配置。

TPID

不同运营商的系统可能将QinQ帧外层VLAN标记的TPID设置为不同值。为实现与这些系统的兼容性,可以修改TPID值,使QinQ帧发送到公网时,承载与特定运营商相同的TPID值,从而实现与该运营商设备之间的互操作性。VLAN数据帧的TPID与不带VLAN标记的帧的协议类型字段位置相同,为避免在网络中转发和处理数据包时出现问题,不可将TPID值设置为表1-2中的任意值。

表1-2 协议类型字段数值及其表示的协议

对应值

协议类型

0x0806

ARP

0x8035

RARP

0x0800

IP

0x86DD

IPv6

0x8863/0x8864

PPPoE

0x8847/0x8848

MPLS

0x8137

IPX/SPX

0x8809

LACP

0x888E

802.1x

0x88A7

HGMP

0xFFFD/0xFFFE/0xFFFF

设备保留

=====================================================================

=====================================================================

一、以太网管理帧的格式

可以将以太网的帧分为两种类型:

1.ARP,IP--------------以应用为主的帧

2.802.1q,802.1d,802.1x---------局域网管理的帧

下面主要讨论局域网管理

802.1q---------------VLAN的主要协议

802.1d---------------STP(生成树协议),GARP/GVRP(类似于Cisco的VTP,主要用于交换机的VLAN的管理)

802.1x----------------认证协议(与安全有关)

现在主流的交换机都支持这种三种协议,连Cisco的也不例外。

这三种协议都作为802.2(也就是LLC)的子层来在交换机之间传递。

802.3头+802.2头+802.1协议族------------这就交换机管理帧

EthernetII头+TCP/IP协议族-----------------这就应用帧的组成

802.3头+802.2头+SNAP+TCP/IP协议族--------------这是以太网标准中的协议帧,但好像使用的很少。

二、以太网管理帧的区分

1.区分802.3帧与EthernetII帧

Type/Length域<=0x05DC---------------------为802.3帧

Type/Length域>0x05DC-----------------------为以太网帧

2.区分802.1与SNAP

区分依据:LLC的DSAP与SSAP的值(下面简称SAP)

SAP=0x42 -------------------------------802.1协议族

SAP=0xAA-------------------------------SNAP协议

SNAP协议格式

| protocol or organization code | type |

3字节      2字节

802.1协议格式

|  protocol ID  |  Message1 |Message2 |.... |  End Mark  |

1字节  3字节  3字节

3.区分802.1q与802.3、EthernetII

Type/Length<=0x05DC--------------------------802.3帧

Type/Length>0x05DC----------------------------EthernetII帧

Type/Length=0x8100-----------------------------802.1q帧

注意:802.1q帧是在普通帧头插入802.1q字段来实现的

========================================================================

交换机存在三种工作模式:

Access,接入模式

Trunk,中继模式

Hybrid,混杂模式

Access类型端口:只能属于1个VLAN,一般用于连接计算机端口;

该接口的pvid和允许列表必须为同一个vlan,且允许列表中只能为允许一个vlan,必然是不标记;这就很明显,因为同一个VLAN间是可以直接二层互通的,所以带有相同VLAN的流量从交换机下来时,要剥离VLAN标签;

Trunk类型端口:可以允许多个VLAN通过,可以接收和发送多个VLAN 报文,一般用于交换机与交换机相关的接口。

Hybrid类型端口:可以允许多个VLAN通过,可以接收和发送多个VLAN 报文;

Access,接入模式

接收:当数据没有tag时打上pvidtag进入,若有则看是否与pvid相等,相等则接收,不想等则丢弃。

转发:看tag是否等于pvid,若等则去tag发送,否则不处理。

Trunk,中继模式

接收:若数据没有带tag时。则打上pvidtag进入,若有,则看tag是否在allow列表,如在则进入,否则丢弃

转发:看tag是否在allow列表,不在则不处理,若在则看tag是否等于pvid,若等则去tag转发,不等则带tag转发

Hybrid类型端口

接收:若数据没有带tag则打上pvidtag进入,若有则看tag是否属于tagged/untagged表,属于则进入,否则丢弃

转发:看数据tag是否在tagged/untagged表,不做则不处理,若在则看属于那个表,若属于tagged则带tag转发,否则untaged去tag转发

pvid是交换机上的概念,说的是进入该端口的报文如果没有打vlan id就按pvid的值打上,vid是报文上的vlan tag的意思.不是同个概念

首先解释一下什么是PVID,PVID英文解释为Port-base VLAN ID,是基于端口的VLAN ID,一个端口可以属于多个vlan,但是只能有一个PVID,收到一个不带tag头的数据包时,会打上PVID所表示的vlan号,视同该vlan的数据包处理,所以也有人说PVID就是某个端口默认的vlan ID号。

默认情况下,简单的理解为:
ACCESS端口接PC,VID=PVID
TRUNK端口级联,VID=全部,PVID=1

简单的说,VID(VLAN ID)是VLAN的标识,定义其中的端口可以接收发自这个VLAN的包;而PVID(Port VLAN ID)定义这个untag端口可以转发哪个VLAN的包。比如,当端口1同时属于VLAN1、VLAN2和VLAN3时,而它的PVID为1,那么端口1可以接收到VLAN1,2,3的数据,但发出的包只能发到VLAN1中

在网上发现一个比较好的解释是:PVID并不是加在帧头的标记,而是端口的属性,用来标识端口接收到的未标记的帧。也就是说,当端口收到一个未标记的帧时,则把该帧转发到VID和本端口PVID相等的VLAN中去。

802协议族太网帧格式相关推荐

  1. TCP/IP协议族(第4版)

    链接:https://pan.baidu.com/s/1Pia2by1s83kiVXEyU-dPRg 密码:ruur <世界著名计算机教材精选·TCP/IP协议族(第4版)>可作为大学生和 ...

  2. Network 之五 TCP/IP 协议族、工作流程、常用协议格式

      最近工作需要搞网络相关的内容,由于之前对网络了解比较少,因此开始重点学习一下网络相关的各种知识.博文中的有些内容来自于在学习过程中对于一些互联网上我认为的重点知识的记录,如果侵权请联系删除!    ...

  3. 计算机原理---什么叫协议?主流协议族TCP/IP协议与HTTP协议的联系及区别

    文章目录 一. 背景 1. 名词定义 2. 协议选择 3. 常用协议 二. 协议协议,究竟什么是协议? 1.举个例子 2.计算机网络一般分为5层 应用层 传输层 网络层 数据链路层 物理层 三.总结 ...

  4. TCPIP协议族--其他协议

    TCP/IP协议族–其他协议 文章目录 TCP/IP协议族--其他协议 协议是什么 TCP/IP TCP/IP的特点 分层 传输方式的分类 面向连接和面向无连接. 电路交换与分组交换 单播.广播.多播 ...

  5. TCP/IP协议族 详解(TCP/IP四层模型、OSI七层模型)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols) ...

  6. Linux网络编程 - 套接字与协议族

    一 理解网络编程和套接字(socket) 1.1 网络编程和套接字概要 网络编程就是编程程序使两台连网的计算机可以互相交换数据.那么,这两台计算机之间用什么传输数据呢?首先需要物理连接.如今大部分计算 ...

  7. C++网络编程中协议族和地址族

    一 协议族 协议族就是不同协议的集合,在Linux中,用宏来表示不同的协议族,这个宏的形式是PF开头,比如IPv4协议族为PF_INET,PF的意思是PROTOCOL  FAMILY,这些宏定义在/u ...

  8. 工业互联网 — TSN — 协议族

    目录 文章目录 目录 TSN 的协议族 IEEE 802.1AS 时间同步协议 IEEE 802.1Qbv 流量调度协议 IEEE 802.1Qbu.IEEE 802.3br 数据帧抢占协议 IEEE ...

  9. TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

    接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...

最新文章

  1. 使用React Router以编程方式导航
  2. 通过自定义消息调用主窗体的菜单项
  3. Prolog 语言入门(一)
  4. 双系统出现grub rescue修复方法
  5. PHP 命令行之-F (--process-file) 对每个输入行都执行 PHP 文件 (PHP 5 新加)
  6. screen投屏怎么用_Screen投屏
  7. 《孽海记·思凡》唱段·风吹荷叶煞
  8. 查验身份证 pat-1031
  9. Win8安装Rational Rose教程
  10. boss直聘上看信息 但是不会显示已读
  11. 洛谷P1217 [USACO1.5]回文质数 Prime Palindromes
  12. Java题解:如何获取某一天的下一天的时间
  13. SEO快排是什么?怎样实现快排?
  14. 如何用UE4制作2D游戏文档(一)——基础篇
  15. vue前端实现上传文件,vue 上传文件
  16. 美国正在搞一场大规模人工智能大赛,主办方是情报研究计划局
  17. vue框架项目中使用阿里矢量图标库
  18. 基于Java的开源CMS系统选择
  19. 李子的猜数游戏!!!!!epsilon1.0!
  20. 上海市街道划分矢量数据

热门文章

  1. python elasticsearch 提示 ‘update‘ API and will be removed
  2. 医学杂识-脑电数据-TRC文件解读分析
  3. C# winform 树层级列表 控件 ObjectListView的使用
  4. 手把手教你入门 Git 教程,图文实例详解
  5. java语言程序设计丁振凡ppt_Java语言程序设计(第2版)丁振凡第2章.ppt
  6. 斯密特正交化与QR分解
  7. 物流一站式单号查询之快递鸟API接口(附Demo源码)
  8. Unity Live2D的接入和使用
  9. 创业圈里那些魔性的拒绝史:张朝阳拒绝马化腾、马化腾拒绝马云...
  10. 物联网设备管理的未来