一、基本的概念
出于安全原因并非所有的端口都支持远程管理
基本的交换机发生在所有的端口上是在0x04
1、 交换机内核的功能描述
该设备被设计用于许多不同的应用. 为了灵活性和方便学习如何使用交换机, 所有的交换机的端口都被设计成了相同的功能直到与交换机核心相关的为止1. 详细信息请参见设备数据表中的应用程序示例。
本节主要介绍的交换机内核所有端口的核心的功能是相同的。虽然相同的端口功能使设备变得灵活,但在给定的模式和/或应用程序中应该使用哪些功能可能令人困惑。为了更好地理解如何基于应用更好地使用设备的特性,交换机核心功能描述分为以下几个部分(虽然交换机的端口的功能可以是相同的但是还是划分了不同的交换机的功能端口,这是为了更好的有效地使用设备):
 交换机的基本功能 – 这些功能对于所有的帧模式都是通用的(Section 1.1).
 正常的网络帧模式–用于IEEE标准未标记和标记的帧,或至少有一个“提供商”端口在交换机上可用于“客户”端口 (Section 2).
 提供商的帧模式 –用于IEEE标准“提供商”的端口 (Section 3).
 Distributed Switch Architecture分布式交换机体系结构 (DSA) 的帧模式 – 用于多个芯片交换矩阵扩展(级联)或用于连接到交换管理CPU和/或路由器CPU (Section 4).
每个交换机端口可以处于三种基本操作模式之一:
 Normal 正常
 Provider 提供商
 DSA 分布式交换机体系结构 ----- 级联
在哪里两个DSA选项可以被支持呢:
 Classic
 Ether type
使用端口的FrameMode寄存器配置端口的操作模式 (Port offset 0x04).[9:8]两位来配置
1.1基本的交换机功能
以下基本的交换机操作发生在所有端口上,而不用管端口的FrameMode (Port offset 0x04).
1.1.1物理的交换机的数据流的设备
这个设备接收以太网的帧然后它可以丢弃帧或者也可以将帧从一个或多个端口中传输出去。决定如何处理每个太网的帧只是交换机内部处理的许多任务之一。 Figure 1 图中给出了交换机内部的数据路径以及主要功能块,这些功能块在帧通过设备时处理帧。以下各节介绍了这些模块中的每个模块及其寄存器可控制的选项和策略。
本节重点介绍单个端口的交换机核心(从MAC接收到MAC传输)中发生的帧处理和策略。
PS:都是可以接收以太网的帧并做以下的操作1.丢弃2.转发到一个或多个端口
1.1.2每个端口都包含某种物理端口
用于和MAC之间收发帧,虽然一些端口支持许多不同的物理接口但是一次只能用一种
Note:寄存器分为端口、全局1、全局2和TCAM组成的组,还有一个用于访问PHY的组
NOTE:通过参考控制功能的寄存器来应用设备功能。 交换设备中的寄存器分为端口,全局1,全局2和TCAM组成的组,另外还有一个用于访问PHY的组。 每个组最多支持32个16位寄存器,每个端口都有自己的32个寄存器集。 组中32个寄存器中的特定寄存器可称为“偏移”。 例如,端口控制寄存器在端口设备地址空间中的寄存器地址0x04处显示为端口偏移0x04。 有关寄存器的详细信息,请参见Section 8。 为了扩展有限的可用地址,对许多寄存器进行了索引。 通过将术语“索引”放在“偏移”之后来引用适当的寄存器。 例如,端口偏移量0x02,索引0x10。
1.1.3MAC
该设备包含了12个 MACs. 这些MAC执行802.3协议中的所有功能,包括帧格式化,帧剥离,CRC检查,CSMA / CD实施和冲突处理。 每个MAC仅在全双工模式下支持1 Gbps操作,在全双工或半双工模式下支持10/100 Mbps操作。 连接到端口9和端口10的MAC也可以支持2.5 Gbps速度和最高10 Gbps速度(仅BGA封装中支持10 Gbps)。 连接到IMP(集成管理处理器)NIC的MAC以1 Gbps的固定速度运行(并且仅支持全双工操作)。MAC接收模块检查传入的数据包,并丢弃那些具有CRC错误的数据包,那些具有对齐错误的数据包,短数据包(小于64字节),长数据包(大于1522字节)1(非巨型模式)和巨型数据包(10240字节)。每个MAC持续监控其接收线路,等待前导字节,然后跟随帧起始定界符(SFD)。 SFD之后的前六个字节用作数据包的目标地址(DA)1,之后的后六个字节用作数据包的源地址(SA)。 这两个地址是交换机操作的基础(有关更多信息,请参见第Section 1.2)。 接下来的2到60个字节将被检查,并可用于QoS(服务质量)或交换机做出的策略决策(有关更多信息,请参见Section 2)。 数据包的最后四个字节包含数据包的帧检查序列(FCS)。 FCS必须满足该数据包的IEEE 802.3 CRC-32要求,否则将被丢弃(除非允许处理带有CRC错误的帧,请参阅端口偏移量0x08中的“允许错误的CRC”位)。
在发送数据包之前,发送模块必须检查该线路是否可用于传输。 当端口处于全双工模式时,传输线始终可用,但是如果端口处于半双工模式,则传输线可能正忙于接收数据包。 如果线路繁忙,则发送器通过延迟其发送来等待。 当线路可用时,发送器确保在帧前发送56位前同步码和8位帧起始定界符(SFD)之前,至少出现96位的最小数据包间间隙。 帧的实际传输在SFD之后立即开始。
对于半双工模式,设备还在发送时监视冲突信号。 如果检测到冲突(即PHY的发送器和接收器同时
处于活动状态),则MAC发送JAM模式,然后将重传延迟由IEEE 802.3退避算法确定的随机时间
段。 在全双工模式下,将忽略冲突信号和退避算法。
PS:该设备有12个MAC:执行802.3协议中的所有的功能包括如下的退避等。
1.1.3.1退避算法
在半双工模式下,设备的 mac 实现 ieee802.3 标准中定义的截断二进制指数退避算法。该算法首先随机选择一个较小的退避时间,然后逐步生成较长的随机退避时间。随机时间的作用是阻止两个或多个mac 同时尝试重新传输。退避时间越长,随机范围越宽,但延迟越长,拥塞链路越有可能找到一个成功的发送器。当丢弃的多余位被清除为零(全局1 偏移0x04)时,设备中的每个MAC 在16 次连续的重新传输试验之后重置逐渐延长的退避时间。然后,每个 MAC 以最短的随机退避时间重新启动退避算法,并继续重试和重新传输帧。连续发生冲突的数据包被重新传输,直到传输成功。这种算法可以防止在高度拥挤的环境中丢包。交换机中的 mac 被配置为满足 IEEE 802.3 规范,并在连续 16 次冲突后丢弃帧,而不是在丢弃被设置为 1(全局 1 偏移 0x04)时重新启动退避算法。在CSMA/CD协议中,一旦检测到冲突,为降低再冲突的概率,需要等待一个随机时间,然后再使用CSMA方法试图传输。为了保证这种退避维持稳定,采用了二进制指数退避算法的技术,其算法过程如下:

1.确定基本退避时间,一般为端到端的往返时间为2t,2t也称为冲突窗口或争用期。
2. 定义参数k,k与冲突次数有关,规定k不能超过10,k=Min[冲突次数,10]。在冲突次数大于10,小于16时,k不再增大,一直取值为10。
3. 从离散的整数集合[0,1,2,……,(2k-1)]中随机的取出一个数r,等待的时延为r倍的基本退避时间,等于r x 2t。r的取值范围与冲突次数k有关,r可选的随机取值为2k个、这也是称为二进制退避算法的起因。
4.当冲突次数大于10以后,都是从0—210-1个2t中随机选择一个作为等待时间。
5. 当冲突次数超过16次后,发送失败,丢弃传输的帧,发送错误报告。
举例
如果第二次发生碰撞:
n = 2
k = MIN(2,10) = 2
R = {0, 1, 2, 3)
延迟时间 = R * 512 * Bit-time
其中:Bit-time = 1 / Debit
例如:
对于传输速率Debit = 10 Mbit/s,
那么Bit-time = 0.1 us
延迟时间={0, 51.2 us, 102.4 us, 153.6 us} 其中任取一
PS:该算法在芯片内部自动完成不需要编程实现
1.1.3.2半双工流控:
半双工流控制用于限制终端站的吞吐速率,以避免在网络拥塞时丢弃数据包。 通过FLOW配置引脚在所有半双工端口上启用该功能(有关详细信息,请参见设备的数据表)。 通过强制端口的流控制模式(端口偏移量0x02中的FCValue和ForcedFC,索引0x10),可以在任何特定端口上启用或禁用流控制。 该设备使用基于混合载波断言和冲突的方案来执行半双工流控制。 当可用缓冲区空间几乎为空时,MAC发出载波和/或冲突,从而阻止进一步传入的数据包。 仅对拥塞中涉及的端口进行流量控制。 如果未设置半双工流控制模式,并且没有可用的数据包缓冲区空间,则将丢弃传入的数据包。半双工流控制不是IEEE定义的功能。 下一节将介绍IEEE定义的全双工流控制。
PS:通过FCValue和ForcedFC来控制避免丢包
1.1.3.3全双工流控:
IEEE 802.3流量控制机制要求两个链接对端端口自动协商并公布其流量控制功能。 如果两个链接对端端口都具有流控制功能,则将在两个链接对端端口的MAC中启用流控制。PHY用于通告功能而流控制本身是MAC的功能。 IEEE流控制还需要全双工操作。全双工流控制的目的与半双工中的相同–避免在拥塞期间丢弃数据包。 如果未设置全双工流控制模式,并且没有可用的数据包缓冲区空间,则将丢弃传入的数据包。如果在端口上启用了自动协商,并且链路对端端口“宣称”它支持在自动协商期间暂停,则通过流配置引脚在所有全双工端口上启用全双工流控制(有关详细信息,请参阅设备的数据表)。基本上,在端口上自动启用全双工流控制 除非:
1、该端口的PHY正在宣传它支持流量控制。
还有
2、该端口的PHY看到其链接对端端口也在宣传其也支持流控制(一旦建立链接)。
FLOW配置引脚确定此设备的PHY中的初始流控制通告位设置。复位后不久,该引脚的值就会被交换机移至外部PHY。使用FLOW配置引脚启用流量控制后,所有相同类型的端口(即在所有具有流量可控链路对端端口的半双工端口或所有全双工端口上)都启用了流量控制。 可能需要仅在一个或两个端口上启用流控制,并在所有其他端口上禁用流控制。 在这种情况下,应通过FLOW配置引脚禁用流量控制,这将禁用所有端口上的流量控制。 然后可以将选择启用流量控制的端口配置为发布流量控制。 这可以通过使用SMI PHY命令和数据寄存器-全局2偏移量0x18和0x19来完成。在全双工模式下,设备的MAC支持IEEE 802.3标准中定义的流控制。 这种流控制机制使在远程节点上停止和重新开始数据包传输成为可能。 执行全双工流控制的基本机制是通过暂停帧。 暂停帧的格式如Table 1所示。
PS:要求两个对端端口公布其流量控制功能,避免丢包。当缓存空间快用完了的时候会丢弃数据包,空间的大小为watermark
通过暂停帧来控制DA:01-80-c2-00-00-01<-SA<-type<-op code<-pause time<-padding<-FCS
1.1.3.4在MAC中有强制流控的功能
1.1.3.3 节描述了IEEE定义的流控制机制,该机制需要与链接对端端口进行自动协商。 某些端口可能未连接PHY,或者可能已连接PHY而没有自动协商。 在这种情况下,可以通过强制端口的流控制模式(端口偏移量0x02中的FCValue和ForcedFC,索引0x10)来启用或禁用流控制。 以这种方式强制进行流控制将指示端口的MAC在需要时发送暂停帧,并根据接收到的消息采取行动
暂停帧。 它不会更改端口PHY中的播发位1.
如果端口连接了PHY(内部或外部),并且启用了自动协商,那么如果端口处于全双工模式,最好不要强制流控制(通过使用FCValue和ForcedFC)。相反,设置PHY的自动协商流控制播发位,以允许在端口的链路伙伴同意的情况下自动进行流控制。
PS:通过FCValue和ForcedFC来控制避免丢包对全双工同样适用。
1.1.3.5干扰控制-出口限制
完美的流控制,即没有数据包丢失,(全双工或半双工)会导致网络问题。一个潜在的问题
可能会发生在两个交换机盒之间,这两个交换机盒同时暂停彼此在同一时间关闭,这样两个
交换机盒都不能耗尽它们的全部缓冲区。这种非常罕见但可能的情况会导致两个交换机盒之
间的链路死锁。通过限制端口可以传输的背对背暂停刷新次数,从而限制链路伙伴可以暂停
的最长时间,允许清除死锁,很容易解决这个问题。端口的限制寄存器(端口偏移量0x02,
索引0x01)控制端口可以暂停其链路伙伴的最大暂停次数。限制寄存器的范围足够大,以确
保在正常、甚至极端的网络拥塞情况下零丢包,同时确保不发生死锁情况。
1.1.3.6干扰控制-入口限制
当在端口上启用流控制时,它可以被其链路伙伴暂停,这样端口就永远不能传输任何帧。这可能是上述问题(Section 1.1.3.5)的结果,也可能是DoS攻击(拒绝服务)。 端口的LimitIn寄存器(端口偏移0x02,索引0x00)可用于限制端口的出口队列被阻塞的时间。 一旦达到编程的限制,将在端口上强制关闭流控制,并向CPU生成中断(如果启用–全局2偏移量0x00和0x01)。 软件可以通过检查端口流量控制强制位来确定哪个端口已达到限制。 在达到限制的任何端口上都将强制关闭流控制(在端口偏移量0x02(索引0x10)中,ForcedFC = 1,FCValue = 0)。 软件可以更改这些位的值(通过将端口的ForcedFC位清零)来重新启用端口上的流控制。
如果端口处于全双工模式,则在最后一个暂停时间到期后,端口上的流控制功能自动禁用将允许帧退出端口。 但是,如果端口处于半双工模式,则来自链接伙伴的持续冲突仍然可以防止帧离开阻塞的端口。 因此,即使在半双工端口上禁用了流量控制,也会在这些端口上激活“卡纸限制”中断。 软件可以采取措施来启用DiscardExcessive(请参见Section 1.1.3.1或全局1偏移量0x04)或禁用或阻止端口(请参阅端口偏移量0x04中的端口状态)。 在这两种情况下,目标都是释放阻塞的缓冲区供其他端口使用(请参见Section 2.6)。
PS:防止两台级联的交换机同时暂停对方并关闭该端口,这样他们会死锁,干扰可以防止上述的情况
1.1.3.7在 MAC 中强制链接、速度和双工:
在MAC中强制链接、速度和双工通过使用端口的ForcedLink,ForcedDpx和ForceSpd寄存器(端口偏移0x01),可以在端口的MAC上强制使用Link,Speed和Duplex。在端口的MAC上强制使用这些模式之一时,必须格外小心。 例如:除非端口的Link断开,否则不要更改MAC的Speed或Duplex。这些位仅更改端口的MAC模式! 对于连接PHY的端口,它不会更改PHY的模式。 这些位仅用于以下情况:
当没有PHY连接到端口时。 这包括连接到CPU的端口(通常使用MII或GMII之类的数字接口)。
未连接PHY的端口将关闭其Link,直到软件强制端口的Link up。
PS:通过使用端口的 ForcedLink,ForcedDpx 和 ForceSpd 寄存器(端口偏移 0x01)
1.1.3.8基于MAC和策略的RMON /统计计数器
除了集成管理处理器(IMP)端口外每个端口维护一组60个32位和两个64位的计数器,这些计数器可以统计入口和出口的以太网信息。支持RMON组1、2、3、9所有的端口还支持一组简单的调试计数器。
支持RFC2819/1757/1271(RMON)、RFC2665/1643/1623(以太网)、RFC2233/1573/1213/1229/1158(MIB)、RFC1493/1286(桥)
因为CPU寄存器的接口速度比千兆或快速以太网要慢所以计数器统计数据可以放入以太网帧中来传递。
每个寄存器的完整说明在表2、3,MAC:在表4、5
1. 以太网相关2.单播、组播、广播、暂停
3.FSC 4.统计仅入口,仅出口,以及出口和入口
Cpu接口在统计计数器上支持
清除所有端口的所有计数器
清除单个端口的所有计数器
捕获单个端口的所有计数器
读取捕获的计数器(必须先执行捕获,然后才能完成对捕获区域的读取
寄存器在(全局 1 偏移量 0x1D)
1.1.3.9调试计数器:
该设备每个端口维护一小组调试计数器(两个8位计数器),使用户能够监视基本网络操作。它们旨在用于新硬件和/或软件的初始调试。 这些计数器位于端口偏移量0x1F中,并具有以下两种操作模式:
1、计算接收到的好帧的数量并计算接收到的坏帧的数量
2、计算传输的帧数并计算传输期间的冲突数
第一种操作模式指示到交换机的连接是否良好(无不良帧),以及软件是否成功获得了到交换机的任何帧(两个计数器都不为零)。
第二种模式操作表明帧成功通过了交换机,并且端口配置正确(即如果期望全双工操作,则应该没有冲突)。这些计数器所处的模式由CtrMode位(全局1偏移量0x1C)配置。 CtrMode位确定所有端口中所有调试计数器的模式,并且切换该位将导致清除所有调试计数器。
与千兆位甚至快速以太网帧的速度相比,所有CPU寄存器接口的速度都较慢。 由于这个原因,所有与端口关联的RMON计数器数据都可以放入以太网帧中并传输到CPU(或其他设备)。 支持两个选项,一个MIB转储和一个MIB转储和清除。 请参阅Section 7中描述的远程管理。
用于新硬件或软件的初始调试位于0x1F只有两个8位计数器
PS:有以下两种模式:
计算接收到的好帧的数量并计算接收到的坏帧的数量
计算传输的帧数并计算传输期间的冲突数
同上的:因为CPU寄存器的接口速度比千兆或快速以太网要慢所以计数器统计数据可以放入以太网帧中来传递。

交换机芯片笔记1.1相关推荐

  1. 交换机芯片笔记1.2

    1.2基本交换机的操作: 设备从MAC接收数据包然后对它进行处理,通过源地址最后转发到适当的MAC上 进行传输. 1. 入口规则(2.1节) 2. 队列控制器(2.6节) 3. 输出队列(2.6.5. ...

  2. androidstudio mac mini_苹果M1芯片笔记本能安装运行Android Studio和模拟器吗?能!

    苹果M1芯片笔记本能安装运行Android Studio和模拟器吗? 能!能!能! ps:大年初一,本该吃吃喝喝,养养膘,打打牌.但是就在前几天,大学时期买的,用了6,7年的联想笔记本,光荣下岗了!趁 ...

  3. 交换机芯片初创企业再获7700万美元融资

    origin: http://net.zol.com.cn/686/6867869.html 2018-04-27 05:50:00 [  中关村在线 原创  ]   作者:郑伟 本周三消息,交换机芯 ...

  4. Marvell交换机芯片SMI接口读写协议

    Marvell的88E6XXX系列交换机芯片基本都提供SMI(Serial Management Interface)接口. SMI接口使用2线串行通信,一个MDC提供时钟,一个MDIO为双向数据引脚 ...

  5. RK3399驱动开发 | 21 -Marvell交换机芯片88E6390X调试(基于linux主线5.4.32内核)

    一.88E6390X 1. 芯片框图 88E6390X芯片是Marvell的一款11端口交换器芯片,有1个CPU端口.8个10/100/1000Mbsp以太网端口.两个XAUI/RXAUI/2500光 ...

  6. 企业级路由器与交换机学习笔记

    企业级路由器与交换机学习笔记 不仅三层交换机具有了部分原来独属于企业级路由器的"路由"功能,而且现在宽带和高端企业级路由器中也开始兼备交换机的"交换"功能了. ...

  7. stm32 交换机芯片_基于STM32的全链路语音交互 - stm32/stm8 - 电子工程世界

    硬件平台:STM32F746G-DISC开发板 编译软件:KEIL 5.31 操作系统:RTX5 TCP/IP协议栈:Cyclone-TCP 语音交互平台:思必驰DUI开放平台 这里说一下使用的TCP ...

  8. [芯片笔记] W25Qx芯片的标准SPI读写

    目录 1. W25Q16 1.W25Q16功能简介: 2.标准SPI读写W25Q16开发步骤 3. 标准SPI读写详细步骤 3.1 W25Q16芯片硬件说明 3.2 通过标准SPI读取开发商的ID和设 ...

  9. 台湾ICPlus IP175GHI, 85nm /极低功率,5接口10/100以太网集成交换机芯片

    台湾ICPlus IP175GHI 5接口10/100以太网集成交换机 , 85nm /极低功率 功能一般描述 z 5端口嵌入式10/100 PHY开关控制器 IP175G支持5 100BaseTX ...

  10. 路由器和交换机学习笔记

    交叉线:同种设备间使用 直通线:异种设备间使用 数据链路层 帧格式:帧头(目标MAC[6个字节] 源MAC[6个字节] 类型[2个字节]) 上三层数据 帧尾 类型字段的作用:识别上层协议,为上层协议提 ...

最新文章

  1. AI一分钟|AI聊机器人“Shibuyu Mirai”获日本居住权,传今日头条3亿美元收购Faceu激萌
  2. 文件属性及资源文件的使用
  3. Mac电脑同步工程到github
  4. 先来先服务算法的特点
  5. python中怎么替换字母_python去除拼音声调字母,替换为字母的方法
  6. SSD物体检测(附源代码,可以直接运行)
  7. 【读书笔记《Android游戏编程之从零开始》】10.游戏开发基础(View 游戏框架)
  8. oracle连接ORA-01017、ORA-12640
  9. 《网络渗透技术》 强烈推荐
  10. 千呼万唤始出来的IDEA笔记插件mdNote
  11. c++ 显示三维散点图_办公小技巧:三维展示 用好Excel矩阵图
  12. 如何实现1080P延迟低于500ms的实时超清直播传输技术
  13. linux开机磁盘检查挂载失败 ,导致无法进入系统
  14. 华为KubeEdge在边缘计算的实践
  15. 怎么解决ie浏览器无法更改主页?
  16. 2017全球智慧城市战略指数分析
  17. 【JZOJ】2867. Contra
  18. python控制台图片_Python实现图像信息隐藏
  19. 多模式交通需求预测模型-CMGAT
  20. Xcode7 Cocoapods 插件用法

热门文章

  1. 广东省计算机一级常考选择题,广东省计算机一级选择题
  2. 关于网页数据导入excel
  3. TCP压测工具 终极 全新版
  4. 鸟哥的Linux私房菜-基础篇(第九章)
  5. BDS和GPS、电离层相关SSR数据解码
  6. 优麒麟桌面闪烁_优麒麟 19.10 正式发布—百尺竿头,更进一步
  7. R-CNN算法优化策略
  8. mysql sqlite 语法_浅谈sqlite与mysql的数据库语法差异_沃航科技
  9. python下载付费音乐包_python无损音乐下载器下载
  10. 海康威视网络摄像头开发流程(七)-------- 激活海康威视网络摄像头