这个小型程序在指定端口接收UDP数据报,并将这些数据报重新发送到一组指定的接收器。此外,可以为每个接收器单独指定一个采样除数N,这样该接收器将只接收接收到的数据包中的N分之一。
本软件包发布在 https://github.com/sleinen/samplicator/
参见 INSTALL.md。
参见 AUTHORS 文件。
该程序的用法惯例为
$ samplicate [<option>...] [<destination>...]
其中每个 <option> 可以是以下之一
-d <level> 设置调试级别
-s <address> 设置监听传入数据包的接口地址
(默认监听任意接口)
-p <port> 设置监听传入数据包的UDP端口(默认2000)
-b <buflen> 接收缓冲区大小(默认65536)
-c <configfile> 指定要读取的配置文件
-x <delay> 指定每个数据包后的传输延迟,单位为微秒
-S 保持(伪造)源地址
-n 不计算UDP校验和(仅与 -S 相关)
-f 将程序 fork 到后台运行
-m <pidfile> 将进程ID写入文件
-4 仅IPv4
-6 仅IPv6
-h 打印使用信息并退出
-u <pdulen> 监听套接字上最大PDU大小(默认65536)
每个 <destination> 应指定为 <addr>[/<port>[/<interval>[,ttl]]],其中
<addr> 接收器的IP地址
<port> 接收器的UDP端口号(默认2000)
<freq> 该接收器每次复制数据包之间接收到的数据包数量
<ttl> 传出数据包的TTL(IPv4)或跳数限制(IPv6)
配置文件格式:
a.b.c.d[/e.f.g.h]: receiver ...
其中:
a.b.c.d 是发送者的IP地址
e.f.g.h 是应用于发送者的掩码(默认255.255.255.255)
receiver 参见上述说明。
在命令行中指定的接收器将接收所有数据包,而在配置文件中指定的接收器将只接收源地址匹配的数据包。