网络协议处理中的优化技术探索
在网络技术不断发展的今天,高速、高效的网络通信需求日益增长。为了满足这些需求,网络协议处理中的各个环节都需要不断优化,包括数据包过滤、协议处理等方面。本文将深入探讨动态数据包过滤器(DPF)以及协议处理中的常见任务,如缓冲区管理、校验和计算等,并分析相关的优化技术和原理。
动态数据包过滤器(DPF)的优化之道
在数据包解复用领域,早期的Pathfinder方案虽然提出了一些思路,但在性能和灵活性上存在一定的局限性。大多数工作站和PC难以承担专用的解复用硬件,因此开发者面临着在早期解复用的灵活性和软件分类器有限性能之间进行选择的困境。高性能的TCP、主动消息和远程过程调用(RPC)等实现通常采用手工编写的解复用例程。
DPF的出现为解决这一问题提供了新的思路。它基于Pathfinder的trie思想,通过动态代码生成技术,在每次添加或删除过滤器时将分类器重新编译为机器代码,从而消除了单元处理中固有的间接引用和额外检查。具体来说,DPF为trie中的每个单元生成单独的优化代码,而不是通用的未优化代码。
DPF应用了“时间上的计算转移”原则,这里的运行时指的是分类器更新时间,而非数据包处理时间。这就要求DPF能够快速重新编译代码,以避免减慢分类器的更新速度。例如,建立连接可能需要几毫秒,同时需要添加过滤器来识别端点;而以千兆位速率接收最小尺寸的数据包可能只需要几微秒。尽管有一定的时间余地,但亚毫秒级的编译时间仍然是一个挑战。
为了理解为每个单元使用专用代码的好处,我们需要了解Pathfinder中单元处理效率低下的两个常见原因:
- 解释开销 :Pathfinder代码
超级会员免费看
订阅专栏 解锁全文
16万+

被折叠的 条评论
为什么被折叠?



