#stamp #rfc #protocols #measurement #active #packet #session

bin+lib stamp-suite

简单的双向主动测量协议 (STAMP) (RFC 8762 和 8972)

2 个版本

0.1.1 2022 年 4 月 12 日
0.1.0 2022 年 3 月 10 日

#5 in #stamp

MIT 许可证

20KB
446

stamp-suite

简单的双向主动测量协议 (STAMP) (RFC 8762 和 8972)

Rust Dependency status License Latest version

关于 stamp-suite 的一些说明

stamp-suite 包含一组应用对 - 客户端(stamp(.exe))和服务器(stampd(.exe)),可用于发送和接收数据包。它旨在完全兼容 RFC 8762 并包含 RFC 8972 的扩展。

使用 STAMP 的主要目的是测量两端之间的网络中的数据包丢失和延迟。除了配置外,两端还需要使用 NTP 或 PTP 标准同步时间。然后,STAMP 可以用来确定单向(无状态)或双向(有状态)的链路质量。

STAMP 是一个简单的协议,其中配置和会话处理超出标准范围。根据 RFC,使用什么通信通道为两端(发送方和反射器)提供适当的配置并不重要。stamp-suite 使用命令行作为配置的主要来源,因此需要在两侧执行辅助设置。

用法

stampd - 使用方法

基本用法是使用正确的选项调用二进制文件。您随时可以使用 -h 获取帮助。

USAGE:
    stampd.exe [OPTIONS]

OPTIONS:
    -4
            Force IPv4 addresses
    -6
            Force IPv6 addresses
    -A, --auth-mode <AUTH_MODE>
            Specify work mode - A for auth, E for encryped and O for open mode -  default "AEO" [default: AEO]
    -h, --help
            Print help information
    -K, --clock-source <CLOCK_SOURCE>
            Clock source to be used [default: NTP]
    -L <TIMEOUT>
            Amount of time to wait for packet until consider it lost [s] [default: 5]
    -o, --local-port <LOCAL_PORT>
            UDP port number for incoming packets [default: 852]
    -R
            Print individual statistics for each packet
    -S, --local-addr <LOCAL_ADDR>
            Local address to bind for [default: 0.0.0.0]
    -V, --version
            Print version information

stamp - 使用方法

基本用法是使用正确的选项调用二进制文件。您随时可以使用 -h 获取帮助。

USAGE:
    stamp.exe [OPTIONS] --remote-addr <REMOTE_ADDR>

OPTIONS:
    -4
            Force IPv4 addresses
    -6
            Force IPv6 addresses
    -A, --auth-mode <AUTH_MODE>
            Specify work mode - A for auth, E for encryped and O for open mode -  default "AEO"
            [default: AEO]
    -c, --count <COUNT>
            Count of packets to be sent [default: 852]
        --clock-source <CLOCK_SOURCE>
            Clock source to be used [default: NTP]
    -d, --send-delay <SEND_DELAY>
            Delay between next packets [default: 1000]
    -h, --help
            Print help information
    -L <TIMEOUT>
            Amount of time to wait for packet until consider it lost [s] [default: 5]
    -o, --local-port <LOCAL_PORT>
            UDP port number for incoming packets [default: 852]
    -p, --remote-port <REMOTE_PORT>
            UDP port number for outgoing packets [default: 852]
    -r, --remote-addr <REMOTE_ADDR>
            Remote address for Session Reflector
    -R
            Print individual statistics for each packet
    -S, --local-addr <LOCAL_ADDR>
            Local address to bind for [default: 0.0.0.0]
    -V, --version
            Print version information

进一步开发

stamp-suite 同时只能处理一个会话,因此可以用来将一个发送者与一个反射器精确关联。这可以在未来得到改进,因为一个反射器可以处理多个发送者。在讨论无状态模式时,这很简单,因为反射器需要做的只是复制原始字段并生成自己的时间戳(在未授权模式下)。当我们谈论有状态模式和多个会话时,事情变得更糟,其中一些会话可以启动,一些会话可以终止。由于 STAMP 本身不处理会话管理,因此需要在外部(某种方式)完成。当然,使用 4 元组参数是有问题的,因为为每个 4 元组配置会话反射器会使每个人都发疯,使用 RFC 8972 中描述的可选会话标识符似乎是最好的处理状态的方法。

贡献

欢迎提交拉取请求。对于重大更改,请先打开一个问题来讨论您想进行的更改。

请确保适当更新测试。

版本控制

我使用 SemVer 进行版本控制。有关可用的版本,请参阅此仓库的 标签

作者

  • Piotr Olszewski - 原始作品 - asmie

请参阅参与此项目的贡献者列表

许可

本项目采用MIT许可协议 - 有关详细信息,请参阅LICENSE 文件。

依赖项

~8–18MB
~224K SLoC