#frame #networking #driver #abstraction #ratman #netmod #sequence

ratman-netmod

Ratman 网络驱动程序的接口和帧抽象

6 个版本 (破坏性更新)

0.5.1 2021 年 4 月 4 日
0.5.0 2021 年 3 月 2 日
0.4.0 2021 年 1 月 29 日
0.3.0 2020 年 2 月 26 日
0.1.0 2020 年 1 月 30 日

#1#ratman

Download history 46/week @ 2024-04-01 3/week @ 2024-04-08 4/week @ 2024-04-15 7/week @ 2024-04-22 10/week @ 2024-04-29 6/week @ 2024-05-06 12/week @ 2024-05-13 12/week @ 2024-05-20 19/week @ 2024-05-27 4/week @ 2024-06-03 10/week @ 2024-06-10 3/week @ 2024-06-17 14/week @ 2024-06-24 31/week @ 2024-07-08 13/week @ 2024-07-15

每月 58 次下载
用于 7 个 crate(4 个直接使用)

AGPL-3.0

19KB
288

Ratman 的网络模块抽象

Netmod 提供了一个异步接口,用于与端点的基本数据帧定义和帧序列进行交互。

该接口本身不对底层地址空间或重传行为做出任何假设。将 netmod 作为库使用允许您编写兼容 Ratman 的网络适配器。

帧、序列和签名

Frame 是通过网络连接发送的单个数据包。它对应于其他协议中的 UDP 数据包(例如)。它包含发送者、接收者信息以及一个序列指示器(seqid),该指示器在数据切片上构建,可以在电路的另一侧重新组装。

在构建 Frame 序列时,有效载荷被分割成适当大小的块,然后进行哈希处理,这些签名哈希按顺序输入到序列 ID next 中。以下图表进一步解释了该概念。

|--------------|        |--------------|        |--------------|
|  Frame #1    |        |  Frame #2    |        |  Frame #2    |
| next: f4aa   | ------ | next: bb61   | ------ | next: NONE   |
| sig: a1a1    |        | sig: f4aa    |        | sig: bb61    |
|--------------|        |--------------|        |--------------|

有效载荷签名用于验证传输层的完整性(重传由该接口的用户实现,以及将顺序帧关联到数据集中)。

依赖项

~2–2.8MB
~59K SLoC