- 博客(25)
- 收藏
- 关注
原创 RDMA:AI算力集群的“网络命脉”
RDMA几乎已经成为AI基础设施的“事实标准“,当AI大模型参数突破万亿甚至十万亿级别,单台服务器早已无法独立完成训练。万卡级算力集群的算力虽然空前强大,但网络的通讯耗时占比已达到30%~50%。换句话说,如果网络不畅,再强的算力也得“等数据”。要理解RDMA在其中的角色,就需要先厘清两项根本性的技术创新。
2026-05-14 15:13:45
164
原创 从零读懂RDMA UC Write:单向推送,不求回音
前面我们聊了RC(可靠连接)和UD(不可靠数据报)。RC什么都好——可靠、保序、能拆长消息——但QP上下文太重,硬件成本高。UD什么都省——无连接、单包、不确认——但代价是不可靠,丢包了上层自己兜底。那么,有没有一种“中间形态”?既要面向连接、能拆长消息,又要省掉确认和重传的硬件开销?答案是有的,UC(Unreliable Connection,不可靠连接)就是这个中间产物。只不过它尴尬到几乎没人用。
2026-05-13 17:06:29
286
原创 从零读懂RDMA UC Send:被遗忘在中间的“可靠连接轻量版”
前面我们聊了RC(可靠连接)和UD(不可靠数据报)。RC什么都好——可靠、保序、能拆长消息——但QP上下文太重,硬件成本高。UD什么都省——无连接、单包、不确认——但代价是不可靠,丢包了上层自己兜底。那么,有没有一种“中间形态”?既要面向连接、能拆长消息,又要省掉确认和重传的硬件开销?答案是有的,UC(Unreliable Connection,不可靠连接)就是这个中间产物。只不过它尴尬到几乎没人用。
2026-05-12 16:30:12
294
原创 从零读懂RDMA原子操作:硬件在远程CPU眼皮底下做的“精确手术”
RDMA write是一个“单行道”:请求端说“我把这些数据写进你的内存”,响应端的网卡照做,写入过程中完全不打扰对方的CPU。RDMA read则是镜像的单行道:请求端说“把你那块内存的数据给我”,响应端网卡打包发回来,本地CPU同样全程无感.但是,他们都只解决了数据搬运问题。要搬的东西是128字节的普通数据,没问题;但如果你要搬的是“一个计数器,要求加1之后别人不能读到中间状态”呢?普通Read和Write会遭遇“读-改-写”的竞态窗口。
2026-05-11 14:05:04
352
原创 从零读懂RDMA UD send:硬件视角下的“无连接”数据报
UD的“无连接”三个字,经常被误解为“不需要知道对方是谁就能发消息”。经过这篇文章,你应该明白:硬件确实不需要握手,但软件必须在发送前通过某种方式拿到对方的QPN和地址,然后显式地填进WQE。硬件只负责执行,不负责发现。这种设计是RDMA追求极致性能的一个缩影:把复杂的事情交给软件(发现、协商、错误恢复),让硬件专注于最核心的数据搬移。理解了这个分工,你就真正看懂了UD。
2026-05-10 18:45:24
179
原创 从零读懂RDMA RC read:硬件帮你远程“拉”数据,远程CPU全程不参与
RDMA的RC read,可以理解为一种“远程拉取”操作。你只需要告诉网卡“把对方某块内存里的数据拉回来,放到我本地的这里”,网卡就会自动完成剩下的工作。整个过程,对方CPU完全不知道你什么时候来“取”走了数据。本片文章将带你从头到尾看懂这个“拉“的过程。
2026-05-09 17:30:42
221
原创 从零读懂RDMA RC Write:硬件帮你直接搬数据,远程CPU全程不感知
DMA的RC write可以理解为一种“单向推送“操作,你只需要告诉网卡”将这块本地内存的数据,直接写到对方的某块内存去“,网卡会帮你完成剩下的工作。整个过程,接收端CPU完全不需要参与,本文将带你从头到尾看懂这个机制。
2026-05-08 16:33:19
353
原创 从零看懂RDMA RC Send:建链、分段、确认与重传
RDMA的RC(可靠连接)模式,可以理解为为两张网卡简历了一个数据“快车道”。不过对于两张卡来说,发送端只管自己需要发什么内容,至于放在哪里则由接收端自己进行决定。当应用程序需要下发一条大消息时,网卡将根据MTU进行自动拆包,随后发送等待确认,如果出现丢包则进行重传,整个过程CPU完全不需要参与。那么他是如何实现的呢?下面将一步步进行拆解。
2026-04-29 16:28:21
354
原创 每天解析一种网络协议:TCP协议
TCP的每一个字段都不是孤立的理论概念。端口号实现多路复用,序列号/确认号保证可靠有序,标志位驱动状态机,窗口控制流量,校验和防止投递错误,选项提供性能增强(MSS、窗口缩放、SACK、时间戳)。而选项区的TLV编码配合EOL/NOP机制,使得解析器能够在未知选项列表的情况下安全、完整地提取所有扩展信息。理解字段的动态交互,才是协议解析的真正价值所在。
2026-04-24 19:06:59
379
1
原创 每天解析一种网络协议:IPV6——扩展头链式结构和逐字段详解
IPV6在报文设计上做了一个相对于IPV4来讲很重要的改变,那就是将可选功能从固定首部中剥离出来,封装成一个个独立的扩展头,他们像链表一样存在于IPV6固定首部后面。每个扩展头内部都包含一个8bit的“next header”字段,其值为IANA定义的协议号,指向链中的下一个头(可能是另一个扩展头,也可能是上层协议),如此形成一个单向链表。固定首部仅40字节,共八个字段,分别是版本=6、流量类别、流标签、载荷长度、下一个首部、跳数限制、源/目的地址,所有扩展功能均由扩展头承载。
2026-04-22 12:53:23
542
原创 每天解析一种网络协议:IPv4——互联网的核心数据报文格式
2. 首部长度(IHL,4位):表示IPv4头部的长度,单位是32位字(即4字节)。若不一致,则丢弃数据报。3. 区分服务(Type of Service,8位):早期称为服务类型(ToS),现用于QoS(服务质量)。前6位是区分服务码点(DSCP),后2位是显式拥塞通知(ECN),用于标记数据包的优先级或告知网络拥塞状态。4. 总长度(Total Length,16位):指整个IP数据报(头部+数据)的字节数,最大65535。8. 生存时间(TTL,8位):数据报每经过一个路由器(一跳),该值减1。
2026-04-21 18:34:07
1633
1
原创 深入浅出PCIe数据链路层
这意味着发送部件在发送新TLP的同时,接收部件也能接收对方的TLP并回送ACK/NAK,互不干扰。它屏蔽了物理传输的不完美,为上层事务层提供了一个“几乎无错”的传输通道,是PCIe高速互联技术得以广泛应用的关键支柱。其中,Sequence字段标识当前TLP的唯一序号,该序号可循环使用,但在同一时间段内,链路上不会出现两个携带相同序列号的未确认TLP。Replay Buffer是发送部件的关键组件,它保存所有已发送但尚未被对方确认的TLP副本,以便在需要时进行重传。,形成数据链路层专用的报文格式。
2026-04-17 16:08:00
485
原创 RDMA流控算法ZTR-RTT:原理与硬件实现
ZTR-RTT CC通过硬件化的RTT主动监测机制,为RDMA网络提供了一种无需交换机配置的大规模拥塞控制方案。在硬件上实现该算法,需要围绕RTT测量、流状态维护、速率调整和调度整形四个模块精心设计,FPGA灵活可编程的特性使其成为ZTR-RTT等新型拥塞控制算法原型验证与快速迭代的理想平台。
2026-04-15 16:01:36
221
原创 RDMA CM建链与数据交互全解析
RDMA的初始化流程是硬件控制面与软件数据面精密分工的结果:REQ/REP/RTU三步握手(含MTU、QPN、PSN等传输参数)由硬件完成,建立高速通道;R_Key、VA等内存授权信息则在通道建立后由软件主导,通过Send数据报文交换。ACK/NAK/RNR NAK等可靠性报文确保传输稳定。理解这两层的分工与协作,是精准把握RDMA技术的核心。
2026-04-13 16:39:32
345
原创 一文带你看懂RDMA三个核心队列SQ、RQ、CQ
如果你经常和高速网络打交道,一定听说过RDMA这个词。RDMA最厉害的地方在于,它可以让一台计算机直接读写另一台计算机的内存,整个过程几乎不需要CPU参与。传统的网络通信像TCP/IP,数据要在内核空间和用户空间之间反复拷贝,CPU忙得不可开交。而RDMA实现了“内核旁路”(Kernel Bypass)和“零拷贝”(Zero-Copy),数据直接从一块内存飞到另一块内存,延迟极低、CPU占用极小。,这三个队列就像一个“交通调度中心”,负责管理所有数据收发任务的发布、执行和完成通知。
2026-04-09 15:02:22
503
原创 深入浅出布谷鸟哈希
布谷鸟哈希就是一种用“踢人”的方式解决冲突的哈希表。虽然比传统的哈希表实现复杂一些,但是其优越的RAM使用率,极坏情况下优越的查找能力,都让它成为一个非常靠谱的选择。
2026-04-01 15:40:26
374
原创 深入浅出DCQCN流控技术
DCQCN作为RDMA网络的拥塞控制基石,通过端到端协同机制实现了高吞吐、低延迟与零丢包的平衡。其“交换机ECN标记→接收端CNP反馈→发送端速率调节”的核心流程,已成为现代数据中心网络的事实标准。未来,随着AI集群规模不断扩大和以太网普及,拥塞控制面临更高要求。基于AI的动态阈值调节等新技术正在兴起,有望进一步降低配置复杂度、提升自适应能力。
2026-03-31 16:50:35
552
原创 深入浅出PFC流控技术
但是对于这个简单的实现方向,相信你一定思考到了一个问题,假如我某一个优先级因为停止流量,导致RAM存满了,同时PCIE里面有一些该优先级的报文正在被从主机拉到硬件的路上,那么如果这些报文不被RAM单独存储起来,就会导致报文积压在PCIE处,从而无法拉取其他优先级的报文,进而影响整个数据通路。聪明的你肯定想到了,我们增加一个任意优先级的RAM,用于处理这种突发情况,当某一个优先级的RAM满了,我们就将它存储不下的报文放入这个任意优先级的RAM中,那么此时便可以解决刚才所说的问题。至此,问题便全部解决了。
2026-03-30 11:41:49
472
原创 浅谈RDMA流控技术
实现简单:只需在交换机端口和网卡上配置阈值,无需复杂的端到端协议;保证0丢包:通过强制暂停上游发送,从物理上避免了缓冲区溢出,确保RDMA无损传输;低延迟:Pause帧的触发和响应在微秒级,能快速应对瞬时拥塞;拥塞扩散:一个核心端口的拥塞会通过Pause帧向所有上游设备传播,形成“拥塞树”,影响无辜流量;队头阻塞:由于同一优先级的所有流共享一个队列,一旦该队列被暂停,所有流向该端口的流都会停滞,无论它们的目的地是否拥塞;
2026-03-27 15:55:38
931
原创 浅谈RDMA建链/断链
第三步(ACK):客户端收到服务端的SYN+ACK后,发送ACK(确认)报文,确认收到服务端的响应,至此三次握手完成,TCP 连接正式建立,双方开始数据传输;第三步(RTU):客户端收到响应后,发送就绪报文(RTU,Ready To Use),通知服务端连接已就绪,双方正式完成建链,可开始数据传输;第二步(DREP):服务端收到请求后,回复断开响应报文(DREP,Disconnect Reply),确认收到断开请求,准备释放资源;
2026-03-26 18:28:55
666
原创 深入浅出网卡负载均衡
网卡级负载均衡通过将流量按不同粒度的哈希分散到多核CPU并行处理,在保障数据流有序的前提下最大化系统吞吐量并降低CPU负载。二元组(源IP+目的IP):最粗粒度,仅依赖IP地址分发,适用于纯IP转发或端口信息缺失的场景,但同一对IP间的所有流量(无论多少连接)都会发往同一处理单元,易导致负载不均;三元组(源IP+目的IP+协议号):在二元组基础上区分不同协议(如TCP与ICMP),主要用于IP分片报文或纯协议流量,确保同一报文的所有分片被送往同一处重组;
2026-03-25 16:45:29
190
原创 浅谈OVS
OVS(open vswitch)是开源的软件式智能交换机,它的作用是连接同一台物理服务器上的虚拟机、容器等虚拟设备,使其能互相通信或与外部网络通信。OVS是纯软件实现,实现数据包的二层(MAC)/三层(IP)转发、多租户网络隔离、流量策略动态控制等功能,可以被中央控制器远程动态控制,实现网络的自动化配置。核心定位是虚拟化环境的网络交通枢纽。依据上述介绍,我们首先可以确认一件事,传统场景下的OVS虽然依托CPU实现全部功能,但是部署成本低,软件灵活性高,无硬件适配限制,适合中小规模平台部署使用。
2026-03-24 16:50:11
567
原创 浅谈VXLAN
传统二层网络受vlan 4094个id的限制,且跨物理网段无法直接做二层互通,而VXLAN通过“隧道封装“打破了这些限制,把需要互通的二层流量打通,通过三层IP网络传输,到达目的地后再解包还原,让不同的物理位置的设备像在同一个二层局域网内通信。用一句话总结就是“打包走外网,拆包用内网,两层IP互不干扰“,客户端和服务端认为自己是在同一网段的,只不过中间过了其他网段,但是客户端和服务端感知不到。VNI:VXLAN网络标识,24比特,用于区分VXLAN段。Reserved: 8比特,必须设置为0。
2026-03-20 16:02:47
391
原创 浅谈SR-IOV
VF是被PF虚拟出来的轻量级PCIE设备,无管理权限,仅保留数据收发功能。每一个VF都有自己独立的PCIE地址、中断号、虚拟MAC地址等,对于VF来说,其本身就是“一张独立的物理网卡“,一个PF可以创建多少个VF是由硬件进行决定的,所有VF和PF共享PF所拥有的物理资源。PF就是PCIE设备本身,他拥有完整的PCIE配置空间,管理权限和硬件功能,PF可以创建/删除VF,为每一个VF分配硬件资源,例如带宽、队列、缓存等,同时他还需要管理MAC口,PF和所属的VF都是通过被PF管理的MAC口进行报文输出的。
2026-03-19 15:55:01
528
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅