以太网交换机EtherSwitch

1 RJ45
1.1 10/100Base-T

1.2 1000Base-T
1)BI_D1+ Bi-directional Data+(双向数据+)
2)BI_D1- Bi-directional Data-(双向数据-)
3)BI_D2+ Bi-directional Data+(双向数据+)
4)BI_D3+ Bi-directional Data+(双向数据+)
5)BI_D3- Bi-directional Data-(双向数据-)
6)BI_D2- Bi-directional Data-(双向数据-)
7)BI_D4+ Bi-directional Data+(双向数据+)
8)BI_D4- Bi-directional Data-(双向数据-)

- 1000Base-T在传输中使用了全部4对双绞线并工作在全双工模式下。这种设计采用 PAM-5(5级脉冲放大调制,属于PCS层;不同于使用千兆Serdes接口的8/10bit编码)编码在每个线对上传输250Mbps
- 千兆以太网四对差分线使用了类似电话的消侧音技术,而百兆没有。就像电话座机,只有一对线,你打电话的时候,可以听到别人的声音,但是从听筒中听不到自己的声音
- 100Base-T1使用PAM-3编码;10G以太网使用PAM-16编码
- 1000Base-TX尽管也是采用了全部的4对双绞芯线,但是它是两对发送,两对接收;X表示要交叉连接
- 1000Base-X规范,一对发送,一对接收,SerDes接口;X表示要交叉连接
- SerDes发送端驱动器其实就是一个DAC(数字-模拟转化器),而接收器的模拟前端就是一个ADC(模拟-数字转化器)。当然,比较特殊的是,对于传输“0”和“1”电平的SerDes系统而言,这里的“DAC”和“ADC”有效位都只有1比特。此外,与传统AD/DA的差别在于,为了补偿信道的影响,SerDes中的“DAC”和“ADC”通常具有均衡能力
- 10G/25G,Single Lane SerDes

1.3 Echo Cancellation
- 最早电话是2芯的,网线为了插头电话共用,45保留给电话,36用作网线,只好再搞一个12。后来网线是单独布的了,最中心的两个45也没用上,千兆正好把他拾起来用
- 二线方式提供全双工语音传输,语音在两根线中双向传输;四线方式相当于单工
- 使用混合线圈,抑制用户端的回声
- 可以将10GBase-T的4对双绞线对看作接收外界串扰信号的MIMO天线

2 Switch基本知识
2.1 无线路由器当无线交换机使用方法
- 外部网线连到4个LAN口中的一个,IE登陆路由器后,禁止DHCP服务
- 其它设备搜索WLAN信号,输入用户名密码

2.2 交换机环回命令
loopback internal
loopback line

2.3 统计是否丢包
交换机的一个port进口ingress接收到的TCP和UDP包应该等于其它所有port出口egress的包的总和

2.4 Port Mirroring
利用wireshark鉴定突发流量burst导致的出向丢包output drop
Wireshark -> Statistics -> IO Graph
调整坐标轴刻度,否则看不出来burst:
1)X Axis选择Time of day
2)Y Axis选择Interval = 1 ms,单位为Bytes
3)鼠标点击突发流量的顶点,就可以看到此刻抓的包是什么包

IO Graph常用过滤条件:
1)tcp
2)tcp.analysis.lost_segment
3)tcp.analysis.duplicate_ack
4)tcp.analysis.window_update
5)tcp.analysis.retransmission

3 bcm8923x
3.1 基本知识
IMP:In-band Management Port,寄存器在I/O Registers
bcm8923x CBP:Cell Buffer Pool 192 KB,每个port有8个queue,从queue 0到queue 7
MAC流控帧:PAUSE
SPI slave:最高速度62.5MHz,Data Format:1-byte command, 4-byte address, 1 ~ 8 bytes data;地址和数据都是大端格式

3.2 ARL
SOMEIP多播MAC:01-00-5E-40-FF-FB
需要配置到交换机IC中的ARL Entry 0

3.3 CBP
如果禁止802.1Q TC(Traffic Control)功能,那么所有port共享192KB CBP,并且每个port只使用queue 0(因为没有分类,所有包都映射到DSCP为0,对应到queue 0),queue 1到queue 7不使用。

每个cell大小是256 Bytes,假如一个packet的大小是514个字节,那么会占用3个cell,最后一个cell剩余的254个字节不能被其它进来的packet利用,浪费了这个cell的剩余空间。只有等这个packet被交换机转发出去,才会释放3个cell给后续进来的packet保存数据。

3.4 流控原理
SerDes流控配置:
- PCS_ANADV:Auto-Negotiation Advertisement
- PCS_LPAB:Link Partner Ability
- SerDes模式时需要设置对应寄存器的AN enable位,否则双方无法进行流控协商

Congestion Management:拥塞管理
MAC流控帧目的地址:特定组播MAC地址(01-80-C2-00-00-01)或者需要暂停发送的设备的MAC地址

Ingress Control - 牺牲吞吐达到尽量无丢包,比如流控将防止到达的报文超过阈值而丢弃,但是会造成吞吐下降。监视入端口CoS队列的可用缓存使用情况。如果超过阈值,则产生流量控制消息,发往该端口队列(使用PAUSE帧)。如果对端处理流控报文,则对端会停止发送,以缓解入段的压力。利用率使用IBP表示(Ingress Black Pressure)

Egress Control - 丢弃报文尽量达到高吞吐,比如不考虑报文是否处理及时,只管设置高阈值让吞吐量变大。监视出端口CoS队列的缓存使用情况。如果超过阈值,新到来的入口报文如果目的出口是超过阈值的端口,那么拥塞控制会把入口报文立即丢弃。利用率使用HOL表示(Head-of-Line)

Note:I210网卡在使能Qav(AVB)模式后,会禁止flow control功能

3.5 丢包分析 - MIB计数器
1)对端设备发送的速率过快导致本端交换机buffer不足,而又没有流控导致的丢包,尝试两端打开流控
2)多端口向一个端口发送报文,超出这个端口的转发能力,导致的HOL对头阻塞丢包,尝试调整端口速率和打开流控

3.6 QoS
最重要的一个模型 - 区别服务DiffServ
DSCP:DiffServ Code Point,使用DSCP-to-TC和TC-to-COS queue 2张映射表将DSCP映射为每个port的8个输出队列。

2个主要来源:
- VLAN Tag Control Info:TCI,802.1P Priority,也叫PCP,这3位指明帧的优先级。一共有8种优先级,取值范围为0 ~ 7
  int priority = 7;
  setsockopt(sfd, SOL_SOCKET, SO_PRIORITY, &priority, sizeof(priority));
  在文件net/8021q/vlan_dev.c中,skb->priority用于VLAN 802.1Q TCI。
  PCP2 is mapping to traffic class 6 (Class B)
  PCP3 is mapping to traffic class 7 (Class A)
- IP报文头的ToS(Type of Service),占用一个字节的前6个bit,取值范围是0 ~ 63

3.7 外挂交换机的路由器
- 接口名称是eth0和eth1的外挂交换机,意思是SoC提供了两个以太网口,eth1当WAN口,四个LAN口是从SoC的第二个以太网口eth0外接交换机分出来的。所有口都是直连SoC的路由器很少见
- 接口名称是eth0.1和eth0.2(VLAN)的外挂交换机,一般eth0.1代表WAN口,eth0.2表示4个LAN口;交换机剩余的一个口连接SoC的EMAC,并且这个口在交换机中需要配置为trunk模式
- brctl show

知识点:
eth0:对应于物理网卡
eth0:1:子网卡
eth0.1:虚拟VLAN网卡
eth0/0/1:表示交换机0板、0槽位、1接口

3.8 以太网PHY类型
- 100B-TX,B = baseband,T = twisted pair,X is a placeholder
- OABR,也叫100BASE-T1,1表示1-Pair;MII接口是25MHz,TXD[0:3],RXD[0:3];对外的2线接口叫MDI(Medium Dependent Interface),不支持AN(所以也不支持流控PAUSE帧)
- PHY 1588
- SerDes,支持流控PAUSE帧

3.9 TCP粘包 - TCP_NODELAY
TCP粘包(sticky)的表现是TCP nagle算法将应用层发送的多个包进行合并后,再发送,很容易出现burst导致switch丢包。
由于OABR不支持流控,所以需要使用Linux tc对对应的TCP/UDP port进行流量整形。

3.10 URLs
OABR规范:BroadR_Reach_Automotive_Spec_V3.0.pdf
http://www.ieee802.org/3/1TPCESG/public/BroadR_Reach_Automotive_Spec_V3.0.pdf

BroadR_Reach_Automotive_Spec_V3.2_w_o.pdf
http://grouper.ieee.org/groups/802/3/1TPCESG/public/BroadR_Reach_Automotive_Spec_V3.2_w_o.pdf

4 Microchip / Micrel KSZ8565R

5 5G基站AAU用以太网switch
5.1 AAU组成
ADC/DAC - ADI
FPGA - Altera
SoC - TI OMAP
10G ethernet switch - Marvell

5.2 原理
- 5G基站的核心设备包括基带处理单元(BBU)、有源天线单元(AAU)两部分,大家常见到挂着一圈天线的电信铁塔,AAU就安装在铁塔上,BBU安装于塔下或附近的机房中,同时还会部署电源柜、传输柜等配套设备
- 信号发送时,机房(BBU)将基带I/Q信号通过10G以太网传输给AAU,AAU(FPGA和DAC)将I/Q信号转换成射频信号,再通过天线发送出去
- 信号接收时,天线传来的射频信号,由AAU(ADC和FPGA)转化成基带I/Q信号,通过10G switch传输给室内处理设备(BBU)

6 SerDes - CML
- CML:Current Mode Logic
- 速度高于2.5Gbps的串行接口电路一般都用CML
- 恒流源16mA
- 使用总线:PCIe、USB SS(1000mV peak-to-peak)和千兆以太网(PHYless)
- USB SS TX+/-上加AC耦合电容,是为了隔离RX+/-端的直流偏置对发送端的影响
- USB SS眼图调试就是调整SerDes寄存器(QCOM)
- CML通过外接电阻做电平转换后兼容LVDS
- 百兆以太网4b/5b编码,千兆以太网8b/10b编码,万兆以太网64b/66b编码
- 支持SGMII模式的MAC中包含了PCS和SerDes模块(GMII接口的MAC只有PHY才包含PCS和PMA模块),SGMII中的S表示使用了SerDes传输数据,此时SerDes发送的10b数据ENC_TXD[0:9]表示TX_ER、TX_EN和TXD[0:7];接收的10b数据ENC_RXD[0:9]表示RX_ER、RX_DV和RXD[0:7];而SerDes模式时传输的是PCS 8b/10b编码后的数据
- SerDes发送端驱动器其实就是一个DAC(数字-模拟转化器),而接收器的模拟前端就是一个ADC(模拟-数字转化器)。当然,比较特殊的是,对于传输“0”和“1”电平的SerDes系统而言,这里的“DAC”和“ADC”有效位都只有1比特。此外,与传统AD/DA的差别在于,为了补偿信道的影响,SerDes中的“DAC”和“ADC”通常具有均衡能力
- PHY loopback测试是在PCS子层,不是在SerDes层
- SerDes:包含4根线,分别是TX+/-和RX+/-
- SGMII:包含8根线,分别是SGMII_TX+/-、SGMII_RX+/-、SGMII_DATA、SGMII_CLK、SGMII_INT_N、SGMII_RST_N

7 Abbreviations
LDS:Link Discovery Signal
LRE:Long Range Ethernet,长距离以太网
pcap:packet capture
RJ45:Registered Jack
SOAD:AUTOSAR Socket Adaptor

发布了121 篇原创文章 · 获赞 47 · 访问量 31万+

猜你喜欢

转载自blog.csdn.net/zoosenpin/article/details/103830216