本研究由Khaled Diab和Mohamed Hefeeda(均来自加拿大西蒙弗雷泽大学计算机科学学院)完成,发表于第19届USENIX网络系统设计与实现研讨会(NSDI 2022),会议于2022年4月在美国华盛顿州伦顿市举行。论文标题为《YETI: Stateless and Generalized Multicast Forwarding》,并收录于会议论文集。
该研究属于计算机网络领域,聚焦于组播(Multicast)转发技术的优化。随着互联网直播(如Facebook Live)、视频会议(如Zoom)、云应用等大规模实时应用的兴起,传统的组播转发技术面临两大核心挑战:
1. 状态存储问题:现有方案(如IP Multicast、OpenFlow)需在路由器中维护大量组播会话状态,导致内存消耗高且动态更新开销大。
2. 功能局限性:传统组播仅支持生成树(Spanning Tree)模型,无法满足流量工程(Traffic Engineering)和服务链(Service Chaining)等高级需求(例如数据需按序通过防火墙、入侵检测等虚拟化网络服务)。
为此,作者提出YETI系统,旨在实现无状态(Stateless)的通用组播转发,支持任意拓扑的组播图(包括带环路径),同时避免冗余流量和转发歧义。
YETI分为两个核心组件:
- 集中式控制器:负责计算组播图并生成优化的标签(Label)。
- 数据平面算法:路由器通过解析标签实现无状态转发。
YETI定义了四种标签类型,以高效编码组播图:
1. FSP(Forward Shortest Path,00类型):标识最短路径,用1个全局路由器ID(Router ID)替代多个链路标签。
2. FTE(Forward Traffic Engineered,01类型):指定流量工程路径的本地接口ID。
3. MCT(Multicast,10类型):使用位图(Bitmap)指示需复制的多个接口。
4. CPY(Copy,11类型):在分支点复制后续标签子集,避免冗余传输。
控制器通过以下步骤生成标签:
1. 构建服务树(BuildTree):将组播图转换为反映服务顺序的树结构,确保节点唯一性。
2. 分割路径段与分支点:
- 对连续无分支的路径段,优先使用FSP标签(若路径与最短路径重合)或FTE标签。
- 在分支点生成MCT标签,并为每个分支创建CPY标签和子标签集。
3. 递归处理分支:对每个子分支重复上述过程,直至覆盖整个组播图。
复杂度分析:算法时间复杂度为O(k²n²+m)(k为服务链长度,n为路由器数,m为链路数),在典型ISP网络(路由器数n≈10²,链路数m≈10³)中可高效运行。
路由器按标签类型逐层解析:
- FSP标签:若目标ID非本地路由器,沿最短路径转发;若匹配则移除标签并触发服务处理。
- FTE标签:直接按接口ID转发并移除标签。
- MCT+CPY标签:复制数据包,仅保留对应分支的标签子集。
性能保证:每数据包处理耗时O(i)(i为路由器最大接口数),硬件资源占用低(实测仅占FPGA资源的3%)。
在NetFPGA SUME平台上实现YETI,验证其能在10Gbps线速下处理数千组播会话:
- 延迟:与单播转发相当(95%分位差仅0.1μs)。
- 吞吐量:支持64B~1024B数据包的全速率传输(无丢包)。
基于14种真实ISP拓扑,对比YETI与现有方案:
- 与状态式方案(如OpenFlow)相比:YETI将路由器状态更新开销降低97.5%(仅需更新入口路由器)。
- 与标签式方案(如BIER-TE)相比:标签开销减少65.3%,且支持服务链等高级功能。
该研究为下一代组播服务提供了可扩展、高灵活性的解决方案,尤其适合SDN(软件定义网络)和NFV(网络功能虚拟化)环境。