以太网基础
date
May 5, 2021
slug
eth-base
status
Published
tags
高速数字接口
协议
以太网
电子
summary
以太网的相关基础知识介绍
type
Post
Category
概述
- 以太网的标准拓扑结构为总线型拓扑,使用 CSMA/CD(Carrier Sense Multiple Access/Collision Detection,即载波多重访问 / 碰撞侦测)的总线技术。
- 但目前的快速以太网(100BASE-T、1000BASE-T 标准)为了减少冲突,将能提高的网络速度和使用效率最大化,使用交换机(Switch hub)来进行网络连接和组织。如此一来,以太网的拓扑结构就成了星型;
工作模式
- 带有CSMA/CD(载波侦听多路访问和冲突检测协议)的半双工模式介质访问控制(MAC)
- 现在基本上没有了
- 早期是基于所有设备都连接到信号中继器,实现共享介质
- 全双工模式
- 点对点连接,不共享介质,所以不能用CSMA/CD
- 接口必须同时支持独立的收发
自动协商
- 链路段自动协商操作。链路两端各一个设备
- 链路只有在初始化时协商一次
- 同步速度,是否支持全双工
- 通过脉冲协商,一个快速链路脉冲有 33 个脉冲位置, 17 个奇数位脉冲携带时钟信息,16 个偶数位脉冲携带数据。偶数位脉冲位置有脉冲表1,没有脉冲表示逻辑 0。

帧组成
- 一共三种尺寸的帧,以太网接口至少支持其中一中。
- 标准建议新设备要支持最新的帧定义——信封框架,这种帧至多有 2000 字节。另外两种帧是基本帧,至多有 1518 字节,以及 Q 标签帧,至多有 1522 字节
- 帧头:第一部分是 7 字节的帧头,第二部分是 1 字节的起始帧分界符(SFD)。SFD 的最后两位是“1, 1”。
- 目的地址:48位的物理地址,也可以是广播地址。广播地址全部为1.
- 源地址:同上,由IEEE和厂商共同分配唯一物理地址。
- Q标签:用于VLAN,打上相同标记的Q标签可以在多个交换机间传递。
- 信封前缀:用于扩展帧,详情查看书的4.1.5
- 长度类型:当小于1500时,表示数据的长度。如果大于1536时,表示帧数据域的协议数据类型。
- 数据域
- FCS: CRC32

POE
- 最新协议提供最多34.2w的功率电源

- 大约电压48V
- 角色上分为:电源设备PSE和电力设备PD.如果交换机没有供电,可以使用中跨PSE注入电源。

- 供电流程:监测→归类→操作
- 连接方法:1.使用收发信号线对,一正一负,连接到PD的变压器中间抽头。2.使用空闲信号线对,一正一负,直接供电。(1000BASE-T4对都用做信号,所以都是方案1)


OSI 参考模型
- OSI 数据链路层(第 2 层)包括 IEEE 逻辑链路控制(LLC)和介质访问控制(MAC)子层,这些子层适用于各种样式、各种速度的以太网
- OSI 物理层(第 1 层)包括标准化以太网介质速度的 IEEE 子层。这些子层用来协助组织以太网规范,这些以太网规范针对使具体的以太网介质行之有效所必须实现的功能

物理层
- 物理层分为多个子层
- 和介质无关的是xMII
- MDI和介质有关,有明确的物理信号定义,也就是phy


xMII






PHY
详情可以查看
10BASE-T
- 两对双绞线,一收一发
- 每对电缆中,一正一负
- 有的支持正负互换,叫极性倒置
- 使用曼彻斯特编码,正极性的电压0至2.5v,负极性电压0至-2.5V。从低到高为1,从高到低为0。

- 介质组件
- 非屏蔽双绞线(UTP),3类或更优:最长100m,阻抗100欧或120欧
- 8pin RJ45
100BASE-TX
1000BASE-T
- 4D-PAM5 块编码,正负极性的电压都在1v至-1v摆动。125MHZ的信号跃迁率传输4条线,每次跃迁发送两位。所以是1000Mbit/s。

- 四对双绞线,可以同步收发信号,即收也发,全双工

- 使用了高速信号的技术:近端串扰,远端串扰消除技术,信号均衡,回波消除等

- 介质组件
- 至少5类,较好是5e类,也可以6或6A类非频闭双绞线,最大100m
- RJ45,8pin全部用上,如果可以使用极性倒置
网口
光口
TDB
RJ45
RJ45接口有两类,当两个类型一样的设备使用RJ45接口连接通信时,必须使用交叉线连接:
- 用于以太网网卡、路由器以太网接口等的DTE类型,称做"数据终端设备”,是“主动通信设备”。
- 用于交换机等的DCE类型。称做“数据通信设备”。是“被动通信设备”。

IEEE1588 Precision Time Protocol (PTP)
原理
- 组成:主时钟,从时钟,点对点透明时钟
- 目的:实现从时钟和主时钟的时间一致
- 点对点透明时钟的原理 报文经过具有P2P透明时钟功能的交换机,会统计端口间的延时情况,并将此累加到时间修正中
- 过程:
- Master 发送 Sync 报文,记下该报文的本地发送时间 t1;
- Slave 接收到 Sync 报文,并记下其接收到该报文的本地时间 t2;
- Master 有两种方式告诉 Slave 该 Sync 报文的发送时间 t1;
- 将 t1 时间嵌入到 Sync 报文中,这需要某种硬件处理以获得高精度;
- 在后续的 Follow_Up 报文中发送;
- Slave 发送 Delay_Req 报文往 Master,并记下发送时间 t3;
- Master 接收到 Delay_Req,并记下该报文到达时间 t4;
- Master 发送 Delay_Resp 报文告知 Slave t4。
- 利用这四个时间可以算出从钟与主钟之间的 offset,以及两个钟之间的平均延时,计算的前提是假设主钟到从钟和从钟到主钟的时延是相同的。
- Offset=t2-t1
- Meanpathdelay=((t2 - t1) + (t4 - t3))/2


实现

- C方式表示应用软件识别到接收到了一个 1588sync 包,再去取当前的系统时间作为 t2。这是最差的实现,精度只能达到 ms 级。
- B方式表示在内核中断服务里识别接收到一个1588同步包之后才去获得接收时间,只能达到几百 us 的精度。
- A是硬件辅助实现,关键是在 MAC 或者 PHY 层。接收和发送时,都以帧首界定符 SFD 为采样点取时间戳,并有机制把时间戳传递给上层软件。phy 层的时间戳传递更加困难,因为 MDC/MDIO 的带宽有限;所以一些 1588phy 能把时间戳直接插入到 1588 数据包传递上去。因为硬件取到的收发时间戳是非常精确的,之后无论在 B 层还是 C 层维护 1588 状态机都没有关系,最终都能做到 10ns 的精度。

