zenoh-tutorial

>100 Views

August 07, 25

スライド概要

# この資料の目的
Zenohという通信基盤を、ただ“動かす”のではなく、
「なぜそれが存在するのか」「何を再定義しようとしているのか」まで踏み込んで
ぼくが語れるように(独断と偏見で) なるために作成した資料(間違っていても良い、まずはその入り口に入り、改善していくことが重要)

※ただし、まだ作成中です。気長に作っていきます。

# 対象読者
- C言語をマスターしている人
- ソケット通信とかROS通信とかわかっている人
- OSI参照モデルを知っている人
- 通信ミドルウェアの枠を超えて、構成・思想・自由を感じ取りたい人

# チュートリアルの出口:
- Zenoh の思想とアーキテクチャを理解できるようになる
- Zenoh プログラムをC言語で実装できるようになる
- Zenoh の応用例として、どんなのあるか理解できる

# 読者にとっての価値:
- Zenohの解釈を違った視点でわかる
- Zenohの通信プログラムを組める

profile-image

TOPPERS/箱庭WG活動でUnityやらAthrillやらmROSやら触ってます。 最近は仕事の関係でWeb系の技術に注力しつつ、箱庭への転用を模索しています。 2023年8月1日:合同会社箱庭ラボに移動しました

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Zenoh Tutorial 合同会社箱庭ラボ CTO 森崇

2.

はじめに • この資料の目的 • Zenohという通信基盤を、ただ“動かす”のではなく、 • 「なぜそれが存在するのか」「何を再定義しようとしているのか」まで踏み込んで • ぼくが語れるように(独断と偏見で) なるために作成した資料(間違っていても良い、まずはその入り口に入り、改善していくことが重要) • 対象読者 • C言語をマスターしている人 • ソケット通信とかROS通信とかわかっている人 • OSI参照モデルを知っている人 • 通信ミドルウェアの枠を超えて、構成・思想・自由を感じ取りたい人 • チュートリアルの出口: • Zenoh の思想とアーキテクチャを理解できるようになる • Zenoh プログラムをC言語で実装できるようになる 読者にとっての価値: - Zenohの解釈を違った視点でわかる - Zenohの通信プログラムを組める • Zenoh の応用例として、どんなのあるか理解できる 2

3.

アジェンダ • Zenohとは? • Zenohの全体像 • Zenohの概念モデル • 環境構築 • チュートリアル 3

4.

Zenohとは? • ZettaScale Technology社が開発 • オープンソース(Eclipse Project)の通信プロトコルおよびミドルウェア • 特徴 • 低遅延・高スループット • 様々な通信機能 • 出版購読型、Key-Value Store に基づくデータ管理や計算処理の機能 • 柔軟なネットワーク構成 • Peer-to-Peer通信やNAT越えが可能 • 多種のプログラミング言語の対応 • Python や C/C++等 • Zenoh のコア機能は Rust によって実装されている 4

5.

Zenohの全体像(ぼくの解釈) Zenohは、データ操作・通信手段・ネットワーク構成の すべてを民主化する次世代ミドルウェア データ操作の標準化 通信方式の選択性 通信構成の柔軟な対応 データ転送 トランスポート Entity pub /sub /get/reply QUIC, TLS, TCP, UDP(Unicast/Multicast) Client/Peer/Router データ検索 Network Topology query IPv4, IPv6, 6LoWPAN Mesh/Star/Tree データ永続化 Data Link Scouting put/store/get Wi-Fi, Ethernet, Bluetooth, Serial Multicasting/Gossip 5

6.

Zenohの概念モデル Communication Method Transfer Store Routing Entity Client Search [凡例] 僕が勝手に 概念化したもの Zenoh 用語 Communication Protocol Entity Peer Router Autonomous Relay Centralized Relay Data Link Transport Network Mesh Star Tree Topology Network Config Multicasting Scouting Gossip 6

7.

環境構築 • 環境構成 • ホスト:Ubuntu 24.04 / Windows WSL2 • Docker Compose ここ繋げると、Client Bもメッ シュに参加できる(はず) Mesh Client B Peer B Client A Peer A Router Client C 172.20.0.10 172.20.0.11 172.10.0.10 Docker Compose ホストPC ここ繋げるだけだと、 Client B と Client C としかつながらない(はず) 7

8.

インストール手順 • TODO 8

9.

インストールした環境の動作確認 • TODO 9

10.

チュートリアル • 公式ドキュメント • GitHubリポジトリ • zenoh/zenoh-c • サンプルコード解説 • pub/sub • 動作確認 • peer構成での pub/sub通信 • mesh構成での pub/sub通信 • NAT超えでの pub/sub通信 • 通信方式の変更 UDP/TCP 10

11.

公式ドキュメント • TODO 11

12.

GitHubリポジトリ • TODO 12

13.

サンプルコード解説 • TODO 13

14.

動作確認(peer構成での pub/sub通信) • TODO 14

15.

動作確認(mesh構成での pub/sub通信) • TODO 15

16.

動作確認(NAT超えでの pub/sub通信) • TODO 16

17.

動作確認(通信方式の変更 UDP/TCP) • TODO 17