上海品茶

7.沈典-东南大学-基于eBPF的多路径网络传输协议栈扩展.pdf

编号:161109 PDF 36页 2.96MB 下载积分:VIP专享
下载报告请您先登录!

7.沈典-东南大学-基于eBPF的多路径网络传输协议栈扩展.pdf

1、首届中国eBPF研讨会基于eBPF的多路径网络传输协议栈扩展沈 典东南大学计算机科学与工程学院江苏省网络与信息安全重点实验室沈 典东南大学计算机科学与工程学院江苏省网络与信息安全重点实验室首届中国eBPF研讨会首届中国eBPF研讨会背景01首届中国eBPF研讨会背景首届中国eBPF研讨会01 当今的网络是多路径的 移动设备通常有多个无线的网络接口,例如wifi和蜂窝网络。数据中心服务器有多张网卡,服务器之间存在多条并行的传输路径。如何更好地利用多路径?如何更好地利用多路径?首届中国eBPF研讨会背景01 Multipath TCP(MPTCP)2010Olivier BonaventureSI

2、GCOMM 2010提出一种MPTCP的Linux实现2013.1RFC 6824。IETF第一次将MPTCP协议标准化,即MPTCPV02020.3RFC 8684 MPTCPV1,在V0基础上完善了ADD_ADDR,MP_CAPABLE选项,增加了其它选项。2020.3.29Linux 5.6 开始在内核中实现RFC 8684,即MPTCPV1首届中国eBPF研讨会背景01Applicationsocket()APIPMTCPSubflow1TCPSubflow2IP 1IP 2NIC 1NIC 2TSCCMultiPath TCP标准标准Socket APIMPTCP协议栈使用标准的So

3、cket API,对用户层透明可以像使用TCP一样使用MPTCP。多路径控制多路径控制PM:路径管理,控制路径建立TS:流量调度,控制发包子流CC:多路径联合拥塞控制TCP子流子流一条MPTCP连接可以有多条子流,每一条子流是单独的TCP连接。多地址多地址同时使用多个IP地址/接口并行传输。MPTCP内核协议栈首届中国eBPF研讨会01 背景 MPTCP优势对应用层透明对应用层透明MPTCP使用标准的socket API,对用户层透明。让传统的TCP应用不需要修改代码即可使用MPTCP。提升带宽提升带宽MPTCP允许同时使用多条多条TCP子流子流并行传输数据,使用多条底层链路使用多条底层链路,

4、有效提升聚合带宽。提升聚合带宽。链路鲁棒性链路鲁棒性MPTCP允许同时使用多条多条TCP子流,子流,当其中一条子流失效,可以使用其它子流使用其它子流,无需重新建立连接。1Gbps1Gbps+2GbpsApplicationsocket()APIMultiPath TCPTCP API1GbpsBroke首届中国eBPF研讨会01 背景 MPTCP优化为了提升性能提升性能和扩展功能扩展功能,存在很多优化MPTCP的工作:流量调度(Traffic Scheduler)路径管理(Path Management)跨协议协同设计(Network-application codegisn)Y.s.Lime

5、tal,“ECF:AnMPTCPPathSchedulertoManageHeterogeneousPaths,”CoNEXT 17.M.Kheirkhah etal,“MMPTCP:Amultipathtransportprotocolfordatacenters,”inIEEEINFOCOM2016.F.LeandE.M.Nahum,“ExperiencesImplementingLiveVMMigrationovertheWANwithMultiPathTCP,”inIEEEINFOCOM2019.然而,当前MPTCP的设计和实现并不利于扩展。不利于扩展。首届中国eBPF研讨会01 背景

6、 MPTCP优化为了提升性能提升性能和扩展功能扩展功能,存在很多优化MPTCP的工作:流量调度(Traffic Scheduler)路径管理(Path Management)跨协议协同设计(Network-application codegisn)Y.s.Limetal,“ECF:AnMPTCPPathSchedulertoManageHeterogeneousPaths,”CoNEXT 17.M.Kheirkhah etal,“MMPTCP:Amultipathtransportprotocolfordatacenters,”inIEEEINFOCOM2016.F.LeandE.M.Nahu

7、m,“ExperiencesImplementingLiveVMMigrationovertheWANwithMultiPathTCP,”inIEEEINFOCOM2019.然而,当前MPTCP的设计和实现并不利于扩展。不利于扩展。问题:如何方便、安全地扩展多路径传输内核协议栈?首届中国eBPF研讨会挑战02 通过修改内核扩展MPTCPPMTSCCMultiPath TCPMonolithic kernel module.Hard to combine,reuse,and codegn.挑战1:缺乏灵活性缺乏灵活性 正确地修改内核代码/实现内核模块需要付出大量的时间和精力大量的时间和精力。难以

8、针对变化的网络环境动态地微调动态地微调模块(例如流量调度模块)。无法灵活地复用、组合、协同设计复用、组合、协同设计不同的协议模块。首届中国eBPF研讨会挑战02 通过用户态控制模块优化MPTCP挑战2:功能性受限。功能性受限。功能性和可扩展性高度受限于MPTCP协议栈暴露的接口协议栈暴露的接口(Generic Netlink API)。支持的MPTCP事件和命令依赖于协议栈实现(例如 Linux5.10不支持MPTCP相关事件)。mptcpd直接和MPTCP协议栈交互,只能部署在终端(无法部署在中间节点)。MPTCPmptcpdeventsGeneric Netlink APIcmds首届中国

9、eBPF研讨会挑战02 通过用户态控制模块优化MPTCP挑战2:功能性受限。功能性受限。目前,MPTCP及其扩展都是基于终端基于终端(end-host)的解决方案。受限的底层网络信息底层网络信息和控制能力。应对新型场景,例如多租户场景多租户场景、云原生场景的能力有限。multi-tenant难以感知底层链路首届中国eBPF研讨会挑战02 通过eBPF优化MPTCP挑战3:难以同时确保安全性和易用性。难以同时确保安全性和易用性。eBPF允许在在内核态运行用户态内核态运行用户态程序。eBPF验证器验证器对加载的程序进行验证以确保安全。在实践中,通过eBPF验证器验证并不容易并不容易。(针对字节码进

10、行验证)首届中国eBPF研讨会首届中国eBPF研讨会eMPTCP设计03首届中国eBPF研讨会eMPTCP设计03 eMPTCP设计目标我们针对上述挑战提出eMPTCPeMPTCP,一种基于eBPF技术的MPTCP控制框架。eMPTCP支持使用模块化和插件化模块化和插件化的方式扩展MPTCP。eMPTCP支持多种支持多种MPTCP操作操作并扩展了MPTCP的功能使其更好地适应新兴环境。eMPTCP对用户友好。首届中国eBPF研讨会eMPTCP设计03 eMPTCP整体框架策略链策略链实现selector-actor风格的复杂策略链风格的复杂策略链,基于策略链实现MPTCP扩展。提升灵活性提升灵

11、活性。基于包处理基于包处理基于包处理实现selector和actor,支持多种现有MPTCP操作扩展MPTCP功能。确保功能性。确保功能性。面向需求抽象面向需求抽象封装了一系列用户态用户态API和eBPF相关帮助函数。同时确保安全性和易用性确保安全性和易用性。首届中国eBPF研讨会eMPTCP设计03 基于选择器-执行器的策略链 选择器选择报文,动作器对选择的报文执行对应的操作。多个选择/执行器可以以任意长度和顺序组成复杂的策略链。支持根据应用需求添加新的选择/执行器。首届中国eBPF研讨会eMPTCP设计03 基于包处理的跨协议多路径控制set_backup actor 实现 修改、添加、删

12、除TCP选项控制MPTCP行为。eMPTCP可以部署在传输的中间节点。修改L2-L7的报文实现多协议层的协同控制。以set_backup修改MPTCP子流优先级为例:首届中国eBPF研讨会eMPTCP设计03 选择器示例:动作器示例:首届中国eBPF研讨会eMPTCP设计03 面向需求的API抽象 从使用角度:一系列 intent-based 的python API。从扩展角度:经过eBPF安全验证的helper functions。用户态链式API 自定义选择器/动作器使用使用eMPTCP提供的提供的helper function声明选择链声明选择链声明策略链声明策略链首届中国eBPF研讨会

13、首届中国eBPF研讨会eMPTCP实现04首届中国eBPF研讨会04 eMPTCP实现 基于eBPF TC和XDP程序类型。eMPTCP策略链实现 基于eBPF尾调用的策略链。基 于 eBPFMAP和XDP/TC meta 的actor和selector的参数传递参数传递。包处理实现 Direct Packet Access(修改包)。增长包空间。Header-only helper functions。首届中国eBPF研讨会04 eMPTCP实现:策略链 eBPF尾调用 Policy Context eBPF尾调用解决单个eBPF程序最大长度限制最大长度限制。执行尾调用要求caller和ca

14、llee的程序类型相同,并且跳转后不会返回不会返回caller的执行流。挑战的执行流。挑战 如何动态地决定一条动态地决定一条eBPF程序尾调用链程序尾调用链(尾调用特性尾调用特性)?如何知道下一个要调用的eBPF程序?如何解决尾调用过程中可能出现的并发问题?用Context数组保存尾调用链所需要的状态信息。(next policy,param等)Context保存在per-packet的meta-data(通过指针直接访问)解决并发问题。(XDPdata_mata 32bytes/TC cb array(20bytes)entry程序从BPF_MAP读取读取context保存到保存到meta

15、data。调用链上的eBPF程序从context array中获取下一个要调用的程序获取下一个要调用的程序以及参数。首届中国eBPF研讨会04 eMPTCP实现:参数传递 子策略之间传递和共享参数 编程技巧 不同的.o 文件里的BPF Prog要共享MAP,可以通过libbpf的 bpf_map_reuse_fd API。对于大参数(2Bytes)从context array中获取offset,从BPF_MAP中读取参数。对于小参数(=2Bytes)参数直接内联地保存在联地保存在meta-data里的里的context array中(直接通过指针访问)。通过context array传递参数。

16、将BPF_MAP pin(通过bpf_obj_pin API)到虚拟文件系统来控制BPF_MAP生命周期。首届中国eBPF研讨会04 eMPTCP实现:包处理 eBPF for packet processing修改包删除TCP/MPTCP选项注入TCP/MPTCP选项修改包删除TCP/MPTCP选项注入TCP/MPTCP选项Directly PacketAccess(DPA)。将TCP选项用NOP代替,问题转化为包修改。增长packet space,修改增长的space。eMPTCPheader-onlyhelperfunctions首届中国eBPF研讨会04 eMPTCP实现:包处理 Di

17、rect Packet Access DPA的含义是直接通过指针来访问和修改Packet内容。DPA可以访问packet(XDP),sk_buff线性区(TC)和meta_data 使用Direct Packet Access 要点在于,对指针解引用之前必须验证指针的有效性。,_(对于packet内容 _,(对于meta)首届中国eBPF研讨会04 eMPTCP实现:包处理 修改(grow/shrink)包空间 Header-only helper functions 使 用 adjustroom 相 关 的 eBPF 帮 助 函 数(bpf_xdp_adjust_head,bpf_xdp_a

18、djust_tail)。adjust包空间之后,所有的用于DPA的指针必须重新验证。首届中国eBPF研讨会首届中国eBPF研讨会实验05首届中国eBPF研讨会05 实验 实验环境CPU2 Intel(R)Xeon(R)E5-2630 v4 2.2Ghz CPUs(12 cores)Network3 10 Gbps Broadcom Network Interface CardMemory128GBMPTCP设置设置:eMPTCP对MPTCP实现版本并不敏感实现版本并不敏感,支持MPTCP V0和V1。在Linux4.19.126,Linux5.10,Linux5.15,Linux5.19下均测

19、试过。实验目标 验证eMPTCP在若干不同use case下的效果。测试eMPTCP对性能性能造成的影响。首届中国eBPF研讨会05 实验:用例1 多租户(multi-tenant)环境和MPTCP 允许不同的子流能够通过底层不同的物理链路不同的物理链路发送。eMPTCP可以有效提升VMs之间的通信带宽,在没有背景流平均提升 23.03%,在有背景流下最多提升 32.3%。把eMPTCP部署在hypervisors上。基于eMPTCP实现一个简单的策略,将不同子流的流量重定向重定向到不同的物理链路上。首届中国eBPF研讨会05 实验:用例2 MPTCP路径管理 对于小流,eMPTCP提供接近T

20、CP的性能接近TCP的性能。对于大流,eMPTCP将MPTCP吞吐量平均提升提升23.1%。在连接之出禁止子流禁止子流建立,只使用单路径传输。发送一定量数据之后,恢复子流建立。并保证新建立的子流和现有子流不存在共享链路不存在共享链路。首届中国eBPF研讨会05 实验:性能测试 eMPTCP算子处理时间在纳秒级。eMPTCP对流传输时间的影响小于小于%2。平均CPU占用率为0.35%。首届中国eBPF研讨会首届中国eBPF研讨会总结06首届中国eBPF研讨会 提出了eMPTCP,基于eBPF技术的MPTCP控制框架 插件化和模块化 扩展了MPTCP的功能 加快MPTCP发展步伐 基于select

21、or和actor的策略链,采用链式的方式开发MPTCP扩展。运行时修改策略链,无需中断服务。支持多种MPTCP操作。扩展了MPTCP的功能。(多租户场景)对用户态友好的API。MPTCP相关的eBPF header-only 帮助函数。06 总结首届中国eBPF研讨会06 总结 Towards the Full Extensibility of Multipath TCP with eMPTCP C/2022 IEEE 30th International Conference on Network Protocols(ICNP).相关论文发表 Last-mile Matters:Mitigating the Tail Latency of Virtualized Networks with Multipath Data Plane C/2022 IEEE International Conference on Cluster Computing(CLUSTER).首届中国eBPF研讨会06 总结https:/ 开源项目首届中国eBPF研讨会首届中国eBPF研讨会感谢聆听!06会后有任何问题,欢迎交流指正!联系方式:会后有任何问题,欢迎交流指正!联系方式:

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(7.沈典-东南大学-基于eBPF的多路径网络传输协议栈扩展.pdf)为本站 (张5G) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
客服
商务合作
小程序
服务号
会员动态
会员动态 会员动态:

  138**56... 升级为至尊VIP wei**n_...  升级为至尊VIP

wei**n_... 升级为高级VIP  wei**n_... 升级为至尊VIP

 wei**n_... 升级为高级VIP  wei**n_... 升级为标准VIP 

 冯** 升级为至尊VIP  wei**n_... 升级为至尊VIP

wei**n_... 升级为标准VIP wei**n_... 升级为标准VIP 

 wei**n_... 升级为高级VIP old**nt... 升级为至尊VIP 

wei**n_...   升级为至尊VIP 150**62... 升级为标准VIP 

 俊**... 升级为标准VIP  微**...  升级为至尊VIP

131**94...  升级为高级VIP  wei**n_... 升级为高级VIP

微**...  升级为至尊VIP   151**34... 升级为高级VIP

  wei**n_... 升级为标准VIP 186**03...  升级为至尊VIP

wei**n_... 升级为至尊VIP  138**97... 升级为高级VIP

报**...  升级为至尊VIP 177**40... 升级为至尊VIP

 189**24... 升级为高级VIP Jo**g 升级为至尊VIP  

董杰  升级为高级VIP  159**76... 升级为至尊VIP

wei**n_... 升级为标准VIP  186**81... 升级为高级VIP 

 198**12... 升级为高级VIP 周阳  升级为至尊VIP

微**... 升级为标准VIP  wei**n_...  升级为高级VIP

wei**n_... 升级为标准VIP 137**77... 升级为高级VIP 

Ste** S...  升级为至尊VIP   ro**i 升级为高级VIP

 186**53...  升级为至尊VIP 403**08... 升级为标准VIP

 wei**n_... 升级为标准VIP  wei**n_... 升级为高级VIP

wei**n_... 升级为高级VIP    wei**n_... 升级为至尊VIP

189**86... 升级为高级VIP  wei**n_... 升级为标准VIP 

微**...  升级为标准VIP   wei**n_...  升级为至尊VIP

骑**...  升级为高级VIP wei**n_... 升级为标准VIP 

wei**n_... 升级为标准VIP    138**22... 升级为标准VIP

 wei**n_... 升级为标准VIP  186**23...  升级为至尊VIP

 gus**o8... 升级为至尊VIP 159**77... 升级为至尊VIP 

Kra**Ma...  升级为高级VIP  wei**n_... 升级为高级VIP

SMA**CH 升级为至尊VIP   130**92...  升级为至尊VIP

wei**n_... 升级为高级VIP  wei**n_...  升级为高级VIP

181**79...  升级为高级VIP  wei**n_... 升级为标准VIP 

 wei**n_... 升级为至尊VIP Je**er  升级为高级VIP 

182**85... 升级为至尊VIP  小**  升级为高级VIP

wei**n_...   升级为标准VIP 186**69...  升级为高级VIP 

陆  升级为至尊VIP  wei**n_... 升级为标准VIP

微**... 升级为标准VIP  186**99...  升级为高级VIP

 wei**n_... 升级为高级VIP  Nic**eZ 升级为至尊VIP

 wei**n_... 升级为高级VIP   130**34... 升级为标准VIP

189**86... 升级为至尊VIP  wei**n_... 升级为标准VIP

陶**... 升级为标准VIP 159**63...  升级为至尊VIP 

wei**n_... 升级为标准VIP   wei**n_... 升级为至尊VIP

wei**n_... 升级为高级VIP 江**...   升级为高级VIP

186**32... 升级为高级VIP  wei**n_... 升级为至尊VIP 

 微**... 升级为至尊VIP  182**17...  升级为标准VIP

 wei**n_... 升级为标准VIP 138**41... 升级为至尊VIP 

138**39...  升级为至尊VIP   wei**n_...  升级为至尊VIP

wei**n_... 升级为标准VIP  136**29...  升级为标准VIP

186**28...  升级为标准VIP 186**28... 升级为标准VIP