---
title: マイクロコントローラ上で実現するNDN Forwarder
tags: 
author: [Kattyan](https://convert.docswell.com/user/kattyan)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/PER9W89KJ9.jpg?width=480
description: 2026/3/21に開催された、情報科学若手の会・セキュリティ若手の会 春の陣2026で話したスライドです。 https://wakate.connpass.com/event/382858/
published: March 21, 26
canonical: https://convert.docswell.com/s/kattyan/Z1QJ33-microcontroller-ndn-protocolstack
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/PER9W89KJ9.jpg)

マイクロコントローラ上で実現する
NDN Forwarder
202６/03/21 加藤 颯 (GitHub: sou1118)
@情報科学若手の会・セキュリティ若手の会 春の陣2026
1


# Page. 2

![Page Image](https://bcdn.docswell.com/page/P7XQP8Q5EX.jpg)

アジェンダ
1. 現在のインターネットの課題
2. ICN（情報指向ネットワーク）とは
3. CCNx と NDN — 2つの代表的プロトコル
4. NDN の詳細とIP通信との比較
5. マイクロコントローラ向けNDN Forwarderの設計と実装
6. まとめ
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/37K9DK9R7D.jpg)

1. ICNの基本概念
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/LJ3WRZWGJ5.jpg)

現在のインターネットの仕組み — ロケーション指向
•
現在のIP通信は 「誰と通信するか」 を指定する
•
•
•
ホスト名→DNS→IPアドレス→パケット転送
送信元と宛先のIPアドレスで1対1の通信経路を確立
TCP/IPは1970年代に設計されたホスト間通信のためのアーキテク
チャ
•
当時の利用形態: リモートログイン、ファイル転送
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/8JDKYRKNEG.jpg)

利用形態の変化—ホスト間通信からコンテンツ取得へ
•
WWW登場以降、インターネットの主要な利用はコンテンツの取得に
変化
•
•
•
動画配信（YouTube、Netflix）、SNS、オンラインショッピング
ユーザは「○○サーバに接続したい」のではなく 「○○の動画が見たい」
現在の対応策: CDN（Content Delivery Network）が
アプリケーション層で対処
•
しかしネットワーク層は依然としてホスト中心のIPに依存
「何を取得するか」が重要なのに、「誰とつなぐか」を
前提とした通信は非効率じゃね？
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/VEPK6WKN78.jpg)

ロケーション指向の具体的な課題
課題
説明
パフォーマンス
同じコンテンツでも遠方のサーバまで取りに行く必要がある
負荷集中
人気コンテンツへのアクセスがサーバに集中
耐故障性
サーバがダウンすると取得不可
モビリティ
端末が移動するとIPアドレスが変わり通信が途切れる
アドレス管理
IPアドレスの割り当て・NAT・枯渇問題
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/27VV38VY7Q.jpg)

ICN—情報指向ネットワーク技術
ICN (Information-Centric Networking): ネットワーク層自体を
コンテンツ中心に再構築
•
基本的な考え方
•
•
IPアドレスの代わりにコンテンツの名前でデータを要求・転送
「誰とつなぐか」→ 「何を取得するか」 へのパラダイムシフト
•
近くに同じデータがあれば、遠方のサーバに行かずに取得可能
•
ICNの主要な特徴
•
•
•
名前ベースの転送（Name-based Forwarding）
ネットワーク内キャッシュ（In-network Caching）
データ自体への署名によるセキュリティ
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/5JGL35LW7L.jpg)

ICNの3つのデータ構造
ICNノード（ルータ）は以下の3つのテーブルを持つ（IPルータのルーティ
ングテーブルに相当）
テーブル
役割
IP での対応
PIT(Pending
Interest Table)
未解決の要求を記録。同一要求の集約
（Interest Aggregation）
— (該当なし)
FIB(Forwarding
名前プレフィックスと転送先の対応
Information Base)
ルーティングテーブル
CS
(Content Store)
— (ルータにはない。
CDN/プロキシが担う)
受信データのキャッシュ
IPルータにはないPITとCSがICNの大きな特徴。
ルータ自身がキャッシュを持ち、要求の集約も行う。
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/47QY5ZYQEP.jpg)

ICN通信の流れーInterest（要求）
1.
Consumer が「/example.com/video.mp4」という名前の
Interest を送信
2.
各ルータはCS→PIT→FIBの順に処理
3.
CSにあればキャッシュから即応答、なければFIBに従い上流へ転送
4.
最終的にProducerまたはキャッシュを持つノードに到達
Interest
Consumer
video.mp4
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/KE4W93WYJ1.jpg)

ICN通信の流れーInterest（要求）
1.
Consumer が「/example.com/video.mp4」という名前の
Interest を送信
2.
各ルータはCS→PIT→FIBの順に処理
3.
CSにあればキャッシュから即応答、なければFIBに従い上流へ転送
4.
最終的にProducerまたはキャッシュを持つノードに到達
Consumer
/example.com
/video.mp4
CS
/example.com
/video.mp4
PIT
FIB
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/L71YK1YNJG.jpg)

ICN通信の流れーInterest（要求）
1.
Consumer が「/example.com/video.mp4」という名前の
Interest を送信
2.
各ルータはCS→PIT→FIBの順に処理
3.
CSにあればキャッシュから即応答、なければFIBに従い上流へ転送
4.
最終的にProducerまたはキャッシュを持つノードに到達
・・・
Consumer
/example.com
/video.mp4
CS
CS
PIT
PIT
FIB
FIB
/example.com
/video.mp4
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/G7WGD81ME2.jpg)

ICN通信の流れーInterest（要求）
1.
Consumer が「/example.com/video.mp4」という名前の
Interest を送信
2.
各ルータはCS→PIT→FIBの順に処理
3.
CSにあればキャッシュから即応答、なければFIBに従い上流へ転送
4.
最終的にProducerまたはキャッシュを持つノードに到達
・・・
Consumer
/example.com
/video.mp4
CS
CS
PIT
PIT
FIB
FIB
Producer
/example.com
/video.mp4
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/4JZLG8PME3.jpg)

ICN通信の流れーData(応答)
1.
Producer（またはキャッシュノード）がDataパケットを返送
2.
DataはInterestが通った経路を逆向きにたどる
（PITに記録された経路）
3.
途中のルータがDataをキャッシュ（CSに保存）
4.
同じ名前の次のInterestにはキャッシュから応答可能
Data
Consumer
Producer
/example.com
/video.mp4
/example.com
/video.mp4
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/YE6WYPM5EV.jpg)

ICN通信の流れーData(応答)
1.
Producer（またはキャッシュノード）がDataパケットを返送
2.
DataはInterestが通った経路を逆向きにたどる
（PITに記録された経路）
3.
途中のルータがDataをキャッシュ（CSに保存）
4.
同じ名前の次のInterestにはキャッシュから応答可能
・・・
Consumer
CS
CS
Producer
/example.com
/video.mp4
PIT
PIT
/example.com
/video.mp4
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/GE5MGKZGE4.jpg)

ICNの歴史と2つのプロトコル
•
2006年 Van Jacobson氏がCCN(Content-Centric
Networking)を発表
•
2009年 PARCがCCNxプロジェクトとしてオープンソース公開
•
2010年 NSFがFIAプログラムでNDNプロジェクトに資金提供
•
当初はCCNx 0.xをコードベースとして共有
•
2012年 PARCとNDNチームが分離
•
2013年 PARCがCCNx 1.0を設計（非後方互換）、NDNチームは
独自に発展
→ 同じルーツからCCNxとNDNの2つのプロトコルが分岐
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/9729YWRDJR.jpg)

ICNの歴史と2つのプロトコル(標準化)
•
IRTF(Internet Research Task Force)にICN Research
Group設置（2012年）
•
CCNx 1.0: IRTF RFC 8569 / RFC 8609（2019年）
•
NDN: NDN Packet Format Specification v0.3（独自仕様と
して発展）
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/DJY4GLDM7M.jpg)

CCNxとNDNの共通点
両プロトコルはICNの基本原則を共有
•
2種類のパケット: 要求パケットと応答パケット
•
•
CCNx: Interest / Content Object
NDN: Interest / Data
•
3つのデータ構造: PIT, FIB, CS
•
名前ベースの転送: 階層型の名前を用いたLongest Prefix Match
•
ネットワーク内キャッシュ: ルータがDataをキャッシュ
•
データ署名: Producerがデータに署名し、通信路ではなくデータ自
体を保護
•
TLVエンコーディング: パケットはType-Length-Value形式
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/V7NYG463E8.jpg)

CCNxとNDNの主要な違い
項目
CCNx 1.0
NDN
パケット名称
Interest / Content Object
完全一致 + プレフィックス一致
ループ防止
HopLimit フィールド（最大255ホップ）
Nonce フィールド（ランダム値で重
複検出）
標準化
IRTF RFC 8569, 8609
NDN Packet Format Spec
v0.3（独自）
代表的実装
Cefore（NICT）
NFD(UCLA, NIST, MITRE)
設計思想
ルーティングがループしない前提
ルーティングにループがありうる前提
セキュリティ
通信路の保護も考慮
データ自体の保護を重視
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/YJ9PWQLP73.jpg)

NDNのアーキテクチャ — 砂時計モデル
IPもNDNも砂時計型（Hourglass）のアーキテクチャ
IP: 「thin waist」= IPプロトコル（アドレスベース）
NDN: 「thin waist」= 名前付きデータのチャンク（コンテンツベース）
データ署名
thin waist
thin waist
Forwarding
Strategy
ref: https://named-data.net/project/archoverview/
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/GJ8DNGXXJD.jpg)

NDNがIPの課題を解決する仕組み
IPの課題
NDNでの解決
アドレス枯渇
名前空間は無限。名前に長さ制限なし
NAT問題
コンテンツ提供にアドレス公開不要
モビリティ
名前は変わらないので移動しても通信継続
マルチキャスト
PITのInterest集約で自然に実現
DDoS
Interest-Dataの1対1対応でフロー制御
セキュリティ
通信路ではなくデータ自体に署名
しかしながら、既存のIPを置き換えることは不可能に近い
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/LJLMPG8NER.jpg)

NDNの実験で用いられる環境
シミュレータ系
•
ndnSIM (ns-3:ネットワークシミュレータを基にしたもの)
実環境
•
•
NFD (Named Data Networking Forwarding Daemon)
ndn-lite
など
M5Stackのような拡張が容易なデバイスで動かせるプロトコルスタック
が存在しない→なら作ろう！
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/47MY4Q6Q7W.jpg)

2.プロトコルスタックについて
22


# Page. 23

![Page Image](https://bcdn.docswell.com/page/P7R9W8PKE9.jpg)

プロトコルスタックについて
•
ESP32上にL3相当のNDNプロトコルスタックをフルスクラッチ実装
•
一部ESP-IDFのライブラリに依存しているが置き換えは可能なので
ESP32以外のマイコン上でも動作させることは可能
https://github.com/sou1118/ndn-embeds
•
近距離だと受信成功率は100%でRTTも2桁で収まる
Application Layer
NDN Protocol Layer (L3)
ESP-NOW Protocol Layer (L2)
Wi-Fi Physical Layer(L1)
23


# Page. 24

![Page Image](https://bcdn.docswell.com/page/PJXQP8357X.jpg)

NDNプロトコルスタックのアーキテクチャ
Application Layer
(センサーデータ取得、Interest生成など)
NDN Core Protocol Layer (共通実装)
Interest/Data Packet Encoding/Decoding
PIT Management
CS Management (Caching)
FIB Management
Forwarding Strategy
Face API
ESP-NOW Adapter
ESP-NOW API
ここに関しては
差し替え可能
24


# Page. 25

![Page Image](https://bcdn.docswell.com/page/3JK9DKYRJD.jpg)

いろんな通信規格のモジュールが売ってる
ref: https://www.switch-science.com/products/10809
ref: https://www.switch-science.com/products/9425
25


# Page. 26

![Page Image](https://bcdn.docswell.com/page/LE3WRZ9GE5.jpg)

動かすアプリケーションについて
実用例として
•
キャッシュを効かせられるようなアプリケーション
•
移動などで頻繁に接続先が変わるようなアプリケーション
がよく実験対象としてシミュレーションされている
Application Layer
NDN Protocol Layer (L3)
ESP-NOW Protocol Layer (L2)
Wi-Fi Physical Layer(L1)
26


# Page. 27

![Page Image](https://bcdn.docswell.com/page/8EDKYRGN7G.jpg)

Bitchatの登場
•
Twitterの生みの親、Jack氏がBitchatを開発
•
•
Bluetooth Meshを使い端末同士を数珠つなぎし、ローカルネットワークを
簡単に構築し、そのネットワークでメッセージをやり取りできる
Android/iOS双方ともに対応
•
学術分野で言うDTN(耐遅延性ネットワーク)とMANET（モバイルア
ドホックネットワーク）の実用例
•
2025年末に始まったデモが全土で激化し、イラン政府はインターネッ
トを遮断したからか、ダウンロード数が前月比15倍に急増した
今回作ったプロトコルスタックでNDNを使ったMANETを構築すると
より拡張しやすいプラットフォームにできるのでは？
27


# Page. 28

![Page Image](https://bcdn.docswell.com/page/V7PK6W3NJ8.jpg)

組込みRustという選択肢
Espressifは積極的にRustでの組込み開発をサポートしている
最近のESP32C, HシリーズはRISC-Vなため、難しい環境構築は不要
Zephyrもno_stdであれば結構動くらしい（未検証）
Cargoが非常に便利
ref: https://github.com/esp-rs
ref: https://github.com/esp-rs/esp-hal
28


# Page. 29

![Page Image](https://bcdn.docswell.com/page/2JVV384YJQ.jpg)

まとめ
やったこと
•
ESP32上にNDNプロトコルスタックをフルスクラッチ実装
（ndn-embeds）
•
MANETを構築し、メッセージングアプリのプロトタイプを動作確認
設計のポイント
•
Face APIによる通信規格の抽象化 → ESP-NOW以外への
差し替えが可能
•
ESP-IDF依存を最小限に抑え、他のマイコンへの移植性を確保
今後の展望
•
LoRa / 有線LAN など他Faceの対応
29


# Page. 30

![Page Image](https://bcdn.docswell.com/page/5EGL351WJL.jpg)

参考文献
L. Zhang, A. Afanasyev, J. Burke, V. Jacobson, et al., “Named data
networking,&quot; ACM SIGCOMM CCR, vol. 44, no. 3, pp. 66–73, 2014.
DOI: 10.1145/2656877.2656887
G. Xylomenos, C. N. Ververidis, et al., “A Survey of
Information-Centric Networking Research,&quot; IEEE CSST, vol. 16, no.
2, pp. 1024–1049, 2014. DOI: 10.1109/SURV.2013.070813.00063
B. Wissingh, C. A. Wood, et al., “ICN: CCNx and NDN Terminology,&quot;
IRTF RFC 8793, 2020. DOI: 10.17487/RFC8793
ICNRG, “Design Choices and Differences for NDN and CCNx 1.0,&quot;
draft-icnrg-harmonization-00. URL:
https://icnrg.github.io/draft-icnrg-harmonization/
named-data.net, “NDN: Motivation &amp; Details.&quot; URL:
https://named-data.net/project/archoverview/
NDN Packet Format Specification v0.3. URL:
https://docs.named-data.net/NDN-packet-spec/current/
30


# Page. 31

![Page Image](https://bcdn.docswell.com/page/4JQY5ZDQ7P.jpg)

参考文献
A. Afanasyev, J. Shi, B. Zhang, et al., “NFD Developer&#039;s Guide,&quot;
NDN-0021, 2021. URL:
https://named-data.net/wp-content/uploads/2021/07/ndn-0
021-11-nfd-guide.pdf
named-data-iot/ndn-lite. URL:
https://github.com/named-data-iot/ndn-lite
M. Mosko, I. Solis, C. Wood, “CCNx Semantics,&quot; IRTF RFC 8569,
2019.
M. Mosko, I. Solis, C. Wood, “CCNx Messages in TLV Format,&quot;
IRTF RFC 8609, 2019.
朝枝 仁, 「オープンソースCeforeがもたらす新しいネットワークサービスの可能
性」, 電子情報通信学会誌, Vol.104, No.4, pp.346-353, 2021年4月.
V. Jacobson, D. K. Smetters, J. D. Thornton, et al., “Networking
Named Content,&quot; CoNEXT &#039;09, 2009.
31


