数据帧 订阅
所谓数据帧(Data frame),就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如IP数据包,等等。 展开全文
所谓数据帧(Data frame),就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如IP数据包,等等。
信息
组    成
帧头,数据部分,帧尾
MAC帧数据
长度在46到1500字节之间
解    释
数据链路层的协议数据单元
外文名
Data frame
数    量
三部分
中文名
数据帧
MAC帧尾
4字节长
数据帧数据帧的种类
在发送端,数据链路层把网络层传下来得数据封装成帧,然后发送到链路上去;在接收端,数据链路层把收到的帧中的数据取出并交给网络层。不同的数据链路层协议对应着不同的帧,所以,帧有多种,比如PPP帧、MAC帧等,其具体格式也不尽相同。
收起全文
精华内容
下载资源
问答
  • 聊聊ppp数据帧与MAC数据帧

    千次阅读 2018-11-25 17:51:15
    ppp数据帧中F定义了数据帧的开始和结束,A定义了接收方的地址,C作为控制位,协议类型规定了来自于网络层的数据包所应用的网络协议,FCS为差错校验盒,目的是为了保证数据帧无差错的接收。FCS所应用的差错校验算法,...
    • 首先,我们知道数据链路层的信道分为两种:

      • 点对点信道
      • 广播信道
    • 今天我们讨论的ppp协议就应用于点对点的通信方式 ,我们先来看一下ppp数据帧的具体结构:
      在这里插入图片描述


    • ppp数据帧中F定义了数据帧的开始和结束,A定义了接收方的地址,C作为控制位,协议类型规定了来自于网络层的数据包所应用的网络协议,FCS为差错校验盒,目的是为了保证数据帧无差错的接收。FCS所应用的差错校验算法,比如循环冗余检测法等不是本篇讨论的主要问题,有兴趣的小伙伴可以了解一下。从ppp数据帧的结构可以看出,由于点对点的通信方式目标比较明确,所以该数据帧的结构中并没有使用过多的数据位来表示发送方的和接收方的数据地址,结构比较简单。

    接着我们来看一下MAC层的数据帧结构:
    在这里插入图片描述

    • 相比于ppp数据帧MAC帧增加了源MAC地址和目标MAC地址,物理层会在该层数据帧的前面加上一个8字节的数据块,其中前七字节表示前同步码告诉接收方现在可以准备接收数据了,做好准备。后面一字节定义了帧的开始。

    ppp数据帧和MAC数据帧同属于数据链路层,不同的是ppp只能用于点对点的通信方式,主要应用于广域网,而MAC数据帧可以应用于广播型的信道,包括总线型的网络结构和星型拓扑结构的网络结构中,主要是局域网。至于它们分别的应用时期,则取决于它们具体的应用环境。
    如果有问题欢迎各位小伙伴指正哦~。

    展开全文
  • CAN通信的数据帧和远程帧

    万次阅读 多人点赞 2018-07-04 08:50:37
    远程帧和数据帧非常相似,不同之处在于: (1)RTR位,数据帧为0,远程帧为1; (2)远程帧由6个场组成:帧起始,仲裁场,控制场,CRC场,应答场,帧结束,比数据帧少了数据场。 (3)远程帧发送特定的CAN ID,...

    (先来一波操作,再放概念)
    远程帧和数据帧非常相似,不同之处在于:
    (1)RTR位,数据帧为0,远程帧为1;
    (2)远程帧由6个场组成:帧起始,仲裁场,控制场,CRC场,应答场,帧结束,比数据帧少了数据场。
    (3)远程帧发送特定的CAN ID,然后对应的ID的CAN节点收到远程帧之后,自动返回一个数据帧。

    环回模式下(方便调试用),设置为发送远程帧:
    STM32端通过J-Link RTT调试软件可以打印出CAN接收到数据(在中断服务函数里面接收);
    而通过CANTest软件不能接收到STM32端发送出来的数据,因为远程帧比数据帧少了数据场;
    这里写图片描述

    正常模式下:通过CANTest软件手动发送一组数据,STM32端通过J-Link RTT调试软件也可以打印出CAN接收到的数据;
    这里写图片描述

    附上正常模式下,发送数据帧的显示效果:
    这里写图片描述

    接下来是概念
    看完上文,可以简单理解为:
    如果A需要B节点向你发送数据!A可以用B节点的ID,发送一个Remote frame(远程帧),B收到A ID 的 Remote Frame 之后就发送数据给A!发送的数据就是数据帧!
    远程帧就像命令,命令相应的节点返回一个数据包.

    应用(划重点):如果需要CAN上某个节点向你发送数据,你可以用这个节点的ID,发送一个Remote frame(远程帧),这样节点接收到这个Remote frame之后会自动发送数据给你!发送的数据就是数据帧!
    主要用来请求某个指定节点发送数据,而且避免总线冲突。

    总结(以下内容转载自allen6268198的博客):
    由于CAN总线发送帧时,仲裁方法只依靠帧ID号,当有两个相同ID号的帧同时竞争总线时,总线就无法判别出让哪个设备先发送帧,于是就造成总线冲突。

    为了总线访问安全,每个发送器必须用独属于自己的ID号往外发送帧(多个接收器的过滤器ID可以重复),(可以让某种信号帧只使用特定的ID号,而每个设备都是某一种信号的检测源,这样就形成某一特定个设备都只是用特定的ID号往总线上发送数据)。

    设有设备A,B,且假设A发送信息的ID为A_ID=1,B发送信息时是用的ID为B_ID=2。
    A是收取温度信息的设备,B是采集温度信息的设备。
    某一时刻,A需要请求B发送温度信息帧。那么A可有2种方法发送请求:
    1)A发送一帧数据,ID号为B的ID号(B_ID),数据域内容为【请求温度信息】。
    B的过滤器设置为接收B_ID帧。
    则A发送后被B接收到,B再以B_ID发送温度信息帧。被A接收到。
    这看似完美的过程,其实存在可能的总线冲突:如果A发送帧的同时,B也正要往总线上发送温度帧,则造成总线冲突。
    当然也可以采用别的方法来解决此问题,如A发送请求温度帧的ID号改成别的,当然B的过滤器也要做相应的设置。
    2)使用远程帧来做信息请求:由于A直接发送B_ID号的数据帧,可能造成总线冲突,但若是A发送远程帧:远程帧的ID号自然是B发送帧使用的ID号(B_ID )。
    由于CAN总线仲裁时,数据帧发送的优先级高于远程帧,即使有别的节点设备也在发送以B_ID为ID号的远程帧,因为远程帧除了ID号不同,其他都相同。所以不会造成总线冲突。
    当B(前提是以对过滤器设置接受B_ID类型的帧)接受到远程帧后,在软件(注意,是在软件的控制下,而不是硬件自动回应远程帧)控制下,往CAN总线上发送一温度信息帧,即使用B_ID作帧ID号往CAN总线上发送温度信息帧。该帧被A接受到(当然A的过滤器已在发送远程帧之前做了相应设置)。由此可见,远程帧可以使请求更简单,但也非不可代替。

    展开全文
  • CAN2.0B 数据帧详解

    万次阅读 多人点赞 2017-10-26 13:31:40
    CAN的帧类型分为数据帧、遥控帧、错误帧、过载帧以及帧间空隙,本文将对数据帧的帧结构展开说明: CAN2.0协议分为A版本和B版本,A版本协议为11位标识符(标准帧),B版本在兼容11位ID标识符的同时,向上扩展到29位...

    CAN的帧类型分为数据帧、遥控帧、错误帧、过载帧以及帧间空隙,本文将对数据帧的帧结构展开说明:

    引言:

    • CAN2.0协议分为A版本和B版本,A版本协议为11位标识符(标准帧),B版本在兼容11位ID标识符的同时,向上扩展到29位ID标识符。
    • 显性电平和隐性电平:

      总线上的电平有显性电平和隐性电平两种,显性电平的逻辑值为“0”,隐性电平为“1”。“显性”具有“优先”的特性,只要有一个单元输出显性电平,总线上即为显性电平,并且,“隐性”具有“包容”的特性,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比隐性电平更强)



    如上图所示,CAN数据帧分为以下7个部分。

    • Start of Frame
    • Arbitration Field
    • Control Field
    • Data Field
    • CRC Field
    • ACK Field
    • End of Frame


    1. Start of Frame:

    它指示一帧的开始,由1bit的显性位组成,必须在Bus Idle状态发出,网络上所有节点在“下降沿”执行一次同步;


    2. Arbitration Field


    标准帧和扩展帧的仲裁域是不同的:

    • 标准帧包含11bit的Identifier以及RTR-Bit,Identifier分布于ID28到ID18,禁止高7bit全都为隐性
    • 扩展帧包含29bit的Identifier,SRR-Bit,IDE-Bit以及RTR-Bit。Identifier分布于ID28到ID0,同样禁止高7bit全都为隐性。

    • RTR-Bit:RemoteTransmission Request BIT,远程请求位,显性表示数据帧,隐性表示远程帧。
    • SRR BIT:Substitute Remote Request BIT,替代远程请求位,它在扩展帧中,位于标准帧RTR的位置上,始终处于隐性。因此一旦标准帧与扩展帧发生冲突,将以标准帧的优先级高于扩展帧而结束。
    • IDE BIT:Identifier Extension Bit,标识符扩展位,它在标准帧中位于控制场,始终处于显性。在扩展帧中位于仲裁场,始终处于显性。


    仲裁域表示数据的优先级别,标识符组成的数值越小优先级越高。


    3. Control Field


    由6个bit组成,指示要传输信息的数据字节数。包含预留位IDE/r1、r0(2bit),DLC(4bit)。

    • r0、r1:保留位必须以显性电平传送,然而,在接收侧可以接收显性、隐性集任意组合的电平。
    • DLC:数据的字节数必须是0-8个字节,但接收方对DLC=9-15的情况并不视为错误。
    标准帧和扩展帧的控制场是不同的,在标准帧中r1的位置为IDE-Bit,是一个常态显性位。


    4. Data Field

    由0到8个字节组成,用于负载传输的数据,数据输出开始于MSB。


    5. CRC Field


    由15bit CRC Sequence和1bit CRC Delimiter组成,用来检查帧是否有传输错误。

    CRC Sequence:CRC序列,计算范围是SOF,仲裁域,控制域和数据域。

    CRC Delimiter:CRC界定符,是一个常态隐性位。


    6. ACK Field


    ACK(应答场)长度为2 个bit。包括ACK Slot和ACK Delimiter。

    • ACK Slot:应答间隙,发送节点送数据时,会将ACK Slot及ACK Delimiter全部置为隐性,接收节点计算CRC Sequence正确无误后,会在ACK Slot期间向发送方发送一个显性位以示应答。
    • ACK Delimiter:ACK界定符,是一个常态隐性位。

    如果总线上有2个以上的接收节点,只要它们当中任意一个正常接收到消息,就会有ACK被返回,如果总线上没有节点能够正常接收信息,则NO ACK被返回。另外发送节点不发送ACK。


    7. End of Frame

    指示帧的结束,由7个隐性位组成。


    展开全文
  • 数据帧的产生

    千次阅读 2017-01-24 16:15:01
    帧到底是由谁来产生的? 网卡可以产生,交换机也可以产生。交换机产生的话是因为交换机之间需要一些协议来维护特定的功能,如STP,VTP而最重要的功能还是转发网卡(也就是主机)...网卡传给路由器的不是数据帧吗?可

    帧到底是由谁来产生的?

    网卡可以产生,交换机也可以产生。交换机产生的话是因为交换机之间需要一些协议来维护特定的功能,如STP,VTP而最重要的功能还是转发网卡(也就是主机)所产生的帧。
    追问
    那比如说,我的设备是这么连的:主机---路由器---交换机---外网。那网卡是在我计算机内的,也就是网卡直接跟路由器相连。那我要向外发送数据。网卡传给路由器的不是数据帧吗?可是路由器是工作在网络层的,比网卡高。在这里是什么样的情况,还有这里的交换机的作用?
    真的对这些很模糊,希望能说得明白一点,谢谢。
    追答
    主机----交换机---路由器--外网,这样连是比较正常的。
    而你那种连法,把交换机去掉,也是可以的。(也不是说交换机连了就不可以,而是,没必要)
    所谓路由器工作在网络层,那指的是【实现功能中里最高的层次】,上层必须有底层的支持,也就是说路由器当然能支持数据链路层的功能。
    你要弄清楚数据的流向:一个帧到了交换机,它不需要把帧解封装,也就是不会处理网络层里数据包的内容,而是根据帧的信息转发。而到了路由器,它需要解开帧的封装,查看数据包的信息,然后根据数据包的目标地址再结合自己的路由表查找路径,重新封装成帧发往下一个目标。这也是路由器工作在网络层的含义
    追问
    非常感谢你的回答。我还有疑问,那就是在计算机内部数据也是从高层(向外发送数据的时候)流向低层,也就是说在说算机内部也完成了对数据的封装,那计算机也具有网络层及以下层的功能吗?这种是不是只是协议上的用软件来实现的?也就是说这种功能不只有路由器才有(因为我们都说路由器工作在网络层)?
    我就是对这里感到疑惑,还有你说的某设备工作在某层,那它是不是具备它所在层及以下层的功能?
    追答
    计算机具有所有层的功能,其中网卡完成数据链路层和物理层(可以看成硬件),TCP/IP协议栈完成其余上层功能。(可以看成软件)
    路由器本质上就是计算机,里面也可以分底层模块和高层模块,一般都是底层由硬件实现而高层会涉及软件。其实高端路由器的一些比较强大的功能是可能超越网络层的(但路由器绝大部分还是在网络层)
    对于你最后的问题:是的。还是那句话,高层必须有底层支持。其实物理层我没有提到,但所有设备都是有物理层功能的,也必须经过物理层
    以太网(IEEE 802.3)帧格式:

    1、前导码:7字节0x55,一串1、0间隔,用于信号同步
    2、帧起始定界符:1字节0xD5(10101011),表示一帧开始
    3、DA(目的MAC):6字节
    4、SA(源MAC):6字节
    5、类型/长度:2字节,0~1500保留为长度域值,1536~65535保留为类型域值(0x0600~0xFFFF)
    6、数据:46~1500字节
    7、帧校验序列(FCS):4字节,使用CRC计算从目的MAC到数据域这部分内容而得到的校验和。

    据RFC894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大帧长应该是以太网首部加上1500,再加上7字节的前导同步码和1字节的帧开始定界符,具体就是:7字节前导同步吗+1字节帧开始定界符+6字节的目的MAC+6字节的源MAC+2字节的帧类型+1500+4字节的FCS。

    按照上述,最大帧应该是1526字节,但是实际上我们抓包得到的最大帧是1514字节,为什么不是1526字节呢?原因是当数据帧到达网卡时,在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交“设备驱动程序”做进一步处理。这时我们的抓包软件才能抓到数据,因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据,其最大值是6+6+2+1500=1514。

    以太网规定,以太网帧数据域部分最小为46字节,也就是以太网帧最小是6+6+2+46+4=64。除去4个字节的FCS,因此,抓包时就是60字节。当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面填充以满足数据帧长不小于64字节。由于填充数据是由MAC子层负责,也就是设备驱动程序。

    展开全文
  • 以太网数据帧和ARP协议

    千次阅读 2019-07-02 13:12:14
    在以太网环境下,需要得知目的主机的mac地址才可以进行数据帧的发送,但是在数据帧从上层向下封装时,并无法得知目的主机的mac地址,所以在数据链路层进行数据帧格式的封装时,需要用到ARP协议。 前导码和帧开始符...
  • Android之仿美团加载数据帧动画

    万次阅读 2017-04-03 10:33:18
    仿美团加载数据帧动画实现、
  • websocket前后台出现问题解决方法:一开始通过限制后台返回数据帧以125字节分隔分段数据返回给前台,但调试时发现只要加上其他的一些信息返回json string很容易就会超过了125字节,于是在后台修改了这个限制大小为...
  • CAN总线学习笔记(2)- CAN协议数据帧与遥控帧

    万次阅读 多人点赞 2018-03-31 15:34:11
    依照瑞萨公司的《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上...数据帧 遥控帧 错误帧 过载帧 帧间隔 在讲述五种帧结构的过程中,穿插讲述CAN总线的通信机制。 2 数据帧与遥控帧 在CAN协议中...
  • 802.11 数据帧格式

    千次阅读 2016-08-29 17:40:02
    一、802.11数据帧 1、802.11数据帧的一般格式说明 2、数据帧各个字段说明 名称 描述 长度(字节) 帧控制(Frame Control)   2 持续时间(Duration ID) ...
  • 最近在研究CAN总线的驱动,需要详细了解数据帧/标准帧/扩展帧/远程帧/错误帧这几种帧的详细组成格式,于是收集了一下,统一放在这里进行对比和记录,以便日后需要时查阅
  • 以太网数据帧内容详解

    千次阅读 2019-09-13 18:52:26
    在学习计算机网络的时候,好像更偏重于了解ip头部的格式,经常忽略了数据链路层下数据帧的格式,今天在书上看到一个不错的关于数据帧格式的介绍,翻译并分享给大家。 Preamble 前导码,序言:7byte或56bits的...
  • MODBUS-RTU数据帧格式、报文实例

    万次阅读 多人点赞 2017-10-07 14:13:16
    MODBUS-RTU报文模型 设备地址 ...一个报文就是一帧数据,一个数据帧就一个报文: 指的是一串完整的指令数据,就像上面的一串数据。主机对从机写数据操作如果单片机接收到一个报文那么就对报文进行解析
  • WebSocket之解析数据帧

    千次阅读 2017-04-16 22:26:08
    WebSocket之解析数据帧 知道了怎么握手只是让客户端和服务器建立连接而已,WebSocket真正麻烦的地方是在数据的传输上!为了环保,它使用了特定格式的数据帧,这个数据帧需要自己去解析(当然也有别人编写好的库可以...
  • 以太网数据帧详细解析 逐字节分析

    千次阅读 2020-08-25 21:18:49
    以太网数据帧详细解析 详细解析以太网通信数据帧 测试环境 机器名 mac ip port tcp_server 00:0c:29:8b:37:da 10.1.2.7 9502 tcp_client 00:50:56:c0:00:08 10.1.2.1 12345 抓包 客户端向服务端发送 '...
  • 二层数据帧转发过程

    万次阅读 2017-10-25 18:37:16
    二层数据帧转发过程
  • 数据帧、数据包、数据报以及数据段  OSI参考模型的各层传输的数据和控制信息具有多种格式,常用的信息格式包括帧、数据包、数据报、段、消息、元素和数据单元。   信息交换发生在对等OSI层之间,在源端...
  • R语言开发之数据帧操作了解下

    千次阅读 2018-09-14 13:40:45
    数据帧是一个表或二维类似数组的结构,其中每列包含一个变量的值,每行包含来自每一列的一组值,我们来看下它的一些特征: 列名称应该不为空。 行名称应该是唯一的。 存储在数据帧中的数据可以是数字,因子或字符...
  • 单片机串口发送数据帧

    万次阅读 多人点赞 2015-09-30 20:35:25
    很少看到有资料写如何以中断的方式发送一帧数据,如果以等待的发送数据帧,对高速运行的单片机来说是很浪费时间的,下面就介绍一种使用中断方式发送数据帧,操作平台采用51 mcu
  • 数据帧、数据包、数据报以及数据段

    万次阅读 多人点赞 2016-09-11 20:04:59
    数据帧、数据包、数据报以及数据段  OSI参考模型的各层传输的数据和控制信息具有多种格式,常用的信息格式包括帧、数据包、数据报、段、消息、元素和数据单元。   信息交换发生在对等OSI层之间,在源...
  • MODBUS_Rtu通讯(一):数据帧格式解读

    万次阅读 多人点赞 2019-01-29 12:43:19
    1.Modbus数据帧构成:地址域 + 功能码 + 数据 + 差错校验 下面逐一解释各部分的具体含义: (1)地址域:即主站要访问的从站地址,其范围0~247 (2)功能码:即主站想要从站执行什么动作。 从大的方面看分为读...
  • 802.11协议帧之数据帧格式解析

    万次阅读 2018-09-15 11:52:50
    所有802.11的帧分为三类:管理帧、控制帧、数据帧,本篇主要对数据帧协议讲解。欢迎讨论,QQ:993650814   正文: 一、通用帧格式介绍 1、802.11通用帧格式  由上图可以看出,802.11帧总共有如下几个字段:...
  • LoRa开发6:接收数据帧

    千次阅读 2016-10-17 16:38:57
    基于Contiki和SX1278,开发接收数据帧的代码。
  • Android TCP传输自定义格式数据帧

    千次阅读 2016-03-21 10:17:31
    数据帧里可以包含:帧头、消息长度、校验和、流水号、数据命令等自定义内容,客户端需要做的是将各种数据类型的内容转成字节传输给服务器,服务器进行解析处理。 需要留意的一点,是Endian字节序。 java.nio.
  • 802.1Q封装的VLAN数据帧格式

    千次阅读 2020-02-02 19:41:47
    IEEE 802.1Q封装的VLAN数据帧格式 VLAN数据帧格式 要使交换机能够分辨不同VLAN的报文,需要在报文中添加标识VLAN信息的字段。IEEE 802.1Q协议规定,在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段...
  • (2012年联考) 两台主机之间的数据链路层采用了后退N帧协议(GBN)传输数据,数据的传输速率为16kbps,单向传播时延为270ms,数据帧的长度范围是128~512字节,接收方总是以数据帧等长的帧进行确认(即确认帧长度与发送...
  • CAN总线扩展数据帧介绍

    千次阅读 2018-03-27 08:22:02
    在扩展CAN 数据帧中,紧随SOF 位的是32 位的仲裁字段。仲裁字段的前11 位为29 位标识符的最高有效位(Most Significant bit,MSb)(基本lD) 。紧随这11 位的是替代远程请求(Substitute Remote Request, SRR)位...
  • PPP数据帧的格式

    千次阅读 2015-04-07 21:09:32
    PPP协议也许大家都听说过,可以说现在... 1、PPP数据帧的格式;  2、PPP的几种报文;  3、PPP的状态转移    首先说说的PPP数据帧的格式,因为PPP是链路层协议,所以我们将它的数据单位称为帧, 7E FF
  • 以太网数据帧结构分析

    千次阅读 2014-07-23 09:15:16
    实验目的:分析IP报头数据段组件,了解数据帧结构 实验软件:Wireshark(OmniPeek下载中……朋友介绍说该软件抓包更强大) 实验线路:ADSL 随便抓的一个数据帧,结构如下 802.3 以太网帧结构 前导...
  • 解析串口-接收完整数据帧

    万次阅读 多人点赞 2016-05-23 16:48:35
    但是我们会发现,read一次得到的数据通常不是完整的一个数据帧。比如完整数据帧为但是实际上需要read多次才能完全读到。程序实际运行情况:两次读完:四次读完:为了解决不能接收完整数据帧的问题,借鉴了网友的例子...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 370,950
精华内容 148,380
关键字:

数据帧