Frame报文
链路层帧常用的帧格式有两种: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报文的更多相关文章
- 一种基于uCos-II操作系统和lwIP协议栈的IEEE-1588主站以及基于该主站的报文处理方法
主站以及应用于电力系统的支持IEEE‐1588协议的主时钟(IEEE‐1588主站)的实现方法.该方法是在一个低成本的硬件平台上,借助uCos‐II操作系统和TCP/IP的协议栈,对以太网数据进行了分 ...
- Tcp/ip 报文解析
在编写网络程序时,常使用TCP协议.那么一个tcp包到底由哪些东西构成的呢?其实一个TCP包,首先需要通过IP协议承载,而IP报文,又需要通过以太网传送.下面我们来看看几种协议头的构成 一 .Ethe ...
- 前端学HTTP之报文首部
前面的话 首部和方法配合工作,共同决定了客户端和服务器能做什么事情.在请求和响应报文中都可以用首部来提供信息,有些首部是某种报文专用的,有些首部则更通用一些.本文将详细介绍HTTP报文中的首部 结构 ...
- Http报文格式学习及Get和Post主要区别总结
HTTP(HyperText Transport Protocol,超文本传送协议) http请求数据包的格式:头部(request line + header)+ 数据(data) 头部和数据包体 ...
- Jumbo frame与MTU
最近有测试问我Jumbo和MTU分别限制的是什么把我问住了,网上查了一些资料,发现大部分是百科上copy下来的,都没有说到点子上,关键时刻还是同事靠谱,现在根据自己的理解整理一下. 首先了解一下二 ...
- 基于PLC1850平台的UDP报文接收与发送
一.UDP报文格式 源端口(2个字节):发送报文的进程的16位端口号. 目的端口(2个字节):目的设备上的接收进程的16位端口号. 长度(2个字节):整个UDP数据报的长度,包括首都和数据字段. 校验 ...
- 网卡最大传输单位MTU和巨型帧(Jumbo frame)设置
1. 背景:在1998年,Alteon Networks 公司提出把Data Link Layer最大能传输的数据从1500 bytes 增加到9000 bytes,这个提议虽然没有得到IEEE 80 ...
- (转)tcp/ip协议的简单理解 -- ip报文和tcp报文的格式
1.概念: TCP/IP协议通信的过程其实就对应着数据入栈与出栈的过程.入栈的过程,数据发送方每层不断地封装首部与尾部,添加一些传输的信息,确保能传输到目的地.出栈的过程,数据接收方每层不断地拆除首部 ...
- HTTP协议图--HTTP 报文首部之首部字段(重点分析)
1.首部字段概述 先来回顾一下首部字段在报文的位置,HTTP 报文包含报文首部和报文主体,报文首部包含请求行(或状态行)和首部字段. 在报文众多的字段当中,HTTP 首部字段包含的信息最为丰富.首部字 ...
随机推荐
- linux 停止对某个端口的监听
1.通过"netstat -anp" 来查看哪些端口被打开. 2.关掉对应的应用程序,则端口就自然关闭了,如:"kill -9 PID" (PID:进程号)
- Selenium 选项卡管理
什么是选项卡: from selenium import webdriver browser = webdriver.Chrome() browser.get("http://www.bai ...
- Selenium 切换 Frame
我们知道网页中有一种节点叫作 iframe ,也就是子 Frame ,相当于页面的子页面,它的结构和外部网页的结构完全一致. Selenium 打开页面后,它默认是在父级 Frame 里面操作,而此时 ...
- 【软件分析与挖掘】An Empirical Study of Bugs in Build Process
摘要 对软件构建过程中所产生的错误(build process bugs)进行实证研究. 5个开源项目:CXF, Camel, Felix,Struts, and Tuscany. 把build pr ...
- springbatch---->springbatch的使用(七)
这里我们讲述一下springbatch中关于step层面上面的数据共享技术.而对街的人影都浸染在一片薄荷的白色中,由于无声,都好像经过漂染,不沾人间烟火. step的数据共享 关于springbatc ...
- sencha touch 可自动增长高度TextArea
js代码如下: /* *高度自动增长的文本框 */ Ext.define('ux.TextArea', { extend: 'Ext.field.TextArea', xtype: 'autoText ...
- nginx命令行参数和信号
nginx命令行参数 [user@host dir]$ /usr/local/nginx/sbin/nginx -hnginx version: nginx/1.8.0Usage: nginx [-? ...
- ftp主动与被动模式详解
FTP是仅基于TCP的服务,不支持UDP.与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口).通常来说这两个端口是21(命令端口)和20(数据端口).但FTP工作方式的不同 ...
- ZOJ 3435 Ideal Puzzle Bobble
ZOJ Problem Set - 3435 Ideal Puzzle Bobble Time Limit: 2 Seconds Memory Limit: 65536 KB Have yo ...
- javap(反汇编命令)详解
javap是JDK自带的反汇编器,可以查看java编译器为我们生成的字节码.通过它,我们可以对照源代码和字节码,从而了解很多编译器内部的工作. 语法: javap [ 命令选项 ] class. . ...