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

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

3天内不再提示

基于FPGA的以太网协议

FPGA设计论坛 来源:FPGA设计论坛 作者:FPGA设计论坛 2022-06-02 14:45 次阅读

以太网是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网的协议层是建立在OSI模型的基础上的,OSI模型,即开放式通信 系统互联参考模型(Open System Interconnection),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。主要包括七层,具体如下:

(1)、物理层 Physical Layer

(2)、数据链路层 Data Link Layer

(3)、网络层 Network Layer

(4)、传输层 Transport Layer

(5)、会话层 Session Layer

(6)、表示层 Presentation Layer

(7)、应用层 Application Layer

因为我是做FPGA的,因此只关注了物理层,数据链路层,网络层,传输层;更上层协议没有做过多了解。

1,以太网物理层,

物理层为OSI中的第一层,主要包括PCS,PMA,PMD,

PCS:物理编码子层,完成完成对传输的MAC协议数据的编、译码;以便物理介质传输;

PMA:物理介质连接子层,生成线路的传输信号;接收线路信号完成时钟恢复;

PMD:物理介质相关子层,定义不同传输介质的接口标准,提供物理连接。

物理层与链路层接口:主要包括:MII、RMII接口、GMII接口、RGMII接口、SGMII接口、 XGMII接口。

MII:支持10兆和100兆的操作,一个接口由14根线组成,它的支持还是比较灵活的,但是有一个缺点是因为它一个端口用的信号线太多,如果一个8端口的交换机要用到112根线,16端口就要用到224根线,到32端口的话就要用到448根线,一般按照这个接口做交换机,是不太现实的,所以现代的交换机的制作都会用到其它的一些从MII简化出来的标准,比如RMII、SMII、GMII等。

RMII:简化的MII接口,在数据的收发上它比MII接口少了一倍的信号线,所以它一般要求是50兆的总线时钟。RMII一般用在多端口的交换机,它不是每个端口安排收、发两个时钟,而是所有的数据端口公用一个时钟用于所有端口的收发,这里就节省了不少的端口数目。RMII的一个端口要求7个数据线,比MII少了一倍,所以交换机能够接入多一倍数据的端口。和MII一样,RMII支持10兆和100兆的总线接口速度。

SMII:由思科提出的一种媒体接口,它有比RMII更少的信号线数目,S表示串行的意思。因为它只用一根信号线传送发送数据,一根信号线传输接受数据,所以在时钟上为了满足100的需求,它的时钟频率很高,达到了125兆,为什么用125兆,是因为数据线里面会传送一些控制信息。SMII一个端口仅用4根信号线完成100信号的传输,比起RMII差不多又少了一倍的信号线。SMII在工业界的支持力度是很高的。同理,所有端口的数据收发都公用同一个外部的125M时钟。

XGMII:是10Gb的物理层接口,接口时钟为156.25Mhz。

GMII :是千兆网的MII接口,这个也有相应的RGMII接口,表示简化了的GMII接口;GMII是8bit并行同步收发接口,采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式。

发送接口信号:

◇ GTXCLK——吉比特TX..信号的时钟信号(125MHz)

◇ TXCLK——10/100M信号时钟

◇ TXD[7..0]——被发送数据

◇ TXEN——发送器使能信号

◇ TXER——发送器错误(用于破坏一个数据包)

接收接口信号:

◇ RXCLK——接收时钟信号(从收到的数据中提取,因此与GTXCLK无关联)

◇ RXD[7..0]——接收数据

◇ RXDV——接收数据有效指示

◇ RXER——接收数据出错指示

◇ COL——冲突检测(仅用于半双工状态)

注:在千兆速率下,向PHY提供GTXCLK信号,TXD、TXEN、TXER信号与此时钟信号同步。否则,在10/100M速率下,PHY提供 TXCLK时钟信号,其它信号与此信号同步。其工作频率为25MHz(100M网络)或2.5MHz(10M网络)。

2,以太网数据链路层

数据链路层为OSI中的第二层,主要将从物理层拿到的数据帧解析后拿到IP数据报传递给网络层;或把网络层拿到的IP数据报,增加前导码,MAC地址,帧类型校验后组成新的数据帧传递给物理层;具体协议数据帧如下:

cd3269ba-e229-11ec-ba43-dac502259ad0.jpg

数据帧中的数据为IP数据报;

数据帧前会有8个字节的前导码,然后和上述的数据帧一块构成一个完成对MAC层数据报。

注意:

帧间最小间隔 :帧间最小间隔为 9.6 us (10Mbps) ,相当于96 bit 的发送时间(等待12个时钟之后)。一个站在检测到总线开始空闲后,还要等待 9.6 us (10Mbps)才能再次发送数据。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。

最大帧长度:为了保证信道使用的相对公平性,让更多的站能抢占到信道,规定了最大帧长度;超过了最大帧长度就需要分多次完成;以太网规定了数据帧中传送数据的最大长度为1500字节。

最短有效帧长:如果发生冲突,就一定是在发送的前 64 字节之内。由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节。以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。

3,以太网网络层

网络层是OSI中的第三层;位于传输层和数据链路层之间;实现将传输层数据报打包为IP数据报,或解析IP数据报。

IP数据报如下:(蓝色部分为IP数据报首部来;黄色部分为UDP/TCP数据报,也是IP数据报的报文)

cd53a9ae-e229-11ec-ba43-dac502259ad0.png

首部介绍:

版本:占 4 位,指 IP 协议的版本,通信双方使用的IP协议的版本必须一致,目前的 IP 协议版本号为 4 (即 IPv4)

首部长度:占4位,可表示的最大数值是15个单位(一个单位为 4 字节),因此IP 的首部长度的最大值是 60 字节。最常用的是20字节(0101)

区分服务:占 8 位,一般不使用

总长度:占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节,总长度必须不超过最大传送单元MTU

标识:占 16 位,它是一个计数器,用来产生数据报的标识,在分片时被使用,用于数据的重组条件

标志:占 3 位,目前只有前两位有意义,标志字段的最低位是 MF(More Fragment),MF=1 表示后面“还有分片”。MF=0 表示最后一个分片;标志字段中间的一位是 DF (Don’t Fragment),只有当 DF=0 时才允许分片

片偏移:占13位,指较长的分组在分片后某片在原分组中的相对位置.片偏移以 8 个字节为偏移单位

生存时间:占 8 位,记为 TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值,TTL 字段是由发送端初始设置一个 8 bit 字段.推荐的初始值由分配数字 RFC 指定,当前值为 64.发送ICMP 回显应答时经常把 TTL 设为最大值 255

协议:占 8 位,指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程, 1 表示为 ICMP 协议, 2 表示为 IGMP 协议, 6 表示为 TCP 协议, 17 表示为UDP 协议

首部检验和:占 16 位,只检验数据报的首部不检验数据部分.这里不采用 CRC 检验码而采用简单的计算方法

源地址和目的地址:都各占 4 字节,分别记录源地址和目的地址

可选字段和填充字段 : 很少使用,新协议中已经取消IPv6

4,以太网传输层

传输层是OSI中的第四层;主要完成UDP/TCP的装配然后传输给网络层;

UDP:不可靠传输;但能保证实时性;多用于视频通话或会议等;

TCP:可靠传输;建立在连接的基础之上;保证数据完整性;多用于邮件,信息等;

UDP数据报:

cd9d8902-e229-11ec-ba43-dac502259ad0.png

TCP数据报:

cdc5d24a-e229-11ec-ba43-dac502259ad0.jpg

带阴影的几个字段需要重点说明一下:

1) 序号:Seq(Sequence Number)序号占32位,用来标识从计算机A发送到计算机B的数据包的序号,计算机发送数据时对此进行标记。

2) 确认号:Ack(Acknowledge Number)确认号占32位,客户端和服务器端都可以发送,Ack = Seq + 1。

3) 标志位:每个标志位占用1Bit,共有6个,分别为 URG、ACK、PSH、RST、SYN、FIN,具体含义如下:

URG:紧急指针(urgent pointer)有效。

ACK:确认序号有效。

PSH:接收方应该尽快将这个报文交给应用层。

RST:重置连接。

SYN:建立一个新连接。

FIN:断开一个连接。

审核编辑 :李倩

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

    关注

    1625

    文章

    21665

    浏览量

    601732
  • 以太网
    +关注

    关注

    40

    文章

    5374

    浏览量

    171059
  • 计算机
    +关注

    关注

    19

    文章

    7414

    浏览量

    87699

原文标题:基于FPGA的以太网协议介绍

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

收藏 人收藏

    评论

    相关推荐

    基于Xilinx FPGA的千兆以太网控制器的开发

    千兆以太网利用了原以太网标准所规定的全部技术规范,其中包括CSMA/CD协议以太网帧、全双工、流量控制以及IEEE 802.3标准中所定义的管理对象。##
    发表于 01-23 11:13 3w次阅读
    基于Xilinx <b class='flag-5'>FPGA</b>的千兆<b class='flag-5'>以太网</b>控制器的开发

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

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

    以太网协议

    以太网协议
    发表于 08-13 13:19

    以太网协议的模型有哪些

    为了学习FPGA以太网协议的模型也必须有所了解。当前,互联网已经极大地改变了我们的生产和生活。与之相适应的,在嵌入式系统的研究开发方面,也越来越重视网络功能。嵌入式系统已经不再局限以太网
    发表于 12-26 09:45

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

    大侠带来简谈基于FPGA的千兆以太网设计,话不多说,上货。今天我们来简单的聊一聊以太网以太网FPGA学习中属于比较高级的内容了,有些大侠
    发表于 06-01 18:39

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

    介绍了IEEE802.3ae 标准中 万兆以太网 物理层及媒质接入控制子层的相关协议。以10GBASE-R 应用物理环境为例,阐述了万兆以太网接口各个单元模块的功能和设计实现方法。FPGA
    发表于 07-20 16:21 334次下载
    基于<b class='flag-5'>FPGA</b>的万兆<b class='flag-5'>以太网</b>接口设计

    一种基于FPGA以太网高速传输平台

    一种基于FPGA以太网高速传输平台,采用DM9000和FPGA芯片,实现100M以太网数据传输
    发表于 02-25 14:45 17次下载

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

    基于FPGA的万兆以太网接口的设计与实现。
    发表于 05-11 09:46 39次下载

    以太网协议及应用方案

    以太网协议及应用方案
    发表于 01-21 12:07 9次下载

    在工业以太网领域采用FPGA的好处

    您的工厂或者工艺自动化系统需要采用多种工业以太网协议吗?请观看这一10分钟的视频,了解怎样采用FPGA来轻松开发工业以太网设计。您将能够:   观看在单片
    的头像 发表于 06-20 14:00 4445次阅读

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

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

    FPGA如何为以太网和千兆以太网解决低功耗问题

    探索新的中档 FPGA 如何为以太网和千兆以太网 (GbE) 链路执行桥接功能,同时解决低功耗问题。
    的头像 发表于 05-07 16:54 3990次阅读
    <b class='flag-5'>FPGA</b>如何为<b class='flag-5'>以太网</b>和千兆<b class='flag-5'>以太网</b>解决低功耗问题

    工业以太网协议结构_工业以太网协议种类

    工业以太网协议结构如下:   物理层:物理层是工业以太网协议的最底层,负责传输比特流。工业以太网使用双绞线、光纤等传输介质,采用不同的
    发表于 03-13 15:06 2256次阅读

    工业以太网的常见协议 工业以太网的性能特点

      工业以太网是指在工业领域中使用的以太网技术,其特点是具有高可靠性、实时性和安全性。为了满足这些要求,工业以太网使用了一些特殊的协议
    发表于 03-13 16:31 4102次阅读

    以太网协议的种类和特点

    以太网是一种局域(Local Area Network, LAN)技术,它定义了一组用于在局域中传输数据的规则和标准。以太网协议的种类和
    的头像 发表于 11-08 09:10 467次阅读