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

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

3天内不再提示

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

FPGA设计论坛 来源:FPGA设计论坛 2024-04-02 16:26 次阅读

1 以太网原理介绍

1.1 以太网帧

在以太网链路上的数据包称作以太网帧。以太网帧起始部分由前导码和帧开始符组成。后面紧跟着一个以太网报头,以MAC地址说明目的地址和源地址。帧的中部是该帧负载的包含其他协议报头的数据包(例如IP协议、ARP协议)。以太帧由一个32位冗余校验码结尾。它用于检验数据传输是否出现损坏。以太网帧格式如下图所示。

cd8de082-f0c9-11ee-a297-92fbcf53809c.png

1.前导码和帧开始符是固定的,为7个0x55紧跟着1个0xd5

2.目的MAC地址指明帧的接受者

3.源MAC地址指明帧的发送者

4.以太网类型,指示帧的类型,比如0x0800表示该帧是IP数据包,0x0806表示该帧是ARP协议数据包

5.数据和填充就是所承载的数据包,跟前面以太网类型对应。

6.帧校验序列是一个32位的循环校验码(FCS)。

每一个设备都有一个不同的MAC地址,当一个设备A发送一个以太网帧,源MAC地址是自己的MAC地址,目的MAC地址如果是0xffffff,此时就是广播,所有与之连接的设备都会收到该帧,如果目的MAC地址是一个独特的MAC地址,那么本地MAC地址与之相同的设备将会接收到该以太网帧,然后通过判断以太网帧类型,进行下一步数据包解析。

1.2 ARP协议

ARP协议,全称为Address Resolution Protocol,即地址解析协议,ARP协议属于以太网帧的一种,前面以太网帧介绍中有说到,我们如果从设备A发送以太网帧到设备B,我们不可能每次都进行广播,那么设备A如何知道设备B的物理地址呢?ARP协议就是为了解决这个问题。

首先设备A广播,发送ARP请求,等收到设备B的ARP应答以后就能知道设备B的MAC地址。ARP帧格式如下图所示

cd9803d2-f0c9-11ee-a297-92fbcf53809c.png

ARP字段就是前面以太网帧待填充的数据。

硬件类型、上层协议类型、MAC地址长度、IP地址长度均固定不变。

假设设备A的IP地址为192.168.0.2,MAC地址为0x00_0a_35_01_fe_c0,我们知道目的IP地址为192.168.0.3,不知道该IP地址对应的MAC地址,如果设备A想要和IP地址为192.168.0.3的设备B进行通信(如UDP或者IP通信),就必须知道它的MAC地址。此时设备A就需要广播发送ARP请求,接收方MAC地址填0xff_ff_ff_ff_ff_ff。这样IP地址为192.168.0.3的设备就会解析出这是一个ARP请求,它询问自身的MAC地址,此时它就会做出ARP应答,将自身的MAC地址发送给对应IP地址的设备A。

注意发送ARP请求时,操作码为0x0001,应答时操作码为0x0002。

1.3 IP协议

TCP/IP协议定义了一个在因特网上传输的包,称为IP数据包,而IP数据报(IP Datagram)是个比较抽象的内容,是对数据包的结构进行分析。由首部和数据两部分组成,其格式如下图图所示。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部中的源地址和目的地址都是IP协议地址。

cd9c14f4-f0c9-11ee-a297-92fbcf53809c.png

1.4 UDP协议

UDP 协议是一种不可靠传输,发送方只负责将数据发送出去,而不管接收方是否正确的接收。非常类似于 UART 串口传输。但是,在很多场合,是可以接受这种潜在的不可靠性的,例如视频实时传输显示。在这类系统中,由于数据并不需要进行运算并得到非常精确的结果用于其他功能,而仅仅是显示在屏幕上,因此可以接受一定程度的丢包或者误码。此类应用在 LED 大屏显示系统中应用非常广泛。UDP帧组成如下图所示

cd9fae3e-f0c9-11ee-a297-92fbcf53809c.png



审核编辑:刘清

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

    关注

    1611

    文章

    21393

    浏览量

    595533
  • 以太网
    +关注

    关注

    40

    文章

    5180

    浏览量

    167535
  • FCS
    FCS
    +关注

    关注

    4

    文章

    32

    浏览量

    14389
  • ARP协议
    +关注

    关注

    0

    文章

    10

    浏览量

    6875
  • 串口传输
    +关注

    关注

    0

    文章

    33

    浏览量

    1724

原文标题:FPGA学习-以太网原理介绍

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    简谈基于FPGA的千兆以太网

    大家好,又到了学习时间了,学习使人快乐。今天我们来简单的聊一聊以太网以太网FPGA学习中属于
    的头像 发表于 08-05 10:28 1.3w次阅读
    简谈基于<b class='flag-5'>FPGA</b>的千兆<b class='flag-5'>以太网</b>

    以太网是什么鬼?以太网基础知识详解

    以太网
    电子学习
    发布于 :2023年02月07日 21:05:57

    车载以太网快速入门#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月01日 17:54:31

    车载以太网测试系统测试实例介绍#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月12日 17:27:48

    车载以太网基础培训——车载以太网的链路层#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月19日 16:25:21

    以太网视频传输 #FPGA

    fpga以太网
    辛一_e1e
    发布于 :2023年11月01日 06:28:18

    #电子技术 #FPGA 千兆以太网工程(项目开发能力)

    fpga以太网
    明德扬助教小易老师
    发布于 :2023年11月04日 06:42:15

    车载以太网接口VN5650使用场景介绍#车载以太网

    以太网
    北汇信息POLELINK
    发布于 :2024年05月11日 17:58:05

    车载以太网硬件接口VN5620设备展示与介绍#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2024年05月31日 10:27:03

    基于FPGA的万兆以太网接口的设计与实现

    基于FPGA的万兆以太网接口的设计与实现标准中万兆以太网物理层及媒质接入控制子层的相关协议以 应用物理环境为例,阐述了万兆以太网接口各个单元模块的功能和设计实现方法 仿真结果表明,该万
    发表于 08-11 15:48

    基于FPGA以太网系统软硬件实现方案

    ,曾在一个重要军工项目中担任分系统负责人,利用altera FPGA平台实现过一个高性能的以太网软交换传输系统。现在希望把自己手中拥有的一些知识和技能转化为收益,下面对该FPGA以太网
    发表于 06-19 12:04

    【AC620 FPGA开发板试用预热贴】自写以太网传输代码,实现以太网的图像采集传输【小梅哥力作】

    摄像头的相关对比介绍。关于图像传输 AC620开发板上有一个百兆以太网PHY芯片RTL8201,对FPGA提供MII接口,使用该芯片,我们可以自己编写以太网MAC层,然后使用MII接
    发表于 06-14 11:51

    【小梅哥2017力作】详细的FPGA以太网设计教程,76页精华PDF

    ,IP协议、UDP协议内容,并手把手讲解了协议的分析思路,以及具体的Verilog实现方法。是学习使用FPGA进行以太网设计非常好的教程,欢迎大家下载学习。以下为目录:AC620
    发表于 07-29 23:20

    简谈基于FPGA的千兆以太网

    大家好,又到了学习时间了,学习使人快乐。今天我们来简单的聊一聊以太网以太网FPGA学习中属
    发表于 02-03 15:11

    简谈基于FPGA的千兆以太网设计

    大侠带来简谈基于FPGA的千兆以太网设计,话不多说,上货。今天我们来简单的聊一聊以太网以太网FPGA
    发表于 06-01 18:39