一份面面俱到的 Ethernet 以太网技术摘要

早在 1972 年,就职于美国施乐 Xerox 公司Robert Metcalfe(被称作以太网之父)与另外两位学者,协作发表了一篇名为《以太网:区域计算机网络的分布式包交换技术》的文章,并在不久之后获得了《具有冲突检测的多点数据通信系统》专利,以太网(Ethernet)技术的雏形就此诞生。至此以太网相关的标准不断演进,诞生了标准以太网(10 Mbit/s)、快速以太网(100 Mbit/s)、千兆以太网(1000 Mbit/s)、万兆以太网(10000 Mbit/s)等一系列标准。

以太网的底层工作机制基于载波侦听多路访问/碰撞检测CSMA/CD,Carrier Sense Multiple Access with Collision Detection)协议,从而确保多个设备在相同的物理介质上通信。当其中一个设备有数据需要发送时,会先监听线路上是否存在其它信号,线路空闲就开始传输数据,线路繁忙则等待直至线路可用为止。如果在传输过程当中发生了碰撞(即两个设备同时发送数据导致信号叠加),设备就会检测到这种情况并且发送阻塞信号,然后等待随机时间之后再进行重试。

以太网发展历程

自从 1972 年以太网诞生之后,其标准经过数十年的演进,陆续由 电气电子工程师学会(IEEE,Institute of Electrical and Electronics Engineers)制订了 10 Mbit/s 标准以太网100 Mbit/s 快速以太网1000 Mbit/s 千兆以太网10 Gbit/s 万兆以太网 等一系列规范:

以太网类型 传输速率 IEEE 标准
标准以太网 10 Mbit/s IEEE 802.3
快速以太网 100 Mbit/s IEEE 802.3u
千兆以太网 1000 Mbit/s IEEE 802.3abIEEE 802.3z
万兆以太网 10 Gbit/s IEEE 802.3ae

IEEE 制订的以太网 Ethernet 相关的协议规范及其基本特性,请参考下面的表格所示:

IEEE 标准 传输速率 物理介质 最大传输距离
IEEE 802.3 10 Mbit/s 同轴电缆、双绞线 500 米(同轴线缆)
IEEE 802.3u 100 Mbit/s 双绞线、光纤 100 米
IEEE 802.3z 1 Gbit/s 光纤 550 米 (SX),5 公里 (LX)
IEEE 802.3ab 1 Gbit/s 双绞线 100 米
IEEE 802.3ae 10 Gbit/s 光纤 400 米 ~ 40 公里
IEEE 802.3an 10 Gbit/s 双绞线 100 米
IEEE 802.3ba 40/100 Gbit/s 光纤 100 米 ~ 10 公里
IEEE 802.3by 25 Gbit/s 光纤、双轴线缆 100 米
IEEE 802.3bs 200/400 Gbit/s 光纤 500 米 ~ 10 公里
IEEE 802.3bt 10 Mbit/s ~ 1 Gbit/s 双绞线(POE) 100 米

以太网基本拓扑

总线型拓扑:所有设备都连接到同一条传输介质,所需要的线缆数量较少,长度也较短,易于布线和维护;并且多个结点共用一条传输信道,信道利用率也更高。

星型拓扑:一种单中心多节点的结构,管理维护相对容易,并且扩展性较强。缺点在于一旦中心发生故障,整个网络就会瘫痪,而且整体的信道利用率也不高。

环形拓扑:由节点形成的一个闭合环路,组网成本比较低。但是单个节点的故障,会导致整个网络都出现问题。

树形拓扑:由总线型拓扑演变而来,顶部的根结点接收各个子结点发送的数据,然后再广播到整个拓扑网络。

网状拓扑:这种拓扑结构应用最为广泛,优点在于不易出现连接故障,而缺点在于组网过于复杂,不利于排查问题,且后期的运营维护成本会比较高。

注意以太网的拓扑结构表达的是网络当中,各个设备结点之间的物理连接方式。

载波感知多址/冲突检测

以太网规范 IEEE 802.3 当中,所有节点都共用一条传输介质,为了避免数据传输过程出现混乱,载波感知多址/冲突检测(CSMA/CD,Carrier Sense Multiple Access/Collision Detection)提供了一种正确组织数据传输的方法。(一边发送一边检测,发现冲突就停止发送,延迟随机时间之后继续发送),主要用于避免多个设备在同一时刻抢占通信链路,大家可以从如下三个维度进行理解:

  • CS 载波侦听:监听线路的空闲状态,减少冲突发生的机会。
  • MA 多址访问:多个节点共享一条传输介质,每个节点发送的数据,都可以被其它节点接收。
  • CD 冲突检测:当两个节点同时发送的信号发生叠加之后,会导致线路上的电压摆动值超出正常值,基于此可以判断冲突的产生。

上面的流程图里,完整呈现了 CSMA/CD 如下面表格当中的处理步骤:

  1. 首先,终端设备不停的检测共享线路的状态,如果线路空闲才会发送数据,否则就会一直等待;
  2. 然后,如果两个设备同时发送数据,必然会产生冲突,导致线路上传输的信号出现紊乱;
  3. 其次,终端设备检测到传输信号出现紊乱之后,就会立刻中断数据传输,并且产生 JAM 干扰信号;
  4. 最后,终端设备会发送干扰脉冲通知其他设备,特别是相同时刻发送数据的设备,线路上已经产生了冲突,需要等待一段时间之后再行发送数据(检测到冲突之后的等待时间随机)。

注意CSMA/CD 主要应用于 10/100 Mbps 以太网,对于 1000 Mbps 传输速率的千兆以太网以及更高传输速率的以太网,虽然名义上仍然支持 CSMA/CD,但是实际上只在半双工模式下有效,目前普遍采用的全双工模式已经不再采用 CSMA/CD。因为在全双工模式下,由于每个设备都存在与交换机的专用连接,设备之间可以通过交换式以太网络实现数据的同时收发。

MAC 和 PHY

在以太网协议的体系结构当中,介质访问控制 MAC物理层 PHY 是两个非常重要的子层,它们分别实现了数据链路层下半部分和物理层的功能。通过两者的协同工作(基于后续介绍的媒体独立接口 MII/RMII/SMIIGMII/RGMII/SGMII 进行数据交互),才能够实现可靠的以太网数据传输:

  • MAC 介质访问控制层芯片:工作在数据链路层下半部分,使用 MAC 地址作为设备唯一标识,主要负责 帧的封装/解封介质访问控制错误检测流量控制
  • PHY 物理层芯片 :工作在物理层,通过 MII/RMII/SMII 或者 GMII/RGMII/SGMII 接口规范与 MAC 连接,主要负责 信号的编码/解码适配不同的传输介质信号时钟同步速度和模式协商
  • Magnetics 网络变压器:本质上是一个匝数比为 1:1 的电感线圈,主要用于实现信号的隔离传输匹配(不使用会导致传输距离受限);
  • RJ45 连接器:带有 8 个引脚,既可以作为千兆以太网使用(即 MX(0~3)+ ~ MX(0~3)- 4 对 8 线差分信号),也可以作为百兆以太网使用(TX/RX+ ~ TX/RX- 2 对 4 线差分信号);

RJ45 连接器

RJ45 连接器的英文全称为 Registered Jack 45,主要应用于局域网(LAN,Local Area Network)连接。该连接器具有 8 个触点,对应的 8 条线缆通过双绞线构成 4 组差分对。美国电信工业/电子工业协会 EIA/TIARJ45 连接器及其对应线缆制定了 568B568A 两种线序连接标准:

  • T568A 线序标准: 1-绿白2-绿3-橙白4-蓝5-蓝白6-橙7-棕白8-棕
  • T568B 线序标准: 1-橙白2-橙3-绿白4-蓝5-蓝白6-绿7-棕白8-棕

两种线序衍生出了直通和交叉两种连接方式,其中直通连接方式,左右两侧均按照 T568B 线序标准进行连接,通常用于不同种类设备之间的连接(例如计算机与交换机):

交叉连接方式,一侧按照 T568A 线序连接,另外一侧按照 T568B 线序连接,通常用于两台相似设备的直连(例如两台计算机之间的直连):

注意:使用 RJ45 连接的以太网设备,可以划分为用于计算机网卡、路由器等的数据终端设备(DTE,Data Terminal Equipment)和用于交换机等的数字通信设备(DCE,Digital Communication Equipment)两种类型。不同类型的以太网设备使用直通连接方式,而相同类型的以太网设备使用交叉连接方式(某些具备自协商机制的 DCE 类型设备,也可以使用直通连接方式)。

遵循 10 Mbit/s 传输速率物理层线缆标准 10Base-T 的 RJ45 连接器引脚功能说明如下表所示:

引脚编号 引脚名称 英文说明 中文说明
1 TX+ Tranceive Data + 发送数据(正)
2 TX- Tranceive Data - 发送数据(负)
3 RX+ Receive Data + 接收数据(正)
4 NC Not Connected 未使用
5 NC Not Connected 未使用
6 RX- Receive Data - 接收数据(负)
7 NC Not Connected 未使用
8 NC Not Connected 未使用

遵循 100 Mbit/s 传输速率物理层线缆标准 100Base-T4 的 RJ45 连接器引脚功能说明如下表所示:

引脚编号 引脚名称 英文说明 中文说明
1 TX D1 + Tranceive Data + 发送数据(正)
2 TX D1 - Tranceive Data - 发送数据(负)
3 RX D2 + Receive Data + 接收数据(正)
4 BI D3 + Bi-Directional Data + 双向数据(正)
5 BI D3 - Bi-Directional Data - 双向数据(负)
6 RX D2 - Receive Data - 接收数据(负)
7 BI D4 + Bi-Directional Data+ 双向数据(正)
8 BI D4 - Bi-Directional Data+ 双向数据(负)

介质依赖接口 MDI/MDIX

介质依赖接口(MDI,Media Dependent Interface)是一种用于连接 PHY 芯片RJ45 接口 以及 网络变压器 的接口标准:

注意交叉介质依赖接口(MDIX,Medium Dependent Interface Crossover)是 MDI 接口的线序交叉版本。

以太网线缆种类 CATx

基于 速度带宽屏蔽最大传输距离 等指标,以太网的传输线缆被划分为了不同的种类(CAT,Category):

线缆类别 TEST 传输速率 最大带宽
CAT 3 Category 3 10 Mbit/s 16 MHz
CAT 5 Category 5 100 Mbit/s 100 MHz
CAT 5e Category 5E 1000 Mbit/s 100 MHz
CAT 6 Category 6 1000 Mbit/s 250 MHz
CAT 6a Category 6A 10 Gbit/s 500 MHz
CAT 7 Category 7 10 Gbit/s 600 MHz
CAT 7a Category 7A 10 Gbit/s 1000 MHz
CAT 8 Category 8 40 Gbit/s 2000 MHz

以太网供电标准 PoE

除了转发信号之外,未使用的以太网双绞线对还可以被用于供电,这种技术被称为以太网供电(PoE,Power over Ethernet),相关的规范被定义在 IEEE802.3af 及其迭代版本当中:

供电技术 对应标准 最大功率
PoE IEEE 802.3af 15.4 W
PoE+ IEEE 802.3at(类型 2) 30 W
PoE++ IEEE 802.3bt(类型 3) 60 W
PoE++ IEEE 802.3bt(类型 4) 100 W

IEEE 物理层线缆标准

以太网的传输介质主要有同轴线缆双绞线光纤等,电气电子工程师学会(IEEE,Institute of Electrical and Electronics Engineers)为以太网物理传输线缆制定了一系列标准,下面的表格汇总了各种传输速率的以太网所对应的 IEEE 线缆标准:

10 Mbit/s 线缆标准 100 Mbit/s 线缆标准 1000 Mbit/s 线缆标准 10 Gbit/s 线缆标准
10BASE-2 100BASE-T4 1000BASE-SX 10GBASE-T
10BASE-5 100BASE-TX 1000BASE-LX 10GBASE-LR
10BASE-T 100BASE-FX 1000BASE-TX 10GBASE-SR
10BASE-F - - -

2019 年 IEEE 还推出有 10 Mbit/s 速率的车载以太网物理接口标准 10BASE-T1S(基于 802.3cg 标准),其能够支持至少 8 个节点和 25 米长度的总线拓扑:

注意:上述表格当中的前缀 10100100010G 表示的是数据传输速率,后面的 BASE 表示信号传输采用的是基带方式,而 - 后续的数字和字母则代表了不同的物理传输介质,例如 T 表示同轴电缆TX 表示双绞线FX 表示光纤

十兆以太网线缆标准

10 Mbit/s 以太网线缆标准被定义在 IEEE 802.3 规范当中,其线缆标准如下面表格所示:

线缆标准 线缆类型 有效距离
10BASE-5 同轴电缆(粗) 500 米
10BASE-2 同轴电缆(细) 200 米
10BASE-T 双绞线 100 米
10BASE-F 光纤 2000 米

注意:通常情况下,同轴电缆上的设备都是串连在一起的,单点故障就会导致整个网络的崩溃,所以同轴电缆标准 10BASE-210BASE-5 已经基本被淘汰。

百兆以太网线缆标准

100 Mbit/s 以太网在数据链路层方面与 10 Mbit/s 以太网没有区别,仅仅是在物理层方面提高了传输速率,百兆以太网的线缆标准如下面表格所示:

线缆标准 线缆类型 有效距离
100Base-T4 四对 3 类双绞线 100 米
100Base-TXs 两对 5 类双绞线 100 米
100Base-FX 单模/多模光纤 2000 米

注意10BASE-T100BASE-TX 都工作在 5 类双绞线上面,两者的不同点在于信号的传输速率,前者只有 10 Mbit/s 的传输速率,后者则具备 100 Mbit/s 的传输速率。除此之外,100BASE-T4 现在很少被使用。

千兆以太网线缆标准

100 Mbit/s 以太网对 IEEE 802.3 标准进行扩展,其中 IEEE 802.3z 标准用于光纤传输,而 802.3ab 标准用于双绞线传输。传输速率从 100 Mbit/s 提高了近十倍(达到 1 Gbit/s),千兆以太网的线缆标准如下面表格所示:

线缆标准 线缆类型 有效距离
1000Base-LX 单模/多模光纤 316 米
1000Base-SX 多模光纤 316 米
1000Base-TX 超 5 类、6 类双绞线 100 米

注意:在前面的以太网传输技术当中,数据链路层将 8 位的数据提交到物理层物理层经过变换处理之后发送到数据链路上进行传输,但是变换的结果依然是 8 位。而千兆以太网采用了 8B10B 编码技术,数据链路层将 8 位数据提交到物理层的时候,物理层会将这 8 位数据映射为 10 位进行发送。

万兆以太网线缆标准

10 Gbit/s 以太网基于 IEEE 802.3ae 附加标准(后续可能会合并至 IEEE 802.3),其线缆标准如下表所示。

线缆标准 线缆类型 有效距离
10GBASE-T CAT-6A、CAT-7 1 百米
10GBase-LR 单模光纤 10 千米
10GBase-SR 多模光纤 数百米

注意:传输速率更快的 40/100 Gbit/s 以太网标准已经于 2010 年制定完成,使用了 IEEE 802.3ba 附加标准进行说明。

MAC 与 PHY 的连接规范

十兆/百兆媒体独立接口 MII/RMII/SMII千兆媒体独立接口 GMII/RGMII/SGMII,主要用于连接以太网的 媒体访问控制层(MAC)芯片和 物理层(PHY)芯片,依照数据传输方式的不同,可以将它们划分为如下两种类型:

  1. 并行传输协议MIIGMIIRMIIRGMII
  2. 串行传输协议SMIISGMII

媒体独立接口 MII RMII SMII

媒体独立接口规范 MIIRMIISMII 的传输速率可以达到 10 Mbps 或者 100 Mbps,目前主要运用于 ARM 微控制/微处理器内置 MAC 与 PHY 芯片的连接场景。

注意:接下来内容当中的数据位宽,是指一个时钟周期内传输的数据位数。

MII

媒体独立接口(MII,Media Independent Interface)可以实现 10/100 Mbps 速率的以太网传输(时钟频率 2.5/25 MHz,数据位宽 4 bit):

发送侧 MAC-PHY 引脚 引脚名称 功能描述
TX_CLK 发送时钟 由 MAC 提供,用于同步发送控制信号。
TX_EN 发送使能 高电平时表示 MAC 正在发送数据。
TXD [3:0] 发送数据 4 位宽度的数据总线,用于从 MAC 向 PHY 传输需要发出的数据。
TX_ER 发送错误 当 MAC 检测到发送错误就会使能该信号(前级的 PHY 通常会丢弃该错误帧)。
TX_DV 发送数据有效 功能与 TX_EN 基本相同(通常会将其与 TX_EN 短接)。
接收侧 PHY-MAC 引脚 引脚名称 功能描述
RX_CLK 接收时钟 由 PHY 提供,用于同步接收控制信号。
RX_DV 接收数据有效 高电平表示 PHY 正在接收数据。
RXD [3:0] 接收数据 4 位宽度的数据总线,用于从 PHY 向 MAC 传输当前接收的数据。
RX_ER 接收错误 当 PHY 检测到接收错误就会使能该信号(后级的 MAC 可以根据 RX_ER 决定是否丢弃该错误帧)。
CRS 载波侦听 当 PHY 检测到介质上存在载波信号的时候使能。
COL 冲突检测 当 PHY 检测到冲突的时候使能(主要用于半双工模式,全双工模式通常不使用)。
管理侧引脚 引脚名称 功能描述
MDC 管理数据时钟 由 MAC 提供,用于同步 MDIO 数据的传输。
MDIO 管理数据输入/输出 双向数据线,用于 MAC 和 PHY 之间管理数据的交换。

RMII

简化媒体独立接口(RMII,Reduced Media Independent Interface)是一种精简了引脚的 10/100 Mbps 接口,通过提升时钟频率保持与 MII 相同的传输速率(时钟频率 50 MHz,数据位宽 2 bit):

MAC-PHY 共用引脚 引脚名称 功能描述
REF_CLK 参考时钟 RMII 的 50 MHz 参考时钟同时被用于接收和发送,可以由 MAC 或者 PHY 来提供,另外一个设备必须将其作为输入时钟。
RXD [1:0] 接收数据 用于从 PHY 向 MAC 传输当前接收到的数据(相比于 MII 拥有 4 根数据线,RMII 只有 2 根数据线)。
TXD [1:0] 发送数据 用于从 MAC 向 PHY 传输当前需要发送的数据。
TX_EN 发送使能 高电平时表示 MAC 正在发送数据。
CRS_DV 载波侦听/接收数据有效 半双工模式下作为载波侦听,全双工模式下作为接收数据有效。
RX_ER 接收错误 当 PHY 检测到错误时使能(后级的 MAC 可以根据 RX_ER 决定是否丢弃该错误帧)。

注意半双工是指同一时刻只能接收发送数据,而全双工则是指可以同时接收发送数据。

管理侧引脚 引脚名称 功能描述
MDC 管理数据时钟 由 MAC 提供,用于同步 MDIO 数据的传输。
MDIO 管理数据输入/输出 双向数据线,用于 MAC 和 PHY 之间管理数据的交换。

SMII

串行媒体独立接口(SMII,Serial Media Independent Interface)是一种串行化的 10M/100 Mbps 接口,通过进一步提升时钟频率,以保持与 MII 相同的传输速率(时钟频率 125 MHz,数据位宽 1 bit):

发送侧 MAC-PHY 引脚 引脚名称 功能描述
TX_CLK 发送时钟 由 MAC 提供,用于同步发送控制信号。
TX_EN 发送使能 高电平时表示 MAC 正在发送数据。
TXD 发送数据 串行数据发送信号,用于从 MAC 向 PHY 传输发送信号。
接收侧 PHY-MAC 引脚 引脚名称 功能描述
RX_CLK 接收时钟 由 PHY 提供,用于同步接收控制信号。
RX_DV 接收数据有效 高电平时表示 PHY 正在接收数据。
RXD 接收数据 串行数据接收信号,用于从 PHY 向 MAC 传输当前接收到的数据。
RX_ER 接收错误 当 PHY 检测到接收错误时使能。
管理侧引脚 引脚名称 功能描述
MDC 管理数据时钟 由 MAC 提供,用于同步 MDIO 数据的传输。
MDIO 管理数据输入/输出 双向数据线,用于 MAC 和 PHY 之间管理数据的交换。

千兆媒体独立接口 GMII RGMII SGMII

千兆媒体独立接口规范 GMIIRGMIISGMII 的传输速率可以高达 1000 Mbps,目前主要应用于 FPGA 芯片内置 MAC 与 PHY 芯片的连接场景。

GMII

千兆媒体独立接口(GMII,Gigabit Media Independent Interface)可以实现 1000 Mbps 速率的以太网传输,其在 MII 接口的基础之上,大幅度提升了数据位宽和时钟频率(时钟频率 125 MHz,数据位宽 8 bit):

发送侧 MAC-PHY 引脚 引脚名称 功能描述
TX_CLK 发送时钟 由 MAC 提供,用于同步发送控制信号。
TX_EN 发送使能 高电平时表示 MAC 正在发送数据。
TXD [7:0] 发送数据 8 位数据总线,用于从 MAC 向 PHY 传输当前需要发送的数据。
TX_ER 发送错误 当 MAC 检测到发送错误就会使能该信号(前级的 PHY 通常会丢弃该错误帧)。
TX_DV 发送数据有效 功能与 TX_EN 基本相同(通常会将其与 TX_EN 短接)。
接收侧 PHY-MAC 引脚 引脚名称 功能描述
RX_CLK 接收时钟 由 PHY 提供,用于同步接收控制信号。
RX_DV 接收数据有效 高电平时表示 PHY 正在接收数据。
RXD [7:0] 接收数据 8 位数据总线,用于从 PHY 向 MAC 传输当前接收到的数据。
RX_ER 接收错误 当 PHY 检测到接收错误时使能(后级的 MAC 可以根据 RX_ER 决定是否丢弃该错误帧)。
CRS 载波侦听 当 PHY 检测到介质上有载波信号时使能。
COL 冲突检测 当 PHY 检测到冲突时使能(主要用于半双工模式,全双工模式通常不使用)。

RGMII

简化千兆媒体独立接口(RGMII,Reduced Gigabit Media Independent Interface),通过在一个时钟周期的上升沿读取 TX/RX 数据的 0 ~ 3 位,下降沿读取 4 ~ 7 位,实现在一个时钟周期读取 8 位数据(时钟频率 125 MHz 数据位宽 4 bit):

MAC-PHY 共用引脚 引脚名称 功能描述
CLK 双向时钟 通常由 PHY 提供,会同时被应用于接收和发送,RGMII 需要精确的 2.5ns(1/4 个时钟周期)时序对齐
TXD [3:0] 发送数据 4 位数据总线,用于从 MAC 向 PHY 传输需要发送的数据。
RXD [3:0] 接收数据 4 位数据总线,用于从 PHY 向 MAC 传输当前接收到的数据。
TX_EN 发送使能 高电平时表示 MAC 正在发送数据(10/100 Mbps 模式下也可被用于 COL 冲突检测)。
RX_DV 接收数据有效 高电平时表示 PHY 正在接收数据(10/100 Mbps 模式下也可被用于 CRS 载波侦听)

注意RGMII 简化了 TX_ERRX_ER 两个用于错误信号处理的引脚,取而代之的是在时钟信号的上升沿传递 TX_EN / RX_DV 信号,而在下降沿传递 TX_ER / RX_ER 信号。

管理侧引脚 引脚名称 功能描述
MDC 管理数据时钟 由 MAC 提供,用于同步 MDIO 数据的传输。
MDIO 管理数据输入/输出 双向数据线,用于 MAC 和 PHY 之间管理数据的交换。

SGMII

串行千兆媒体独立接口(SGMII,Serial Gigabit Media Independent Interface)是一种串行传输的 GMII 接口(时钟频率 1250 MHz,数据位宽 1 bit):

MAC-PHY 共用引脚 引脚名称 功能描述
TX+ 发送正极 差分发送信号的 + 正极
TX- 发送负极 差分发送信号的 - 负极
RX+ 接收正极 差分接收信号的 + 正极
RX- 接收负极 差分接收信号的 - 负极
REFCLK 参考时钟 通常情况下,SGMII 的时钟信号内嵌在串行数据流当中,但是某些 SGMII 实现也会需要单独的参考时钟。
管理侧引脚 引脚名称 功能描述
MDC 管理数据时钟 由 MAC 提供,用于同步 MDIO 数据的传输。
MDIO 管理数据输入/输出 双向数据线,用于 MAC 和 PHY 之间管理数据的交换。

注意:SGMII 具备 1.25GHz 的串行数据速率,但是由于使用了 8b/10b 编码(将 8 位转换为 10 位数据),增加了额外的性能开销,因而实际的数据吞吐量为 1Gbps

一份面面俱到的 Ethernet 以太网技术摘要

http://www.uinio.com/Electronics/Ethernet/

作者

Hank

发布于

2025-06-05

更新于

2025-06-25

许可协议