文档
系统设计
名字解析、双层 Face 与 socket 兼容接口。
iStack 的目标是让 NDN 在操作系统内核中可用,同时不破坏现有网络栈的使用方式。论文从三个方向展开设计。
名字解析架构
名字解析同时服务于两件事:
- 网络层转发:根据名字决定报文去向。
- 本地报文分流:把到达的报文交付给正确的本地消费者。
把这两部分留在内核数据路径上,是“纯名字驱动”协议栈能够工作的前提。
双层 Face 系统
Face 是 NDN 中连接应用与网络的抽象。iStack 用两层的 face 系统,为 MAC、IP、端口等基于地址的接口提供统一抽象,使名字语义可以落在现有内核网络架构之上。
Socket 兼容接口
为了保持应用的使用方式,iStack 设计了与 socket 兼容的接口。这样,现有网络栈的编程模型仍然可用,NDN 能力则以增量方式引入。
紧凑的转发数据结构
逐包状态是 NDN 数据平面的特征,也是性能与内存开销的来源。iStack 通过紧凑的转发数据结构,在快速报文处理与低内存占用之间取得平衡。
更完整的设计与实现细节见NSDI '24 论文。