基于区块链的毕业设计Ethernet – 以太网

本文提供基于区块链的毕业设计国外最新区块链项目源码下载,包括solidity,eth,fabric等blockchain区块链,基于区块链的毕业设计Ethernet – 以太网 是一篇很好的国外资料

Ethernet

ETH测试基础知识补充

以太网口的工作模式

  1. 10M半双工
  2. 10M全双工
  3. 100M半双工
  4. 100M全双工
  5. 自协商模式
  • 自协商功能完全由物理层芯片设计实现,因此并不使用专用数据包或带来任何高层协议开销
  • 以太口两端,若果一端设置为固定模式,另一端为自协商,那么自协商那一段职能工作在半双工模式
  • 一端全双工,一端半双工,在

MTU

MTU-数据链路层协议

在7层网络协议中,MTU是数据链路层的概念。MTU限制的是数据链路层的payload,也就是上层协议的大小,例如IP,ICMP等。

  • OSI中的层————————功能———————————-TCP/IP协议族
  • 应用层——–文件传输、电子邮件、文件服务、虚拟终端———TFTP、HTTP、SNMP、FTP、SMTP、DNS、Telnet
  • 表示层———-数据格式化,代码转换,数据加密—————————-无协议
  • 会话层———–解除或建立与别的接点的联系——————————-无协议
  • 传输层—————–提供端对端的接口———————————-TCP、UDP
  • 网络层—————–为数据包选择路由———————–IP,ICMP,RIP,OSPF,BGP,IGMP
  • 数据链路层——–传输有地址的帧以及错误检测功能—————-SLIP,CSLIP,PPP,ARP,RARP,MTU
  • 物理层———–以二进制数据形式在物理媒体上传输数据————ISO2110,IEEE802,IEEE802.2

MTU作用

常见以太网错误帧解释

  1. input errors:各种输入错误的总数,显示范围是20bit。
  2. runts:表示接收到的超小帧个数。超小帧即接收到的报文小于64字节,且包括有效的CRC字段,报文格式正确。
  3. giants:表示接收到的超长帧个数。超长帧即接收到的有效报文字节长度大于1518(如果是带tag报文,大于1522),且小于设备能接收的超长帧最大值(1536)。
  4. CRC:表示接收到的CRC校验错误报文个数,即接收到的报文在64~1518(带tag报文是1522)字节范围内,且字节是整数,而CRC校验错误。
  5. frame:也是CRC校验出错报文个数,报文字节不是整数,其他同上。
  6. aborts:表示接收到的非法报文总数,包括:
  • 报文碎片:小于64字节,且CRC校验错误(报文字节是整数或非整数)。
  • jabber帧:大于1518(tag报文是1522)字节,且CRC校验错误(报文字节是整数或非整数)。
  • 符号错误帧:报文中至少包含1各错误的符号,其他部分合法。
  • 携带错误帧:在空闲阶段发现的错误携带帧。
  • 操作码未知帧:报文是MAC控制帧,但不是Pause帧。
  • 长度错误帧:报文中802.3长度字段与报文实际长度(46~1500字节)不匹配,但不包括802.3长度字段无效(如Ether Type)的报文。
  1. ignored:表示在端口接收报文时因各种原因丢弃的报文总数。

输出错误值详解

  1. output errors:各种输出错误的总数,显示范围是20bit。
  2. aborts:表示发送失败的报文总数,指已经开始发送,但由于各种原因(如冲突)而导致发送失败的报文。该项统计包括各类发送失败的报文,无论是二层或是三层转发
  3. deferred:表示延迟报文的总数。报文延迟是指因延迟过长的周期而导致发送失败的报文,而这些报文由于发送媒质繁忙而等待了超过2倍的最大报文发送时间。
  4. collisions:表示冲突帧总数,即在发送过程中发生冲突的报文。冲突是指DO和RD信号同时出现,即发送和接收同时发生。
  5. late collisions:表示延迟冲突帧,即发送过程中发生延迟冲突超过512bit时间的帧。
  6. lost carrier:表示在空闲阶段发现的错误携带帧的总数。

QOS

  1. 术语解释
  • CIR(Committed Information Rate,承诺信息速率):每秒可通过的速率,计量单位为Kbps (以bit 位为单位)。如设置为500Kbps 。每8bit位=1Byte 1Kbps=1024bit
  • PIR(Peak Information Rate,峰值信息速率):即允许传输或转发报文的最大速率;单位为bit
  • CBS(Committed Burst Size):承诺突发尺寸突发尺寸,令牌桶的容量,即每次突发所允许的最大的流量尺寸。设置的突发尺寸必须大于最大报文长度。计量单位为byte(字节)。
  • PBS(Peak Burst Size,峰值突发尺寸):
  • EBS(Excess Burst Size,超出突发尺寸):即瞬间能够通过的超出突发流量。
  • PIR 和PBS是只有在交换机中才有的参数。
  1. 配置交换机限速时,cir和cbs的关系如下:
  • cbs要大于报文的最大长度。
  • 在连续流量的情况下对于cbs没有特殊的要求,保证平均速率是cir的速率。
  • 在突发流量需要保证的情况下,如果cbs换算成kbit小于cir,那么cbs也无法保证突发流量。否则cbs可以配置大一些。
  • 在对FTP业务进行限速时,由于FTP属于TCP业务,TCP协议有其特殊的传输机制导致流量无法达到所应该达到的限速速率,推荐配置: CBS = 200 * CIR PBS = 2 * CBS
  1. 说明:
  • 不配置PIR,只配置CIR、CBS、PBS。
  • CIR单位为Kbps,CBS、PBS单位为Byte。
  • 例如: 配置CIR带宽为2M=2048Kbps,则: CBS = 200 * CIR = 200 * 2048 = 409600 PBS = 2 * CBS = 2 * 409600 = 819200

MII接口详解

MII (Media Independent Interface(介质无关接口);或称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号。管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。MII (Management interface)只有两条信号线。 MII标准接口用于连快Fast Ethernet MAC-block与PHY。”介质无关”表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。在其他速率下工作的与MII等效的接口有:AUI(10M 以太网)、GMII(Gigabit 以太网)和XAUI(10-Gigabit 以太网)。

  1. MII总线 在IEEE802.3中规定的MII总线是一种用于将不同类型的PHY与相同网络控制器(MAC)相连接的通用总线。网络控制器可以用同样的硬件接口与任何PHY进行连接。

  2. MII相关接口介绍 以太网媒体接口有:MII RMII SMII GMII 所有的这些接口都从MII而来,MII是(Medium Independent Interface)的意思,是指不用考虑媒体是铜轴、光纤、电缆等,因为这些媒体处理的相关工作都有PHY或者叫做MAC的芯片完成。 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时钟。 GMII是千兆网的MII接口,这个也有相应的RGMII接口,表示简化了的GMII接口。

  3. MII工作原理 “媒体独立”表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。 MII数据接口总共需要16个信号,包括TX_ER,TXD,TX_EN,TX_CLK,COL,RXD,RX_EX,RX_CLK,CRS,RX_DV等。 MII以4位半字节方式传送数据双向传输,时钟速率25MHz。其工作速率可达100Mb/s。 MII管理接口是个双信号接口,一个是时钟信号,另一个是数据信号。 通过管理接口,上层能监视和控制PHY,其管理是使用SMI(Serial Management Interface)总线通过读写PHY的寄存器来完成的。 PHY里面的部分寄存器是IEEE定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC通过SMI总线不断的读取PHY的状态寄存器以得知目前PHY的状态,例如连接速度,双工的能力等。 当然也可以通过SMI设置PHY的寄存器达到控制的目的,例如流控的打开关闭,自协商模式还是强制模式等。 不论是物理连接的MII总线和SMI总线还是PHY的状态寄存器和控制寄存器都是有IEEE的规范的,因此不同公司的MAC和PHY一样可以协调工作。当然为了配合不同公司的PHY的自己特有的一些功能,驱动需要做相应的修改。 PHY是物理接口收发器,它实现物理层。包括MII/GMII(介质独立接口)子层、PCS(物理编码子层)、PMA(物理介质附加)子层、PMD(物理介质相关)子层、MDI子层。100BaseTX采用4B/5B编码。 PHY在发送数据的时候,收到MAC过来的数据(对PHY来说,没有帧的概念,对它来说,都是数据而不管什么地址,数据还是CRC),每4bit就增加1bit的检错码,然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去。收数据时的流程反之。 PHY还有个重要的功能就是实现CSMA/CD的部分功能。 它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机时间后将数据送出去。如果两个碰巧同时送出了数据,那样必将造成冲突,这时候,冲突检测机构可以检测到冲突,然后各等待一个随机的时间重新发送数据。这个随机时间很有讲究的,并不是一个常数,在不同的时刻计算出来的随机时间都是不同的,而且有多重算法来应付出现概率很低的同两台主机之间的第二次冲突。 通信速率通过双方协商,协商的结果是两个设备中能同时支持的最大速度和最好的双工模式,这个技术被称为Auto Negotiation或者NWAY。 隔离变压器把PHY送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到连接网线的另外一端。 RJ-45中1、2是传送数据的,3、6是接收数据的。 新的PHY支持AUTO MDI-X功能,也需要隔离变压器支持,它可以实现RJ-45接口的1、2上的传送信号线和3、6上的接收信号线的功能自动互相交换。

  4. GMII简介 GMII (Gigabit MII) GMII采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式。 GMII接口数据结构符合IEEE以太网标准。该接口定义见IEEE 802.3-2000。 发送器: ◇ GTXCLK——吉比特TX..信号的时钟信号(125MHz) ◇ TXCLK——10/100M信号时钟 ◇ TXD[7..0]——被发送数据 ◇ TXEN——发送器使能信号 ◇ TXER——发送器错误(用于破坏一个数据包) 注:在千兆速率下,向PHY提供GTXCLK信号,TXD、TXEN、TXER信号与此时钟信号同步。否则,在10/100M速率下,PHY提供 TXCLK时钟信号,其它信号与此信号同步。其工作频率为25MHz(100M网络)或2.5MHz(10M网络)。 接收器: ◇ RXCLK——接收时钟信号(从收到的数据中提取,因此与GTXCLK无关联) ◇ RXD[7..0]——接收数据 ◇ RXDV——接收数据有效指示 ◇ RXER——接收数据出错指示 ◇ COL——冲突检测(仅用于半双工状态) 管理配置 ◇ MDC——配置接口时钟 ◇ MDIO——配置接口I/O 管理配置接口控制PHY的特性。PHY器件有32个寄存器,MAC控制器可通过管理配置接口来配置这些寄存器,每个寄存器的地址为16位。其中前16个寄存器已经在“IEEE 802.3,2000-22.2.4 Management Functions”中规定了用途,其余的则由各器件自己指定。 RMII简介 RMII: Reduced Media Independant Interface 即简化媒体独立接口;是标准的以太网接口之一,比MII有更少的I/O传输。 关于RMII口和MII口的问题 RMII口是用两根线来传输数据的, MII口是用4根线来传输数据的, GMII是用8根线来传输数据的。 MII/RMII只是一种接口,对于10M线速,MII的速率是2.5M,RMII则是5M;对于100M线速,MII的速率是25M,RMII则是50M。 MII/RMII 用于传输以太网包,在MII/RMII接口是4/2bit的,在以太网的PHY里需要做串并转换、编解码等后,才能在双绞线和光纤上进行传输,其帧格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN)。 以太网帧的格式为:前导符+开始位+目的mac地址+源mac地址+类型/长度+数据+padding(optional)+32bitCRC 如果有vlan,则要在类型/长度后面加上2个字节的vlan tag,其中12bit来表示vlan id,另外4bit表示数据的优先级!

bit、Byte、bps、Bps、pps、Gbps的单位详细说明及换算

  1. bps :“bits per second”常用于表示数据机及网络通讯的传输速率。例如GigabitEthernet端口: 5 minute input rate 38410000 bits/sec, 6344 packets/sec 382410000 bits/sec = 382.41Mbps所以常说的快速以太网能达到百兆传输,其实实际传输文件大小只有10MB = 100Mb

  2. Bps: “Byte per second”电脑一般都以Bps显示速度,但有时会跟传输速率混淆,例如ADSL宣称的带宽为1Mbps ,但在实际应用中,下载速度没有1MB ,只有1Mbps/8 = 128kBps也就是说与传输速度有关的b一般指的是bit。与容量有关的B一般指的是Byte。

  3. pps – 包转发率包转发率标志了交换机转发数据包能力的大小。单位一般位pps(包每秒),一般交换机的包转发率在几十Kpps到几百Mpps不等。包转发速率是指交换机每秒可以转发多少百万个数据包(Mpps),即交换机能同时转发的数据包的数量。包转发率以数据包为单位体现了交换机的交换能力。

  4. Gbps – 背板带宽 交换机的背板带宽,是交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量。背板带宽标志了交换机总的数据交换能力,单位为Gbps,也叫交换带宽,一般的交换机的背板带宽从几Gbps到上百Gbps不等。一台交换机的背板带宽越高,所能处理数据的能力就越强,但同时设计成本也会越高。

  • 从以下两个方面可以判断一台交换机背板带宽的可用性:
  1. (所有端口容量×端口数量×2)小于等于背板带宽,可实现全双工无阻塞交换,证明交换机具有发挥最大数据交换性能的条件。
  2. 满配置吞吐量(Mpps) = 满配置GE端口数×1.488Mpps,其中1个千兆端口在包长为64字节时的理论吞吐量为1.488Mpps。

GE端口理论吞吐量-1.488Mpps。以太网传输最小包长是64字节。包转发线速的衡量标准是以单位时间内发送64byte的数据包(最小包)的个数作为计算基准的。 对于千兆以太网来说,计算方法如下: 1000Mbps/((64B+8B+12B)×8bit)=1.488095pps 说明:当以太网帧为64Byte时,需考虑8Byte的前导符和12Byte的帧间隙的固定开销。 在以太网中,每个帧头都要加上了8个字节的前导符,前导符的作用在于告诉监听设备数据将要到来。然后,以太网中的每个帧之间都要有帧间隙,即每发完一个帧之后要等待一段时间再发另外一个帧,在以太网标准中规定最小是12个字节,然而帧间隙在实际应用中有可能会比12个字节要大,在这里我用了最小值。每个帧都要有20个字节的固定开销。(另外这20字节的信息是不能通过抓包软件抓下来的)因此一个全双工线速的千兆以太网端口在转发64Byte包时的包转发率为1.488Mpps。

  1. 常用以太网端口的包转发率:
  • 万兆以太网:14.88Mpps
  • 千兆以太网:1.488Mpps
  • 百兆以太网:0.1488Mpps

Router 的 kbits 单位等同于 kbps

============================================================================================

根据进制规定,传送速度可以有两种表示方法 bps 和 Bps,但是他们是有严格区别。Bps中的 B 使用的是二进制系统中的Byte字节 ,bps中的b是十进制系统中的位元。

在我们常说的56K拨号,100M局域网都是bps计量,当用于软件下载时,下载工具一般又以Bps计算,所以它们之间有 8 bit=1 Byte 的换算关系,那么56Kbps拨号极限下载速度是 56Kbps/8=7KBps 每秒下载7K字节 。

FIFO小结

FIFO简介

  1. FIFO即为First in first out.就是先进先出。可分为同步FIFO和异步FIFO,其区别主要是,读写的时钟是否为同一时钟,如使用一个时钟则为同步FIFO,读写时钟分开则为异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟。在时钟沿来临时同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟是互相独立的。

    • 若输入输出总线为同一时钟域,FIFO只是作为缓存使用,用同步FIFO即可,此时,FIFO在同一时钟下工作,FIFO的写使能、读使能、满信号、空信号、输入输出数据等各种信号都在同一时钟沿打入或输出。
    • 若输入输出为不同时钟域,FIFO作时钟协同作用,需要采用异步FIFO,此时,FIFO在读与写分别在各自时钟下工作,FIFO的写使能、写满信号、输入数据等各种输入信号都在同一输入时钟沿打入或输出。读使能、读空信号、输出数据等各种输出信号都在同一输出时钟沿打入或输出。
  2. 一般来说,较大的FIFO可以选择使用内部BLOCK RAM资源,而小的FIFO可以使用寄存器资源例化使用。

  3. FIFO的主要信号包括:

    • 读信号————–rd_en
    • 读数据————–dout
    • 读空信号————empty
    • 写信号————–wr_en
    • 写数据————–din
    • 写满信号————full
    • 实际使用中,可编程满的信号(XILINX 的FIFO)较为常用,ALTERA的FIFO中,可以通过写深度(即写入多少的数据值)来构造其可编程满信号。 通过配置threshold(门限)的值可以设定可编程满起效时的FIFO深度。
  4. 理解写空(wrempty)、写满(wrfull)、写请求(wrreq)之间的关系

    • wrempty,简单的理解就是FIFO内没有有效的数据了;
    • wrfull与wrempty对应,意思是FIFO中没有多余的存储空间了当然就是full了。当FIFO在wrfull状态的时候,很自然地得出结论:当处于“写满(wrfull)”状态时,一定不要让“写请求(wrreq)”发出继续写入FIFO的信号。至于wrempty与wrreq间的关系,我们不用关心,这是因为:只要不是wrfull状态,FIFO就有多余的存储空间,就有充分的责任欢迎数据的写入。
  5. 理解读空(rdempty)、读满(rdfull)、读请求(rdreq)之间的关系

    • rdempty,简单的理解就是FIFO内有效数据都被设备读完了;
    • rdfull与rdempty对应,意思是FIFO中现在没有多余的存储空间了。当FIFO在rdempty状态的时候,很自然地得出结论:当处于“读空(rdempty)”状态时,一定不要让“读请求(rdreq)”发出继续读出的信号。至于rdfull和rdreq的关系,我们不用关心,这是因为:只要不是rdempty状态,FIFO就有数据,有充分的义务向外部设备供应数据。

FIFO应用场景

  1. 数据的缓冲。如模型图所示,如果数据的写入速率高,但间隔大,且会有突发;读出速率小,但相对均匀。则通过设置相应深度的FIFO,可以起到数据暂存的功能,且能够使后续处理流程平滑,避免前级突发时,后级来不及处理而丢弃数据。

 2. 时钟域的隔离。对于不同时钟域的数据传递,则数据可以通过FIFO进行隔离,避免跨时钟域的数据传输带来的设计与约束上的复杂度。比如FIFO的一端是AD采集的数据,另一端是计算机的PCI总线,假设AD采集的速率是16位 100K SPS,那么每秒的数据量为100K16bit=1.6Mbps。而PCI总线的速度为33MHz,总线宽度为32位,则其最大传输速率为33M32=1.056Gbps,在两个不同的时钟域间就可以采用FIFO来作为数据缓冲。

 3. 用于不同宽度的数据接口。例如单片机8位数据输出,而DSP是16位数据输入,在单片机和DSP连接时就可以使用FIFO来达到数据匹配的目的。

FIFO设计注意事项

  1. 不能溢出,即满后还要写导致溢出,对于数据帧的操作来说,每次写入一个数据帧时,如果每写一个宽度(FIFO的宽度)的数据,都要检查满信号,则处理较为复杂,如果在写之前没满,写过程不检查,则就容易导致溢出。因此可编程满的设定尤为必要,通过设置可编程满的水位线,保证能够存储一个数据帧,这样写之前检查可编程满即可。

 2. 其次,另一更容易出错的问题,就是空信号。对于FIFO来说,在读过程中出现空信号,则其没有代表该值没有被读出,对于读信号来说,如设定读出一定长度的值,只在一开始检测非空,如状态机的触发信号,容易出现过程中间也为空的信号,会导致某些数据未读出,特别是写速满而读速快的场景下。 因此rden与!empty信号要一起有效才算将数据读出。

 3. 空信号处理相对容易出错,懒人自有笨方法,下面介绍一种应用于数据帧处理的FIFO使用方式,只需在读开始检测空信号即可,可以简化其处理读数据的流程:数据缓存以大FIFO(BLOCK RAM实现)为主,而每存储完毕一个数据帧向小FIFO(寄存器实现)内写入值。当小FIFO标示非空时,则标示大FIFO中已存储一个整帧。则下一级模块可以只需检测小FIFO非空时,从而读出一个整帧,过程中大FIFO一直未非空,可以不用处理非空信号,从而简化设计和验证的流程。

FIFO中的一些重要参数

  1. FIFO的宽度:也就是英文资料里常看到的THE WIDTH,它只的是FIFO一次读写操作的数据位,就像MCU有8位和16位,ARM 32位等等,FIFO的宽度在单片成品IC中是固定的,也有可选择的,如果用FPGA自己实现一个FIFO,其数据位,也就是宽度是可以自己定义的。

  2. FIFO的深度:THE DEEPTH,它指的是FIFO可以存储多少个N位的数据(如果宽度为N)。如一个8位的FIFO,若深度为8,它可以存储8个8位的数据,深度为12 ,就可以存储12个8位的数据,FIFO的深度可大可小,个人认为FIFO深度的计算并无一个固定的公式。在FIFO实际工作中,其数据的满/空标志可以控制数据的继续写入或读出。在一个具体的应用中也不可能由一些参数算数精确的所需FIFO深度为多少,这在写速度大于读速度的理想状态下是可行的,但在实际中用到的FIFO深度往往要大于计算值。一般来说根据电路的具体情况,在兼顾系统性能和FIFO成本的情况下估算一个大概的宽度和深度就可以了。而对于写速度慢于读速度的应用,FIFO的深度要根据读出的数据结构和读出数据的由那些具体的要求来确定。

  3. 满标志:FIFO已满或将要满时由FIFO的状态电路送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出(overflow)。

  4. 空标志:FIFO已空或将要空时由FIFO的状态电路送出的一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出(underflow)。

  5. 读时钟:读操作所遵循的时钟,在每个时钟沿来临时读数据。

  6. 写时钟:写操作所遵循的时钟,在每个时钟沿来临时写数据。

  7. 读指针:指向下一个读出地址。读完后自动加1。

  8. 写指针:指向下一个要写入的地址的,写完自动加1。

读写指针其实就是读写的地址,只不过这个地址不能任意选择,而是连续的。


Ethernet

ETH测试基础知识补充

以太网口的工作模式

  1. 10M半双工
  2. 10M全双工
  3. 100M半双工
  4. 100M全双工
  5. 自协商模式
  • 自协商功能完全由物理层芯片设计实现,因此并不使用专用数据包或带来任何高层协议开销
  • 以太口两端,若果一端设置为固定模式,另一端为自协商,那么自协商那一段职能工作在半双工模式
  • 一端全双工,一端半双工,在

MTU

MTU-数据链路层协议

在7层网络协议中,MTU是数据链路层的概念。MTU限制的是数据链路层的payload,也就是上层协议的大小,例如IP,ICMP等。

  • OSI中的层————————功能———————————-TCP/IP协议族
  • 应用层——–文件传输、电子邮件、文件服务、虚拟终端———TFTP、HTTP、SNMP、FTP、SMTP、DNS、Telnet
  • 表示层———-数据格式化,代码转换,数据加密—————————-无协议
  • 会话层———–解除或建立与别的接点的联系——————————-无协议
  • 传输层—————–提供端对端的接口———————————-TCP、UDP
  • 网络层—————–为数据包选择路由———————–IP,ICMP,RIP,OSPF,BGP,IGMP
  • 数据链路层——–传输有地址的帧以及错误检测功能—————-SLIP,CSLIP,PPP,ARP,RARP,MTU
  • 物理层———–以二进制数据形式在物理媒体上传输数据————ISO2110,IEEE802,IEEE802.2

MTU作用

常见以太网错误帧解释

  1. input errors:各种输入错误的总数,显示范围是20bit。
  2. runts:表示接收到的超小帧个数。超小帧即接收到的报文小于64字节,且包括有效的CRC字段,报文格式正确。
  3. giants:表示接收到的超长帧个数。超长帧即接收到的有效报文字节长度大于1518(如果是带tag报文,大于1522),且小于设备能接收的超长帧最大值(1536)。
  4. CRC:表示接收到的CRC校验错误报文个数,即接收到的报文在64~1518(带tag报文是1522)字节范围内,且字节是整数,而CRC校验错误。
  5. frame:也是CRC校验出错报文个数,报文字节不是整数,其他同上。
  6. aborts:表示接收到的非法报文总数,包括:
  • 报文碎片:小于64字节,且CRC校验错误(报文字节是整数或非整数)。
  • jabber帧:大于1518(tag报文是1522)字节,且CRC校验错误(报文字节是整数或非整数)。
  • 符号错误帧:报文中至少包含1各错误的符号,其他部分合法。
  • 携带错误帧:在空闲阶段发现的错误携带帧。
  • 操作码未知帧:报文是MAC控制帧,但不是Pause帧。
  • 长度错误帧:报文中802.3长度字段与报文实际长度(46~1500字节)不匹配,但不包括802.3长度字段无效(如Ether Type)的报文。
  1. ignored:表示在端口接收报文时因各种原因丢弃的报文总数。

输出错误值详解

  1. output errors:各种输出错误的总数,显示范围是20bit。
  2. aborts:表示发送失败的报文总数,指已经开始发送,但由于各种原因(如冲突)而导致发送失败的报文。该项统计包括各类发送失败的报文,无论是二层或是三层转发
  3. deferred:表示延迟报文的总数。报文延迟是指因延迟过长的周期而导致发送失败的报文,而这些报文由于发送媒质繁忙而等待了超过2倍的最大报文发送时间。
  4. collisions:表示冲突帧总数,即在发送过程中发生冲突的报文。冲突是指DO和RD信号同时出现,即发送和接收同时发生。
  5. late collisions:表示延迟冲突帧,即发送过程中发生延迟冲突超过512bit时间的帧。
  6. lost carrier:表示在空闲阶段发现的错误携带帧的总数。

QOS

  1. 术语解释
  • CIR(Committed Information Rate,承诺信息速率):每秒可通过的速率,计量单位为Kbps (以bit 位为单位)。如设置为500Kbps 。每8bit位=1Byte 1Kbps=1024bit
  • PIR(Peak Information Rate,峰值信息速率):即允许传输或转发报文的最大速率;单位为bit
  • CBS(Committed Burst Size):承诺突发尺寸突发尺寸,令牌桶的容量,即每次突发所允许的最大的流量尺寸。设置的突发尺寸必须大于最大报文长度。计量单位为byte(字节)。
  • PBS(Peak Burst Size,峰值突发尺寸):
  • EBS(Excess Burst Size,超出突发尺寸):即瞬间能够通过的超出突发流量。
  • PIR 和PBS是只有在交换机中才有的参数。
  1. 配置交换机限速时,cir和cbs的关系如下:
  • cbs要大于报文的最大长度。
  • 在连续流量的情况下对于cbs没有特殊的要求,保证平均速率是cir的速率。
  • 在突发流量需要保证的情况下,如果cbs换算成kbit小于cir,那么cbs也无法保证突发流量。否则cbs可以配置大一些。
  • 在对FTP业务进行限速时,由于FTP属于TCP业务,TCP协议有其特殊的传输机制导致流量无法达到所应该达到的限速速率,推荐配置: CBS = 200 * CIR PBS = 2 * CBS
  1. 说明:
  • 不配置PIR,只配置CIR、CBS、PBS。
  • CIR单位为Kbps,CBS、PBS单位为Byte。
  • 例如: 配置CIR带宽为2M=2048Kbps,则: CBS = 200 * CIR = 200 * 2048 = 409600 PBS = 2 * CBS = 2 * 409600 = 819200

MII接口详解

MII (Media Independent Interface(介质无关接口);或称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号。管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。MII (Management interface)只有两条信号线。 MII标准接口用于连快Fast Ethernet MAC-block与PHY。”介质无关”表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。在其他速率下工作的与MII等效的接口有:AUI(10M 以太网)、GMII(Gigabit 以太网)和XAUI(10-Gigabit 以太网)。

  1. MII总线 在IEEE802.3中规定的MII总线是一种用于将不同类型的PHY与相同网络控制器(MAC)相连接的通用总线。网络控制器可以用同样的硬件接口与任何PHY进行连接。

  2. MII相关接口介绍 以太网媒体接口有:MII RMII SMII GMII 所有的这些接口都从MII而来,MII是(Medium Independent Interface)的意思,是指不用考虑媒体是铜轴、光纤、电缆等,因为这些媒体处理的相关工作都有PHY或者叫做MAC的芯片完成。 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时钟。 GMII是千兆网的MII接口,这个也有相应的RGMII接口,表示简化了的GMII接口。

  3. MII工作原理 “媒体独立”表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。 MII数据接口总共需要16个信号,包括TX_ER,TXD,TX_EN,TX_CLK,COL,RXD,RX_EX,RX_CLK,CRS,RX_DV等。 MII以4位半字节方式传送数据双向传输,时钟速率25MHz。其工作速率可达100Mb/s。 MII管理接口是个双信号接口,一个是时钟信号,另一个是数据信号。 通过管理接口,上层能监视和控制PHY,其管理是使用SMI(Serial Management Interface)总线通过读写PHY的寄存器来完成的。 PHY里面的部分寄存器是IEEE定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC通过SMI总线不断的读取PHY的状态寄存器以得知目前PHY的状态,例如连接速度,双工的能力等。 当然也可以通过SMI设置PHY的寄存器达到控制的目的,例如流控的打开关闭,自协商模式还是强制模式等。 不论是物理连接的MII总线和SMI总线还是PHY的状态寄存器和控制寄存器都是有IEEE的规范的,因此不同公司的MAC和PHY一样可以协调工作。当然为了配合不同公司的PHY的自己特有的一些功能,驱动需要做相应的修改。 PHY是物理接口收发器,它实现物理层。包括MII/GMII(介质独立接口)子层、PCS(物理编码子层)、PMA(物理介质附加)子层、PMD(物理介质相关)子层、MDI子层。100BaseTX采用4B/5B编码。 PHY在发送数据的时候,收到MAC过来的数据(对PHY来说,没有帧的概念,对它来说,都是数据而不管什么地址,数据还是CRC),每4bit就增加1bit的检错码,然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去。收数据时的流程反之。 PHY还有个重要的功能就是实现CSMA/CD的部分功能。 它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机时间后将数据送出去。如果两个碰巧同时送出了数据,那样必将造成冲突,这时候,冲突检测机构可以检测到冲突,然后各等待一个随机的时间重新发送数据。这个随机时间很有讲究的,并不是一个常数,在不同的时刻计算出来的随机时间都是不同的,而且有多重算法来应付出现概率很低的同两台主机之间的第二次冲突。 通信速率通过双方协商,协商的结果是两个设备中能同时支持的最大速度和最好的双工模式,这个技术被称为Auto Negotiation或者NWAY。 隔离变压器把PHY送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到连接网线的另外一端。 RJ-45中1、2是传送数据的,3、6是接收数据的。 新的PHY支持AUTO MDI-X功能,也需要隔离变压器支持,它可以实现RJ-45接口的1、2上的传送信号线和3、6上的接收信号线的功能自动互相交换。

  4. GMII简介 GMII (Gigabit MII) GMII采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式。 GMII接口数据结构符合IEEE以太网标准。该接口定义见IEEE 802.3-2000。 发送器: ◇ GTXCLK——吉比特TX..信号的时钟信号(125MHz) ◇ TXCLK——10/100M信号时钟 ◇ TXD[7..0]——被发送数据 ◇ TXEN——发送器使能信号 ◇ TXER——发送器错误(用于破坏一个数据包) 注:在千兆速率下,向PHY提供GTXCLK信号,TXD、TXEN、TXER信号与此时钟信号同步。否则,在10/100M速率下,PHY提供 TXCLK时钟信号,其它信号与此信号同步。其工作频率为25MHz(100M网络)或2.5MHz(10M网络)。 接收器: ◇ RXCLK——接收时钟信号(从收到的数据中提取,因此与GTXCLK无关联) ◇ RXD[7..0]——接收数据 ◇ RXDV——接收数据有效指示 ◇ RXER——接收数据出错指示 ◇ COL——冲突检测(仅用于半双工状态) 管理配置 ◇ MDC——配置接口时钟 ◇ MDIO——配置接口I/O 管理配置接口控制PHY的特性。PHY器件有32个寄存器,MAC控制器可通过管理配置接口来配置这些寄存器,每个寄存器的地址为16位。其中前16个寄存器已经在“IEEE 802.3,2000-22.2.4 Management Functions”中规定了用途,其余的则由各器件自己指定。 RMII简介 RMII: Reduced Media Independant Interface 即简化媒体独立接口;是标准的以太网接口之一,比MII有更少的I/O传输。 关于RMII口和MII口的问题 RMII口是用两根线来传输数据的, MII口是用4根线来传输数据的, GMII是用8根线来传输数据的。 MII/RMII只是一种接口,对于10M线速,MII的速率是2.5M,RMII则是5M;对于100M线速,MII的速率是25M,RMII则是50M。 MII/RMII 用于传输以太网包,在MII/RMII接口是4/2bit的,在以太网的PHY里需要做串并转换、编解码等后,才能在双绞线和光纤上进行传输,其帧格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN)。 以太网帧的格式为:前导符+开始位+目的mac地址+源mac地址+类型/长度+数据+padding(optional)+32bitCRC 如果有vlan,则要在类型/长度后面加上2个字节的vlan tag,其中12bit来表示vlan id,另外4bit表示数据的优先级!

bit、Byte、bps、Bps、pps、Gbps的单位详细说明及换算

  1. bps :“bits per second”常用于表示数据机及网络通讯的传输速率。例如GigabitEthernet端口: 5 minute input rate 38410000 bits/sec, 6344 packets/sec 382410000 bits/sec = 382.41Mbps所以常说的快速以太网能达到百兆传输,其实实际传输文件大小只有10MB = 100Mb

  2. Bps: “Byte per second”电脑一般都以Bps显示速度,但有时会跟传输速率混淆,例如ADSL宣称的带宽为1Mbps ,但在实际应用中,下载速度没有1MB ,只有1Mbps/8 = 128kBps也就是说与传输速度有关的b一般指的是bit。与容量有关的B一般指的是Byte。

  3. pps – 包转发率包转发率标志了交换机转发数据包能力的大小。单位一般位pps(包每秒),一般交换机的包转发率在几十Kpps到几百Mpps不等。包转发速率是指交换机每秒可以转发多少百万个数据包(Mpps),即交换机能同时转发的数据包的数量。包转发率以数据包为单位体现了交换机的交换能力。

  4. Gbps – 背板带宽 交换机的背板带宽,是交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量。背板带宽标志了交换机总的数据交换能力,单位为Gbps,也叫交换带宽,一般的交换机的背板带宽从几Gbps到上百Gbps不等。一台交换机的背板带宽越高,所能处理数据的能力就越强,但同时设计成本也会越高。

  • 从以下两个方面可以判断一台交换机背板带宽的可用性:
  1. (所有端口容量×端口数量×2)小于等于背板带宽,可实现全双工无阻塞交换,证明交换机具有发挥最大数据交换性能的条件。
  2. 满配置吞吐量(Mpps) = 满配置GE端口数×1.488Mpps,其中1个千兆端口在包长为64字节时的理论吞吐量为1.488Mpps。

GE端口理论吞吐量-1.488Mpps。以太网传输最小包长是64字节。包转发线速的衡量标准是以单位时间内发送64byte的数据包(最小包)的个数作为计算基准的。 对于千兆以太网来说,计算方法如下: 1000Mbps/((64B+8B+12B)×8bit)=1.488095pps 说明:当以太网帧为64Byte时,需考虑8Byte的前导符和12Byte的帧间隙的固定开销。 在以太网中,每个帧头都要加上了8个字节的前导符,前导符的作用在于告诉监听设备数据将要到来。然后,以太网中的每个帧之间都要有帧间隙,即每发完一个帧之后要等待一段时间再发另外一个帧,在以太网标准中规定最小是12个字节,然而帧间隙在实际应用中有可能会比12个字节要大,在这里我用了最小值。每个帧都要有20个字节的固定开销。(另外这20字节的信息是不能通过抓包软件抓下来的)因此一个全双工线速的千兆以太网端口在转发64Byte包时的包转发率为1.488Mpps。

  1. 常用以太网端口的包转发率:
  • 万兆以太网:14.88Mpps
  • 千兆以太网:1.488Mpps
  • 百兆以太网:0.1488Mpps

Router 的 kbits 单位等同于 kbps

============================================================================================

根据进制规定,传送速度可以有两种表示方法 bps 和 Bps,但是他们是有严格区别。Bps中的 B 使用的是二进制系统中的Byte字节 ,bps中的b是十进制系统中的位元。

在我们常说的56K拨号,100M局域网都是bps计量,当用于软件下载时,下载工具一般又以Bps计算,所以它们之间有 8 bit=1 Byte 的换算关系,那么56Kbps拨号极限下载速度是 56Kbps/8=7KBps 每秒下载7K字节 。

FIFO小结

FIFO简介

  1. FIFO即为First in first out.就是先进先出。可分为同步FIFO和异步FIFO,其区别主要是,读写的时钟是否为同一时钟,如使用一个时钟则为同步FIFO,读写时钟分开则为异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟。在时钟沿来临时同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟是互相独立的。

    • 若输入输出总线为同一时钟域,FIFO只是作为缓存使用,用同步FIFO即可,此时,FIFO在同一时钟下工作,FIFO的写使能、读使能、满信号、空信号、输入输出数据等各种信号都在同一时钟沿打入或输出。
    • 若输入输出为不同时钟域,FIFO作时钟协同作用,需要采用异步FIFO,此时,FIFO在读与写分别在各自时钟下工作,FIFO的写使能、写满信号、输入数据等各种输入信号都在同一输入时钟沿打入或输出。读使能、读空信号、输出数据等各种输出信号都在同一输出时钟沿打入或输出。
  2. 一般来说,较大的FIFO可以选择使用内部BLOCK RAM资源,而小的FIFO可以使用寄存器资源例化使用。

  3. FIFO的主要信号包括:

    • 读信号————–rd_en
    • 读数据————–dout
    • 读空信号————empty
    • 写信号————–wr_en
    • 写数据————–din
    • 写满信号————full
    • 实际使用中,可编程满的信号(XILINX 的FIFO)较为常用,ALTERA的FIFO中,可以通过写深度(即写入多少的数据值)来构造其可编程满信号。 通过配置threshold(门限)的值可以设定可编程满起效时的FIFO深度。
  4. 理解写空(wrempty)、写满(wrfull)、写请求(wrreq)之间的关系

    • wrempty,简单的理解就是FIFO内没有有效的数据了;
    • wrfull与wrempty对应,意思是FIFO中没有多余的存储空间了当然就是full了。当FIFO在wrfull状态的时候,很自然地得出结论:当处于“写满(wrfull)”状态时,一定不要让“写请求(wrreq)”发出继续写入FIFO的信号。至于wrempty与wrreq间的关系,我们不用关心,这是因为:只要不是wrfull状态,FIFO就有多余的存储空间,就有充分的责任欢迎数据的写入。
  5. 理解读空(rdempty)、读满(rdfull)、读请求(rdreq)之间的关系

    • rdempty,简单的理解就是FIFO内有效数据都被设备读完了;
    • rdfull与rdempty对应,意思是FIFO中现在没有多余的存储空间了。当FIFO在rdempty状态的时候,很自然地得出结论:当处于“读空(rdempty)”状态时,一定不要让“读请求(rdreq)”发出继续读出的信号。至于rdfull和rdreq的关系,我们不用关心,这是因为:只要不是rdempty状态,FIFO就有数据,有充分的义务向外部设备供应数据。

FIFO应用场景

  1. 数据的缓冲。如模型图所示,如果数据的写入速率高,但间隔大,且会有突发;读出速率小,但相对均匀。则通过设置相应深度的FIFO,可以起到数据暂存的功能,且能够使后续处理流程平滑,避免前级突发时,后级来不及处理而丢弃数据。

 2. 时钟域的隔离。对于不同时钟域的数据传递,则数据可以通过FIFO进行隔离,避免跨时钟域的数据传输带来的设计与约束上的复杂度。比如FIFO的一端是AD采集的数据,另一端是计算机的PCI总线,假设AD采集的速率是16位 100K SPS,那么每秒的数据量为100K16bit=1.6Mbps。而PCI总线的速度为33MHz,总线宽度为32位,则其最大传输速率为33M32=1.056Gbps,在两个不同的时钟域间就可以采用FIFO来作为数据缓冲。

 3. 用于不同宽度的数据接口。例如单片机8位数据输出,而DSP是16位数据输入,在单片机和DSP连接时就可以使用FIFO来达到数据匹配的目的。

FIFO设计注意事项

  1. 不能溢出,即满后还要写导致溢出,对于数据帧的操作来说,每次写入一个数据帧时,如果每写一个宽度(FIFO的宽度)的数据,都要检查满信号,则处理较为复杂,如果在写之前没满,写过程不检查,则就容易导致溢出。因此可编程满的设定尤为必要,通过设置可编程满的水位线,保证能够存储一个数据帧,这样写之前检查可编程满即可。

 2. 其次,另一更容易出错的问题,就是空信号。对于FIFO来说,在读过程中出现空信号,则其没有代表该值没有被读出,对于读信号来说,如设定读出一定长度的值,只在一开始检测非空,如状态机的触发信号,容易出现过程中间也为空的信号,会导致某些数据未读出,特别是写速满而读速快的场景下。 因此rden与!empty信号要一起有效才算将数据读出。

 3. 空信号处理相对容易出错,懒人自有笨方法,下面介绍一种应用于数据帧处理的FIFO使用方式,只需在读开始检测空信号即可,可以简化其处理读数据的流程:数据缓存以大FIFO(BLOCK RAM实现)为主,而每存储完毕一个数据帧向小FIFO(寄存器实现)内写入值。当小FIFO标示非空时,则标示大FIFO中已存储一个整帧。则下一级模块可以只需检测小FIFO非空时,从而读出一个整帧,过程中大FIFO一直未非空,可以不用处理非空信号,从而简化设计和验证的流程。

FIFO中的一些重要参数

  1. FIFO的宽度:也就是英文资料里常看到的THE WIDTH,它只的是FIFO一次读写操作的数据位,就像MCU有8位和16位,ARM 32位等等,FIFO的宽度在单片成品IC中是固定的,也有可选择的,如果用FPGA自己实现一个FIFO,其数据位,也就是宽度是可以自己定义的。

  2. FIFO的深度:THE DEEPTH,它指的是FIFO可以存储多少个N位的数据(如果宽度为N)。如一个8位的FIFO,若深度为8,它可以存储8个8位的数据,深度为12 ,就可以存储12个8位的数据,FIFO的深度可大可小,个人认为FIFO深度的计算并无一个固定的公式。在FIFO实际工作中,其数据的满/空标志可以控制数据的继续写入或读出。在一个具体的应用中也不可能由一些参数算数精确的所需FIFO深度为多少,这在写速度大于读速度的理想状态下是可行的,但在实际中用到的FIFO深度往往要大于计算值。一般来说根据电路的具体情况,在兼顾系统性能和FIFO成本的情况下估算一个大概的宽度和深度就可以了。而对于写速度慢于读速度的应用,FIFO的深度要根据读出的数据结构和读出数据的由那些具体的要求来确定。

  3. 满标志:FIFO已满或将要满时由FIFO的状态电路送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出(overflow)。

  4. 空标志:FIFO已空或将要空时由FIFO的状态电路送出的一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出(underflow)。

  5. 读时钟:读操作所遵循的时钟,在每个时钟沿来临时读数据。

  6. 写时钟:写操作所遵循的时钟,在每个时钟沿来临时写数据。

  7. 读指针:指向下一个读出地址。读完后自动加1。

  8. 写指针:指向下一个要写入的地址的,写完自动加1。

读写指针其实就是读写的地址,只不过这个地址不能任意选择,而是连续的。

部分转自网络,侵权联系删除区块链源码网

www.interchains.cc

https://www.interchains.cc/17150.html

区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 !
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » 基于区块链的毕业设计Ethernet – 以太网

提供最优质的资源集合

立即查看 了解详情