以太网交换机EtherSwitch

1 RJ45
1.1 10/100Base-T
以太网交换机EtherSwitch_第1张图片
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 VLAN原理
2.1 VLAN Mode
Tag-based VLANs are the industry standard 802.1Q VLANs (dot1q), while the port-based VLANs are more akin to private VLANs.

Tag-based:
Tag-based VLAN identifies its member by VID. This is quite different from port-based VLAN. If there are any more rules in ingress filtering list or egress filtering list, the packet will be screened with more filtering criteria to determine if it can be forwarded. The switch supports supplement of 802.1Q.

Each tag-based VLAN you built up must be assigned VLAN name and VLAN ID. Valid VLAN ID is 1-4094. User can create total up to 256 Tag VLAN groups.

Port-based:
Port-based VLAN is defined by port. Any packet coming in or outgoing from any one port of a port-based VLAN will be accepted. No filtering criterion applies in port-based VLAN. The only criterion is the physical port you connect to. For example, for a port-based VLAN named PVLAN-1 contains port members Port 1&2&3&4. If you are on the port 1, you can communicate with port 2&3&4. If you are on the port 5, then you cannot talk to them. Each port-based VLAN you built up must be assigned a group name. This switch can support up to maximal 26 port-based VLAN groups.

A port cannot be a member of more than one port-based VLAN unless the port is tagged.

2.2 VLAN entry SRAM
VLAN entry有4096个,每个entry占用4个字节,开机后需要将使能的VLAN信息配置在交换机的SRAM中,有效的VLAN entry就以12bit的VLAN ID为索引,定位到SRAM中对应的位置。

2.3 PVID默认值
1)PVID属于IEEE 802.1Q,不属于Port-based VLAN
2)PVID寄存器IEEE 802.1Q Default Tag Register Block 0x0B00, Page 34h: Adress 10h-21h;默认值是1;参考Kendin KSZ8995M/MA
3)当端口被分配到多个VLAN中时,PVID通过寄存器设置为最小的VLAN ID
4)AN-135
802.1Q Tag Based and Port Based VLAN Function and Setting in KSZ8995M/MA
5)例子
0  1   2  3
U  T  T  T

2.4 名词解释
trunk:VLAN ID多于一个的port口,基于Tag-based,使用IEEE 802.1Q VID
access:untagged port,基于Tag-based,使用IEEE 802.1Q PVID

2.5 IEEE 802.1p
在该规范中定义了PCP的值。
PCP     Priority         Acronym     Traffic types
1          0 (lowest)         BK            Background
0          1 (default)        BE             Best effort
2          2                      EE             Excellent effort
3          3                      CA             Critical applications
4          4                       VI             Video, < 100 ms latency and jitter
5          5                      VO            Voice, < 10 ms latency and jitter
6          6                       IC             Internetwork control
7          7 (highest)        NC           Network control

2.6 QinQ
1)802.1Q in 802.1Q:VLAN双Tag,是基于IEEE 802.1Q技术的一种比较简单的二层虚拟专用网络协议
2)3个重要寄存器
PVID寄存器:IEEE 802.1Q Default Tag Register,16位寄存器,默认值是1,这个是多用途寄存器,untagged Port口的内部和外部的VID都用PVID
ISP TPID寄存器:16位TPID值,常规的customer TPID的值为0x8100
ISP Tag Port映射寄存器:指明哪些Port口支持双Tag

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

3.2 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

4 bcm8923x
4.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;地址和数据都是大端格式

4.2 ARL entry SRAM
通过48bit的MAC地址和12bit的VLAN ID(如果使能)产生hash索引去定位ARL SRAM中对应的entry。
交换机对多播MAC不会自动学习,所以需要用户手工配置到交换芯片的寄存器中。
MAC地址byte5.bit0:1表示多播,0表示单播。

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

4.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保存数据。

4.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功能

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

4.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

4.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接口

4.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帧

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

4.10 URLs
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

5 Micrel Kendin KSZ8565R
5.1 MAC地址学习
Figure 5-1 ADDRESS LOOKUP TABLE CONFIGURATION

以太网交换机EtherSwitch_第2张图片

5.2 VLAN entry SRAM
Figure 5-2 VLAN TABLE STRUCTURE

以太网交换机EtherSwitch_第3张图片

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

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

7 框式交换机
LC:Line-Card,业务线卡,提供对外端口
Backplane:背板
FE:Fabric,交换矩阵,不提供对外端口
Figure 7-1 框式交换机

以太网交换机EtherSwitch_第4张图片

8 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

9 Abbreviations
ARL:Address Resolution Logic,交换机对单播MAC会自动学习,保存到SRAM中;多播MAC不会自动学习,所以需要用户手工写进寄存器中
BMC:Baseboard Management Controller
KSZ8565R:Kendin(肯定科技)Switch,Z表示KS的无铅版本,最后的数字5表示有5个端口;被Micrel收购
LDS:Link Discovery Signal
LRE:Long Range Ethernet,长距离以太网
MIB:Management Information Base
pcap:packet capture
PVID:Port default VID,PVID属于IEEE 802.1Q,不属于Port-based VLAN
RJ45:Registered Jack
SOAD:AUTOSAR Socket Adaptor
10Base-T1S:S表示Short Reach

你可能感兴趣的:(Network,AR9341,BCM8923x,switch,KSZ8565R)