NIP / iStack
NSDI '24 · USENIXPDF
面向未来的网络架构

Named Data Networking 把命名数据网络带进操作系统内核

NDN 以名字取代地址,转发依赖逐包状态。iStack 首次将 NDN 协议栈实现在 OS 内核中,同时保持与现有地址制网络栈和 socket 接口的兼容。

Tianlong Li · Tian Song · Yating Yang

北京理工大学

论文 NSDI '24

iStack

iStack: A General and Stateful Name-based Protocol Stack for Named Data Networking

把 NDN 的名字解析、逐包状态与地址接口放进同一套内核协议栈,同时保留现有网络栈的使用方式。

Venue

NSDI '24

Stack

in-kernel

Focus

NDN

Tianlong Li · Tian Song · Yating Yang

北京理工大学

USENIX 页面
iStack · NSDI '24 · 北京理工大学NIP / 01
论文报告的结果数值来自 NSDI '24 论文摘要;完整测试环境、硬件与对比方法请以原文为准。
6.50 Gbps
转发吞吐
16.25×
相对 NDN-testbed 转发器
46.08%
缓存包转发时延降低

01 / 研究支柱

内核需要重新学习的四件事

把 NDN 放进通用操作系统,不是把用户态转发器搬进内核,而是重新安排名字、状态与地址接口的位置。

PREFIX LOOKUP LONGEST MATCH / /nip/docs /nip/istack /nip/notes /docs/architecture NAME /nip/istack/docs NRS / 02

01

内核名字解析

转发与本地交付共用一套名字解析架构,让查找留在内核数据路径上。

阅读设计
ADDRESS SPACE NAME SPACE MACIPPORT FACE name / state NDN TWO LAYERS / ONE ABSTRACTION FACES / 03

02

双层 Face 系统

用 face 抽象覆盖 MAC、IP 与端口,让名字语义落在现有内核网络架构之上。

阅读设计
USER KERNEL / iStack APPLICATIONSconsumer / producerSOCKET APIsocket-likeNAME RESOLUTIONforwarding + demuxFACESMAC / IP / portNICaddress-basedSTACK / 01

03

Socket 兼容接口

保留现有应用的 socket 使用方式,同时以增量方式引入 NDN 能力。

阅读设计
NSDI '24 / REPORTED RESULTS iStack 6.50 Gbps 16.25 SPEEDUP 46.08 % LOWER EVAL / 04

04

可测量的收益

6.50 Gbps 吞吐、16.25× 加速与 46.08% 缓存包时延降低,构成论文的核心证据。

阅读设计

02 / 内核之内

一个名字,整条数据路径。

iStack 把名字解析、逐包状态与地址抽象放进同一个内核协议栈。Interest 与 Data 沿同一条路径前进,只是携带的状态不同。

  1. 01

    先解析名字,再决定去向

    名字解析同时服务于网络层转发与本地报文分流。

  2. 02

    让地址接口说名字的语言

    双层 face 系统把 MAC、IP、端口收进统一抽象,而不要求设备理解 NDN。

  3. 03

    把状态留在数据路径上

    PIT、CS 与 FIB 构成逐包状态的核心,紧凑的数据结构负责控制内存开销。

iStack / data plane NSDI '24
  • USER
    01Applications
  • KERNEL
    02Socket-compatible API
  • KERNEL
    03Name resolution
  • KERNEL
    04PIT · CS · FIB
  • KERNEL
    05Two-layer faces
  • LINK
    06NIC & network
Interest→PIT→FIB→FaceData ← CS

逐包状态,紧凑组织

PIT 记录未决 Interest,CS 缓存 Data,FIB 把名字前缀映射到 face。

地址接口,名字抽象

MAC、IP 与端口仍然是设备与链路的现实;face 系统把它们统一到名字语义之下。

6.50

03 / 评测结果

数字本身就是论据。

iStack 的目标不是证明 NDN 能在内核里运行,而是证明它能以可用的性能运行。以下结果来自 NSDI '24 论文。

阅读性能评测
6.50 Gbps
转发吞吐
16.25×
相对 NDN-testbed 转发器
46.08%
缓存包转发时延降低

数据为论文摘要报告的结果;测试环境、硬件与对比方法请以论文原文为准。

论文 / NSDI '24

Tianlong Li · Tian Song · Yating Yang
北京理工大学

iStack 是首个在操作系统内核中实现的 NDN 协议栈。它把内核名字解析、双层 face 系统与 socket 兼容接口组合在一起,在保持现有网络栈使用方式的同时,让逐包状态与名字转发留在内核数据路径上。

iStack / USENIX NSDI '24

从这里开始

读一读这套栈,然后把它跑起来。

从项目概览开始,或直接打开 NSDI '24 论文与 PDF。