链路层帧常用的帧格式有两种: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. openjdk源码阅读

    http://rednaxelafx.iteye.com/blog/1549577 http://blog.csdn.net/fancyerii/article/details/7007503 ├—a ...

  2. Windows 7笔记本创建wifi热点供手机上网教程

    Windows 7笔记本创建wifi热点供手机上网教程 | 浏览:60606 | 更新:2012-07-19 11:48 | 标签:笔记本 wifi 1 2 3 4 5 6 7 分步阅读 用智能手机的 ...

  3. open-falcon之query

    功能 query组件,提供统一的绘图数据查询入口.query组件接收查询请求,根据一致性哈希算法去相应的graph实例查询不同metric的数据,然后汇总拿到的数据,最后统一返回给用户. 配置文件 { ...

  4. Mavan学习之pom聚合

    所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml.它们之间通过继承和聚合(也称作多模块,multi-module)相互关联.那么,为什么要这么做呢?我们明明在开发一 ...

  5. Elasticsearch学习之深入搜索四 --- cross-fields搜索

    1. cross-fields搜索 一个唯一标识,跨了多个field.比如一个人,标识,是姓名:一个建筑,它的标识是地址.姓名可以散落在多个field中,比如first_name和last_name中 ...

  6. Elasticsearch学习之嵌套聚合,下钻分析,聚合分析

    1. 计算每个tag下的商品数量 GET /ecommerce/product/_search { "aggs": { "group_by_tags": { & ...

  7. sencha touch Container

    Container控件是我们在实际开发中最常用的控件,大部分视图控件都是继承于Container控件,了解此控件能帮我们更好的了解sencha touch. layout是一个很重要的属性,能够帮助你 ...

  8. sencha touch 2.2 为list PullRefresh插件添加refreshFn方法

    sencha touch 2.2 list PullRefresh插件没有refreshFn方法 但是我们又需要他,所以需要自行扩展 代码如下 /** * 重写下拉刷新插件,以支持refreshFn事 ...

  9. [原]git的使用(三)---管理修改、

    上接git的使用(二) 7.管理修改 [要理解的概念]为Git跟踪并管理的是修改,而非文件 什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一 ...

  10. mvn deploy命令上传包

    需求:有的时候需要单独上传release jar包,因为存在工程代码在A内网SVN,Nexus在B内网.这种情况下使用VPN也无法解决Jar包发布的问题. 这个时候采取的方式只能是: 打出jar包 - ...