上一篇文章《以太网数据包结构》讲解了以太网数据包结构,其中牵扯到了802.3,以太网数据包等名词,本文将详解讲解一下这方面的内容。

在TCP/IP世界中,以太网IP数据报的封装是在RFC894中定义的,IEEE802网络的IP数据报封装是在RFC1042中定义的。最常使用的封装格式是RFC 894定义的格式。下图显示了两种不同形式的封装格式。

从上图看到,两种帧格式都采用48bit(6字节)的目的地址和源地址。

接下来的2个字节在两种帧格式中互不相同。

在802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括CRC检验码。

以太网的类型字段定义了后续数据的类型。而在802标准定义的帧格式中,类型字段则由后续的子网接入协议的首部给出。

幸运的是,802定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分。

长度/类型有两个意义,小于1518,代表后面字段的长度(也就是IEEE802.2/802.3(RFC1042)),大于1518,代表不同的类型(以太网的封装格式(RFC894))

0800 指IP数据类型

0806 指ARP协议,通过IP地址获得对应的MAC地址,称为地址解析协议

8035 指RARP协议,通过MAC地址来获得对应的IP地址,称为逆向地址解析协议

在以太网帧格式中,类型字段之后就是数据。而在802帧格式中,后面是3字节的802.2LLC,它是由目的服务访问点(DestinationService Access Point,DSAP)、源服务访问点(SourceService Access Point,SSAP)和Ctrl字段组成,DSAP和SSAP默认值是0xaa,Ctrl默认是3。再接下来的2个字节类型字段和以太网帧格式一样。

802.3标准定义的帧和以太网的帧都有最小长度要求。802.3规定数据部分必须至少为38字节,而对于以太网,则要求最少要有46字节。为了保证这一点,必须在不足的空间插入填充(pad)字节。

下面只讲最常用的以太网的封装格式(RFC894)

特别说明:上面的目的地址和源地址是MAC,不是IP!!!!

MAC地址解析

MAC地址前3个字节:组织身份标记  后3个字节:组织自行分配

第1个字节

b0:0表示单播,1表示组播

b1:0表示被某个组织使用,1表示个人使用

例子:

02-00-00-00-00-01:本地分配

00-50-C2-xx-xx-xx:ST的MAC地址

01-00-5E-xx-xx-xx:IPv4的多播地址

FF-FF-FF-FF-FF-FF:广播地址

上文说到,以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节。链路层的这个特性称作MTU,最大传输单元。不同类型的网络大多数都有一个上限。如果IP层有一个数据包要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片,把数据包分成若干片,这样每一片都小于MTU,IP分片的问题会在讲解IP协议的时候讲解。下图列出了一些典型的MTU值。

我们将用netstat命令打印出网络接口的MTU。

- i参数将打印出接口信息,- n参数则打印出IP地址,而不是主机名字。

这个命令打印出每个接口的MTU、输入分组数、输入错误、输出分组数、输出错误、冲突以及当前的输出队列长度。

点击查看本文所在的专辑,STM32F207网络开发

关注公众号,第一时间收到文章更新

以太网头数据和802.3的区别相关推荐

  1. 分片提升容量难度大,时间长,故而Vitalik提出使用BCH或者ETC作为以太坊数据层

    7月25日晚,莱比特矿池CEO江卓尔在巴比特在线直播节目She Knows中表示,分布式系统(去中心化系统)有一个不可能三角,称为分布式系统CAP定理,指的是在一个分布式系统中,Consistency ...

  2. V神建议使用BCH区块链用于以太坊“数据层”

    在以太坊社区论坛Ethresear.ch中,以太坊联合创始人Vitalik Buterin发布了一篇题为<BCH:以太坊的短期数据可用层?>的文章,他在文中提出了一个关于解决以太坊短期网络 ...

  3. 数据操作语言DML及数据定义语言DDL的区别

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 数据操作 ...

  4. 云计算、大数据和人工智的区别和联系

    云计算.大数据和人工智的区别和联系 今天跟大家讲讲云计算.大数据和人工智能.这三个词现在非常火,并且它们之间好像互相有关系. 一般谈云计算的时候会提到大数据.谈人工智能的时候会提大数据.谈人工智能的时 ...

  5. 大数据与应用统计学的区别与联系

    (一) 大数据与应用统计学的区别 亚马逊首席科学家 Andreas Weigend 有着数据就是新的石油的观点.作为一种资产,大数据实现盈利的关键就在于,提高对海量数据的分析处理能力,通过特殊的技术实 ...

  6. 以太坊数据上链和展示智能合约

    以太坊数据上链和展示智能合约 1. 首先定义上链数据的基本结构(推荐使用结构体) 2. 定义全局变量和判定的一些变量 3. 定义接受数据和展示数据的函数 4. 将数据传入,使用memory定义接受变量 ...

  7. 关于数据仓库、数据湖、数据平台和数据中台的概念和区别

    点击上方 "zhisheng"关注, 星标或置顶一起成长 Flink 从入门到精通 系列文章 我们谈论数据中台之前,我们也听到过数据平台.数据仓库.数据湖的相关概念,它们都与数据有 ...

  8. 数据湖和数据仓库的区别?

    简介 数据湖这个概念和数据仓库这两个概念一直搞不清楚,之前感觉区别就是数据湖是数据仓库的父集.数据湖是个伪命题,平时生活中也用不到,然后今天听了我的一个师哥的讲解,然后简单总结下. 常见的问题 1 数 ...

  9. 用Web3.py、Infura和Graph查询以太坊数据

    本文我们将使用Web3.py这个Python库直接查询以太坊数据.Web3.py是一个为与Ethereum区块链交互而建立的Python库.有了它,我们可以为去中心化的应用程序建立各种核心功能.我们可 ...

最新文章

  1. mongodb 初学 意外 连接服务器异常(Connection refused)
  2. Python爬虫之selenium库使用详解
  3. 携程CEO称成功来自传统营销 B2C已经过时
  4. 音视频技术开发周刊 61期
  5. 斌伯的博客园Blog开张大吉
  6. Centos查看与关闭防火墙
  7. cnpm 网络不能连接_5G网络那么牛,能打电话吗?(连载二)
  8. 类模板 templateclass T
  9. 为什么C预处理程序将单词“ linux”解释为常量“ 1”?
  10. JNI 概述 (翻译)
  11. 用于实时实例分割的Deep Snake算法
  12. 贝叶斯公式:通俗的理解
  13. vue3 + vite +ts 引入静态图片
  14. 全球上线!ABB中国涡轮增压器分拆 – 数据清理阶段完成
  15. 在阿里云CentOS7上搭建ftp服务器
  16. 原理剖析(第 012 篇)Netty之无锁队列MpscUnboundedArrayQueue原理分析
  17. JAVA:实现binary exponentiation二进制幂运算算法(附完整源码)
  18. 安卓课程设计之记账本_课程设计:基于安卓的记账本.doc
  19. 渐变折射率(GRIN)透镜的建模
  20. 大咖 | 王汉生:从数据到价值的转化,回归分析的“道”与“术”

热门文章

  1. js layui跳转页面_【WEB前端开辟】layui的iframe跳转链接与页面按钮跳转相干引见...
  2. python多线程飞速写入文件
  3. 英文文本分析:与COVID-19有关的论文文本分析
  4. elementary os(ubuntu)开启ipv6 与走SwitchyOmega代理
  5. Intellij IDEA 导入或运行流式处理框架storm以及java.lang.NoClassDefFoundError报错的解决方案
  6. pythonapi异步_Python-FastAPI异步博客开发记录--异步篇
  7. git 创建新分支并关联远程分支_git常用操作命令归纳
  8. 返回一个二维整数数组中最大子数组的和(二人结对)
  9. MATLAB学习(4)——min
  10. SizeClass和Autolayout