链路层帧常用的帧格式有两种:Ethernet II   与   IEEE802.3

Ethernet II 格式多用于终端设备的通信

IEEE802.3  格式多用于网络设备的通信

如何区分这两种报文:

Lenth/Type >= 1536(0x0600)   则为Ethernet_II

Lenth/Type <=1500(0x05DC)    则为IEEE802.3

Type字段表示协议类型:如0x0800(IP)  0x0806(ARP) 0x8100(VLAN)

Length字段表示数据data的长度:最小是46 (0x002E)最大是1500(0x05DC)

如果Type/Length的值超过了0X0600,那么他一定是EthernetII的帧 ,否则为IEEE802.3的帧

下面是帧的格式

先来看看以太网2的帧格式:

这是一个ARP广播包,主要看帧那块(红色花圈地方)

可以看搭配目的mac地址和源mac地址

以及类型Type :0x8100属于VLAN

剩下的便是Data 和 检验以及填充了

802.3帧与以太网2真的区别主要在于多了一个LLC字段

LLC (Logical Link Control)逻辑链路控制字段,和EthernetII的Type字段功能类似,表示封装的数据协议类型。

数据协议类型分为两种:

SAP  (通用协议)如ARP  STP等

SNAP(私有协议)如思科的CDP VTP等

光说无用,抓几个包看看就明白了

这个包是802.3的帧,帧的大小是60个字节

在LLC这个字段当中:有DSAP  SSAP  Control filed

DSAP 表示目的服务访问点,值是0X42表示STP协议的服务

SSAP 表示源服务访问点,值是0x42也是STP协议的服务

Control field字段可以先不用管,他的值一般都为0x03

因为该包属于通用协议,而不是私有协议,所以SNAP字段的内容就不存在了。下面抓个思科的CDP协议的数据包看看:

抓个包比较大有400个字节,封装的是cisco的CDP协议,仍是802.3帧

在LLC字段当中略有不同:DSAP SSAP CONTROL  OrgCode  PID

DSAP 目的服务访问点值是0xaa表示私有协议

SSAP 源服务访问点值是0xaa表示私有协议

Control 字段依然是0x03

Orgcode  产商代码:如cisco的是0x00000c

PID   协议ID:CDP协议

所以私有协议当中才会使用到帧格式当中的SNAP字段。

帧中还有一个前导码和帧首定界符

其主要用于同步时钟以及标识帧的开始位置,没必要深究

Frame报文的更多相关文章

  1. 一种基于uCos-II操作系统和lwIP协议栈的IEEE-1588主站以及基于该主站的报文处理方法

    主站以及应用于电力系统的支持IEEE‐1588协议的主时钟(IEEE‐1588主站)的实现方法.该方法是在一个低成本的硬件平台上,借助uCos‐II操作系统和TCP/IP的协议栈,对以太网数据进行了分 ...

  2. Tcp/ip 报文解析

    在编写网络程序时,常使用TCP协议.那么一个tcp包到底由哪些东西构成的呢?其实一个TCP包,首先需要通过IP协议承载,而IP报文,又需要通过以太网传送.下面我们来看看几种协议头的构成 一 .Ethe ...

  3. 前端学HTTP之报文首部

    前面的话 首部和方法配合工作,共同决定了客户端和服务器能做什么事情.在请求和响应报文中都可以用首部来提供信息,有些首部是某种报文专用的,有些首部则更通用一些.本文将详细介绍HTTP报文中的首部 结构 ...

  4. Http报文格式学习及Get和Post主要区别总结

    HTTP(HyperText Transport Protocol,超文本传送协议) http请求数据包的格式:头部(request line + header)+  数据(data) 头部和数据包体 ...

  5. Jumbo frame与MTU

    最近有测试问我Jumbo和MTU分别限制的是什么把我问住了,网上查了一些资料,发现大部分是百科上copy下来的,都没有说到点子上,关键时刻还是同事靠谱,现在根据自己的理解整理一下.   首先了解一下二 ...

  6. 基于PLC1850平台的UDP报文接收与发送

    一.UDP报文格式 源端口(2个字节):发送报文的进程的16位端口号. 目的端口(2个字节):目的设备上的接收进程的16位端口号. 长度(2个字节):整个UDP数据报的长度,包括首都和数据字段. 校验 ...

  7. 网卡最大传输单位MTU和巨型帧(Jumbo frame)设置

    1. 背景:在1998年,Alteon Networks 公司提出把Data Link Layer最大能传输的数据从1500 bytes 增加到9000 bytes,这个提议虽然没有得到IEEE 80 ...

  8. (转)tcp/ip协议的简单理解 -- ip报文和tcp报文的格式

    1.概念: TCP/IP协议通信的过程其实就对应着数据入栈与出栈的过程.入栈的过程,数据发送方每层不断地封装首部与尾部,添加一些传输的信息,确保能传输到目的地.出栈的过程,数据接收方每层不断地拆除首部 ...

  9. HTTP协议图--HTTP 报文首部之首部字段(重点分析)

    1.首部字段概述 先来回顾一下首部字段在报文的位置,HTTP 报文包含报文首部和报文主体,报文首部包含请求行(或状态行)和首部字段. 在报文众多的字段当中,HTTP 首部字段包含的信息最为丰富.首部字 ...

随机推荐

  1. Python 管理 MySQL

    Python MySQLdb 模块 Python pymysql 模块 Python SQLAlchemy 模块 Python ConfigParser 模块 Python 创建 MySQL 配置文件 ...

  2. 使用 requests 维持会话

    什么是 Cookie 和 Session: 简单来说,我们访问每一个互联网页面,都是通过 HTTP 协议进行的,而 HTTP 协议是一个无状态协议,所谓的无状态协议即无法维持会话之间的状态.比如,仅使 ...

  3. django初体验 学习笔记

    django环境搭建     1.安装Python     2.ipython         sudo apt-get install ipython         sudo pip instal ...

  4. SQL - 根据天来分组比较

    SELECT COUNT(*) FROM (SELECT WeixinUserID,CONVERT(varchar(100),CreateTime, 23) AS DT FROM SiteVisite ...

  5. openldap slapd.conf参数

    已安装系统的 /etc/openldap/slapd.conf 中包含 LDAP 服务器的完整配置文件.在此简述了其中的各个项并说明了必要的调整.以符号 (#) 为前缀的项处于非活动状态.必须取消这个 ...

  6. 三元组顺序结构实现稀疏矩阵相加,行序优先(Java语言描述)

    不用十字链表也可以稀疏矩阵相加时间复杂度最坏情况达到O(tuA + tuB);思路比较简单就不赘述了,代码如下: 三元组: package 行逻辑链接的顺序表实现稀疏矩阵的相乘; public cla ...

  7. Elasticsearch 学习之配置文件详解

    Elasticsearch配置文件##################### Elasticsearch Configuration Example ##################### # # ...

  8. WinDbg基于管道的虚拟机Kernel Debugging

    Windows Server 2012 + Hyper-V调试Windows XP SP3 32-bit虚拟机. 1.Hyper-V选中虚拟机,设置COM port,Named pipe定义一个名字. ...

  9. 总结一下最近用到的技术(2)--JsonSchema和JsonSchemaValidator

    我们最早接触xml的时候会使用一个dtd文件去定义xml里可以有哪些元素和属性等,后来发展到xml schama(是一个xsd文件,在dtd的基础上提供了命名空间等更强大的功能) 现在,RESTful ...

  10. C语言位操作--奇偶校验算法

    信息是以比特流的方式传输的,类似01000001.在传输过程中,有可能会发生错误,比如,我们存储了01000001,但是取出来却是01000000,即低位由0变成了1.为了检测到这种错误,我们可以通过 ...