0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

认识以太网帧的整个结构

冬至子 来源:Bug记录 作者:woodfan 2023-06-19 14:59 次阅读

当你需要使用千兆网发送数据的时候,你需要先传输8字节的前导码,也就是7个字节的0xAA和1个字节的0xAB,但是因为网络协议规定,传输一个字节时LSB最先传输,所以在程序里,需要先发7个字节的0x55,再发1个字节的0xd5。然后就完成了以太网的数据同步和开始。

接下来就要开始二层MAC帧,里面的内容包括了发送目的地址的MAC地址,源地址的MAC地址以及IP类型,因为MAC帧里面除了IP协议以后,还有其他的比如ATM网络类型。所以这个地方的IP类型选择0x0800,为IPv4类型。

二层发完就需要发送三层的IP数据报首部,这个首部的内容就有点多了。以一个图片来代表,

图片

该图来源网络

这里我们只选用最精简的IP数据报首部,其它的可选项都忽略不表。

  • 因为使用IPv4,版本号肯定是4;
  • 这里的头长度,以4个字节为一个单位,我们选用最精简的版本,所以这里为5;
  • 服务类型默认为0;
  • 总长度以1个字节为一个单位,所以这个长度需要将UDP数据包长度加上4倍的IP包头长度;
  • 标识是每个数据包的计数器,当然发送一个包后,这个计数器就加1;
  • 标志位起到的作用是标志数据包是否有分片,如果有分片该包是否是这个分片的最后一包;
  • 片偏移就是在启用分片的时候标记出,这个数据包在整个数据中的位置;
  • 生存时间是这个数据包能够经过的最大路由器数,当它经过一个路由器转发,这个生存时间就会减1,减到0就会丢弃这个数据包,也就是代表这个数据包找不到它的下家了;
  • 上层协议标识,也就是IP数据包封装的里面的数据包的类型,我们选用相对简单的UDP协议,所以这个地方的值为17;
  • 头部检验和,这个检验和必须按照规则来说,否则接收方会认为这个数据包已经损坏了,它的运算规则可以从网上的资料查到,操作并不麻烦;
  • 接下来就要我们发送方的地址——源IP地址,这样让接收方收到我们的来信可以给我们回信;
  • 然后就是接收这个数据包的收件人的地址——目的IP地址;

至此,我们的IP数据包首部已经设置结束。

接下来就进入了UDP数据包首部,相对来说,UDP数据包的首部就非常简单,跟MAC帧一样简单。

图片

该图来源网络

  • 它的首部,2个字节的源地址端口,2个字节的目的端口,也就像门牌号一样,即使给你小区的名字,还需要给你一个几期几单元几栋才能找得到人;
  • 接下来就是数据长度,这里的数据长度不是指你要发送的数据长度,而是你要发送的数据长度加上UDP数据包的长度,所以这里的长度等于你要发的数据的长度(1个字节为1个单位)加上8,单位也是1个字节;
  • 最后的检验和可以设置为0,这里设为0不会影响数据的传输;

然后你就可以愉快的发送数据,发送完了之后就可以发送4个字节的CRC校验值。至此整个数据传输结束。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA设计
    +关注

    关注

    9

    文章

    428

    浏览量

    26464
  • 以太网
    +关注

    关注

    40

    文章

    5342

    浏览量

    170774
  • Mac
    Mac
    +关注

    关注

    0

    文章

    1095

    浏览量

    51332
  • LSB
    LSB
    +关注

    关注

    0

    文章

    37

    浏览量

    13233
  • UDP通信
    +关注

    关注

    0

    文章

    21

    浏览量

    1880
收藏 人收藏

    评论

    相关推荐

    以太网怎么连接 以太网组网结构分析

    以太网的组网结构涉及多个层面和组件。首先,从网络结构的角度来看,以太网分为物理层、数据链路层和高层用户层。其中,物理层采用特定的通信媒体,如50Ω基带同轴电缆,实现数据的传输。数据链路
    的头像 发表于 03-08 17:19 2962次阅读
    <b class='flag-5'>以太网</b>怎么连接 <b class='flag-5'>以太网</b>组网<b class='flag-5'>结构</b>分析

    FPGA学习-以太网的原理介绍

    以太网链路上的数据包称作以太网以太网起始部分由前导码和开始符组成。后面紧跟着一个
    的头像 发表于 04-02 16:26 1521次阅读
    FPGA学习-<b class='flag-5'>以太网</b>的原理介绍

    怎么使用以太网发送字节

    您好,我有一个PIC32以太网启动器套件,这个套件连接到一个进行人员计数的照相机上,收集的数据是以字节为单位的的形式。我想实现一个代码,在计算机上发送这些字节,并使用以太网链接(T
    发表于 03-26 09:24

    以太网结构

    以太网结构
    发表于 01-21 12:00 4次下载

    基于以太网间隙的同相时钟信息传输袁文燕

    基于以太网间隙的同相时钟信息传输_袁文燕
    发表于 03-15 08:00 0次下载

    以太网的拓扑结构_以太网的通信协议

    本文首先阐述了以太网的拓扑结构,其次介绍了以太网拓扑结构优缺点,最后介绍了以太网的通信协议。
    发表于 03-20 10:07 9098次阅读

    网络是否允许小于64字节的以太网或者报文传输?

    同学们在学网络课程的时候都知道,除巨外,常见的以太网的长度范围是64字节到1518字节,并且因为最初总线型半双工的组网原因,人们制定了CSMA/CD协议,规定了以太网中最短
    的头像 发表于 09-05 11:46 8032次阅读
    网络是否允许小于64字节的<b class='flag-5'>以太网</b><b class='flag-5'>帧</b>或者报文传输?

    工业以太网有何优势?工业以太网物理层介绍

    现代生活中,工业以太网发挥的作用愈来愈重要。为增进大家对工业以太网认识,本文将基于 3 方面介绍工业以太网:1.何为工业以太网物理层,2.
    的头像 发表于 11-09 15:15 629次阅读

    Xilinx平台以太网接口(一)TCP/IP基础

    在完成以太网通信实验之前,必须要对以太网基础知识进行了解。时间充裕的可以看看《图解TCP/IP》作为扫盲。本文重点对以太网结构进行介绍。
    的头像 发表于 02-19 17:54 2264次阅读
    Xilinx平台<b class='flag-5'>以太网</b>接口(一)TCP/IP基础

    基于FPGA的千兆以太网ARP和UDP的实现

    1 以太网原理介绍 1.1 以太网以太网链路上的数据包称作以太网
    的头像 发表于 02-16 16:35 2384次阅读

    工业以太网协议的历史及其优势

    用户不能使用标准以太网介质访问控制(MAC)来实现大多数工业以太网标准;相反,需要专用的应用特定型集成电路(ASIC)或现场可编程门阵列(FPGA),因为以太网作为“直通”接收,指在
    发表于 03-20 09:54 570次阅读
    工业<b class='flag-5'>以太网</b>协议的历史及其优势

    简单认识以太网技术

    以太网(Ethernet)是一种常见的局域(LAN)技术,它使用多种协议来实现数据通信。Ethernet的协议分为多层,其中二层协议主要涉及数据链路层。在Ethernet中,数据链路层使用(frame)来传输数据,而
    的头像 发表于 01-07 09:52 694次阅读

    以太网结构是怎样的

    以太网(Ethernet Frame)是以太网(Ethernet)协议用于在局域(LAN)中传输数据的基本单位。理解以太网
    的头像 发表于 10-08 10:00 546次阅读

    以太网格式和功能详解

    以太网(Ethernet Frame)是以太网(Ethernet)协议用于在局域(LAN)中传输数据的基本单位。理解以太网
    的头像 发表于 10-08 10:03 820次阅读

    以太网协议的种类和特点

    (DIX Ethernet) 定义 :以太网II是由DEC、Intel和Xerox(DIX)联合定义的,是最早的以太网标准。 特点 :使用MAC地址进行设备间的通信,结构简单,易于实
    的头像 发表于 11-08 09:10 62次阅读