From 20b205070660f53f639ecaffb9323f4c641262e0 Mon Sep 17 00:00:00 2001 From: nnbcccscdscdsc <2709767634@qq.com> Date: Tue, 17 Mar 2026 16:28:35 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=94=B6=E5=8F=A3=E4=B8=BAhub/peer?= =?UTF-8?q?/bridge=20=E4=B8=89=E7=A8=8B=E5=BA=8F=E5=B9=B6=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=20=20=E6=94=AF=E6=8C=81=20tcp/udp/kcp"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + Makefile | 67 +- README.md | 435 +++--- include/logger.h | 7 + include/peer_transport.h | 59 + omni_logs.jsonl | 2640 ++--------------------------------- scripts/local_smoke_test.sh | 122 -- src/apps/bridge_main.c | 630 ++++----- src/apps/client_main.c | 844 ----------- src/apps/hub_main.c | 843 +++++------ src/apps/peer_main.c | 942 ++++++++----- src/apps/relay_main.c | 278 ---- src/apps/server_main.c | 858 ------------ src/apps/test_main.c | 190 --- src/core/logger.c | 88 +- src/core/network.c | 19 + src/core/peer_transport.c | 1141 +++++++++++++++ 17 files changed, 2766 insertions(+), 6398 deletions(-) create mode 100644 include/peer_transport.h delete mode 100755 scripts/local_smoke_test.sh delete mode 100644 src/apps/client_main.c delete mode 100644 src/apps/relay_main.c delete mode 100644 src/apps/server_main.c delete mode 100644 src/apps/test_main.c create mode 100644 src/core/peer_transport.c diff --git a/.gitignore b/.gitignore index 91b15f2..a17ca99 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ compile_commands.json *.mp4 *.avi *.dat +*.jsonl \ No newline at end of file diff --git a/Makefile b/Makefile index a13423f..3b5c644 100644 --- a/Makefile +++ b/Makefile @@ -14,79 +14,46 @@ BUILD_DIR ?= build CFLAGS ?= -O2 -g -Wall -Wextra -std=c11 CPPFLAGS ?= -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200809L LDFLAGS ?= -# 链接 pthread(apps 中有多线程)。 +# 链接 pthread。 LDLIBS ?= -lpthread INCLUDES := -Iinclude -# 所有二进制共享的核心源码(网络核心 + 协议实现 + ikcp)。 -COMMON_SRCS := \ - src/core/network.c \ +# hub / peer / bridge 共用的核心源码。 +PEER_STACK_SRCS := \ src/core/logger.c \ - src/protocols/tcp_impl.c \ - src/protocols/udp_impl.c \ - src/protocols/kcp_impl.c \ + src/core/peer_transport.c \ src/protocols/ikcp.c -# 各应用入口源文件。 -APP_TEST_SRC := src/apps/test_main.c -APP_CLIENT_SRC := src/apps/client_main.c -APP_SERVER_SRC := src/apps/server_main.c -APP_RELAY_SRC := src/apps/relay_main.c +# 当前保留的应用入口源文件。 APP_HUB_SRC := src/apps/hub_main.c APP_PEER_SRC := src/apps/peer_main.c APP_BRIDGE_SRC := src/apps/bridge_main.c # 将源文件映射到 BUILD_DIR 下的对象文件路径。 -COMMON_OBJS := $(patsubst %.c,$(BUILD_DIR)/%.o,$(COMMON_SRCS)) -TEST_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_TEST_SRC)) -CLIENT_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_CLIENT_SRC)) -SERVER_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_SERVER_SRC)) -RELAY_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_RELAY_SRC)) +PEER_STACK_OBJS := $(patsubst %.c,$(BUILD_DIR)/%.o,$(PEER_STACK_SRCS)) HUB_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_HUB_SRC)) PEER_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_PEER_SRC)) BRIDGE_OBJ := $(patsubst %.c,$(BUILD_DIR)/%.o,$(APP_BRIDGE_SRC)) -# 按目标清理时,仅删除对应可执行文件与专属入口对象,避免影响其它产物。 -CLIENT_CLEAN_FILES := $(BUILD_DIR)/omni_client $(CLIENT_OBJ) -ARM64_BUILD_DIR ?= build/arm64 -ARM64_CLIENT_OBJ := $(patsubst %.c,$(ARM64_BUILD_DIR)/%.o,$(APP_CLIENT_SRC)) -ARM64_CLIENT_CLEAN_FILES := $(ARM64_BUILD_DIR)/omni_client $(ARM64_CLIENT_OBJ) - -# 默认构建目标:4 个可执行程序。 +# 默认构建目标:仅保留 hub / peer / bridge。 TARGETS := \ - $(BUILD_DIR)/omni_test \ - $(BUILD_DIR)/omni_client \ - $(BUILD_DIR)/omni_server \ - $(BUILD_DIR)/omni_relay \ $(BUILD_DIR)/omni_hub \ $(BUILD_DIR)/omni_peer \ $(BUILD_DIR)/omni_bridge -.PHONY: all arm arm64 clean clean-client clean-arm64-client help +.PHONY: all arm arm64 clean help # 本机构建入口。 all: $(TARGETS) # 各可执行程序链接规则。 -$(BUILD_DIR)/omni_test: $(COMMON_OBJS) $(TEST_OBJ) +$(BUILD_DIR)/omni_hub: $(PEER_STACK_OBJS) $(HUB_OBJ) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) -$(BUILD_DIR)/omni_client: $(COMMON_OBJS) $(CLIENT_OBJ) +$(BUILD_DIR)/omni_peer: $(PEER_STACK_OBJS) $(PEER_OBJ) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) -$(BUILD_DIR)/omni_server: $(COMMON_OBJS) $(SERVER_OBJ) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) - -$(BUILD_DIR)/omni_relay: $(COMMON_OBJS) $(RELAY_OBJ) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) - -$(BUILD_DIR)/omni_hub: $(BUILD_DIR)/src/core/logger.o $(HUB_OBJ) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) - -$(BUILD_DIR)/omni_peer: $(BUILD_DIR)/src/core/logger.o $(PEER_OBJ) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) - -$(BUILD_DIR)/omni_bridge: $(BUILD_DIR)/src/core/logger.o $(BRIDGE_OBJ) +$(BUILD_DIR)/omni_bridge: $(PEER_STACK_OBJS) $(BRIDGE_OBJ) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) # 通用编译规则: @@ -104,14 +71,6 @@ arm: arm64: $(MAKE) BUILD_DIR=build/arm64 CC=$(ARM64_CC) all -# 仅清理当前 BUILD_DIR 下的 omni_client 与其入口对象。 -clean-client: - rm -f $(CLIENT_CLEAN_FILES) - -# 仅清理 build/arm64 下的 omni_client 与其入口对象。 -clean-arm64-client: - rm -f $(ARM64_CLIENT_CLEAN_FILES) - # 清理构建目录。 clean: rm -rf build @@ -121,7 +80,5 @@ help: @echo "make -> build native binaries in build/" @echo "make arm -> build ARM binaries in build/arm (arm-linux-gnueabihf-gcc)" @echo "make arm64 -> build ARM64 binaries in build/arm64 (aarch64-linux-gnu-gcc)" - @echo "generated binaries: omni_test omni_client omni_server omni_relay omni_hub omni_peer omni_bridge" - @echo "make clean-client -> remove omni_client and client_main.o in BUILD_DIR" - @echo "make clean-arm64-client -> remove omni_client and client_main.o in build/arm64" + @echo "generated binaries: omni_hub omni_peer omni_bridge" @echo "make clean -> remove build artifacts" diff --git a/README.md b/README.md index 81ebe87..fb03543 100644 --- a/README.md +++ b/README.md @@ -1,274 +1,213 @@ # OmniSocket -统一的 TCP / UDP / KCP 传输框架,包含: -- 协议抽象层(`omni_init / omni_send / omni_recv`) -- 客户端:文件分片发送 + 异步接收服务端 ASCII 指令 -- 服务端:接收并写文件 + 交互输入指令下发客户端 -- 转发器:A->B 中转,支持运行时动态修改目标端口 -- Hub:云端多客户端注册/绑定/路由,支持 A ↔ C ↔ B 命令透传 -- Peer:主动连接 Hub 的对等端,支持 `register / bind / send / say` -- 启动前时钟同步:客户端先测 `RTT + offset`,服务端据此输出补偿后的端到端时延 +OmniSocket 当前包含 3 个核心程序: +- `omni_peer` +- `omni_hub` +- `omni_bridge` -## 目录结构 - -```text -OmniSocket/ -├── include/ -│ ├── common.h # MsgHeader(type,len,timestamp)、消息类型、通用宏 -│ ├── network.h # 统一协议接口定义 -│ ├── kcp/ikcp.h # KCP 头文件 -│ └── logger.h # 日志与统计接口 -├── src/ -│ ├── protocols/ -│ │ ├── tcp_impl.c # TCP 实现(16字节头 + 粘包拆包) -│ │ ├── udp_impl.c # UDP 实现(sendto/recvfrom) -│ │ ├── kcp_impl.c # KCP 实现(基于 UDP + ikcp) -│ │ └── ikcp.c # KCP 源码 -│ ├── core/ -│ │ ├── network.c # 协议工厂分发 -│ │ └── logger.c # 性能统计日志 -│ └── apps/ -│ ├── client_main.c # 客户端入口 -│ ├── hub_main.c # Hub 入口(多客户端注册/路由) -│ ├── peer_main.c # Peer 入口(连接 Hub 的对等端) -│ ├── server_main.c # 服务端入口 -│ ├── relay_main.c # 转发器入口 -│ └── test_main.c # 简易协议连通性测试 -├── scripts/ -│ └── local_smoke_test.sh # 本机一键 smoke 测试 -├── build/ # 编译产物目录 -├── Makefile -└── README.md -``` +三者统一支持 `tcp | udp | kcp` 三种传输协议。 ## 构建 -### 本机构建 +本地构建: ```bash make ``` -生成: -- `build/omni_client` -- `build/omni_hub` +生成文件: - `build/omni_peer` -- `build/omni_server` -- `build/omni_relay` -- `build/omni_test` +- `build/omni_hub` +- `build/omni_bridge` -### ARM 交叉编译 - -默认使用 `arm-linux-gnueabihf-gcc`: +Jetson 场景常用 ARM64 交叉编译: ```bash -make arm +make arm64 ``` -生成到 `build/arm/` 目录。 +生成文件: +- `build/arm64/omni_peer` +- `build/arm64/omni_hub` +- `build/arm64/omni_bridge` -## 程序参数 - -### `omni_server` - -```bash -build/omni_server -p tcp|udp|kcp -P -o [-b ] -``` - -说明: -- 接收客户端发送的文件分片并写入 `output_file` -- 若在交互终端运行,可在标准输入输入 ASCII 文本并回发给客户端 -- 输入 `quit` 可退出服务端交互循环 - -### `omni_client` - -```bash -build/omni_client -p tcp|udp|kcp -H -P -f [-b ] [-m ] [-w ] -``` - -说明: -- 读取 `file`,按 `chunk_mtu`(默认 1400)分片发送 -- 发送结束后额外发送 `FILE_END` 控制包 -- 后台线程持续接收并打印服务端 ASCII 指令 -- `-w -1` 表示常驻模式,直到手动 `Ctrl+C` -- 建连后会先自动发送 `TIME_SYNC_REQ/RESP/REPORT`,以最小 RTT 样本估算 `server_time - client_time` -- 若同步响应不可达(例如经过当前实现的单向 relay),文件传输仍继续,但服务端不会产出补偿后的 `end_to_end_delay_ms` - -### `omni_relay` - -```bash -build/omni_relay -p tcp|udp|kcp -L -H -P -``` - -标准输入支持命令: -- `set `:动态修改转发目标 -- `show`:显示当前目标 -- `quit`:退出 relay - -### `omni_hub` - -```bash -build/omni_hub -P [-b ] [-p tcp] -``` - -说明: -- 当前阶段只实现 TCP 控制面 -- 多个 `omni_peer` 主动连接到 hub 后,先用 `client_id` 注册 -- hub 维护 `client_id -> socket` 映射,并按 `dst_id` 转发 `PEER_TUNNEL` +## 程序说明 ### `omni_peer` +`omni_peer` 支持两种工作模式: +- `hub` 模式:连接 `hub` 或 `bridge` +- `direct` 模式:`peer` 之间直接互连 + +常见用途: +- 发送文本命令 +- 发送文件 +- 接收文件 + +### `omni_hub` + +`omni_hub` 是中心注册与转发节点,通常部署在公网服务器或中心网络位置。 + +主要职责: +- 维护 `client_id -> session` +- 转发 `peer` 之间的 `bind / tunnel / status` + +### `omni_bridge` + +`omni_bridge` 是桥接节点,用于将远端 `peer` 接入上游 `hub`。 + +主要职责: +- 上游连接 `hub` +- 下游监听本地入口供 `peer` 接入 +- 适用于 `A <-> C <-> D <-> B` 这类桥接链路 + +当前限制: +- 一个 `bridge` 仅支持一个下游 `peer` +- 下游 `peer` 的 `-i` 必须与 `bridge -i` 保持一致 +- 上下游必须使用同一种协议,不支持协议转换 +- 当前实现更接近“单下游、单身份桥接”,而不是通用多租户中继 + +## 角色说明 + +- `A`:本地电脑 +- `B`:Jetson +- `C`:公网 Hub 服务器 +- `D`:公网 Bridge 服务器 + +下面示例中的 `` 可替换为 `tcp`、`udp` 或 `kcp`。 + +说明: +- 以下 `omni_peer` 示例统一采用长连接交互模式 +- 启动后连接会保持,不再使用“传输一次后自动退出”的一次性写法 +- 文本和文件传输通过终端中的交互命令完成 +- 若启动命令中使用了 `-m` 或 `-F`,程序会执行启动动作模式,而不是进入当前 README 使用的交互模式 + +## 常用参数与命令 + +| 分类 | 写法 | 含义 | +| --- | --- | --- | +| 启动参数 | `-i ` | 当前 `peer` 的逻辑身份。Hub 会根据这个 ID 记录 `client_id -> session` 映射,例如 `-i pc` 表示“我是 pc”,`-i jetson` 表示“我是 jetson”。 | +| 启动参数 | `-b ` | 启动后默认绑定的目标 `peer`。例如 `-b jetson` 表示后续直接输入 `send ...` 或 `put ...` 时,默认发给 `jetson`。 | +| 启动参数 | `-d ` | 启动动作模式下的显式目标。通常与 `-m` 或 `-F` 配合使用,表示把启动时的那条消息或那个文件直接发给指定目标。 | +| 启动参数 | `-o ` | 本地接收文件时的落盘路径。收到文件后会写入当前机器上的这个路径,例如 `-o /tmp/from_pc.bin`。 | +| 交互命令 | `bind ` | 将默认目标切换到指定 `peer`,后续 `send` 或 `put` 默认发给它。 | +| 交互命令 | `send ` | 向当前默认目标发送一条文本消息。 | +| 交互命令 | `say ` | 向指定 `peer` 发送一条文本消息,不修改当前默认目标。 | +| 交互命令 | `put ` | 将当前机器上的文件发送给当前默认目标。 | +| 交互命令 | `push ` | 将当前机器上的文件发送给指定 `peer`,不修改当前默认目标。 | +| 交互命令 | `show` | 显示当前本地状态,例如 `client_id`、当前绑定目标和输出路径。 | +| 交互命令 | `quit` | 退出当前 `omni_peer` 进程。 | + +## 场景 1:点对点直传 + +`A <-> B` + +B 端监听: + ```bash -build/omni_peer -H -P -i [-b ] [-d ] [-m ] [-w ] +./build/omni_peer -M direct -p -L 9001 -i jetson -o /tmp/from_pc.bin +``` + +A 端连接: + +```bash +./build/omni_peer -M direct -p -H -P 9001 -i pc -b jetson -o /tmp/from_jetson.bin +``` + +连接建立后,可在 A 端输入: + +```text +send start +put /tmp/input.bin +``` + +如需反向 `B -> A`,可在 B 端输入: + +```text +put /path/to/file.bin +``` + +## 场景 2:通过 Hub 中转 + +`A <-> C <-> B` + +C 端启动 Hub: +- C 维护着一张 `client_id -> session` 映射表,用于记录谁是 `pc`、谁是 `jetson`,并据此转发 `bind / tunnel / status` + +```bash +./build/omni_hub -p -P 9002 +``` + +B 端连接 Hub: + +```bash +./build/omni_peer -p -H -P 9002 -i jetson -o /tmp/from_pc.bin +``` + +A 端连接 Hub: + +```bash +./build/omni_peer -p -H -P 9002 -i pc -b jetson -o /tmp/from_jetson.bin +``` + +连接建立后,可在 A 端输入: + +```text +send start +put /tmp/input.bin +``` + +如需反向 `B -> A`,可在 B 端输入: + +```text +bind pc +put /path/to/file.bin +``` + +## 场景 3:通过 Bridge 桥接 + +`A <-> C <-> D <-> B` + +C 端启动 Hub: +- C 仍然维护 `client_id -> session` 映射表;A 以 `pc` 注册到 C,Bridge 以 `jetson` 这个逻辑身份注册到 C + +```bash +./build/omni_hub -p -P 9003 +``` + +D 端启动 Bridge: + +```bash +./build/omni_bridge -p -H -P 9003 -i jetson -L 9004 +``` + +B 端连接 Bridge: + +```bash +./build/omni_peer -p -H -P 9004 -i jetson -o /tmp/from_pc.bin +``` + +A 端连接 Hub: + +```bash +./build/omni_peer -p -H -P 9003 -i pc -b jetson -o /tmp/from_jetson.bin +``` + +连接建立后,可在 A 端输入: + +```text +send start +put /tmp/input.bin +``` + +如需反向 `B -> A`,可在 B 端输入: + +```text +bind pc +put /path/to/file.bin ``` 说明: -- `-i`:当前 peer 的逻辑 ID,后续所有路由都依赖它,不依赖私网 IP -- `-b`:启动后先请求绑定默认目标 -- `-m`:启动后立即发一条命令;若同时给了 `-d`,则直接发给该目标 -- `-w`:one-shot 模式下等待若干秒再退出,`-1` 表示常驻 +- 该场景已经实现 `A -> C -> D -> B` 与 `B -> D -> C -> A` 的桥接转发 +- 但当前 `bridge` 仍是单下游、单身份模型,不是完整的多节点桥接网络 -交互命令: -- `bind `:绑定默认目标 -- `send `:发给当前绑定目标 -- `say `:显式指定目标 -- `show`:显示本地 `client_id / bound_peer` -- `quit`:退出 - -## 快速启动(本机) - -先准备一个测试文件: - -```bash -dd if=/dev/urandom of=/tmp/input.bin bs=1400 count=64 -``` - -### TCP 直连(2 个终端) - -终端 1: - -```bash -build/omni_server -p tcp -P 9000 -o /tmp/out_tcp.bin -``` - -终端 2: - -```bash -build/omni_client -p tcp -H 127.0.0.1 -P 9000 -f /tmp/input.bin -``` - -校验: - -```bash -cmp -s /tmp/input.bin /tmp/out_tcp.bin && echo OK || echo FAIL -``` - -日志观察: -- client / server 的 `summary` 日志会新增 `clock_sync_ok`、`clock_offset_ms`、`clock_sync_rtt_ms`、`clock_sync_samples` -- server 侧的 `end_to_end_avg_ms` 在 `clock_sync_ok=1` 时表示已经按 offset 补偿后的端到端时延 - -### UDP 直连(2 个终端) - -终端 1: - -```bash -build/omni_server -p udp -P 9001 -o /tmp/out_udp.bin -``` - -终端 2: - -```bash -build/omni_client -p udp -H 127.0.0.1 -P 9001 -f /tmp/input.bin -``` - -校验: - -```bash -cmp -s /tmp/input.bin /tmp/out_udp.bin && echo OK || echo FAIL -``` - -### KCP 直连(2 个终端) - -终端 1: - -```bash -build/omni_server -p kcp -P 9002 -o /tmp/out_kcp.bin -``` - -终端 2: - -```bash -build/omni_client -p kcp -H 127.0.0.1 -P 9002 -f /tmp/input.bin -``` - -校验: - -```bash -cmp -s /tmp/input.bin /tmp/out_kcp.bin && echo OK || echo FAIL -``` - -## Relay 场景示例(3 个终端) - -终端 1(最终接收端 B): - -```bash -build/omni_server -p udp -P 9102 -o /tmp/out_relay.bin -``` - -终端 2(relay): - -```bash -build/omni_relay -p udp -L 9101 -H 127.0.0.1 -P 9102 -``` - -终端 3(发送端 A): - -```bash -build/omni_client -p udp -H 127.0.0.1 -P 9101 -f /tmp/input.bin -``` - -relay 终端可输入: - -```text -show -set 127.0.0.1 9103 -``` - -## Hub / Peer 场景(3 个终端) - -终端 1(cloud hub C): - -```bash -build/omni_hub -P 9200 -``` - -终端 2(peer B): - -```bash -build/omni_peer -H 127.0.0.1 -P 9200 -i beta -``` - -终端 3(peer A): - -```bash -build/omni_peer -H 127.0.0.1 -P 9200 -i alpha -``` - -在 A 终端输入: - -```text -bind beta -send hello-from-alpha -``` - -此时 B 终端会打印: - -```text -[peer alpha -> beta] hello-from-alpha -``` - -本地一键 smoke: - -```bash -./scripts/local_peer_smoke_test.sh -``` diff --git a/include/logger.h b/include/logger.h index 1277d24..ad34356 100644 --- a/include/logger.h +++ b/include/logger.h @@ -80,6 +80,13 @@ typedef struct OmniStats { /* 初始化统计模块,在程序启动时调用一次 */ void logger_init(void); +/* 设置当前进程的日志上下文,便于 perf/jsonl 日志携带协议与节点信息。 */ +void logger_set_context(const char *app, + const char *proto, + const char *mode, + const char *role, + const char *self_id); + /* 记录一次发送/接收 */ void logger_on_send(size_t bytes); void logger_on_recv(size_t bytes); diff --git a/include/peer_transport.h b/include/peer_transport.h new file mode 100644 index 0000000..6814bbe --- /dev/null +++ b/include/peer_transport.h @@ -0,0 +1,59 @@ +#ifndef OMNISOCKET_PEER_TRANSPORT_H +#define OMNISOCKET_PEER_TRANSPORT_H + +#include "common.h" +#include "network.h" + +#include +#include + +typedef struct PeerTransport PeerTransport; +typedef struct PeerTransportSession PeerTransportSession; + +typedef struct PeerTransportEvent { + int kind; + PeerTransportSession *session; + MsgHeader header; +} PeerTransportEvent; + +enum { + PEER_TRANSPORT_EVENT_NONE = 0, + PEER_TRANSPORT_EVENT_MESSAGE = 1, + PEER_TRANSPORT_EVENT_CLOSED = 2 +}; + +PeerTransport *peer_transport_open(OmniRole role, + OmniProtocol proto, + const char *bind_ip, + uint16_t bind_port, + const char *peer_ip, + uint16_t peer_port); + +void peer_transport_close(PeerTransport *transport); + +PeerTransportSession *peer_transport_default_session(PeerTransport *transport); + +int peer_transport_send(PeerTransport *transport, + PeerTransportSession *session, + uint32_t type, + const void *payload, + uint32_t payload_len); + +int peer_transport_next_event(PeerTransport *transport, + PeerTransportEvent *event, + uint8_t *payload_buf, + size_t payload_cap, + int timeout_ms); + +void peer_transport_close_session(PeerTransport *transport, + PeerTransportSession *session); + +const char *peer_transport_session_remote(const PeerTransportSession *session, + char *buf, + size_t buf_sz); + +uint16_t peer_transport_session_remote_port(const PeerTransportSession *session); + +const char *peer_transport_proto_name(OmniProtocol proto); + +#endif diff --git a/omni_logs.jsonl b/omni_logs.jsonl index 2c302c0..5ea9322 100644 --- a/omni_logs.jsonl +++ b/omni_logs.jsonl @@ -1,2528 +1,112 @@ -{"ts_ms":144476117,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":144476117,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":144512032,"level":"INFO","component":"tcp","message":"listening port=20688"} -{"ts_ms":144513034,"level":"INFO","component":"tcp","message":"connected peer_ip=127.0.0.1 peer_port=20688"} -{"ts_ms":144513034,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=1 bind_port=20688 peer_port=0"} -{"ts_ms":144513034,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=0 bind_port=0 peer_port=20688"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":1464,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.011689,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.011689,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":6.774902,"recv_buffer_pct_avg":6.774902,"recv_buffer_pct_max":6.774902,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513034,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513035,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":144513035,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":144513035,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":144513035,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":144513035,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":144513035,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":144513035,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":144513035,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":144513035,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=143013017 bytes=44800 total_chunks=32"} -{"ts_ms":144513035,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=0 transfer_id=143013017 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.374 rx_current_mbps=0.012 processing_avg_ms=0.000 queue_avg_ms=882.012 transmission_avg_ms=119.247 propagation_avg_ms=0.000 end_to_end_avg_ms=0.000 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=2.57 cwnd_avg=10.00 tcp_retrans=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_retrans_rate_pct=0.00"} -{"ts_ms":144513035,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":144513035,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513035,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":144513035,"level":"INFO","component":"client","message":"transfer_ack transfer_id=143013017 bytes_written=44800 rtt_ms=0"} -{"ts_ms":144513134,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1102,"bytes_sent":48,"bytes_recv":46888,"send_count":1,"recv_count":33,"tx_current_mbps":0.003840,"rx_current_mbps":3.633920,"tx_avg_mbps":0.000348,"rx_avg_mbps":0.340385,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.409600,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":882.011927,"queue_min_ms":0.000390,"queue_max_ms":8103.606557,"transmission_avg_ms":115.769472,"transmission_min_ms":0.000881,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":2.493286,"recv_buffer_pct_max":9.033203,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":144514035,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=tcp transfer_id=143013017 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.375 tx_current_mbps=0.000 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=0.000 transmission_avg_ms=0.220 propagation_avg_ms=0.000 last_rtt_ms=0 min_rtt_ms=0 send_buffer_avg_pct=0.01 recv_buffer_avg_pct=0.00 cwnd_avg=10.00 tcp_retrans=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=1 ack_rtt_ms=0 ack_bytes_written=44800"} -{"ts_ms":144514035,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1001,"bytes_sent":46888,"bytes_recv":48,"send_count":33,"recv_count":1,"tx_current_mbps":0.374729,"rx_current_mbps":0.000384,"tx_avg_mbps":0.374729,"rx_avg_mbps":0.000384,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.512000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":99,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.512000,"proto_recv_avg_ms":1.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.219539,"transmission_min_ms":0.000853,"transmission_max_ms":1.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.006611,"send_buffer_pct_max":0.056347,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":144514037,"level":"INFO","component":"udp","message":"init bind_port=20690 peer_ip=NULL peer_port=0"} -{"ts_ms":144514037,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=20690 peer_port=0"} -{"ts_ms":144514037,"level":"INFO","component":"udp","message":"init bind_port=20689 peer_ip=NULL peer_port=0"} -{"ts_ms":144514037,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=20689 peer_port=0"} -{"ts_ms":144514038,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=20690"} -{"ts_ms":144514038,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=20690"} -{"ts_ms":144514038,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=20690"} -{"ts_ms":144514038,"level":"INFO","component":"udp","message":"init bind_port=20691 peer_ip=NULL peer_port=0"} -{"ts_ms":144514038,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=20691 peer_port=0"} -{"ts_ms":144514038,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=20691"} -{"ts_ms":144514038,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=20691"} -{"ts_ms":144514038,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1,"bytes_sent":0,"bytes_recv":0,"send_count":0,"recv_count":0,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":144514038,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=20691"} -{"ts_ms":144515039,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=20689"} -{"ts_ms":144515039,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=20689"} -{"ts_ms":144515039,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":1464,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.011700,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.011689,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1001,"recv_call_min_ms":1001,"recv_call_max_ms":1001,"recv_call_avg_ms":1001.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1001.000000,"transmission_min_ms":1001.000000,"transmission_max_ms":1001.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":144515039,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515039,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515039,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515039,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515039,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515039,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515039,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515039,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515039,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515039,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=143012705 bytes=44800 total_chunks=32"} -{"ts_ms":144515039,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515039,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":1464,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.011689,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.011689,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1001,"recv_call_min_ms":1001,"recv_call_max_ms":1001,"recv_call_avg_ms":1001.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.687350,"recv_buffer_pct_avg":0.687350,"recv_buffer_pct_max":0.687350,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":144515039,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515039,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":144515040,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":144515040,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=1 transfer_id=143012705 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.374 rx_current_mbps=0.012 processing_avg_ms=0.031 queue_avg_ms=47.933 transmission_avg_ms=30.486 propagation_avg_ms=0.000 end_to_end_avg_ms=0.000 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.46 cwnd_avg=0.00 tcp_retrans=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_retrans_rate_pct=0.00"} -{"ts_ms":144515040,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":144515139,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1102,"bytes_sent":48,"bytes_recv":46888,"send_count":1,"recv_count":33,"tx_current_mbps":0.003840,"rx_current_mbps":3.633920,"tx_avg_mbps":0.000348,"rx_avg_mbps":0.340385,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1001,"recv_call_avg_ms":0.793074,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.031250,"processing_min_ms":0.000000,"processing_max_ms":1.000000,"queue_avg_ms":47.933226,"queue_min_ms":0.050000,"queue_max_ms":1003.000000,"transmission_avg_ms":29.618474,"transmission_min_ms":0.000881,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.444756,"recv_buffer_pct_max":0.687350,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":144516040,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=udp transfer_id=143012705 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.375 tx_current_mbps=0.000 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=0.000 transmission_avg_ms=0.000 propagation_avg_ms=0.000 last_rtt_ms=0 min_rtt_ms=0 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=0.00 tcp_retrans=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0"} -{"ts_ms":144516103,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1064,"bytes_sent":46888,"bytes_recv":0,"send_count":33,"recv_count":0,"tx_current_mbps":0.352541,"rx_current_mbps":0.000000,"tx_avg_mbps":0.352541,"rx_avg_mbps":0.000000,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":148985674,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":148985674,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":148986675,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":148986675,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":150897459,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":150897459,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":150927455,"level":"INFO","component":"tcp","message":"listening port=31440"} -{"ts_ms":150928456,"level":"INFO","component":"tcp","message":"connected peer_ip=127.0.0.1 peer_port=31440"} -{"ts_ms":150928456,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=1 bind_port=31440 peer_port=0"} -{"ts_ms":150928456,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=0 bind_port=0 peer_port=31440"} -{"ts_ms":150928456,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928456,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=203000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928456,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1001,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000256,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000256,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1001.000000,"transmission_min_ms":1001.000000,"transmission_max_ms":1001.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":150928456,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928456,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=150928456 server_send_ts_ms=150928456"} -{"ts_ms":150928456,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928461,"level":"INFO","component":"client","message":"time_sync_sample probe_id=1 rtt_ms=0 offset_ms=0"} -{"ts_ms":150928461,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928461,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928461,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928461,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=150928461 server_send_ts_ms=150928461"} -{"ts_ms":150928461,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928466,"level":"INFO","component":"client","message":"time_sync_sample probe_id=2 rtt_ms=0 offset_ms=0"} -{"ts_ms":150928466,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928466,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928466,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928466,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928466,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=150928466 server_send_ts_ms=150928466"} -{"ts_ms":150928471,"level":"INFO","component":"client","message":"time_sync_sample probe_id=3 rtt_ms=0 offset_ms=0"} -{"ts_ms":150928472,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":150928472,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":150928472,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928472,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=150928472 server_send_ts_ms=150928472"} -{"ts_ms":150928472,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928477,"level":"INFO","component":"client","message":"time_sync_sample probe_id=4 rtt_ms=0 offset_ms=0"} -{"ts_ms":150928477,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928477,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928477,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928477,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928477,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=150928477 server_send_ts_ms=150928477"} -{"ts_ms":150928482,"level":"INFO","component":"client","message":"time_sync_sample probe_id=5 rtt_ms=0 offset_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"client","message":"time_sync_selected offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"server","message":"time_sync_ready offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":150928482,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":150928483,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=6"} -{"ts_ms":150928483,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=1"} -{"ts_ms":150928483,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":150928483,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":150928483,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":150928483,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":150928483,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":150928483,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":150928483,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=149022823 bytes=44800 total_chunks=32"} -{"ts_ms":150928483,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=0 transfer_id=149022823 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.366 rx_current_mbps=0.000 processing_avg_ms=0.000 queue_avg_ms=0.946 transmission_avg_ms=48.728 propagation_avg_ms=0.000 end_to_end_avg_ms=0.062 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.05 cwnd_avg=10.00 tcp_retrans=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_retrans_rate_pct=0.00 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":150928483,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":150928483,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928483,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":150928483,"level":"INFO","component":"client","message":"transfer_ack transfer_id=149022823 bytes_written=44800 rtt_ms=0"} -{"ts_ms":150928556,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1101,"bytes_sent":288,"bytes_recv":47088,"send_count":6,"recv_count":39,"tx_current_mbps":0.023040,"rx_current_mbps":3.764480,"tx_avg_mbps":0.002093,"rx_avg_mbps":0.342147,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":6,"recv_call_avg_ms":0.085170,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.003250,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.945895,"queue_min_ms":0.010480,"queue_max_ms":6.387782,"transmission_avg_ms":47.745308,"transmission_min_ms":0.022951,"transmission_max_ms":1001.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.062500,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":1.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.051812,"recv_buffer_pct_max":1.129150,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":150929483,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=tcp transfer_id=149022823 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.367 tx_current_mbps=0.000 rx_avg_mbps=0.002 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=6.354 transmission_avg_ms=3.214 propagation_avg_ms=0.000 last_rtt_ms=0 min_rtt_ms=0 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=10.00 tcp_retrans=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=1 ack_rtt_ms=0 ack_bytes_written=44800 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":150929483,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1027,"bytes_sent":47088,"bytes_recv":288,"send_count":39,"recv_count":6,"tx_current_mbps":0.366800,"rx_current_mbps":0.002243,"tx_avg_mbps":0.366800,"rx_avg_mbps":0.002243,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.512000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":73,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.512000,"proto_recv_avg_ms":5.328000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":6.354029,"queue_min_ms":6.354029,"queue_max_ms":6.354029,"transmission_avg_ms":3.213793,"transmission_min_ms":0.022936,"transmission_max_ms":22.875000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.001252,"send_buffer_pct_max":0.056347,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":150929486,"level":"INFO","component":"udp","message":"init bind_port=31443 peer_ip=NULL peer_port=0"} -{"ts_ms":150929486,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=31443 peer_port=0"} -{"ts_ms":150929486,"level":"INFO","component":"udp","message":"init bind_port=31442 peer_ip=NULL peer_port=0"} -{"ts_ms":150929486,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=31442 peer_port=0"} -{"ts_ms":150929486,"level":"INFO","component":"udp","message":"init bind_port=31441 peer_ip=NULL peer_port=0"} -{"ts_ms":150929486,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=31441 peer_port=0"} -{"ts_ms":150929486,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=31442"} -{"ts_ms":150929486,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=31442"} -{"ts_ms":150929486,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=31442"} -{"ts_ms":150929486,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=31443"} -{"ts_ms":150929486,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=31443"} -{"ts_ms":150929486,"level":"INFO","component":"perf","tag":"final","elapsed_ms":0,"bytes_sent":0,"bytes_recv":0,"send_count":0,"recv_count":0,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":150929486,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=31443"} -{"ts_ms":150930488,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=31441"} -{"ts_ms":150930488,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=31441"} -{"ts_ms":150930488,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1002,"recv_call_min_ms":1002,"recv_call_max_ms":1002,"recv_call_avg_ms":1002.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":150930488,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":150930488,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1002,"recv_call_min_ms":1002,"recv_call_max_ms":1002,"recv_call_avg_ms":1002.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":150930488,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=150930488 server_send_ts_ms=150930488"} -{"ts_ms":150930994,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=1 timeout_ms=500"} -{"ts_ms":150930995,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":150930995,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=150930995 server_send_ts_ms=150930995"} -{"ts_ms":150931500,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=2 timeout_ms=500"} -{"ts_ms":150931500,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":1012,"bytes_sent":96,"bytes_recv":0,"send_count":3,"recv_count":0,"tx_current_mbps":0.000759,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000759,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":44800,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.800000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":295.416667,"transmission_min_ms":253.500000,"transmission_max_ms":337.333333,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":150931500,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2014,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000506,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000254,"rx_avg_mbps":0.000381,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":505,"recv_call_min_ms":505,"recv_call_max_ms":1002,"recv_call_avg_ms":823.400000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":760.500000,"queue_min_ms":760.500000,"queue_max_ms":760.500000,"transmission_avg_ms":654.100000,"transmission_min_ms":253.500000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.004507,"recv_buffer_pct_max":0.022536,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":150931501,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":150931501,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2015,"bytes_sent":96,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000758,"rx_current_mbps":0.000505,"tx_avg_mbps":0.000381,"rx_avg_mbps":0.000381,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":506,"recv_call_min_ms":506,"recv_call_max_ms":1002,"recv_call_avg_ms":823.600000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":654.200000,"transmission_min_ms":253.500000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":150931501,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=150931501 server_send_ts_ms=150931501"} -{"ts_ms":150932007,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=3 timeout_ms=500"} -{"ts_ms":150932007,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":150932007,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=150932007 server_send_ts_ms=150932007"} -{"ts_ms":150932514,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=4 timeout_ms=500"} -{"ts_ms":150932514,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":2026,"bytes_sent":160,"bytes_recv":0,"send_count":5,"recv_count":0,"tx_current_mbps":0.000505,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000632,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":44800,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.512000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":401.208333,"transmission_min_ms":253.500000,"transmission_max_ms":507.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":150932514,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3028,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000505,"rx_current_mbps":0.000505,"tx_avg_mbps":0.000338,"rx_avg_mbps":0.000423,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":507,"recv_call_min_ms":505,"recv_call_max_ms":1002,"recv_call_avg_ms":709.336000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":842.833333,"queue_min_ms":760.500000,"queue_max_ms":1007.500000,"transmission_avg_ms":504.333333,"transmission_min_ms":1.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.007512,"recv_buffer_pct_max":0.022536,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":150932514,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":150932514,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3028,"bytes_sent":192,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000758,"rx_current_mbps":0.000505,"tx_avg_mbps":0.000507,"rx_avg_mbps":0.000423,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":507,"recv_call_min_ms":506,"recv_call_max_ms":1002,"recv_call_avg_ms":709.464000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":578.685185,"transmission_min_ms":253.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":150932514,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=150932514 server_send_ts_ms=150932514"} -{"ts_ms":150933020,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=5 timeout_ms=500"} -{"ts_ms":150933020,"level":"WARN","component":"client","message":"time_sync_no_valid_sample"} -{"ts_ms":150933020,"level":"WARN","component":"client","message":"time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=148902111 bytes=44800 total_chunks=32"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933020,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933021,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933021,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933021,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933021,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933021,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":150933021,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":150933021,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=1 transfer_id=148902111 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.106 rx_current_mbps=0.001 processing_avg_ms=0.000 queue_avg_ms=0.000 transmission_avg_ms=182.976 propagation_avg_ms=0.000 end_to_end_avg_ms=0.000 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=0.00 tcp_retrans=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_retrans_rate_pct=0.00 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":150933021,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":150933089,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3603,"bytes_sent":288,"bytes_recv":47048,"send_count":6,"recv_count":38,"tx_current_mbps":0.001336,"rx_current_mbps":0.652355,"tx_avg_mbps":0.000639,"rx_avg_mbps":0.104464,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1002,"recv_call_avg_ms":0.595391,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":184.578745,"transmission_min_ms":0.432520,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":150934020,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=udp transfer_id=148902111 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.107 tx_current_mbps=0.001 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=0.000 transmission_avg_ms=98.888 propagation_avg_ms=0.000 last_rtt_ms=0 min_rtt_ms=0 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=0.00 tcp_retrans=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":150934021,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3533,"bytes_sent":47048,"bytes_recv":0,"send_count":38,"recv_count":0,"tx_current_mbps":0.248908,"rx_current_mbps":0.000000,"tx_avg_mbps":0.106534,"rx_avg_mbps":0.000000,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.000325,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":98.888205,"transmission_min_ms":0.431667,"transmission_max_ms":507.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"kcp_retrans":0} -{"ts_ms":153494403,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":153494403,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":153495404,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":153495404,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":153568409,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":153568409,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":153662164,"level":"INFO","component":"tcp","message":"listening port=30062"} -{"ts_ms":153663166,"level":"INFO","component":"tcp","message":"connected peer_ip=127.0.0.1 peer_port=30062"} -{"ts_ms":153663166,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=1 bind_port=30062 peer_port=0"} -{"ts_ms":153663166,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=0 bind_port=0 peer_port=30062"} -{"ts_ms":153663166,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=205000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":153663166,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":153663166,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":153663166,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":153663166,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=153663166 server_send_ts_ms=153663166"} -{"ts_ms":153663166,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":153663171,"level":"INFO","component":"client","message":"time_sync_sample probe_id=1 rtt_ms=0 offset_ms=0"} -{"ts_ms":153663171,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663171,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663171,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":153663171,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":153663171,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=153663171 server_send_ts_ms=153663171"} -{"ts_ms":153663176,"level":"INFO","component":"client","message":"time_sync_sample probe_id=2 rtt_ms=0 offset_ms=0"} -{"ts_ms":153663176,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663176,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663176,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":153663176,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=153663176 server_send_ts_ms=153663176"} -{"ts_ms":153663176,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":153663181,"level":"INFO","component":"client","message":"time_sync_sample probe_id=3 rtt_ms=0 offset_ms=0"} -{"ts_ms":153663181,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663181,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663182,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":153663182,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":153663182,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=153663182 server_send_ts_ms=153663182"} -{"ts_ms":153663187,"level":"INFO","component":"client","message":"time_sync_sample probe_id=4 rtt_ms=1 offset_ms=0"} -{"ts_ms":153663187,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663187,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663187,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":153663187,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=153663187 server_send_ts_ms=153663187"} -{"ts_ms":153663187,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"client","message":"time_sync_sample probe_id=5 rtt_ms=0 offset_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"client","message":"time_sync_selected offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":153663192,"level":"INFO","component":"server","message":"time_sync_ready offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=14 bytes_sent=1776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=16 bytes_sent=3256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=18 bytes_sent=4736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=20 bytes_sent=6216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=22 bytes_sent=7696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=24 bytes_sent=9176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=26 bytes_sent=10656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=28 bytes_sent=12136 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=30 bytes_sent=13616 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=32 bytes_sent=15096 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=34 bytes_sent=16576 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=36 bytes_sent=18056 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=38 bytes_sent=19536 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=40 bytes_sent=21016 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=42 bytes_sent=22496 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=44 bytes_sent=23976 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=46 bytes_sent=25456 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=48 bytes_sent=26936 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=50 bytes_sent=28416 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=52 bytes_sent=29896 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=54 bytes_sent=31376 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":153663192,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=56 bytes_sent=32856 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=58 bytes_sent=34336 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=60 bytes_sent=35816 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=62 bytes_sent=37296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=64 bytes_sent=38776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=66 bytes_sent=40256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=68 bytes_sent=41736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=70 bytes_sent=43216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=72 bytes_sent=44696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=74 bytes_sent=46176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=76 bytes_sent=47656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=78 bytes_sent=47712 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=151708072 bytes=44800 total_chunks=32"} -{"ts_ms":153663193,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=0 transfer_id=151708072 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.366 rx_current_mbps=0.000 processing_avg_ms=0.000 queue_avg_ms=2.577 transmission_avg_ms=48.781 propagation_avg_ms=0.000 end_to_end_avg_ms=0.031 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.21 cwnd_avg=10.00 tcp_retrans=0 tcp_data_segs_out=10 tcp_original_bytes=320 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":153663193,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=384 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=78 bytes_sent=47712 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":153663193,"level":"INFO","component":"client","message":"transfer_ack transfer_id=151708072 bytes_written=44800 rtt_ms=0"} -{"ts_ms":153663267,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1103,"bytes_sent":288,"bytes_recv":47088,"send_count":6,"recv_count":39,"tx_current_mbps":0.022812,"rx_current_mbps":3.727208,"tx_avg_mbps":0.002089,"rx_avg_mbps":0.341527,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":6,"recv_call_avg_ms":0.016994,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.003169,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":2.576940,"queue_min_ms":0.013343,"queue_max_ms":12.428941,"transmission_avg_ms":47.797038,"transmission_min_ms":0.022951,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.031250,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":1.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.202908,"recv_buffer_pct_max":1.129150,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":12,"tcp_data_bytes_sent":384,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":153664193,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=tcp transfer_id=151708072 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.367 tx_current_mbps=0.000 rx_avg_mbps=0.002 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=6.364 transmission_avg_ms=3.216 propagation_avg_ms=0.500 last_rtt_ms=1 min_rtt_ms=1 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=10.00 tcp_retrans=0 tcp_data_segs_out=78 tcp_original_bytes=47712 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=1 ack_rtt_ms=0 ack_bytes_written=44800 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":153664194,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1028,"bytes_sent":47088,"bytes_recv":288,"send_count":39,"recv_count":6,"tx_current_mbps":0.366444,"rx_current_mbps":0.002241,"tx_avg_mbps":0.366444,"rx_avg_mbps":0.002241,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.068719,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":74,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":5.328000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":6.364404,"queue_min_ms":2.592992,"queue_max_ms":7.875000,"transmission_avg_ms":3.216395,"transmission_min_ms":0.022936,"transmission_max_ms":22.875000,"propagation_avg_ms":0.500000,"propagation_min_ms":0.500000,"propagation_max_ms":0.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.002626,"send_buffer_pct_max":0.056347,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":1,"min_rtt_ms":1,"max_rtt_ms":1,"tcp_retrans":0,"tcp_data_segs_out":78,"tcp_data_bytes_sent":47712,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":153664197,"level":"INFO","component":"udp","message":"init bind_port=30064 peer_ip=NULL peer_port=0"} -{"ts_ms":153664197,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=30064 peer_port=0"} -{"ts_ms":153664197,"level":"INFO","component":"udp","message":"init bind_port=30065 peer_ip=NULL peer_port=0"} -{"ts_ms":153664197,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=30065 peer_port=0"} -{"ts_ms":153664197,"level":"INFO","component":"udp","message":"init bind_port=30063 peer_ip=NULL peer_port=0"} -{"ts_ms":153664197,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=30063 peer_port=0"} -{"ts_ms":153664197,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=30064"} -{"ts_ms":153664197,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=30064"} -{"ts_ms":153664197,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=30064"} -{"ts_ms":153664197,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=30065"} -{"ts_ms":153664197,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=30065"} -{"ts_ms":153664197,"level":"INFO","component":"perf","tag":"final","elapsed_ms":0,"bytes_sent":0,"bytes_recv":0,"send_count":0,"recv_count":0,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":153664197,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=30065"} -{"ts_ms":153665199,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=30063"} -{"ts_ms":153665199,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=30063"} -{"ts_ms":153665199,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1002,"recv_call_min_ms":1002,"recv_call_max_ms":1002,"recv_call_avg_ms":1002.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":153665199,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":153665199,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1002,"recv_call_min_ms":1002,"recv_call_max_ms":1002,"recv_call_avg_ms":1002.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":153665199,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=153665199 server_send_ts_ms=153665199"} -{"ts_ms":153665705,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=1 timeout_ms=500"} -{"ts_ms":153665705,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":153665705,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=153665705 server_send_ts_ms=153665705"} -{"ts_ms":153666211,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=2 timeout_ms=500"} -{"ts_ms":153666211,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":1012,"bytes_sent":96,"bytes_recv":0,"send_count":3,"recv_count":0,"tx_current_mbps":0.000759,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000759,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":44800,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":295.166667,"transmission_min_ms":253.000000,"transmission_max_ms":337.333333,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":153666211,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2014,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000506,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000254,"rx_avg_mbps":0.000381,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":506,"recv_call_min_ms":506,"recv_call_max_ms":1002,"recv_call_avg_ms":823.440000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":759.000000,"queue_min_ms":759.000000,"queue_max_ms":759.000000,"transmission_avg_ms":653.800000,"transmission_min_ms":253.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.004507,"recv_buffer_pct_max":0.022536,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":153666211,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":153666211,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2014,"bytes_sent":96,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000759,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000381,"rx_avg_mbps":0.000381,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":506,"recv_call_min_ms":506,"recv_call_max_ms":1002,"recv_call_avg_ms":823.440000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":653.800000,"transmission_min_ms":253.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":153666211,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=153666211 server_send_ts_ms=153666211"} -{"ts_ms":153666717,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=3 timeout_ms=500"} -{"ts_ms":153666717,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":153666717,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=153666717 server_send_ts_ms=153666717"} -{"ts_ms":153667223,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=4 timeout_ms=500"} -{"ts_ms":153667223,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":2024,"bytes_sent":160,"bytes_recv":0,"send_count":5,"recv_count":0,"tx_current_mbps":0.000506,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000632,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":44800,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":400.583333,"transmission_min_ms":253.000000,"transmission_max_ms":506.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":153667223,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3026,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000506,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000338,"rx_avg_mbps":0.000423,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":506,"recv_call_min_ms":506,"recv_call_max_ms":1002,"recv_call_avg_ms":709.161600,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":841.666667,"queue_min_ms":759.000000,"queue_max_ms":1007.000000,"transmission_avg_ms":578.370370,"transmission_min_ms":253.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.007512,"recv_buffer_pct_max":0.022536,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":153667224,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":153667224,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3027,"bytes_sent":192,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000758,"rx_current_mbps":0.000505,"tx_avg_mbps":0.000507,"rx_avg_mbps":0.000423,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":507,"recv_call_min_ms":506,"recv_call_max_ms":1002,"recv_call_avg_ms":709.361600,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":578.425926,"transmission_min_ms":253.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":153667224,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=153667224 server_send_ts_ms=153667224"} -{"ts_ms":153667730,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=5 timeout_ms=500"} -{"ts_ms":153667730,"level":"WARN","component":"client","message":"time_sync_no_valid_sample"} -{"ts_ms":153667730,"level":"WARN","component":"client","message":"time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=151710058 bytes=44800 total_chunks=32"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":153667730,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":153667730,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=1 transfer_id=151710058 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.107 rx_current_mbps=0.001 processing_avg_ms=0.000 queue_avg_ms=4795.236 transmission_avg_ms=182.913 propagation_avg_ms=0.000 end_to_end_avg_ms=0.000 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.11 cwnd_avg=0.00 tcp_retrans=0 tcp_data_segs_out=0 tcp_original_bytes=0 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":153667731,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":153667800,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3603,"bytes_sent":288,"bytes_recv":47048,"send_count":6,"recv_count":38,"tx_current_mbps":0.001333,"rx_current_mbps":0.651222,"tx_avg_mbps":0.000639,"rx_avg_mbps":0.104464,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1002,"recv_call_avg_ms":0.529790,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":4795.235714,"queue_min_ms":84.333333,"queue_max_ms":32326.950000,"transmission_avg_ms":184.517354,"transmission_min_ms":0.431667,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.109351,"recv_buffer_pct_max":0.687350,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":153668730,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=udp transfer_id=151710058 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.107 tx_current_mbps=0.001 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=0.000 transmission_avg_ms=98.930 propagation_avg_ms=0.000 last_rtt_ms=0 min_rtt_ms=0 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=0.00 tcp_retrans=0 tcp_data_segs_out=0 tcp_original_bytes=0 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":153668731,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3532,"bytes_sent":47048,"bytes_recv":0,"send_count":38,"recv_count":0,"tx_current_mbps":0.248743,"rx_current_mbps":0.000000,"tx_avg_mbps":0.106564,"rx_avg_mbps":0.000000,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":98.930349,"transmission_min_ms":0.432520,"transmission_max_ms":507.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154014951,"level":"INFO","component":"tcp","message":"listening port=32900"} -{"ts_ms":154015953,"level":"INFO","component":"tcp","message":"connected peer_ip=127.0.0.1 peer_port=32900"} -{"ts_ms":154015953,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=1 bind_port=32900 peer_port=0"} -{"ts_ms":154015953,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=0 bind_port=0 peer_port=32900"} -{"ts_ms":154015953,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015953,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=204000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015953,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154015953,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015953,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=154015953 server_send_ts_ms=154015953"} -{"ts_ms":154015953,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015958,"level":"INFO","component":"client","message":"time_sync_sample probe_id=1 rtt_ms=0 offset_ms=0"} -{"ts_ms":154015958,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015958,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015958,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015958,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=154015958 server_send_ts_ms=154015958"} -{"ts_ms":154015958,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015963,"level":"INFO","component":"client","message":"time_sync_sample probe_id=2 rtt_ms=0 offset_ms=0"} -{"ts_ms":154015963,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015963,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015963,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015963,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=154015963 server_send_ts_ms=154015963"} -{"ts_ms":154015963,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015968,"level":"INFO","component":"client","message":"time_sync_sample probe_id=3 rtt_ms=0 offset_ms=0"} -{"ts_ms":154015969,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015969,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015969,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015969,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015969,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=154015969 server_send_ts_ms=154015969"} -{"ts_ms":154015974,"level":"INFO","component":"client","message":"time_sync_sample probe_id=4 rtt_ms=0 offset_ms=0"} -{"ts_ms":154015974,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015974,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015974,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015974,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=154015974 server_send_ts_ms=154015974"} -{"ts_ms":154015974,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"client","message":"time_sync_sample probe_id=5 rtt_ms=0 offset_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"client","message":"time_sync_selected offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":154015979,"level":"INFO","component":"server","message":"time_sync_ready offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=14 bytes_sent=1776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=16 bytes_sent=3256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=18 bytes_sent=4736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=20 bytes_sent=6216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=22 bytes_sent=7696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=24 bytes_sent=9176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=26 bytes_sent=10656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=28 bytes_sent=12136 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=30 bytes_sent=13616 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=32 bytes_sent=15096 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=34 bytes_sent=16576 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=36 bytes_sent=18056 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=38 bytes_sent=19536 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":154015979,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=40 bytes_sent=21016 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=1"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=42 bytes_sent=22496 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=44 bytes_sent=23976 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=46 bytes_sent=25456 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=48 bytes_sent=26936 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=50 bytes_sent=28416 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=52 bytes_sent=29896 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=54 bytes_sent=31376 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=56 bytes_sent=32856 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=58 bytes_sent=34336 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=60 bytes_sent=35816 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=62 bytes_sent=37296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=64 bytes_sent=38776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=66 bytes_sent=40256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=68 bytes_sent=41736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=70 bytes_sent=43216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=72 bytes_sent=44696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=74 bytes_sent=46176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=76 bytes_sent=47656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=78 bytes_sent=47712 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=151900918 bytes=44800 total_chunks=32"} -{"ts_ms":154015980,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=0 transfer_id=151900918 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.366 rx_current_mbps=0.000 processing_avg_ms=0.000 queue_avg_ms=3.257 transmission_avg_ms=48.789 propagation_avg_ms=0.000 end_to_end_avg_ms=0.031 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.23 cwnd_avg=10.00 local_tcp_retrans=0 local_tcp_data_segs_out=10 local_tcp_original_bytes=320 local_tcp_retrans_bytes=0 local_tcp_retrans_rate_pct=0.00 local_kcp_retrans=0 local_kcp_data_segs_out=0 local_kcp_original_bytes=0 local_kcp_retrans_bytes=0 local_kcp_retrans_rate_pct=0.00 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":154015980,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=384 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=78 bytes_sent=47712 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":154015980,"level":"INFO","component":"client","message":"transfer_ack transfer_id=151900918 bytes_written=44800 rtt_ms=0"} -{"ts_ms":154016053,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1102,"bytes_sent":288,"bytes_recv":47088,"send_count":6,"recv_count":39,"tx_current_mbps":0.023040,"rx_current_mbps":3.764480,"tx_avg_mbps":0.002091,"rx_avg_mbps":0.341837,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":6,"recv_call_avg_ms":0.006853,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.006853,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":3.257348,"queue_min_ms":0.013343,"queue_max_ms":12.428941,"transmission_avg_ms":47.804680,"transmission_min_ms":0.022951,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.031250,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":1.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000041,"send_buffer_pct_max":0.001827,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.226915,"recv_buffer_pct_max":1.129150,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":12,"tcp_data_bytes_sent":384,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154016980,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=tcp transfer_id=151900918 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.367 tx_current_mbps=0.000 rx_avg_mbps=0.002 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=7.931 transmission_avg_ms=3.230 propagation_avg_ms=0.000 last_rtt_ms=0 min_rtt_ms=0 send_buffer_avg_pct=0.01 recv_buffer_avg_pct=0.00 cwnd_avg=10.00 tcp_retrans=0 tcp_data_segs_out=78 tcp_original_bytes=47712 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=1 ack_rtt_ms=0 ack_bytes_written=44800 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":154016981,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1028,"bytes_sent":47088,"bytes_recv":288,"send_count":39,"recv_count":6,"tx_current_mbps":0.366444,"rx_current_mbps":0.002241,"tx_avg_mbps":0.366444,"rx_avg_mbps":0.002241,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.018014,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":73,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.018014,"proto_recv_avg_ms":5.328000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":7.930526,"queue_min_ms":5.117021,"queue_max_ms":12.301790,"transmission_avg_ms":3.230196,"transmission_min_ms":0.022936,"transmission_max_ms":22.875000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.005049,"send_buffer_pct_max":0.056347,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":78,"tcp_data_bytes_sent":47712,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154016985,"level":"INFO","component":"udp","message":"init bind_port=32903 peer_ip=NULL peer_port=0"} -{"ts_ms":154016985,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=32903 peer_port=0"} -{"ts_ms":154016986,"level":"INFO","component":"udp","message":"init bind_port=32902 peer_ip=NULL peer_port=0"} -{"ts_ms":154016986,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=32902 peer_port=0"} -{"ts_ms":154016986,"level":"INFO","component":"udp","message":"init bind_port=32901 peer_ip=NULL peer_port=0"} -{"ts_ms":154016986,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=32901 peer_port=0"} -{"ts_ms":154016986,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=32902"} -{"ts_ms":154016986,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=32902"} -{"ts_ms":154016986,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=32902"} -{"ts_ms":154016986,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=32903"} -{"ts_ms":154016986,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=32903"} -{"ts_ms":154016986,"level":"INFO","component":"perf","tag":"final","elapsed_ms":0,"bytes_sent":0,"bytes_recv":0,"send_count":0,"recv_count":0,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154016986,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=32903"} -{"ts_ms":154017988,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=32901"} -{"ts_ms":154017988,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=32901"} -{"ts_ms":154017988,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1002,"recv_call_min_ms":1002,"recv_call_max_ms":1002,"recv_call_avg_ms":1002.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154017988,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":154017988,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1003,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1002,"recv_call_min_ms":1002,"recv_call_max_ms":1002,"recv_call_avg_ms":1002.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1003.000000,"transmission_min_ms":1003.000000,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154017988,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=154017988 server_send_ts_ms=154017988"} -{"ts_ms":154018494,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=1 timeout_ms=500"} -{"ts_ms":154018494,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":154018494,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=154018494 server_send_ts_ms=154018494"} -{"ts_ms":154019000,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=2 timeout_ms=500"} -{"ts_ms":154019000,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":1012,"bytes_sent":96,"bytes_recv":0,"send_count":3,"recv_count":0,"tx_current_mbps":0.000759,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000759,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":44800,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":295.166667,"transmission_min_ms":253.000000,"transmission_max_ms":337.333333,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154019000,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2014,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000506,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000254,"rx_avg_mbps":0.000381,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":506,"recv_call_min_ms":506,"recv_call_max_ms":1002,"recv_call_avg_ms":823.440000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":759.000000,"queue_min_ms":759.000000,"queue_max_ms":759.000000,"transmission_avg_ms":653.800000,"transmission_min_ms":253.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.004507,"recv_buffer_pct_max":0.022536,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154019000,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":154019000,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2015,"bytes_sent":96,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000759,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000381,"rx_avg_mbps":0.000381,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":506,"recv_call_min_ms":506,"recv_call_max_ms":1002,"recv_call_avg_ms":823.440000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":654.200000,"transmission_min_ms":253.000000,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154019000,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=154019000 server_send_ts_ms=154019000"} -{"ts_ms":154019506,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=3 timeout_ms=500"} -{"ts_ms":154019506,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":154019506,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=154019506 server_send_ts_ms=154019506"} -{"ts_ms":154020012,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=4 timeout_ms=500"} -{"ts_ms":154020012,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":2024,"bytes_sent":160,"bytes_recv":0,"send_count":5,"recv_count":0,"tx_current_mbps":0.000506,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000632,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":44800,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":400.583333,"transmission_min_ms":253.000000,"transmission_max_ms":506.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154020012,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3026,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000506,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000338,"rx_avg_mbps":0.000423,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":506,"recv_call_min_ms":506,"recv_call_max_ms":1002,"recv_call_avg_ms":709.161600,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":841.666667,"queue_min_ms":759.000000,"queue_max_ms":1007.000000,"transmission_avg_ms":578.370370,"transmission_min_ms":253.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.007512,"recv_buffer_pct_max":0.022536,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154020012,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":154020012,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3027,"bytes_sent":192,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000759,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000507,"rx_avg_mbps":0.000423,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":506,"recv_call_min_ms":506,"recv_call_max_ms":1002,"recv_call_avg_ms":709.161600,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":578.629630,"transmission_min_ms":253.000000,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154020012,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=154020012 server_send_ts_ms=154020012"} -{"ts_ms":154020518,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=5 timeout_ms=500"} -{"ts_ms":154020518,"level":"WARN","component":"client","message":"time_sync_no_valid_sample"} -{"ts_ms":154020518,"level":"WARN","component":"client","message":"time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=151906818 bytes=44800 total_chunks=32"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":154020518,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":154020519,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=1 transfer_id=151906818 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.107 rx_current_mbps=0.001 processing_avg_ms=0.000 queue_avg_ms=31.625 transmission_avg_ms=182.956 propagation_avg_ms=0.000 end_to_end_avg_ms=0.000 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.02 cwnd_avg=0.00 local_tcp_retrans=0 local_tcp_data_segs_out=0 local_tcp_original_bytes=0 local_tcp_retrans_bytes=0 local_tcp_retrans_rate_pct=0.00 local_kcp_retrans=0 local_kcp_data_segs_out=0 local_kcp_original_bytes=0 local_kcp_retrans_bytes=0 local_kcp_retrans_rate_pct=0.00 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":154020519,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":154020588,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3603,"bytes_sent":288,"bytes_recv":47048,"send_count":6,"recv_count":38,"tx_current_mbps":0.001333,"rx_current_mbps":0.651222,"tx_avg_mbps":0.000639,"rx_avg_mbps":0.104464,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1,"recv_call_min_ms":0,"recv_call_max_ms":1002,"recv_call_avg_ms":0.729663,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":31.625000,"queue_min_ms":31.625000,"queue_max_ms":31.625000,"transmission_avg_ms":184.559040,"transmission_min_ms":0.432520,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.015622,"recv_buffer_pct_max":0.687350,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":154021518,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=udp transfer_id=151906818 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.107 tx_current_mbps=0.001 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=0.000 transmission_avg_ms=98.821 propagation_avg_ms=0.000 last_rtt_ms=0 min_rtt_ms=0 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=0.00 tcp_retrans=0 tcp_data_segs_out=0 tcp_original_bytes=0 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":154021519,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3531,"bytes_sent":47048,"bytes_recv":0,"send_count":38,"recv_count":0,"tx_current_mbps":0.248908,"rx_current_mbps":0.000000,"tx_avg_mbps":0.106594,"rx_avg_mbps":0.000000,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":98.820637,"transmission_min_ms":0.431667,"transmission_max_ms":506.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":155344150,"level":"INFO","component":"hub","message":"listening bind_ip=0.0.0.0 port=34000"} -{"ts_ms":155345151,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:40266"} -{"ts_ms":155345151,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":1001,"bytes_sent":0,"bytes_recv":52,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000416,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000416,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":155345151,"level":"INFO","component":"hub","message":"client_closed client_id=unregistered remote=127.0.0.1:40266"} -{"ts_ms":155345151,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":155346151,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1000,"bytes_sent":52,"bytes_recv":0,"send_count":1,"recv_count":0,"tx_current_mbps":0.000416,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000416,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":155346153,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:40272"} -{"ts_ms":155346153,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":2003,"bytes_sent":0,"bytes_recv":104,"send_count":0,"recv_count":2,"tx_current_mbps":0.000000,"rx_current_mbps":0.000415,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":155346153,"level":"INFO","component":"hub","message":"client_closed client_id=unregistered remote=127.0.0.1:40272"} -{"ts_ms":155346153,"level":"ERROR","component":"peer","message":"recv_failed rc=-3"} -{"ts_ms":155346153,"level":"INFO","component":"perf","tag":"final","elapsed_ms":0,"bytes_sent":104,"bytes_recv":0,"send_count":2,"recv_count":0,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":155346156,"level":"INFO","component":"perf","tag":"final","elapsed_ms":2006,"bytes_sent":0,"bytes_recv":104,"send_count":0,"recv_count":2,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":162626273,"level":"INFO","component":"hub","message":"listening bind_ip=0.0.0.0 port=34000"} -{"ts_ms":162627276,"level":"INFO","component":"peer","message":"send_register client_id=beta"} -{"ts_ms":162627276,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:39710"} -{"ts_ms":162627276,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":1003,"bytes_sent":0,"bytes_recv":52,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000415,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":162627276,"level":"INFO","component":"hub","message":"client_closed client_id=unregistered remote=127.0.0.1:39710"} -{"ts_ms":162627276,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":162628276,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1000,"bytes_sent":52,"bytes_recv":0,"send_count":1,"recv_count":0,"tx_current_mbps":0.000416,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000416,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":162628278,"level":"INFO","component":"peer","message":"send_register client_id=alpha"} -{"ts_ms":162628278,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:39714"} -{"ts_ms":162628278,"level":"INFO","component":"peer","message":"send_bind self_id=alpha peer_id=beta"} -{"ts_ms":162628278,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":2005,"bytes_sent":0,"bytes_recv":104,"send_count":0,"recv_count":2,"tx_current_mbps":0.000000,"rx_current_mbps":0.000415,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":162628278,"level":"INFO","component":"hub","message":"client_closed client_id=unregistered remote=127.0.0.1:39714"} -{"ts_ms":162628278,"level":"ERROR","component":"peer","message":"recv_failed rc=-3"} -{"ts_ms":162628278,"level":"INFO","component":"perf","tag":"final","elapsed_ms":0,"bytes_sent":104,"bytes_recv":0,"send_count":2,"recv_count":0,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":162628283,"level":"INFO","component":"perf","tag":"final","elapsed_ms":2010,"bytes_sent":0,"bytes_recv":104,"send_count":0,"recv_count":2,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000414,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167192207,"level":"INFO","component":"hub","message":"listening bind_ip=0.0.0.0 port=34000"} -{"ts_ms":167193208,"level":"INFO","component":"peer","message":"send_register client_id=beta"} -{"ts_ms":167193208,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:53868"} -{"ts_ms":167193208,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":52,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000415,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167193208,"level":"INFO","component":"hub","message":"message_recv client_id=unregistered type=8 len=36"} -{"ts_ms":167193208,"level":"INFO","component":"hub","message":"handle_register remote=127.0.0.1:53868 payload_len=36"} -{"ts_ms":167193208,"level":"INFO","component":"hub","message":"client_registered client_id=beta remote=127.0.0.1:53868"} -{"ts_ms":167194211,"level":"INFO","component":"peer","message":"send_register client_id=alpha"} -{"ts_ms":167194211,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:53872"} -{"ts_ms":167194212,"level":"INFO","component":"peer","message":"send_bind self_id=alpha peer_id=beta"} -{"ts_ms":167194212,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":2006,"bytes_sent":184,"bytes_recv":104,"send_count":1,"recv_count":2,"tx_current_mbps":0.001466,"rx_current_mbps":0.000414,"tx_avg_mbps":0.000734,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167194212,"level":"INFO","component":"hub","message":"message_recv client_id=unregistered type=8 len=36"} -{"ts_ms":167194212,"level":"INFO","component":"hub","message":"handle_register remote=127.0.0.1:53872 payload_len=36"} -{"ts_ms":167194212,"level":"INFO","component":"hub","message":"client_registered client_id=alpha remote=127.0.0.1:53872"} -{"ts_ms":167194212,"level":"INFO","component":"peer","message":"send_command self_id=alpha dst_id=beta text_len=16"} -{"ts_ms":167194212,"level":"INFO","component":"hub","message":"message_recv client_id=alpha type=9 len=36"} -{"ts_ms":167194212,"level":"INFO","component":"hub","message":"handle_bind client_id=alpha payload_len=36"} -{"ts_ms":167194212,"level":"INFO","component":"hub","message":"peer_bound client_id=alpha peer_id=beta"} -{"ts_ms":167194212,"level":"INFO","component":"hub","message":"message_recv client_id=alpha type=11 len=88"} -{"ts_ms":167194212,"level":"INFO","component":"hub","message":"handle_tunnel client_id=alpha payload_len=88"} -{"ts_ms":167194212,"level":"INFO","component":"hub","message":"forward_ok src_id=alpha dst_id=beta inner_type=3 payload_bytes=16"} -{"ts_ms":167194212,"level":"INFO","component":"perf","tag":"peer_recv","elapsed_ms":1004,"bytes_sent":52,"bytes_recv":288,"send_count":1,"recv_count":2,"tx_current_mbps":0.000414,"rx_current_mbps":0.002295,"tx_avg_mbps":0.000414,"rx_avg_mbps":0.002295,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167323473,"level":"INFO","component":"hub","message":"listening bind_ip=0.0.0.0 port=34001"} -{"ts_ms":167324475,"level":"INFO","component":"peer","message":"send_register client_id=beta"} -{"ts_ms":167324475,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:48316"} -{"ts_ms":167324475,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":1003,"bytes_sent":0,"bytes_recv":52,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000415,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167324475,"level":"INFO","component":"hub","message":"message_recv client_id=unregistered type=8 len=36"} -{"ts_ms":167324475,"level":"INFO","component":"hub","message":"handle_register remote=127.0.0.1:48316 payload_len=36"} -{"ts_ms":167324475,"level":"INFO","component":"hub","message":"client_registered client_id=beta remote=127.0.0.1:48316"} -{"ts_ms":167325477,"level":"INFO","component":"peer","message":"send_register client_id=alpha"} -{"ts_ms":167325477,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:48330"} -{"ts_ms":167325477,"level":"INFO","component":"peer","message":"send_bind self_id=alpha peer_id=beta"} -{"ts_ms":167325477,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":2005,"bytes_sent":184,"bytes_recv":104,"send_count":1,"recv_count":2,"tx_current_mbps":0.001469,"rx_current_mbps":0.000415,"tx_avg_mbps":0.000734,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167325477,"level":"INFO","component":"peer","message":"send_command self_id=alpha dst_id=beta text_len=16"} -{"ts_ms":167325477,"level":"INFO","component":"hub","message":"message_recv client_id=unregistered type=8 len=36"} -{"ts_ms":167325477,"level":"INFO","component":"hub","message":"handle_register remote=127.0.0.1:48330 payload_len=36"} -{"ts_ms":167325477,"level":"INFO","component":"hub","message":"client_registered client_id=alpha remote=127.0.0.1:48330"} -{"ts_ms":167325477,"level":"INFO","component":"hub","message":"message_recv client_id=alpha type=9 len=36"} -{"ts_ms":167325477,"level":"INFO","component":"hub","message":"handle_bind client_id=alpha payload_len=36"} -{"ts_ms":167325477,"level":"INFO","component":"hub","message":"peer_bound client_id=alpha peer_id=beta"} -{"ts_ms":167325477,"level":"INFO","component":"hub","message":"message_recv client_id=alpha type=11 len=88"} -{"ts_ms":167325477,"level":"INFO","component":"hub","message":"handle_tunnel client_id=alpha payload_len=88"} -{"ts_ms":167325477,"level":"INFO","component":"hub","message":"forward_ok src_id=alpha dst_id=beta inner_type=3 payload_bytes=16"} -{"ts_ms":167325477,"level":"INFO","component":"perf","tag":"peer_recv","elapsed_ms":1002,"bytes_sent":52,"bytes_recv":288,"send_count":1,"recv_count":2,"tx_current_mbps":0.000415,"rx_current_mbps":0.002299,"tx_avg_mbps":0.000415,"rx_avg_mbps":0.002299,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167327477,"level":"INFO","component":"hub","message":"client_closed client_id=alpha remote=127.0.0.1:48330"} -{"ts_ms":167327477,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":167327477,"level":"INFO","component":"perf","tag":"final","elapsed_ms":2000,"bytes_sent":208,"bytes_recv":368,"send_count":3,"recv_count":2,"tx_current_mbps":0.000832,"rx_current_mbps":0.001472,"tx_avg_mbps":0.000832,"rx_avg_mbps":0.001472,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167328476,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":167328476,"level":"INFO","component":"hub","message":"client_closed client_id=beta remote=127.0.0.1:48316"} -{"ts_ms":167328476,"level":"INFO","component":"perf","tag":"final","elapsed_ms":4001,"bytes_sent":52,"bytes_recv":288,"send_count":1,"recv_count":2,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000104,"rx_avg_mbps":0.000576,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167328479,"level":"INFO","component":"perf","tag":"final","elapsed_ms":5007,"bytes_sent":656,"bytes_recv":260,"send_count":4,"recv_count":4,"tx_current_mbps":0.001258,"rx_current_mbps":0.000416,"tx_avg_mbps":0.001048,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167721788,"level":"INFO","component":"hub","message":"listening bind_ip=0.0.0.0 port=40724"} -{"ts_ms":167722789,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:38452"} -{"ts_ms":167722790,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":52,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000415,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167722790,"level":"INFO","component":"hub","message":"client_registered client_id=beta remote=127.0.0.1:38452"} -{"ts_ms":167723791,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:42412"} -{"ts_ms":167723791,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":2003,"bytes_sent":184,"bytes_recv":104,"send_count":1,"recv_count":2,"tx_current_mbps":0.001471,"rx_current_mbps":0.000416,"tx_avg_mbps":0.000735,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167723791,"level":"INFO","component":"hub","message":"client_registered client_id=alpha remote=127.0.0.1:42412"} -{"ts_ms":167723791,"level":"INFO","component":"hub","message":"peer_bound client_id=alpha peer_id=beta"} -{"ts_ms":167723791,"level":"INFO","component":"hub","message":"forward_ok src_id=alpha dst_id=beta inner_type=3 payload_bytes=16"} -{"ts_ms":167723791,"level":"INFO","component":"perf","tag":"peer_recv","elapsed_ms":1002,"bytes_sent":52,"bytes_recv":288,"send_count":1,"recv_count":2,"tx_current_mbps":0.000415,"rx_current_mbps":0.002299,"tx_avg_mbps":0.000415,"rx_avg_mbps":0.002299,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167725791,"level":"INFO","component":"hub","message":"client_closed client_id=alpha remote=127.0.0.1:42412"} -{"ts_ms":167725791,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":167725791,"level":"INFO","component":"perf","tag":"final","elapsed_ms":2000,"bytes_sent":208,"bytes_recv":368,"send_count":3,"recv_count":2,"tx_current_mbps":0.000832,"rx_current_mbps":0.001472,"tx_avg_mbps":0.000832,"rx_avg_mbps":0.001472,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167726790,"level":"INFO","component":"hub","message":"client_closed client_id=beta remote=127.0.0.1:38452"} -{"ts_ms":167726790,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":167726790,"level":"INFO","component":"perf","tag":"final","elapsed_ms":4001,"bytes_sent":52,"bytes_recv":288,"send_count":1,"recv_count":2,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000104,"rx_avg_mbps":0.000576,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167726795,"level":"INFO","component":"perf","tag":"final","elapsed_ms":5007,"bytes_sent":656,"bytes_recv":260,"send_count":4,"recv_count":4,"tx_current_mbps":0.001257,"rx_current_mbps":0.000415,"tx_avg_mbps":0.001048,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167863766,"level":"INFO","component":"tcp","message":"listening port=26170"} -{"ts_ms":167864770,"level":"INFO","component":"tcp","message":"connected peer_ip=127.0.0.1 peer_port=26170"} -{"ts_ms":167864770,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=1 bind_port=26170 peer_port=0"} -{"ts_ms":167864770,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=0 bind_port=0 peer_port=26170"} -{"ts_ms":167864770,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":167864770,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=203000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":167864770,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1004,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1004.000000,"transmission_min_ms":1004.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167864771,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":167864771,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":167864771,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=167864770 server_send_ts_ms=167864770"} -{"ts_ms":167864775,"level":"INFO","component":"client","message":"time_sync_sample probe_id=1 rtt_ms=1 offset_ms=0"} -{"ts_ms":167864775,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=4"} -{"ts_ms":167864775,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=4 last_data_recv_ms=0"} -{"ts_ms":167864775,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":167864775,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":167864775,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=167864775 server_send_ts_ms=167864775"} -{"ts_ms":167864780,"level":"INFO","component":"client","message":"time_sync_sample probe_id=2 rtt_ms=0 offset_ms=0"} -{"ts_ms":167864780,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864780,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":167864781,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=1"} -{"ts_ms":167864781,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=167864780 server_send_ts_ms=167864780"} -{"ts_ms":167864781,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":167864785,"level":"INFO","component":"client","message":"time_sync_sample probe_id=3 rtt_ms=1 offset_ms=0"} -{"ts_ms":167864786,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864786,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864786,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":167864786,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=167864786 server_send_ts_ms=167864786"} -{"ts_ms":167864786,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":167864791,"level":"INFO","component":"client","message":"time_sync_sample probe_id=4 rtt_ms=0 offset_ms=0"} -{"ts_ms":167864791,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864791,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":167864791,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":167864791,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=167864791 server_send_ts_ms=167864791"} -{"ts_ms":167864791,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":167864796,"level":"INFO","component":"client","message":"time_sync_sample probe_id=5 rtt_ms=0 offset_ms=0"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":167864796,"level":"INFO","component":"client","message":"time_sync_selected offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":167864796,"level":"INFO","component":"server","message":"time_sync_ready offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=14 bytes_sent=1776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=16 bytes_sent=3256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=18 bytes_sent=4736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=20 bytes_sent=6216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=22 bytes_sent=7696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=24 bytes_sent=9176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=26 bytes_sent=10656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=28 bytes_sent=12136 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=30 bytes_sent=13616 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=32 bytes_sent=15096 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":167864796,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=34 bytes_sent=16576 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=36 bytes_sent=18056 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=38 bytes_sent=19536 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=40 bytes_sent=21016 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=42 bytes_sent=22496 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=44 bytes_sent=23976 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=46 bytes_sent=25456 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=48 bytes_sent=26936 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=50 bytes_sent=28416 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=52 bytes_sent=29896 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=54 bytes_sent=31376 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=56 bytes_sent=32856 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=58 bytes_sent=34336 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=60 bytes_sent=35816 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=62 bytes_sent=37296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=64 bytes_sent=38776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=66 bytes_sent=40256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=68 bytes_sent=41736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=70 bytes_sent=43216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=72 bytes_sent=44696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=74 bytes_sent=46176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=76 bytes_sent=47656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=78 bytes_sent=47712 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":167864797,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":167864797,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=170336983 bytes=44800 total_chunks=32"} -{"ts_ms":167864797,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=0 transfer_id=170336983 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.365 rx_current_mbps=0.000 processing_avg_ms=0.000 queue_avg_ms=2.654 transmission_avg_ms=26.101 propagation_avg_ms=0.000 end_to_end_avg_ms=0.094 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.67 cwnd_avg=10.00 local_tcp_retrans=0 local_tcp_data_segs_out=10 local_tcp_original_bytes=320 local_tcp_retrans_bytes=0 local_tcp_retrans_rate_pct=0.00 local_kcp_retrans=0 local_kcp_data_segs_out=0 local_kcp_original_bytes=0 local_kcp_retrans_bytes=0 local_kcp_retrans_rate_pct=0.00 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":167864797,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":167864798,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=78 bytes_sent=47712 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":167864798,"level":"INFO","component":"client","message":"transfer_ack transfer_id=170336983 bytes_written=44800 rtt_ms=1"} -{"ts_ms":167864798,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=384 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":167864871,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1105,"bytes_sent":288,"bytes_recv":47088,"send_count":6,"recv_count":39,"tx_current_mbps":0.022812,"rx_current_mbps":3.727208,"tx_avg_mbps":0.002085,"rx_avg_mbps":0.340909,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":1,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.630080,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":5,"recv_call_avg_ms":0.004090,"proto_send_avg_ms":0.630080,"proto_recv_avg_ms":0.002910,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":2.653520,"queue_min_ms":0.009484,"queue_max_ms":7.111111,"transmission_avg_ms":25.625090,"transmission_min_ms":0.022951,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.093750,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":1.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000054,"send_buffer_pct_max":0.002437,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.654568,"recv_buffer_pct_max":2.258301,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":12,"tcp_data_bytes_sent":384,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167865798,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=tcp transfer_id=170336983 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.366 tx_current_mbps=0.000 rx_avg_mbps=0.002 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=3.761 transmission_avg_ms=3.320 propagation_avg_ms=0.500 last_rtt_ms=1 min_rtt_ms=1 send_buffer_avg_pct=0.01 recv_buffer_avg_pct=0.00 cwnd_avg=10.00 tcp_retrans=0 tcp_data_segs_out=78 tcp_original_bytes=47712 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=1 ack_rtt_ms=1 ack_bytes_written=44800 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":167865798,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1029,"bytes_sent":47088,"bytes_recv":288,"send_count":39,"recv_count":6,"tx_current_mbps":0.366087,"rx_current_mbps":0.002239,"tx_avg_mbps":0.366087,"rx_avg_mbps":0.002239,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.009223,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":73,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.009223,"proto_recv_avg_ms":4.109760,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":3.760768,"queue_min_ms":0.023805,"queue_max_ms":9.000000,"transmission_avg_ms":3.320441,"transmission_min_ms":0.023785,"transmission_max_ms":23.754808,"propagation_avg_ms":0.500000,"propagation_min_ms":0.500000,"propagation_max_ms":0.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.010159,"send_buffer_pct_max":0.112695,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":1,"min_rtt_ms":1,"max_rtt_ms":1,"tcp_retrans":0,"tcp_data_segs_out":78,"tcp_data_bytes_sent":47712,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167865805,"level":"INFO","component":"udp","message":"init bind_port=26172 peer_ip=NULL peer_port=0"} -{"ts_ms":167865805,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=26172 peer_port=0"} -{"ts_ms":167865805,"level":"INFO","component":"udp","message":"init bind_port=26173 peer_ip=NULL peer_port=0"} -{"ts_ms":167865805,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=26173 peer_port=0"} -{"ts_ms":167865806,"level":"INFO","component":"udp","message":"init bind_port=26171 peer_ip=NULL peer_port=0"} -{"ts_ms":167865806,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=26171 peer_port=0"} -{"ts_ms":167865806,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=26172"} -{"ts_ms":167865806,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=26172"} -{"ts_ms":167865806,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=26172"} -{"ts_ms":167865806,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=26173"} -{"ts_ms":167865806,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=26173"} -{"ts_ms":167865806,"level":"INFO","component":"perf","tag":"final","elapsed_ms":0,"bytes_sent":0,"bytes_recv":0,"send_count":0,"recv_count":0,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167865806,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=26173"} -{"ts_ms":167866809,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=26171"} -{"ts_ms":167866809,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=26171"} -{"ts_ms":167866809,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1003,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1003,"recv_call_min_ms":1003,"recv_call_max_ms":1003,"recv_call_avg_ms":1003.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1003.000000,"transmission_min_ms":1003.000000,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167866809,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":167866809,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1004,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1004,"recv_call_min_ms":1004,"recv_call_max_ms":1004,"recv_call_avg_ms":1004.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1004.000000,"transmission_min_ms":1004.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167866810,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=167866809 server_send_ts_ms=167866809"} -{"ts_ms":167867318,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=1 timeout_ms=500"} -{"ts_ms":167867318,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":167867319,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=167867319 server_send_ts_ms=167867319"} -{"ts_ms":167867828,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=2 timeout_ms=500"} -{"ts_ms":167867828,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":1019,"bytes_sent":96,"bytes_recv":0,"send_count":3,"recv_count":0,"tx_current_mbps":0.000754,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000754,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":44800,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":297.083333,"transmission_min_ms":254.500000,"transmission_max_ms":339.666667,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167867828,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2022,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000502,"rx_current_mbps":0.000502,"tx_avg_mbps":0.000253,"rx_avg_mbps":0.000380,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":509,"recv_call_min_ms":509,"recv_call_max_ms":1003,"recv_call_avg_ms":825.160000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":763.500000,"queue_min_ms":763.500000,"queue_max_ms":763.500000,"transmission_avg_ms":655.800000,"transmission_min_ms":254.500000,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.004507,"recv_buffer_pct_max":0.022536,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167867828,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":167867828,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2023,"bytes_sent":96,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000754,"rx_current_mbps":0.000502,"tx_avg_mbps":0.000380,"rx_avg_mbps":0.000380,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":509,"recv_call_min_ms":508,"recv_call_max_ms":1004,"recv_call_avg_ms":825.640000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":455.700000,"transmission_min_ms":1.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167867828,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=167867828 server_send_ts_ms=167867828"} -{"ts_ms":167868339,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=3 timeout_ms=500"} -{"ts_ms":167868339,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":167868339,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=167868339 server_send_ts_ms=167868339"} -{"ts_ms":167868850,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=4 timeout_ms=500"} -{"ts_ms":167868850,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":2041,"bytes_sent":160,"bytes_recv":0,"send_count":5,"recv_count":0,"tx_current_mbps":0.000501,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000627,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":44800,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":404.041667,"transmission_min_ms":254.500000,"transmission_max_ms":511.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167868850,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3044,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000501,"rx_current_mbps":0.000501,"tx_avg_mbps":0.000336,"rx_avg_mbps":0.000420,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":511,"recv_call_min_ms":509,"recv_call_max_ms":1003,"recv_call_avg_ms":712.062400,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":847.000000,"queue_min_ms":763.500000,"queue_max_ms":1011.000000,"transmission_avg_ms":581.166667,"transmission_min_ms":254.500000,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.007512,"recv_buffer_pct_max":0.022536,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167868850,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":167868851,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3046,"bytes_sent":192,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000751,"rx_current_mbps":0.000500,"tx_avg_mbps":0.000504,"rx_avg_mbps":0.000420,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":512,"recv_call_min_ms":508,"recv_call_max_ms":1004,"recv_call_avg_ms":712.569600,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":470.092593,"transmission_min_ms":1.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167868851,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=167868851 server_send_ts_ms=167868851"} -{"ts_ms":167869363,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=5 timeout_ms=500"} -{"ts_ms":167869363,"level":"WARN","component":"client","message":"time_sync_no_valid_sample"} -{"ts_ms":167869363,"level":"WARN","component":"client","message":"time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"} -{"ts_ms":167869363,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869363,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869363,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869363,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869363,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869363,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869363,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869363,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=170343137 bytes=44800 total_chunks=32"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":167869364,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":167869364,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=1 transfer_id=170343137 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.106 rx_current_mbps=0.001 processing_avg_ms=0.000 queue_avg_ms=0.000 transmission_avg_ms=160.928 propagation_avg_ms=0.000 end_to_end_avg_ms=0.000 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=0.00 local_tcp_retrans=0 local_tcp_data_segs_out=0 local_tcp_original_bytes=0 local_tcp_retrans_bytes=0 local_tcp_retrans_rate_pct=0.00 local_kcp_retrans=0 local_kcp_data_segs_out=0 local_kcp_original_bytes=0 local_kcp_retrans_bytes=0 local_kcp_retrans_rate_pct=0.00 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":167869364,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":167869408,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3603,"bytes_sent":288,"bytes_recv":47048,"send_count":6,"recv_count":38,"tx_current_mbps":0.001379,"rx_current_mbps":0.673436,"tx_avg_mbps":0.000639,"rx_avg_mbps":0.104464,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":1,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":1.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1004,"recv_call_avg_ms":0.533530,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":163.111049,"transmission_min_ms":0.437639,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":167870364,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=udp transfer_id=170343137 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.106 tx_current_mbps=0.001 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=0.000 transmission_avg_ms=99.968 propagation_avg_ms=0.000 last_rtt_ms=0 min_rtt_ms=0 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=0.00 tcp_retrans=0 tcp_data_segs_out=0 tcp_original_bytes=0 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":167870365,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3556,"bytes_sent":47048,"bytes_recv":0,"send_count":38,"recv_count":0,"tx_current_mbps":0.247593,"rx_current_mbps":0.000000,"tx_avg_mbps":0.105845,"rx_avg_mbps":0.000000,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.262144,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":99.968034,"transmission_min_ms":0.438492,"transmission_max_ms":513.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168563812,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":168563812,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":168564814,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":168564814,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":168631794,"level":"INFO","component":"hub","message":"listening bind_ip=0.0.0.0 port=31573"} -{"ts_ms":168631841,"level":"INFO","component":"tcp","message":"listening port=26008"} -{"ts_ms":168632798,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:50784"} -{"ts_ms":168632798,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":1004,"bytes_sent":0,"bytes_recv":52,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000414,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000414,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168632798,"level":"INFO","component":"hub","message":"client_registered client_id=beta remote=127.0.0.1:50784"} -{"ts_ms":168632843,"level":"INFO","component":"tcp","message":"connected peer_ip=127.0.0.1 peer_port=26008"} -{"ts_ms":168632843,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=1 bind_port=26008 peer_port=0"} -{"ts_ms":168632843,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=0 bind_port=0 peer_port=26008"} -{"ts_ms":168632843,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":168632843,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=203000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":168632843,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168632843,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":168632843,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":168632843,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=168632843 server_send_ts_ms=168632843"} -{"ts_ms":168632848,"level":"INFO","component":"client","message":"time_sync_sample probe_id=1 rtt_ms=0 offset_ms=0"} -{"ts_ms":168632848,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":168632848,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":168632848,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":168632848,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":168632848,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=168632848 server_send_ts_ms=168632848"} -{"ts_ms":168632853,"level":"INFO","component":"client","message":"time_sync_sample probe_id=2 rtt_ms=0 offset_ms=0"} -{"ts_ms":168632853,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":168632853,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":168632853,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":168632853,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":168632853,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=168632853 server_send_ts_ms=168632853"} -{"ts_ms":168632858,"level":"INFO","component":"client","message":"time_sync_sample probe_id=3 rtt_ms=0 offset_ms=0"} -{"ts_ms":168632858,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":168632858,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":168632858,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":168632858,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":168632858,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=168632858 server_send_ts_ms=168632858"} -{"ts_ms":168632863,"level":"INFO","component":"client","message":"time_sync_sample probe_id=4 rtt_ms=0 offset_ms=0"} -{"ts_ms":168632863,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":168632863,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":168632863,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":168632863,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=168632863 server_send_ts_ms=168632863"} -{"ts_ms":168632863,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":168632868,"level":"INFO","component":"client","message":"time_sync_sample probe_id=5 rtt_ms=0 offset_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"client","message":"time_sync_selected offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"server","message":"time_sync_ready offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38464 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=14 bytes_sent=1776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38464 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=16 bytes_sent=3256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38464 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=18 bytes_sent=4736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=20 bytes_sent=6216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=22 bytes_sent=7696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=24 bytes_sent=9176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=26 bytes_sent=10656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=28 bytes_sent=12136 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=30 bytes_sent=13616 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=32 bytes_sent=15096 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=34 bytes_sent=16576 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=36 bytes_sent=18056 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=38 bytes_sent=19536 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=40 bytes_sent=21016 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=42 bytes_sent=22496 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=44 bytes_sent=23976 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=46 bytes_sent=25456 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=48 bytes_sent=26936 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=50 bytes_sent=28416 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=52 bytes_sent=29896 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=54 bytes_sent=31376 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=56 bytes_sent=32856 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=58 bytes_sent=34336 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=60 bytes_sent=35816 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=62 bytes_sent=37296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=64 bytes_sent=38776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=66 bytes_sent=40256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=68 bytes_sent=41736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=70 bytes_sent=43216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=72 bytes_sent=44696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=74 bytes_sent=46176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=76 bytes_sent=47656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=78 bytes_sent=47712 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":168632869,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":168632869,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=170565355 bytes=44800 total_chunks=32"} -{"ts_ms":168632870,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=0 transfer_id=170565355 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.366 rx_current_mbps=0.000 processing_avg_ms=0.000 queue_avg_ms=23.706 transmission_avg_ms=48.747 propagation_avg_ms=0.000 end_to_end_avg_ms=0.000 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.16 cwnd_avg=10.00 local_tcp_retrans=0 local_tcp_data_segs_out=10 local_tcp_original_bytes=320 local_tcp_retrans_bytes=0 local_tcp_retrans_rate_pct=0.00 local_kcp_retrans=0 local_kcp_data_segs_out=0 local_kcp_original_bytes=0 local_kcp_retrans_bytes=0 local_kcp_retrans_rate_pct=0.00 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":168632870,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":168632870,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=384 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":168632870,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=78 bytes_sent=47712 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":168632870,"level":"INFO","component":"client","message":"transfer_ack transfer_id=170565355 bytes_written=44800 rtt_ms=1"} -{"ts_ms":168632943,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1102,"bytes_sent":288,"bytes_recv":47088,"send_count":6,"recv_count":39,"tx_current_mbps":0.023040,"rx_current_mbps":3.764480,"tx_avg_mbps":0.002091,"rx_avg_mbps":0.341837,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":6,"recv_call_avg_ms":0.003296,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.003296,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":22.527330,"queue_min_ms":0.010480,"queue_max_ms":300.625000,"transmission_avg_ms":47.763863,"transmission_min_ms":0.022101,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.002437,"send_buffer_pct_avg":0.000054,"send_buffer_pct_max":0.002437,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.152452,"recv_buffer_pct_max":1.129150,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":12,"tcp_data_bytes_sent":384,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168633802,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:53158"} -{"ts_ms":168633802,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":2008,"bytes_sent":184,"bytes_recv":104,"send_count":1,"recv_count":2,"tx_current_mbps":0.001466,"rx_current_mbps":0.000414,"tx_avg_mbps":0.000733,"rx_avg_mbps":0.000414,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168633802,"level":"INFO","component":"hub","message":"client_registered client_id=alpha remote=127.0.0.1:53158"} -{"ts_ms":168633802,"level":"INFO","component":"hub","message":"peer_bound client_id=alpha peer_id=beta"} -{"ts_ms":168633802,"level":"INFO","component":"hub","message":"forward_ok src_id=alpha dst_id=beta inner_type=3 payload_bytes=16"} -{"ts_ms":168633802,"level":"INFO","component":"perf","tag":"peer_recv","elapsed_ms":1005,"bytes_sent":52,"bytes_recv":288,"send_count":1,"recv_count":2,"tx_current_mbps":0.000414,"rx_current_mbps":0.002293,"tx_avg_mbps":0.000414,"rx_avg_mbps":0.002293,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168633870,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=tcp transfer_id=170565355 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.367 tx_current_mbps=0.000 rx_avg_mbps=0.002 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=4.061 transmission_avg_ms=3.191 propagation_avg_ms=0.500 last_rtt_ms=1 min_rtt_ms=1 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=10.00 tcp_retrans=0 tcp_data_segs_out=78 tcp_original_bytes=47712 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=1 ack_rtt_ms=1 ack_bytes_written=44800 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":168633870,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1027,"bytes_sent":47088,"bytes_recv":288,"send_count":39,"recv_count":6,"tx_current_mbps":0.366800,"rx_current_mbps":0.002243,"tx_avg_mbps":0.366800,"rx_avg_mbps":0.002243,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":73,"recv_call_avg_ms":0.000158,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":5.400000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":4.060513,"queue_min_ms":1.136042,"queue_max_ms":7.500000,"transmission_avg_ms":3.190601,"transmission_min_ms":0.022086,"transmission_max_ms":22.875000,"propagation_avg_ms":0.500000,"propagation_min_ms":0.500000,"propagation_max_ms":0.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.003838,"send_buffer_pct_max":0.056347,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":1,"min_rtt_ms":1,"max_rtt_ms":1,"tcp_retrans":0,"tcp_data_segs_out":78,"tcp_data_bytes_sent":47712,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168633878,"level":"INFO","component":"udp","message":"init bind_port=26010 peer_ip=NULL peer_port=0"} -{"ts_ms":168633878,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=26010 peer_port=0"} -{"ts_ms":168633878,"level":"INFO","component":"udp","message":"init bind_port=26011 peer_ip=NULL peer_port=0"} -{"ts_ms":168633878,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=26011 peer_port=0"} -{"ts_ms":168633878,"level":"INFO","component":"udp","message":"init bind_port=26009 peer_ip=NULL peer_port=0"} -{"ts_ms":168633878,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=26009 peer_port=0"} -{"ts_ms":168633878,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=26010"} -{"ts_ms":168633878,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=26010"} -{"ts_ms":168633878,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=26010"} -{"ts_ms":168633878,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=26011"} -{"ts_ms":168633878,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=26011"} -{"ts_ms":168633879,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1,"bytes_sent":0,"bytes_recv":0,"send_count":0,"recv_count":0,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168633879,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=26011"} -{"ts_ms":168634882,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=26009"} -{"ts_ms":168634882,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=26009"} -{"ts_ms":168634882,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1004,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1004,"recv_call_min_ms":1004,"recv_call_max_ms":1004,"recv_call_avg_ms":1004.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1003.000000,"transmission_min_ms":1003.000000,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168634882,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":168634882,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1004,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1004,"recv_call_min_ms":1004,"recv_call_max_ms":1004,"recv_call_avg_ms":1004.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1004.000000,"transmission_min_ms":1004.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168634882,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=168634882 server_send_ts_ms=168634882"} -{"ts_ms":168635390,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=1 timeout_ms=500"} -{"ts_ms":168635390,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":168635390,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=168635390 server_send_ts_ms=168635390"} -{"ts_ms":168635802,"level":"INFO","component":"hub","message":"client_closed client_id=alpha remote=127.0.0.1:53158"} -{"ts_ms":168635802,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":168635802,"level":"INFO","component":"perf","tag":"final","elapsed_ms":2001,"bytes_sent":208,"bytes_recv":368,"send_count":3,"recv_count":2,"tx_current_mbps":0.000832,"rx_current_mbps":0.001471,"tx_avg_mbps":0.000832,"rx_avg_mbps":0.001471,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168635897,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=2 timeout_ms=500"} -{"ts_ms":168635897,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":1016,"bytes_sent":96,"bytes_recv":0,"send_count":3,"recv_count":0,"tx_current_mbps":0.000756,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000756,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":44800,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":198.055556,"transmission_min_ms":1.000000,"transmission_max_ms":338.666667,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168635897,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2019,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000504,"rx_current_mbps":0.000504,"tx_avg_mbps":0.000254,"rx_avg_mbps":0.000380,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":507,"recv_call_min_ms":507,"recv_call_max_ms":1004,"recv_call_avg_ms":825.240000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":762.000000,"queue_min_ms":762.000000,"queue_max_ms":762.000000,"transmission_avg_ms":655.300000,"transmission_min_ms":254.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.004507,"recv_buffer_pct_max":0.022536,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168635897,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":168635897,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2019,"bytes_sent":96,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000757,"rx_current_mbps":0.000504,"tx_avg_mbps":0.000380,"rx_avg_mbps":0.000380,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":507,"recv_call_min_ms":507,"recv_call_max_ms":1004,"recv_call_avg_ms":825.240000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":655.500000,"transmission_min_ms":254.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168635897,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=168635897 server_send_ts_ms=168635897"} -{"ts_ms":168636403,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=3 timeout_ms=500"} -{"ts_ms":168636403,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":168636404,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=168636403 server_send_ts_ms=168636403"} -{"ts_ms":168636799,"level":"INFO","component":"hub","message":"client_closed client_id=beta remote=127.0.0.1:50784"} -{"ts_ms":168636799,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":168636799,"level":"INFO","component":"perf","tag":"final","elapsed_ms":4002,"bytes_sent":52,"bytes_recv":288,"send_count":1,"recv_count":2,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000104,"rx_avg_mbps":0.000576,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168636804,"level":"INFO","component":"perf","tag":"final","elapsed_ms":5010,"bytes_sent":656,"bytes_recv":260,"send_count":4,"recv_count":4,"tx_current_mbps":0.001258,"rx_current_mbps":0.000416,"tx_avg_mbps":0.001048,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168636910,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=4 timeout_ms=500"} -{"ts_ms":168636910,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":2029,"bytes_sent":160,"bytes_recv":0,"send_count":5,"recv_count":0,"tx_current_mbps":0.000505,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000631,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":44800,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":321.333333,"transmission_min_ms":1.000000,"transmission_max_ms":506.500000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168636910,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3032,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000505,"rx_current_mbps":0.000505,"tx_avg_mbps":0.000338,"rx_avg_mbps":0.000422,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":507,"recv_call_min_ms":506,"recv_call_max_ms":1004,"recv_call_avg_ms":710.513600,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":843.500000,"queue_min_ms":759.000000,"queue_max_ms":1009.500000,"transmission_avg_ms":579.444444,"transmission_min_ms":253.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.007512,"recv_buffer_pct_max":0.022536,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168636911,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":168636911,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3033,"bytes_sent":192,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000757,"rx_current_mbps":0.000505,"tx_avg_mbps":0.000506,"rx_avg_mbps":0.000422,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":507,"recv_call_min_ms":506,"recv_call_max_ms":1004,"recv_call_avg_ms":710.513600,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":579.611111,"transmission_min_ms":253.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168636911,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=168636911 server_send_ts_ms=168636911"} -{"ts_ms":168637418,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=5 timeout_ms=500"} -{"ts_ms":168637418,"level":"WARN","component":"client","message":"time_sync_no_valid_sample"} -{"ts_ms":168637418,"level":"WARN","component":"client","message":"time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=170561811 bytes=44800 total_chunks=32"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":168637418,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":168637418,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=1 transfer_id=170561811 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.106 rx_current_mbps=0.001 processing_avg_ms=0.000 queue_avg_ms=39.830 transmission_avg_ms=183.283 propagation_avg_ms=0.000 end_to_end_avg_ms=0.000 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.30 cwnd_avg=0.00 local_tcp_retrans=0 local_tcp_data_segs_out=0 local_tcp_original_bytes=0 local_tcp_retrans_bytes=0 local_tcp_retrans_rate_pct=0.00 local_kcp_retrans=0 local_kcp_data_segs_out=0 local_kcp_original_bytes=0 local_kcp_retrans_bytes=0 local_kcp_retrans_rate_pct=0.00 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":168637418,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":168637482,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3604,"bytes_sent":288,"bytes_recv":47048,"send_count":6,"recv_count":38,"tx_current_mbps":0.001345,"rx_current_mbps":0.656925,"tx_avg_mbps":0.000639,"rx_avg_mbps":0.104435,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1004,"recv_call_avg_ms":0.530679,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":39.829516,"queue_min_ms":21.125000,"queue_max_ms":84.500000,"transmission_avg_ms":184.879309,"transmission_min_ms":0.432520,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.296810,"recv_buffer_pct_max":0.687350,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168638418,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=udp transfer_id=170561811 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.106 tx_current_mbps=0.001 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=0.000 transmission_avg_ms=96.548 propagation_avg_ms=0.000 last_rtt_ms=0 min_rtt_ms=0 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=0.00 tcp_retrans=0 tcp_data_segs_out=0 tcp_original_bytes=0 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":168638418,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3537,"bytes_sent":47048,"bytes_recv":0,"send_count":38,"recv_count":0,"tx_current_mbps":0.248743,"rx_current_mbps":0.000000,"tx_avg_mbps":0.106413,"rx_avg_mbps":0.000000,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":96.547779,"transmission_min_ms":0.433373,"transmission_max_ms":508.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":168964736,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":168964736,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":169017940,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":169017940,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":169018944,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":169018944,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":169042840,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":169042840,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":169042848,"level":"ERROR","component":"udp","message":"socket_failed errno=1"} -{"ts_ms":169042848,"level":"ERROR","component":"network","message":"proto_init_failed proto=1"} -{"ts_ms":169049516,"level":"ERROR","component":"tcp","message":"socket_failed errno=1"} -{"ts_ms":169049516,"level":"ERROR","component":"network","message":"proto_init_failed proto=0"} -{"ts_ms":169049525,"level":"ERROR","component":"udp","message":"socket_failed errno=1"} -{"ts_ms":169049525,"level":"ERROR","component":"network","message":"proto_init_failed proto=1"} -{"ts_ms":169101895,"level":"INFO","component":"tcp","message":"listening port=34965"} -{"ts_ms":169102135,"level":"INFO","component":"hub","message":"listening bind_ip=0.0.0.0 port=33788"} -{"ts_ms":169102896,"level":"INFO","component":"tcp","message":"connected peer_ip=127.0.0.1 peer_port=34965"} -{"ts_ms":169102896,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=1 bind_port=34965 peer_port=0"} -{"ts_ms":169102896,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=0 bind_port=0 peer_port=34965"} -{"ts_ms":169102896,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169102896,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=205000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169102896,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1001,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000256,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000256,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1001.000000,"transmission_min_ms":1001.000000,"transmission_max_ms":1001.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169102897,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":169102897,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":169102897,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=169102897 server_send_ts_ms=169102897"} -{"ts_ms":169102901,"level":"INFO","component":"client","message":"time_sync_sample probe_id=1 rtt_ms=1 offset_ms=0"} -{"ts_ms":169102901,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=4"} -{"ts_ms":169102902,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=1"} -{"ts_ms":169102902,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":169102902,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=169102902 server_send_ts_ms=169102902"} -{"ts_ms":169102902,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":169102907,"level":"INFO","component":"client","message":"time_sync_sample probe_id=2 rtt_ms=1 offset_ms=0"} -{"ts_ms":169102907,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102907,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102907,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169102907,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=169102907 server_send_ts_ms=169102907"} -{"ts_ms":169102907,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169102912,"level":"INFO","component":"client","message":"time_sync_sample probe_id=3 rtt_ms=0 offset_ms=0"} -{"ts_ms":169102912,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102912,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102912,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169102912,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=169102912 server_send_ts_ms=169102912"} -{"ts_ms":169102912,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169102917,"level":"INFO","component":"client","message":"time_sync_sample probe_id=4 rtt_ms=0 offset_ms=0"} -{"ts_ms":169102917,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102917,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102917,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169102917,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=169102917 server_send_ts_ms=169102917"} -{"ts_ms":169102917,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"client","message":"time_sync_sample probe_id=5 rtt_ms=0 offset_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"client","message":"time_sync_selected offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"server","message":"time_sync_ready offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38464 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=14 bytes_sent=1776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=16 bytes_sent=3256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=18 bytes_sent=4736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=20 bytes_sent=6216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=22 bytes_sent=7696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=24 bytes_sent=9176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=26 bytes_sent=10656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=28 bytes_sent=12136 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=30 bytes_sent=13616 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=32 bytes_sent=15096 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=34 bytes_sent=16576 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=36 bytes_sent=18056 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=38 bytes_sent=19536 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=40 bytes_sent=21016 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=42 bytes_sent=22496 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=44 bytes_sent=23976 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=46 bytes_sent=25456 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=48 bytes_sent=26936 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=50 bytes_sent=28416 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=52 bytes_sent=29896 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=54 bytes_sent=31376 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=56 bytes_sent=32856 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=58 bytes_sent=34336 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=60 bytes_sent=35816 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=62 bytes_sent=37296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=64 bytes_sent=38776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=66 bytes_sent=40256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=68 bytes_sent=41736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=70 bytes_sent=43216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=72 bytes_sent=44696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=74 bytes_sent=46176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=76 bytes_sent=47656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=78 bytes_sent=47712 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":169102922,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":169102922,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=171155581 bytes=44800 total_chunks=32"} -{"ts_ms":169102923,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=0 transfer_id=171155581 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.367 rx_current_mbps=0.000 processing_avg_ms=0.000 queue_avg_ms=2.905 transmission_avg_ms=26.051 propagation_avg_ms=0.000 end_to_end_avg_ms=0.000 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=10.00 local_tcp_retrans=0 local_tcp_data_segs_out=10 local_tcp_original_bytes=320 local_tcp_retrans_bytes=0 local_tcp_retrans_rate_pct=0.00 local_kcp_retrans=0 local_kcp_data_segs_out=0 local_kcp_original_bytes=0 local_kcp_retrans_bytes=0 local_kcp_retrans_rate_pct=0.00 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":169102923,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":169102923,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=384 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":169102923,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=78 bytes_sent=47712 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":169102923,"level":"INFO","component":"client","message":"transfer_ack transfer_id=171155581 bytes_written=44800 rtt_ms=1"} -{"ts_ms":169102997,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1102,"bytes_sent":288,"bytes_recv":47088,"send_count":6,"recv_count":39,"tx_current_mbps":0.022812,"rx_current_mbps":3.727208,"tx_avg_mbps":0.002091,"rx_avg_mbps":0.341837,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":5,"recv_call_avg_ms":0.003169,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.003169,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":3.620581,"queue_min_ms":0.012849,"queue_max_ms":7.333333,"transmission_avg_ms":25.572011,"transmission_min_ms":0.022101,"transmission_max_ms":1001.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.002437,"send_buffer_pct_avg":0.000162,"send_buffer_pct_max":0.002437,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000814,"recv_buffer_pct_max":0.012207,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":12,"tcp_data_bytes_sent":384,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169103138,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:47862"} -{"ts_ms":169103138,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":1003,"bytes_sent":0,"bytes_recv":52,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000415,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169103139,"level":"INFO","component":"hub","message":"client_registered client_id=beta remote=127.0.0.1:47862"} -{"ts_ms":169103923,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=tcp transfer_id=171155581 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.367 tx_current_mbps=0.000 rx_avg_mbps=0.002 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=7.500 transmission_avg_ms=3.188 propagation_avg_ms=0.500 last_rtt_ms=1 min_rtt_ms=1 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=10.00 tcp_retrans=0 tcp_data_segs_out=78 tcp_original_bytes=47712 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=1 ack_rtt_ms=1 ack_bytes_written=44800 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":169103923,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1027,"bytes_sent":47088,"bytes_recv":288,"send_count":39,"recv_count":6,"tx_current_mbps":0.366800,"rx_current_mbps":0.002243,"tx_avg_mbps":0.366800,"rx_avg_mbps":0.002243,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":74,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":3.889280,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":7.500000,"queue_min_ms":7.500000,"queue_max_ms":7.500000,"transmission_avg_ms":3.187784,"transmission_min_ms":0.022086,"transmission_max_ms":22.875000,"propagation_avg_ms":0.500000,"propagation_min_ms":0.500000,"propagation_max_ms":0.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000041,"send_buffer_pct_max":0.001827,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":1,"min_rtt_ms":1,"max_rtt_ms":1,"tcp_retrans":0,"tcp_data_segs_out":78,"tcp_data_bytes_sent":47712,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169103931,"level":"INFO","component":"udp","message":"init bind_port=34967 peer_ip=NULL peer_port=0"} -{"ts_ms":169103931,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=34967 peer_port=0"} -{"ts_ms":169103931,"level":"INFO","component":"udp","message":"init bind_port=34968 peer_ip=NULL peer_port=0"} -{"ts_ms":169103931,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=34968 peer_port=0"} -{"ts_ms":169103932,"level":"INFO","component":"udp","message":"init bind_port=34966 peer_ip=NULL peer_port=0"} -{"ts_ms":169103932,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=1 bind_port=34966 peer_port=0"} -{"ts_ms":169103932,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=34967"} -{"ts_ms":169103932,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=34967"} -{"ts_ms":169103932,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=34967"} -{"ts_ms":169103932,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=34968"} -{"ts_ms":169103932,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=34968"} -{"ts_ms":169103932,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1,"bytes_sent":0,"bytes_recv":0,"send_count":0,"recv_count":0,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169103932,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=34968"} -{"ts_ms":169104141,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:47878"} -{"ts_ms":169104141,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":2006,"bytes_sent":184,"bytes_recv":104,"send_count":1,"recv_count":2,"tx_current_mbps":0.001468,"rx_current_mbps":0.000415,"tx_avg_mbps":0.000734,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169104141,"level":"INFO","component":"hub","message":"client_registered client_id=alpha remote=127.0.0.1:47878"} -{"ts_ms":169104141,"level":"INFO","component":"hub","message":"peer_bound client_id=alpha peer_id=beta"} -{"ts_ms":169104141,"level":"INFO","component":"hub","message":"forward_ok src_id=alpha dst_id=beta inner_type=3 payload_bytes=16"} -{"ts_ms":169104141,"level":"INFO","component":"perf","tag":"peer_recv","elapsed_ms":1003,"bytes_sent":52,"bytes_recv":288,"send_count":1,"recv_count":2,"tx_current_mbps":0.000415,"rx_current_mbps":0.002297,"tx_avg_mbps":0.000415,"rx_avg_mbps":0.002297,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169104934,"level":"INFO","component":"udp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=34966"} -{"ts_ms":169104934,"level":"INFO","component":"network","message":"omni_init_success proto=1 role=0 bind_port=0 peer_port=34966"} -{"ts_ms":169104934,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1003,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1002,"recv_call_min_ms":1002,"recv_call_max_ms":1002,"recv_call_avg_ms":1002.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169104934,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169104934,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1003,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1003,"recv_call_min_ms":1003,"recv_call_max_ms":1003,"recv_call_avg_ms":1003.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1003.000000,"transmission_min_ms":1003.000000,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169104934,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=169104934 server_send_ts_ms=169104934"} -{"ts_ms":169105443,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=1 timeout_ms=500"} -{"ts_ms":169105443,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169105443,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=169105443 server_send_ts_ms=169105443"} -{"ts_ms":169105952,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=2 timeout_ms=500"} -{"ts_ms":169105952,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":1018,"bytes_sent":96,"bytes_recv":0,"send_count":3,"recv_count":0,"tx_current_mbps":0.000754,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000754,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":44800,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":296.916667,"transmission_min_ms":254.500000,"transmission_max_ms":339.333333,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169105952,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2021,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000503,"rx_current_mbps":0.000503,"tx_avg_mbps":0.000253,"rx_avg_mbps":0.000380,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":509,"recv_call_min_ms":509,"recv_call_max_ms":1002,"recv_call_avg_ms":824.520000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":763.500000,"queue_min_ms":763.500000,"queue_max_ms":763.500000,"transmission_avg_ms":655.500000,"transmission_min_ms":254.500000,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.004507,"recv_buffer_pct_max":0.022536,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169105952,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169105952,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2021,"bytes_sent":96,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000754,"rx_current_mbps":0.000503,"tx_avg_mbps":0.000380,"rx_avg_mbps":0.000380,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":509,"recv_call_min_ms":509,"recv_call_max_ms":1003,"recv_call_avg_ms":825.160000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":655.700000,"transmission_min_ms":254.500000,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169105952,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=169105952 server_send_ts_ms=169105952"} -{"ts_ms":169106141,"level":"INFO","component":"hub","message":"client_closed client_id=alpha remote=127.0.0.1:47878"} -{"ts_ms":169106141,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":169106141,"level":"INFO","component":"perf","tag":"final","elapsed_ms":2001,"bytes_sent":208,"bytes_recv":368,"send_count":3,"recv_count":2,"tx_current_mbps":0.000832,"rx_current_mbps":0.001471,"tx_avg_mbps":0.000832,"rx_avg_mbps":0.001471,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169106460,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=3 timeout_ms=500"} -{"ts_ms":169106460,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169106460,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=169106460 server_send_ts_ms=169106460"} -{"ts_ms":169106966,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=4 timeout_ms=500"} -{"ts_ms":169106966,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":2032,"bytes_sent":160,"bytes_recv":0,"send_count":5,"recv_count":0,"tx_current_mbps":0.000505,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000630,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":44800,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":402.208333,"transmission_min_ms":254.500000,"transmission_max_ms":508.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169106966,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3035,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000505,"rx_current_mbps":0.000505,"tx_avg_mbps":0.000337,"rx_avg_mbps":0.000422,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":506,"recv_call_min_ms":506,"recv_call_max_ms":1002,"recv_call_avg_ms":710.172800,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":845.333333,"queue_min_ms":762.000000,"queue_max_ms":1010.500000,"transmission_avg_ms":580.018519,"transmission_min_ms":254.000000,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.007512,"recv_buffer_pct_max":0.022536,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169106967,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169106967,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3036,"bytes_sent":192,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000757,"rx_current_mbps":0.000504,"tx_avg_mbps":0.000506,"rx_avg_mbps":0.000422,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":507,"recv_call_min_ms":507,"recv_call_max_ms":1003,"recv_call_avg_ms":710.782400,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":580.185185,"transmission_min_ms":254.000000,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169106967,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=169106967 server_send_ts_ms=169106967"} -{"ts_ms":169107139,"level":"INFO","component":"hub","message":"client_closed client_id=beta remote=127.0.0.1:47862"} -{"ts_ms":169107139,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":169107139,"level":"INFO","component":"perf","tag":"final","elapsed_ms":4001,"bytes_sent":52,"bytes_recv":288,"send_count":1,"recv_count":2,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000104,"rx_avg_mbps":0.000576,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169107144,"level":"INFO","component":"perf","tag":"final","elapsed_ms":5009,"bytes_sent":656,"bytes_recv":260,"send_count":4,"recv_count":4,"tx_current_mbps":0.001257,"rx_current_mbps":0.000416,"tx_avg_mbps":0.001048,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169107473,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=5 timeout_ms=500"} -{"ts_ms":169107473,"level":"WARN","component":"client","message":"time_sync_no_valid_sample"} -{"ts_ms":169107473,"level":"WARN","component":"client","message":"time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=171161828 bytes=44800 total_chunks=32"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107473,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107474,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107474,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107474,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107474,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107474,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107474,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107474,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107474,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107474,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107474,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107474,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169107474,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":169107474,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=1 transfer_id=171161828 expected_bytes=44800 written_bytes=44800 expected_chunks=32 unique_chunks=32 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:32 rx_avg_mbps=0.106 rx_current_mbps=0.001 processing_avg_ms=0.000 queue_avg_ms=0.000 transmission_avg_ms=183.333 propagation_avg_ms=0.000 end_to_end_avg_ms=0.000 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=0.00 local_tcp_retrans=0 local_tcp_data_segs_out=0 local_tcp_original_bytes=0 local_tcp_retrans_bytes=0 local_tcp_retrans_rate_pct=0.00 local_kcp_retrans=0 local_kcp_data_segs_out=0 local_kcp_original_bytes=0 local_kcp_retrans_bytes=0 local_kcp_retrans_rate_pct=0.00 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":169107474,"level":"INFO","component":"server","message":"file_transfer_end bytes=44800"} -{"ts_ms":169107534,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3603,"bytes_sent":288,"bytes_recv":47048,"send_count":6,"recv_count":38,"tx_current_mbps":0.001354,"rx_current_mbps":0.661559,"tx_avg_mbps":0.000639,"rx_avg_mbps":0.104464,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1003,"recv_call_avg_ms":0.547871,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":184.927520,"transmission_min_ms":0.432520,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169108473,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=udp transfer_id=171161828 total_bytes=44800 total_chunks=32 sent_bytes=44800 progress_bytes=44800 tx_avg_mbps=0.106 tx_current_mbps=0.001 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=0.000 transmission_avg_ms=99.106 propagation_avg_ms=0.000 last_rtt_ms=0 min_rtt_ms=0 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=0.00 tcp_retrans=0 tcp_data_segs_out=0 tcp_original_bytes=0 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:32 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":169108474,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3540,"bytes_sent":47048,"bytes_recv":0,"send_count":38,"recv_count":0,"tx_current_mbps":0.248743,"rx_current_mbps":0.000000,"tx_avg_mbps":0.106323,"rx_avg_mbps":0.000000,"progress_bytes":44800,"total_work_bytes":44800,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":99.106025,"transmission_min_ms":0.432520,"transmission_max_ms":508.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169201252,"level":"INFO","component":"tcp","message":"listening port=36504"} -{"ts_ms":169202256,"level":"INFO","component":"tcp","message":"listening port=36503"} -{"ts_ms":169203259,"level":"INFO","component":"tcp","message":"listening port=36502"} -{"ts_ms":169204262,"level":"INFO","component":"tcp","message":"connected peer_ip=127.0.0.1 peer_port=36502"} -{"ts_ms":169204263,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=1 bind_port=36502 peer_port=0"} -{"ts_ms":169204263,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=0 bind_port=0 peer_port=36502"} -{"ts_ms":169204263,"level":"INFO","component":"tcp","message":"connected peer_ip=127.0.0.1 peer_port=36503"} -{"ts_ms":169204263,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=0 bind_port=0 peer_port=36503"} -{"ts_ms":169204263,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":169204263,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=36503"} -{"ts_ms":169204263,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=1 bind_port=36503 peer_port=0"} -{"ts_ms":169204263,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":169204263,"level":"INFO","component":"tcp","message":"connected peer_ip=127.0.0.1 peer_port=36504"} -{"ts_ms":169204263,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1004,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1004.000000,"transmission_min_ms":1004.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169204263,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=0 bind_port=0 peer_port=36504"} -{"ts_ms":169204263,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=36504"} -{"ts_ms":169204263,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=1 bind_port=36504 peer_port=0"} -{"ts_ms":169204263,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169204263,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169204263,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169204263,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2007,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000128,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000128,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":2007.000000,"transmission_min_ms":2007.000000,"transmission_max_ms":2007.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169204263,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169204263,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169204263,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169204264,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3012,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000085,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000085,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1,"recv_call_min_ms":1,"recv_call_max_ms":1,"recv_call_avg_ms":1.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":3012.000000,"transmission_min_ms":3012.000000,"transmission_max_ms":3012.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169204264,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":169204264,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=169204264 server_send_ts_ms=169204264"} -{"ts_ms":169204772,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=1 timeout_ms=500"} -{"ts_ms":169204773,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=511"} -{"ts_ms":169204773,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=511 last_data_recv_ms=0"} -{"ts_ms":169204773,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=510"} -{"ts_ms":169204773,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=510 last_data_recv_ms=0"} -{"ts_ms":169204773,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169204773,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=509"} -{"ts_ms":169204773,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169204773,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=509 last_data_recv_ms=0"} -{"ts_ms":169204773,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169204773,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=169204773 server_send_ts_ms=169204773"} -{"ts_ms":169205280,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=2 timeout_ms=500"} -{"ts_ms":169205280,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=1018 last_data_recv_ms=0"} -{"ts_ms":169205280,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1018"} -{"ts_ms":169205280,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2021,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000503,"rx_current_mbps":0.000503,"tx_avg_mbps":0.000253,"rx_avg_mbps":0.000380,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":507,"recv_call_min_ms":0,"recv_call_max_ms":510,"recv_call_avg_ms":509.400000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":509.400000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":656.300000,"transmission_min_ms":255.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":4,"tcp_data_bytes_sent":96,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169205280,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":1018,"bytes_sent":96,"bytes_recv":0,"send_count":3,"recv_count":0,"tx_current_mbps":0.000754,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000754,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":22400,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.800000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.800000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":198.611111,"transmission_min_ms":1.000000,"transmission_max_ms":339.333333,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":6,"tcp_data_bytes_sent":144,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169205280,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1017"} -{"ts_ms":169205280,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=1017 last_data_recv_ms=0"} -{"ts_ms":169205280,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169205280,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3024,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000503,"rx_current_mbps":0.000503,"tx_avg_mbps":0.000169,"rx_avg_mbps":0.000254,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":507,"recv_call_min_ms":0,"recv_call_max_ms":509,"recv_call_avg_ms":508.600000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":508.600000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":1020.000000,"queue_min_ms":1020.000000,"queue_max_ms":1020.000000,"transmission_avg_ms":1057.500000,"transmission_min_ms":255.000000,"transmission_max_ms":2007.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.009766,"recv_buffer_pct_max":0.048828,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":4,"tcp_data_bytes_sent":96,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169205280,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=507"} -{"ts_ms":169205280,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169205280,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=507 last_data_recv_ms=0"} -{"ts_ms":169205280,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":4028,"bytes_sent":96,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000756,"rx_current_mbps":0.000504,"tx_avg_mbps":0.000191,"rx_avg_mbps":0.000191,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":507,"recv_call_min_ms":1,"recv_call_max_ms":509,"recv_call_avg_ms":183.480000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":508.600000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1459.100000,"transmission_min_ms":254.500000,"transmission_max_ms":3012.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":4,"tcp_data_bytes_sent":128,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169205280,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169205280,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=169205280 server_send_ts_ms=169205280"} -{"ts_ms":169205786,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=3 timeout_ms=500"} -{"ts_ms":169205786,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1524"} -{"ts_ms":169205786,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=1524 last_data_recv_ms=0"} -{"ts_ms":169205786,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1523"} -{"ts_ms":169205786,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=1523 last_data_recv_ms=0"} -{"ts_ms":169205786,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169205787,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=507"} -{"ts_ms":169205787,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169205787,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=507 last_data_recv_ms=0"} -{"ts_ms":169205787,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169205787,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=169205787 server_send_ts_ms=169205787"} -{"ts_ms":169206293,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=4 timeout_ms=500"} -{"ts_ms":169206293,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2031"} -{"ts_ms":169206293,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2031 last_data_recv_ms=0"} -{"ts_ms":169206293,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":2031,"bytes_sent":160,"bytes_recv":0,"send_count":5,"recv_count":0,"tx_current_mbps":0.000505,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000630,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":22400,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.512000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.512000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":508.000000,"queue_min_ms":508.000000,"queue_max_ms":508.000000,"transmission_avg_ms":321.666667,"transmission_min_ms":1.000000,"transmission_max_ms":506.500000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000244,"send_buffer_pct_max":0.001218,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":10,"tcp_data_bytes_sent":240,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169206293,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3034,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000505,"rx_current_mbps":0.000505,"tx_avg_mbps":0.000338,"rx_avg_mbps":0.000422,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":507,"recv_call_min_ms":0,"recv_call_max_ms":510,"recv_call_avg_ms":508.376000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":508.376000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":580.074074,"transmission_min_ms":253.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":8,"tcp_data_bytes_sent":192,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169206293,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2030"} -{"ts_ms":169206293,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169206293,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2030 last_data_recv_ms=0"} -{"ts_ms":169206293,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":4037,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000505,"rx_current_mbps":0.000505,"tx_avg_mbps":0.000254,"rx_avg_mbps":0.000317,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":506,"recv_call_min_ms":0,"recv_call_max_ms":509,"recv_call_avg_ms":507.824000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":507.664000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":2213.625000,"queue_min_ms":760.500000,"queue_max_ms":4032.000000,"transmission_avg_ms":840.277778,"transmission_min_ms":253.500000,"transmission_max_ms":2007.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000203,"send_buffer_pct_max":0.001827,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.032552,"recv_buffer_pct_max":0.146484,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":8,"tcp_data_bytes_sent":192,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169206293,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=506"} -{"ts_ms":169206293,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169206293,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=506 last_data_recv_ms=0"} -{"ts_ms":169206293,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":5041,"bytes_sent":192,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000758,"rx_current_mbps":0.000505,"tx_avg_mbps":0.000305,"rx_avg_mbps":0.000254,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":506,"recv_call_min_ms":1,"recv_call_max_ms":509,"recv_call_avg_ms":299.747200,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":507.824000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1100.574074,"transmission_min_ms":253.500000,"transmission_max_ms":3012.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":8,"tcp_data_bytes_sent":256,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169206293,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169206293,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=169206293 server_send_ts_ms=169206293"} -{"ts_ms":169206799,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=5 timeout_ms=500"} -{"ts_ms":169206799,"level":"WARN","component":"client","message":"time_sync_no_valid_sample"} -{"ts_ms":169206799,"level":"WARN","component":"client","message":"time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"} -{"ts_ms":169206799,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=1720 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206799,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2537 last_data_recv_ms=0"} -{"ts_ms":169206799,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=14 bytes_sent=3200 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206799,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=16 bytes_sent=4680 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206799,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=18 bytes_sent=6160 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206799,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=1720 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2536"} -{"ts_ms":169206799,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206799,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2537 last_data_recv_ms=0"} -{"ts_ms":169206799,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=20 bytes_sent=7640 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206799,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2536 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=22 bytes_sent=9120 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=14 bytes_sent=3200 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=24 bytes_sent=10600 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=1720 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=507"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=26 bytes_sent=12080 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=16 bytes_sent=4680 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2537 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=28 bytes_sent=13560 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=507 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38464 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=14 bytes_sent=3200 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=507"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=30 bytes_sent=15040 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=18 bytes_sent=6160 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=32 bytes_sent=16520 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2537 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=507 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=34 bytes_sent=18000 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=507 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38464 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=16 bytes_sent=4680 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=507"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=20 bytes_sent=7640 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=36 bytes_sent=19480 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2537 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38464 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=18 bytes_sent=6160 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=507"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=15 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=38 bytes_sent=20960 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=507 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=15 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=40 bytes_sent=22440 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2537 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=22 bytes_sent=9120 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=15 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=42 bytes_sent=23920 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=507 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=20 bytes_sent=7640 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=507"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=15 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=44 bytes_sent=23976 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=171099169 bytes=22400 total_chunks=16"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2537 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=24 bytes_sent=10600 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=507 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=22 bytes_sent=9120 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=507"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2537 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=26 bytes_sent=12080 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=507 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=24 bytes_sent=10600 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=507"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2537 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=28 bytes_sent=13560 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=507 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=26 bytes_sent=12080 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=507"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=30 bytes_sent=15040 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2537 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=507 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=28 bytes_sent=13560 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=507"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=32 bytes_sent=16520 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2537 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=34 bytes_sent=18000 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=30 bytes_sent=15040 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=507"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=507 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2537 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=36 bytes_sent=19480 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2537"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=32 bytes_sent=16520 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=507"} -{"ts_ms":169206800,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=507 last_data_recv_ms=0"} -{"ts_ms":169206800,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=38 bytes_sent=20960 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=2538"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=1"} -{"ts_ms":169206801,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2539 last_data_recv_ms=1"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=34 bytes_sent=18000 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=508"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=508 last_data_recv_ms=0"} -{"ts_ms":169206801,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=40 bytes_sent=22440 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206801,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2539 last_data_recv_ms=1"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=508 last_data_recv_ms=0"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=36 bytes_sent=19480 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=508"} -{"ts_ms":169206801,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=42 bytes_sent=23920 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206801,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2539 last_data_recv_ms=1"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=508 last_data_recv_ms=0"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=38 bytes_sent=20960 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=508"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=44 bytes_sent=23976 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=2538"} -{"ts_ms":169206801,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206801,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=508 last_data_recv_ms=0"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=40 bytes_sent=22440 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=508"} -{"ts_ms":169206801,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=508 last_data_recv_ms=0"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=42 bytes_sent=23920 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=508"} -{"ts_ms":169206801,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=206000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=2538 last_data_recv_ms=0"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=44 bytes_sent=23976 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=508"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=508 last_data_recv_ms=0"} -{"ts_ms":169206801,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":169206801,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=0 transfer_id=171099169 expected_bytes=22400 written_bytes=22400 expected_chunks=16 unique_chunks=16 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:16 rx_avg_mbps=0.034 rx_current_mbps=0.001 processing_avg_ms=0.000 queue_avg_ms=51319.000 transmission_avg_ms=467.727 propagation_avg_ms=0.000 end_to_end_avg_ms=0.000 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.04 cwnd_avg=10.00 local_tcp_retrans=0 local_tcp_data_segs_out=10 local_tcp_original_bytes=320 local_tcp_retrans_bytes=0 local_tcp_retrans_rate_pct=0.00 local_kcp_retrans=0 local_kcp_data_segs_out=0 local_kcp_original_bytes=0 local_kcp_retrans_bytes=0 local_kcp_retrans_rate_pct=0.00 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":169206801,"level":"INFO","component":"server","message":"file_transfer_end bytes=22400"} -{"ts_ms":169206801,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=384 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":169206866,"level":"INFO","component":"perf","tag":"final","elapsed_ms":5614,"bytes_sent":288,"bytes_recv":23624,"send_count":6,"recv_count":22,"tx_current_mbps":0.001340,"rx_current_mbps":0.327595,"tx_avg_mbps":0.000410,"rx_avg_mbps":0.033664,"progress_bytes":22400,"total_work_bytes":22400,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":509,"recv_call_avg_ms":9.669399,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":14.354872,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":51319.000000,"queue_min_ms":51319.000000,"queue_max_ms":51319.000000,"transmission_avg_ms":460.093683,"transmission_min_ms":0.866008,"transmission_max_ms":3012.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.040327,"recv_buffer_pct_max":1.129150,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":12,"tcp_data_bytes_sent":384,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169207800,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=tcp transfer_id=171099169 total_bytes=22400 total_chunks=16 sent_bytes=22400 progress_bytes=22400 tx_avg_mbps=0.053 tx_current_mbps=0.001 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=115.715 transmission_avg_ms=150.952 propagation_avg_ms=0.000 last_rtt_ms=0 min_rtt_ms=0 send_buffer_avg_pct=0.02 recv_buffer_avg_pct=0.00 cwnd_avg=10.91 tcp_retrans=0 tcp_data_segs_out=44 tcp_original_bytes=23976 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:16 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":169207801,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3539,"bytes_sent":23624,"bytes_recv":0,"send_count":22,"recv_count":0,"tx_current_mbps":0.124477,"rx_current_mbps":0.000000,"tx_avg_mbps":0.053403,"rx_avg_mbps":0.000000,"progress_bytes":22400,"total_work_bytes":22400,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.028709,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.028709,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":115.714797,"queue_min_ms":1.212090,"queue_max_ms":508.000000,"transmission_avg_ms":150.951996,"transmission_min_ms":0.864303,"transmission_max_ms":506.500000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.002132,"send_buffer_pct_avg":0.018026,"send_buffer_pct_max":0.112695,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":15.000000,"cwnd_avg":10.909091,"cwnd_max":15.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":44,"tcp_data_bytes_sent":23976,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169320831,"level":"INFO","component":"kcp","message":"init bind_port=37479 peer_ip=NULL peer_port=0 conv=37479"} -{"ts_ms":169320831,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=37479 peer_port=0"} -{"ts_ms":169321833,"level":"INFO","component":"kcp","message":"init bind_port=37478 peer_ip=NULL peer_port=0 conv=37478"} -{"ts_ms":169321833,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=37478 peer_port=0"} -{"ts_ms":169321833,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=37479 conv=37479"} -{"ts_ms":169321833,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=37479"} -{"ts_ms":169321833,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=37479"} -{"ts_ms":169322836,"level":"INFO","component":"kcp","message":"init bind_port=37477 peer_ip=NULL peer_port=0 conv=37477"} -{"ts_ms":169322837,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=37477 peer_port=0"} -{"ts_ms":169322837,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=37478 conv=37478"} -{"ts_ms":169322837,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=37478"} -{"ts_ms":169322837,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=37478"} -{"ts_ms":169323838,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=37477 conv=37477"} -{"ts_ms":169323838,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=37477"} -{"ts_ms":169323840,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1004,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1004.000000,"transmission_min_ms":1004.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001608,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169323840,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169323841,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2008,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000127,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000127,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":2008.000000,"transmission_min_ms":2008.000000,"transmission_max_ms":2008.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.000802,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169323841,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169323843,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3012,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000085,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000085,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000014,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":3012.000000,"transmission_min_ms":3012.000000,"transmission_max_ms":3012.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.000535,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169323843,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=169323843 server_send_ts_ms=169323843"} -{"ts_ms":169324345,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=1 timeout_ms=500"} -{"ts_ms":169324349,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169324350,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169324352,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=169324352 server_send_ts_ms=169324352"} -{"ts_ms":169324853,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=2 timeout_ms=500"} -{"ts_ms":169324853,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":1015,"bytes_sent":96,"bytes_recv":0,"send_count":3,"recv_count":0,"tx_current_mbps":0.000757,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000757,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":9600,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":9225.291667,"queue_min_ms":86.000000,"queue_max_ms":21822.500000,"transmission_avg_ms":295.916667,"transmission_min_ms":253.500000,"transmission_max_ms":338.333333,"propagation_avg_ms":5.253061,"propagation_min_ms":5.000000,"propagation_max_ms":5.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.022051,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":2.000000,"cwnd_avg":1.987903,"cwnd_max":2.000000,"last_rtt_ms":10,"min_rtt_ms":10,"max_rtt_ms":11,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":3,"kcp_data_bytes_sent":96,"kcp_retrans_bytes":0} -{"ts_ms":169324860,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2024,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000502,"rx_current_mbps":0.000502,"tx_avg_mbps":0.000253,"rx_avg_mbps":0.000379,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":43602.000000,"queue_min_ms":21887.000000,"queue_max_ms":65059.000000,"transmission_avg_ms":656.300000,"transmission_min_ms":254.500000,"transmission_max_ms":1004.000000,"propagation_avg_ms":254.500000,"propagation_min_ms":254.500000,"propagation_max_ms":254.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.001586,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.002379,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.001015,"cwnd_max":2.000000,"last_rtt_ms":509,"min_rtt_ms":509,"max_rtt_ms":509,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":2,"kcp_data_bytes_sent":64,"kcp_retrans_bytes":0} -{"ts_ms":169324860,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169324862,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3029,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000501,"rx_current_mbps":0.000501,"tx_avg_mbps":0.000169,"rx_avg_mbps":0.000254,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.001476,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":48977.000000,"queue_min_ms":21887.000000,"queue_max_ms":108231.000000,"transmission_avg_ms":1058.000000,"transmission_min_ms":254.500000,"transmission_max_ms":2008.000000,"propagation_avg_ms":254.500000,"propagation_min_ms":254.500000,"propagation_max_ms":254.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.001061,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.002122,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000679,"cwnd_max":2.000000,"last_rtt_ms":509,"min_rtt_ms":509,"max_rtt_ms":509,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":2,"kcp_data_bytes_sent":64,"kcp_retrans_bytes":0} -{"ts_ms":169324862,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169324863,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":4032,"bytes_sent":96,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000753,"rx_current_mbps":0.000502,"tx_avg_mbps":0.000190,"rx_avg_mbps":0.000190,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":15124.562000,"queue_min_ms":57.333333,"queue_max_ms":151403.000000,"transmission_avg_ms":1459.500000,"transmission_min_ms":254.500000,"transmission_max_ms":3012.000000,"propagation_avg_ms":506.000000,"propagation_min_ms":506.000000,"propagation_max_ms":506.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.298303,"send_buffer_pct_max":1.562500,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001196,"recv_buffer_pct_max":0.781250,"cwnd_last":2.000000,"cwnd_avg":1.000510,"cwnd_max":2.000000,"last_rtt_ms":1012,"min_rtt_ms":1012,"max_rtt_ms":1012,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":4,"kcp_data_segs_out":6,"kcp_data_bytes_sent":288,"kcp_retrans_bytes":192} -{"ts_ms":169324863,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=169324863 server_send_ts_ms=169324863"} -{"ts_ms":169325360,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=3 timeout_ms=500"} -{"ts_ms":169325370,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169325372,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169325374,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=169325374 server_send_ts_ms=169325374"} -{"ts_ms":169325867,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=4 timeout_ms=500"} -{"ts_ms":169325867,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":2029,"bytes_sent":160,"bytes_recv":0,"send_count":5,"recv_count":0,"tx_current_mbps":0.000505,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000631,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":9600,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000944,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":15989.821839,"queue_min_ms":86.000000,"queue_max_ms":43602.000000,"transmission_avg_ms":401.458333,"transmission_min_ms":253.500000,"transmission_max_ms":507.000000,"propagation_avg_ms":4.878819,"propagation_min_ms":4.500000,"propagation_max_ms":5.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.024513,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":4.000000,"cwnd_avg":2.977733,"cwnd_max":4.000000,"last_rtt_ms":9,"min_rtt_ms":9,"max_rtt_ms":11,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":5,"kcp_data_bytes_sent":160,"kcp_retrans_bytes":0} -{"ts_ms":169325869,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3033,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000507,"rx_current_mbps":0.000507,"tx_avg_mbps":0.000338,"rx_avg_mbps":0.000422,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":39422.809524,"queue_min_ms":21887.000000,"queue_max_ms":65059.000000,"transmission_avg_ms":580.629630,"transmission_min_ms":254.500000,"transmission_max_ms":1004.000000,"propagation_avg_ms":254.500000,"propagation_min_ms":254.500000,"propagation_max_ms":254.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.002116,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.002645,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.002708,"cwnd_max":3.000000,"last_rtt_ms":509,"min_rtt_ms":509,"max_rtt_ms":509,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":4,"kcp_data_bytes_sent":128,"kcp_retrans_bytes":0} -{"ts_ms":169325869,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169325870,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":4037,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000508,"rx_current_mbps":0.000508,"tx_avg_mbps":0.000254,"rx_avg_mbps":0.000317,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":55136.033333,"queue_min_ms":21887.000000,"queue_max_ms":130247.000000,"transmission_avg_ms":840.962963,"transmission_min_ms":254.500000,"transmission_max_ms":2008.000000,"propagation_avg_ms":254.500000,"propagation_min_ms":254.500000,"propagation_max_ms":254.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.002783,"send_buffer_pct_max":2.343750,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.003181,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000509,"cwnd_max":2.000000,"last_rtt_ms":509,"min_rtt_ms":509,"max_rtt_ms":509,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":2,"kcp_data_segs_out":6,"kcp_data_bytes_sent":192,"kcp_retrans_bytes":64} -{"ts_ms":169325870,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169325872,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":5041,"bytes_sent":192,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000761,"rx_current_mbps":0.000507,"tx_avg_mbps":0.000305,"rx_avg_mbps":0.000254,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":19569.268276,"queue_min_ms":57.333333,"queue_max_ms":151403.000000,"transmission_avg_ms":1101.388889,"transmission_min_ms":254.500000,"transmission_max_ms":3012.000000,"propagation_avg_ms":506.000000,"propagation_min_ms":506.000000,"propagation_max_ms":506.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":2.343750,"send_buffer_pct_avg":0.629526,"send_buffer_pct_max":2.343750,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001594,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.002448,"cwnd_max":2.000000,"last_rtt_ms":1108,"min_rtt_ms":1012,"max_rtt_ms":1108,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":6,"kcp_data_segs_out":10,"kcp_data_bytes_sent":480,"kcp_retrans_bytes":288} -{"ts_ms":169325872,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=169325872 server_send_ts_ms=169325872"} -{"ts_ms":169326374,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=5 timeout_ms=500"} -{"ts_ms":169326374,"level":"WARN","component":"client","message":"time_sync_no_valid_sample"} -{"ts_ms":169326374,"level":"WARN","component":"client","message":"time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"} -{"ts_ms":169326374,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=170973755 bytes=9600 total_chunks=7"} -{"ts_ms":169326382,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169326384,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169326384,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169326386,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169326388,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169326390,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169326392,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169326392,"level":"INFO","component":"relay","message":"forward_ok bytes=1264"} -{"ts_ms":169326392,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":169326395,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169326397,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169326399,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169326401,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169326403,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169327374,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=kcp transfer_id=170973755 total_bytes=9600 total_chunks=7 sent_bytes=9600 progress_bytes=9600 tx_avg_mbps=0.023 tx_current_mbps=0.001 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=11353.640 transmission_avg_ms=242.814 propagation_avg_ms=4.716 last_rtt_ms=14 min_rtt_ms=9 send_buffer_avg_pct=0.11 recv_buffer_avg_pct=0.00 cwnd_avg=3.41 tcp_retrans=0 tcp_data_segs_out=0 tcp_original_bytes=0 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=20 kcp_original_bytes=10280 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:7 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":169327374,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3536,"bytes_sent":10248,"bytes_recv":0,"send_count":13,"recv_count":0,"tx_current_mbps":0.053553,"rx_current_mbps":0.000000,"tx_avg_mbps":0.023186,"rx_avg_mbps":0.000000,"progress_bytes":9600,"total_work_bytes":9600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":11353.639887,"queue_min_ms":86.000000,"queue_max_ms":43619.200000,"transmission_avg_ms":242.814359,"transmission_min_ms":2.010309,"transmission_max_ms":507.000000,"propagation_avg_ms":4.716279,"propagation_min_ms":4.500000,"propagation_max_ms":5.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.107727,"send_buffer_pct_max":10.937500,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":4.000000,"cwnd_avg":3.414832,"cwnd_max":4.000000,"last_rtt_ms":14,"min_rtt_ms":9,"max_rtt_ms":14,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":20,"kcp_data_bytes_sent":10280,"kcp_retrans_bytes":0} -{"ts_ms":169532930,"level":"INFO","component":"kcp","message":"init bind_port=38513 peer_ip=NULL peer_port=0 conv=38513"} -{"ts_ms":169532930,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=38513 peer_port=0"} -{"ts_ms":169533932,"level":"INFO","component":"kcp","message":"init bind_port=38512 peer_ip=NULL peer_port=0 conv=38512"} -{"ts_ms":169533932,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=38512 peer_port=0"} -{"ts_ms":169533932,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=38513 conv=38513"} -{"ts_ms":169533932,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=38513"} -{"ts_ms":169533932,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=38513"} -{"ts_ms":169534933,"level":"INFO","component":"kcp","message":"init bind_port=38511 peer_ip=NULL peer_port=0 conv=38511"} -{"ts_ms":169534933,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=38511 peer_port=0"} -{"ts_ms":169534933,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=38512 conv=38512"} -{"ts_ms":169534933,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=38512"} -{"ts_ms":169534933,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=38512"} -{"ts_ms":169535934,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=38511 conv=38511"} -{"ts_ms":169535934,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=38511"} -{"ts_ms":169535935,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001604,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169535935,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169535937,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2005,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000128,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000128,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.200000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":1.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":2005.000000,"transmission_min_ms":2005.000000,"transmission_max_ms":2005.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.000804,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169535937,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169535938,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3008,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000085,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000085,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":3008.000000,"transmission_min_ms":3008.000000,"transmission_max_ms":3008.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.000535,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169535938,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=169535938 server_send_ts_ms=169535938"} -{"ts_ms":169536441,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=1 timeout_ms=500"} -{"ts_ms":169536444,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169536446,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169536446,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=169536446 server_send_ts_ms=169536446"} -{"ts_ms":169536951,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=2 timeout_ms=500"} -{"ts_ms":169536951,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":1017,"bytes_sent":96,"bytes_recv":0,"send_count":3,"recv_count":0,"tx_current_mbps":0.000755,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000755,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":9600,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.001547,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":9378.961538,"queue_min_ms":86.000000,"queue_max_ms":21865.500000,"transmission_avg_ms":296.250000,"transmission_min_ms":253.500000,"transmission_max_ms":339.000000,"propagation_avg_ms":5.500000,"propagation_min_ms":5.500000,"propagation_max_ms":5.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.023579,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":2.000000,"cwnd_avg":1.987928,"cwnd_max":2.000000,"last_rtt_ms":11,"min_rtt_ms":11,"max_rtt_ms":11,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":2,"kcp_data_bytes_sent":64,"kcp_retrans_bytes":0} -{"ts_ms":169536956,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2023,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000501,"rx_current_mbps":0.000501,"tx_avg_mbps":0.000253,"rx_avg_mbps":0.000380,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":43587.666667,"queue_min_ms":21887.000000,"queue_max_ms":64973.000000,"transmission_avg_ms":655.600000,"transmission_min_ms":254.500000,"transmission_max_ms":1002.000000,"propagation_avg_ms":254.500000,"propagation_min_ms":254.500000,"propagation_max_ms":254.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.001583,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.002375,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.001013,"cwnd_max":2.000000,"last_rtt_ms":509,"min_rtt_ms":509,"max_rtt_ms":509,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":2,"kcp_data_bytes_sent":64,"kcp_retrans_bytes":0} -{"ts_ms":169536957,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169536957,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3025,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000502,"rx_current_mbps":0.000502,"tx_avg_mbps":0.000169,"rx_avg_mbps":0.000254,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.640000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":48934.000000,"queue_min_ms":21887.000000,"queue_max_ms":108102.000000,"transmission_avg_ms":1056.700000,"transmission_min_ms":254.500000,"transmission_max_ms":2005.000000,"propagation_avg_ms":254.500000,"propagation_min_ms":254.500000,"propagation_max_ms":254.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.001062,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.002124,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000680,"cwnd_max":2.000000,"last_rtt_ms":509,"min_rtt_ms":509,"max_rtt_ms":509,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":2,"kcp_data_bytes_sent":64,"kcp_retrans_bytes":0} -{"ts_ms":169536957,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169536959,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":4029,"bytes_sent":96,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000752,"rx_current_mbps":0.000501,"tx_avg_mbps":0.000191,"rx_avg_mbps":0.000191,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":15145.058667,"queue_min_ms":86.000000,"queue_max_ms":151188.000000,"transmission_avg_ms":1457.700000,"transmission_min_ms":254.000000,"transmission_max_ms":3008.000000,"propagation_avg_ms":509.000000,"propagation_min_ms":509.000000,"propagation_max_ms":509.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.298549,"send_buffer_pct_max":1.562500,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001196,"recv_buffer_pct_max":0.781250,"cwnd_last":2.000000,"cwnd_avg":1.000510,"cwnd_max":2.000000,"last_rtt_ms":1018,"min_rtt_ms":1018,"max_rtt_ms":1018,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":4,"kcp_data_segs_out":6,"kcp_data_bytes_sent":288,"kcp_retrans_bytes":192} -{"ts_ms":169536959,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=169536959 server_send_ts_ms=169536959"} -{"ts_ms":169537458,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=3 timeout_ms=500"} -{"ts_ms":169537466,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169537467,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169537468,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=169537468 server_send_ts_ms=169537468"} -{"ts_ms":169537965,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=4 timeout_ms=500"} -{"ts_ms":169537965,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":2031,"bytes_sent":160,"bytes_recv":0,"send_count":5,"recv_count":0,"tx_current_mbps":0.000505,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000630,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":9600,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":15611.224138,"queue_min_ms":86.000000,"queue_max_ms":43602.000000,"transmission_avg_ms":401.625000,"transmission_min_ms":253.500000,"transmission_max_ms":507.000000,"propagation_avg_ms":5.500000,"propagation_min_ms":5.500000,"propagation_max_ms":5.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.024439,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":4.000000,"cwnd_avg":2.978809,"cwnd_max":4.000000,"last_rtt_ms":11,"min_rtt_ms":11,"max_rtt_ms":11,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":4,"kcp_data_bytes_sent":128,"kcp_retrans_bytes":0} -{"ts_ms":169537975,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3042,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000502,"rx_current_mbps":0.000502,"tx_avg_mbps":0.000337,"rx_avg_mbps":0.000421,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":39476.047619,"queue_min_ms":21887.000000,"queue_max_ms":64973.000000,"transmission_avg_ms":505.944444,"transmission_min_ms":1.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":254.500000,"propagation_min_ms":254.500000,"propagation_max_ms":254.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.002104,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.002630,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.002694,"cwnd_max":3.000000,"last_rtt_ms":509,"min_rtt_ms":509,"max_rtt_ms":509,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":4,"kcp_data_bytes_sent":128,"kcp_retrans_bytes":0} -{"ts_ms":169537975,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169537976,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":4044,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000502,"rx_current_mbps":0.000502,"tx_avg_mbps":0.000253,"rx_avg_mbps":0.000317,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.409600,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":55137.466667,"queue_min_ms":21887.000000,"queue_max_ms":130075.000000,"transmission_avg_ms":840.703704,"transmission_min_ms":254.500000,"transmission_max_ms":2005.000000,"propagation_avg_ms":254.500000,"propagation_min_ms":254.500000,"propagation_max_ms":254.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.002777,"send_buffer_pct_max":2.343750,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.003174,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000508,"cwnd_max":2.000000,"last_rtt_ms":509,"min_rtt_ms":509,"max_rtt_ms":509,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":2,"kcp_data_segs_out":6,"kcp_data_bytes_sent":192,"kcp_retrans_bytes":64} -{"ts_ms":169537976,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169537977,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":5047,"bytes_sent":192,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000754,"rx_current_mbps":0.000503,"tx_avg_mbps":0.000304,"rx_avg_mbps":0.000254,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":19670.092000,"queue_min_ms":86.000000,"queue_max_ms":151188.000000,"transmission_avg_ms":1100.444444,"transmission_min_ms":254.000000,"transmission_max_ms":3008.000000,"propagation_avg_ms":509.000000,"propagation_min_ms":509.000000,"propagation_max_ms":509.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":2.343750,"send_buffer_pct_avg":0.633772,"send_buffer_pct_max":2.343750,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001589,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.001221,"cwnd_max":2.000000,"last_rtt_ms":1115,"min_rtt_ms":1018,"max_rtt_ms":1115,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":6,"kcp_data_segs_out":10,"kcp_data_bytes_sent":480,"kcp_retrans_bytes":288} -{"ts_ms":169537977,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=169537977 server_send_ts_ms=169537977"} -{"ts_ms":169538474,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=5 timeout_ms=500"} -{"ts_ms":169538474,"level":"WARN","component":"client","message":"time_sync_no_valid_sample"} -{"ts_ms":169538474,"level":"WARN","component":"client","message":"time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"} -{"ts_ms":169538474,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=171814373 bytes=9600 total_chunks=7"} -{"ts_ms":169538477,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169538481,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169538488,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169538490,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169538491,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169538492,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169538494,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169538496,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169538496,"level":"INFO","component":"relay","message":"forward_ok bytes=1264"} -{"ts_ms":169538496,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":169539474,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=kcp transfer_id=171814373 total_bytes=9600 total_chunks=7 sent_bytes=9600 progress_bytes=9600 tx_avg_mbps=0.023 tx_current_mbps=0.001 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=11054.837 transmission_avg_ms=243.300 propagation_avg_ms=5.500 last_rtt_ms=14 min_rtt_ms=11 send_buffer_avg_pct=0.12 recv_buffer_avg_pct=0.00 cwnd_avg=3.42 tcp_retrans=0 tcp_data_segs_out=0 tcp_original_bytes=0 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=19 kcp_original_bytes=10248 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:7 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":169539475,"level":"INFO","component":"perf","tag":"final","elapsed_ms":3541,"bytes_sent":10248,"bytes_recv":0,"send_count":13,"recv_count":0,"tx_current_mbps":0.053446,"rx_current_mbps":0.000000,"tx_avg_mbps":0.023153,"rx_avg_mbps":0.000000,"progress_bytes":9600,"total_work_bytes":9600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":11054.836880,"queue_min_ms":86.000000,"queue_max_ms":43688.000000,"transmission_avg_ms":243.299875,"transmission_min_ms":2.018239,"transmission_max_ms":509.000000,"propagation_avg_ms":5.500000,"propagation_min_ms":5.500000,"propagation_max_ms":5.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.119151,"send_buffer_pct_max":10.937500,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":4.000000,"cwnd_avg":3.415367,"cwnd_max":4.000000,"last_rtt_ms":14,"min_rtt_ms":11,"max_rtt_ms":14,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":19,"kcp_data_bytes_sent":10248,"kcp_retrans_bytes":0} -{"ts_ms":169563352,"level":"INFO","component":"kcp","message":"init bind_port=40091 peer_ip=NULL peer_port=0 conv=40091"} -{"ts_ms":169563353,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=40091 peer_port=0"} -{"ts_ms":169564356,"level":"INFO","component":"kcp","message":"init bind_port=40090 peer_ip=NULL peer_port=0 conv=40090"} -{"ts_ms":169564356,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=40090 peer_port=0"} -{"ts_ms":169564356,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=40091 conv=40091"} -{"ts_ms":169564356,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=40091"} -{"ts_ms":169564356,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=40091"} -{"ts_ms":169565358,"level":"INFO","component":"kcp","message":"init bind_port=40089 peer_ip=NULL peer_port=0 conv=40089"} -{"ts_ms":169565358,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=40089 peer_port=0"} -{"ts_ms":169565358,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=40090 conv=40090"} -{"ts_ms":169565358,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=40090"} -{"ts_ms":169565358,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=40090"} -{"ts_ms":169566361,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=40089 conv=40089"} -{"ts_ms":169566361,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=40089"} -{"ts_ms":169566362,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1004,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1004.000000,"transmission_min_ms":1004.000000,"transmission_max_ms":1004.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001604,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169566362,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169566364,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2008,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000127,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000127,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":2008.000000,"transmission_min_ms":2008.000000,"transmission_max_ms":2008.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.000802,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169566364,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169566365,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3013,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000085,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000085,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":3013.000000,"transmission_min_ms":3013.000000,"transmission_max_ms":3013.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.000535,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169566365,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=169566365 server_send_ts_ms=169566365"} -{"ts_ms":169566868,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=1 timeout_ms=500"} -{"ts_ms":169566873,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169566874,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169566874,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=169566874 server_send_ts_ms=169566874"} -{"ts_ms":169567374,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=2 timeout_ms=500"} -{"ts_ms":169567374,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":1013,"bytes_sent":96,"bytes_recv":0,"send_count":3,"recv_count":0,"tx_current_mbps":0.000758,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000758,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":9600,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":9037.818182,"queue_min_ms":43.000000,"queue_max_ms":21801.000000,"transmission_avg_ms":295.583333,"transmission_min_ms":253.500000,"transmission_max_ms":337.666667,"propagation_avg_ms":4.253579,"propagation_min_ms":4.000000,"propagation_max_ms":4.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.018978,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":2.000000,"cwnd_avg":1.989879,"cwnd_max":2.000000,"last_rtt_ms":8,"min_rtt_ms":8,"max_rtt_ms":9,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":2,"kcp_data_bytes_sent":64,"kcp_retrans_bytes":0} -{"ts_ms":169567382,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2024,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000502,"rx_current_mbps":0.000502,"tx_avg_mbps":0.000253,"rx_avg_mbps":0.000379,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":43659.333333,"queue_min_ms":21973.000000,"queue_max_ms":65145.000000,"transmission_avg_ms":656.900000,"transmission_min_ms":255.500000,"transmission_max_ms":1004.000000,"propagation_avg_ms":255.500000,"propagation_min_ms":255.500000,"propagation_max_ms":255.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.001585,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.002377,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.001014,"cwnd_max":2.000000,"last_rtt_ms":511,"min_rtt_ms":511,"max_rtt_ms":511,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":2,"kcp_data_bytes_sent":64,"kcp_retrans_bytes":0} -{"ts_ms":169567382,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169567383,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3027,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000502,"rx_current_mbps":0.000502,"tx_avg_mbps":0.000169,"rx_avg_mbps":0.000254,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":1,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":1.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":1.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":48977.000000,"queue_min_ms":21930.000000,"queue_max_ms":108231.000000,"transmission_avg_ms":1057.900000,"transmission_min_ms":255.000000,"transmission_max_ms":2008.000000,"propagation_avg_ms":254.500000,"propagation_min_ms":254.500000,"propagation_max_ms":254.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.001061,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.002123,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000679,"cwnd_max":2.000000,"last_rtt_ms":509,"min_rtt_ms":509,"max_rtt_ms":509,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":2,"kcp_data_bytes_sent":64,"kcp_retrans_bytes":0} -{"ts_ms":169567383,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169567385,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":4033,"bytes_sent":96,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000753,"rx_current_mbps":0.000502,"tx_avg_mbps":0.000190,"rx_avg_mbps":0.000190,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":15124.934667,"queue_min_ms":57.333333,"queue_max_ms":151446.000000,"transmission_avg_ms":1459.900000,"transmission_min_ms":254.500000,"transmission_max_ms":3013.000000,"propagation_avg_ms":506.000000,"propagation_min_ms":506.000000,"propagation_max_ms":506.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.298455,"send_buffer_pct_max":1.562500,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001197,"recv_buffer_pct_max":0.781250,"cwnd_last":2.000000,"cwnd_avg":1.000511,"cwnd_max":2.000000,"last_rtt_ms":1012,"min_rtt_ms":1012,"max_rtt_ms":1012,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":4,"kcp_data_segs_out":6,"kcp_data_bytes_sent":288,"kcp_retrans_bytes":192} -{"ts_ms":169567385,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=169567385 server_send_ts_ms=169567385"} -{"ts_ms":169567880,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=3 timeout_ms=500"} -{"ts_ms":169567883,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169567884,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169567886,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=169567886 server_send_ts_ms=169567886"} -{"ts_ms":169568387,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=4 timeout_ms=500"} -{"ts_ms":169568387,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":2026,"bytes_sent":160,"bytes_recv":0,"send_count":5,"recv_count":0,"tx_current_mbps":0.000505,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000632,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":9600,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":14789.611111,"queue_min_ms":43.000000,"queue_max_ms":43559.000000,"transmission_avg_ms":400.916667,"transmission_min_ms":253.500000,"transmission_max_ms":506.500000,"propagation_avg_ms":4.126273,"propagation_min_ms":4.000000,"propagation_max_ms":4.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.019789,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":4.000000,"cwnd_avg":2.979737,"cwnd_max":4.000000,"last_rtt_ms":8,"min_rtt_ms":8,"max_rtt_ms":9,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":4,"kcp_data_bytes_sent":128,"kcp_retrans_bytes":0} -{"ts_ms":169568394,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3036,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000506,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000337,"rx_avg_mbps":0.000422,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":39392.095238,"queue_min_ms":21543.000000,"queue_max_ms":65145.000000,"transmission_avg_ms":579.629630,"transmission_min_ms":250.500000,"transmission_max_ms":1004.000000,"propagation_avg_ms":254.500000,"propagation_min_ms":253.500000,"propagation_max_ms":255.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.002111,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.002639,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.002703,"cwnd_max":3.000000,"last_rtt_ms":507,"min_rtt_ms":507,"max_rtt_ms":511,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":4,"kcp_data_bytes_sent":128,"kcp_retrans_bytes":0} -{"ts_ms":169568394,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169568395,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":4039,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000506,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000254,"rx_avg_mbps":0.000317,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.640000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.640000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":54971.200000,"queue_min_ms":21543.000000,"queue_max_ms":130161.000000,"transmission_avg_ms":839.555556,"transmission_min_ms":250.500000,"transmission_max_ms":2008.000000,"propagation_avg_ms":254.500000,"propagation_min_ms":254.500000,"propagation_max_ms":254.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.002782,"send_buffer_pct_max":2.343750,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.003179,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000509,"cwnd_max":2.000000,"last_rtt_ms":509,"min_rtt_ms":509,"max_rtt_ms":509,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":2,"kcp_data_segs_out":6,"kcp_data_bytes_sent":192,"kcp_retrans_bytes":64} -{"ts_ms":169568395,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":169568396,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":5044,"bytes_sent":192,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000760,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000305,"rx_avg_mbps":0.000254,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":19550.973672,"queue_min_ms":57.333333,"queue_max_ms":151446.000000,"transmission_avg_ms":1100.092593,"transmission_min_ms":250.500000,"transmission_max_ms":3013.000000,"propagation_avg_ms":506.000000,"propagation_min_ms":506.000000,"propagation_max_ms":506.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":2.343750,"send_buffer_pct_avg":0.632456,"send_buffer_pct_max":2.343750,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001593,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.002447,"cwnd_max":2.000000,"last_rtt_ms":1108,"min_rtt_ms":1012,"max_rtt_ms":1108,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":6,"kcp_data_segs_out":10,"kcp_data_bytes_sent":480,"kcp_retrans_bytes":288} -{"ts_ms":169568396,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=169568396 server_send_ts_ms=169568396"} -{"ts_ms":169568893,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=5 timeout_ms=500"} -{"ts_ms":169568893,"level":"WARN","component":"client","message":"time_sync_no_valid_sample"} -{"ts_ms":169568893,"level":"WARN","component":"client","message":"time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"} -{"ts_ms":169568893,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=171713011 bytes=9600 total_chunks=7"} -{"ts_ms":169568904,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169568906,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169568908,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169568908,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169568910,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169568913,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169568915,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169568915,"level":"INFO","component":"relay","message":"forward_ok bytes=1264"} -{"ts_ms":169568915,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":169568918,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169568921,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169568923,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169568925,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169568927,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":169573893,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=kcp transfer_id=171713011 total_bytes=9600 total_chunks=7 sent_bytes=9600 progress_bytes=9600 tx_avg_mbps=0.011 tx_current_mbps=0.001 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=10116.909 transmission_avg_ms=242.419 propagation_avg_ms=3.669 last_rtt_ms=11 min_rtt_ms=7 send_buffer_avg_pct=0.05 recv_buffer_avg_pct=0.00 cwnd_avg=3.73 tcp_retrans=0 tcp_data_segs_out=0 tcp_original_bytes=0 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=19 kcp_original_bytes=10248 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:7 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":169573893,"level":"INFO","component":"perf","tag":"final","elapsed_ms":7532,"bytes_sent":10248,"bytes_recv":0,"send_count":13,"recv_count":0,"tx_current_mbps":0.014657,"rx_current_mbps":0.000000,"tx_avg_mbps":0.010885,"rx_avg_mbps":0.000000,"progress_bytes":9600,"total_work_bytes":9600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":10116.908842,"queue_min_ms":43.000000,"queue_max_ms":43559.000000,"transmission_avg_ms":242.418823,"transmission_min_ms":2.006344,"transmission_max_ms":506.500000,"propagation_avg_ms":3.668716,"propagation_min_ms":3.500000,"propagation_max_ms":4.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.054570,"send_buffer_pct_max":10.937500,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":4.000000,"cwnd_avg":3.725239,"cwnd_max":4.000000,"last_rtt_ms":11,"min_rtt_ms":7,"max_rtt_ms":11,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":19,"kcp_data_bytes_sent":10248,"kcp_retrans_bytes":0} -{"ts_ms":169943163,"level":"INFO","component":"kcp","message":"init bind_port=41499 peer_ip=NULL peer_port=0 conv=41499"} -{"ts_ms":169943163,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=41499 peer_port=0"} -{"ts_ms":169944167,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=41499 conv=41499"} -{"ts_ms":169944167,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=41499"} -{"ts_ms":169944168,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1005,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1005.000000,"transmission_min_ms":1005.000000,"transmission_max_ms":1005.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001604,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":169944169,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=169944168 server_send_ts_ms=169944168"} -{"ts_ms":169944177,"level":"INFO","component":"client","message":"time_sync_sample probe_id=1 rtt_ms=8 offset_ms=-3"} -{"ts_ms":169944179,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=169944179 server_send_ts_ms=169944179"} -{"ts_ms":169944187,"level":"INFO","component":"client","message":"time_sync_sample probe_id=2 rtt_ms=9 offset_ms=-2"} -{"ts_ms":169944189,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=169944189 server_send_ts_ms=169944189"} -{"ts_ms":169944198,"level":"INFO","component":"client","message":"time_sync_sample probe_id=3 rtt_ms=7 offset_ms=-1"} -{"ts_ms":169944198,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=169944198 server_send_ts_ms=169944198"} -{"ts_ms":169944208,"level":"INFO","component":"client","message":"time_sync_sample probe_id=4 rtt_ms=6 offset_ms=-3"} -{"ts_ms":169944208,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=169944208 server_send_ts_ms=169944208"} -{"ts_ms":169944218,"level":"INFO","component":"client","message":"time_sync_sample probe_id=5 rtt_ms=6 offset_ms=-3"} -{"ts_ms":169944218,"level":"INFO","component":"client","message":"time_sync_selected offset_ms=-3 best_rtt_ms=6 samples=5"} -{"ts_ms":169944218,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=168198455 bytes=9600 total_chunks=7"} -{"ts_ms":169944229,"level":"INFO","component":"server","message":"time_sync_ready offset_ms=-3 best_rtt_ms=6 samples=5"} -{"ts_ms":169944241,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=2 transfer_id=168198455 expected_bytes=9600 written_bytes=9600 expected_chunks=7 unique_chunks=7 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:7 rx_avg_mbps=0.076 rx_current_mbps=0.000 processing_avg_ms=0.000 queue_avg_ms=1167.032 transmission_avg_ms=65.826 propagation_avg_ms=2.000 end_to_end_avg_ms=21.714 send_buffer_avg_pct=0.04 recv_buffer_avg_pct=0.04 cwnd_avg=1.21 local_tcp_retrans=0 local_tcp_data_segs_out=0 local_tcp_original_bytes=0 local_tcp_retrans_bytes=0 local_tcp_retrans_rate_pct=0.00 local_kcp_retrans=0 local_kcp_data_segs_out=5 local_kcp_original_bytes=240 local_kcp_retrans_bytes=0 local_kcp_retrans_rate_pct=0.00 clock_sync_ok=1 clock_offset_ms=-3 clock_sync_rtt_ms=6 clock_sync_samples=5"} -{"ts_ms":169944242,"level":"INFO","component":"server","message":"file_transfer_end bytes=9600"} -{"ts_ms":169944245,"level":"INFO","component":"client","message":"transfer_ack transfer_id=168198455 bytes_written=9600 rtt_ms=27"} -{"ts_ms":169944265,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1102,"bytes_sent":288,"bytes_recv":10288,"send_count":6,"recv_count":14,"tx_current_mbps":0.023753,"rx_current_mbps":0.845856,"tx_avg_mbps":0.002091,"rx_avg_mbps":0.074686,"progress_bytes":9600,"total_work_bytes":9600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.327680,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.327680,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":1105.178294,"queue_min_ms":9.832420,"queue_max_ms":43688.000000,"transmission_avg_ms":63.151215,"transmission_min_ms":0.284711,"transmission_max_ms":1005.000000,"propagation_avg_ms":2.000000,"propagation_min_ms":2.000000,"propagation_max_ms":2.000000,"end_to_end_avg_ms":21.714286,"end_to_end_min_ms":16.000000,"end_to_end_max_ms":26.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.046621,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.039557,"recv_buffer_pct_max":2.343750,"cwnd_last":4.000000,"cwnd_avg":1.278481,"cwnd_max":4.000000,"last_rtt_ms":4,"min_rtt_ms":4,"max_rtt_ms":6,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":6,"kcp_data_bytes_sent":288,"kcp_retrans_bytes":0} -{"ts_ms":169945218,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=kcp transfer_id=168198455 total_bytes=9600 total_chunks=7 sent_bytes=9600 progress_bytes=9600 tx_avg_mbps=0.078 tx_current_mbps=0.000 rx_avg_mbps=0.002 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=266.944 transmission_avg_ms=11.475 propagation_avg_ms=3.036 last_rtt_ms=11 min_rtt_ms=6 send_buffer_avg_pct=0.40 recv_buffer_avg_pct=0.01 cwnd_avg=3.92 tcp_retrans=0 tcp_data_segs_out=0 tcp_original_bytes=0 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=20 kcp_original_bytes=10288 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:7 ack_received=1 ack_rtt_ms=27 ack_bytes_written=9600 clock_sync_ok=1 clock_offset_ms=-3 clock_sync_rtt_ms=6 clock_sync_samples=5"} -{"ts_ms":169945218,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1051,"bytes_sent":10288,"bytes_recv":288,"send_count":14,"recv_count":6,"tx_current_mbps":0.078310,"rx_current_mbps":0.002192,"tx_avg_mbps":0.078310,"rx_avg_mbps":0.002192,"progress_bytes":9600,"total_work_bytes":9600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":266.944295,"queue_min_ms":84.261275,"queue_max_ms":1052.640000,"transmission_avg_ms":11.474901,"transmission_min_ms":0.198289,"transmission_max_ms":44.870192,"propagation_avg_ms":3.035849,"propagation_min_ms":3.000000,"propagation_max_ms":4.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.400224,"send_buffer_pct_max":11.718750,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.008861,"recv_buffer_pct_max":0.781250,"cwnd_last":4.000000,"cwnd_avg":3.922495,"cwnd_max":4.000000,"last_rtt_ms":11,"min_rtt_ms":6,"max_rtt_ms":27,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":20,"kcp_data_bytes_sent":10288,"kcp_retrans_bytes":0} -{"ts_ms":170146578,"level":"INFO","component":"kcp","message":"init bind_port=42067 peer_ip=NULL peer_port=0 conv=42067"} -{"ts_ms":170146578,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=42067 peer_port=0"} -{"ts_ms":170147579,"level":"INFO","component":"kcp","message":"init bind_port=42066 peer_ip=NULL peer_port=0 conv=42066"} -{"ts_ms":170147579,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=42066 peer_port=0"} -{"ts_ms":170147579,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=42067 conv=42067"} -{"ts_ms":170147579,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=42067"} -{"ts_ms":170147579,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=42067"} -{"ts_ms":170148581,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=42066 conv=42066"} -{"ts_ms":170148581,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=42066"} -{"ts_ms":170148581,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001608,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":170148582,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170148583,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2005,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000128,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000128,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":2005.000000,"transmission_min_ms":2005.000000,"transmission_max_ms":2005.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.000804,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":170148583,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=170148583 server_send_ts_ms=170148583"} -{"ts_ms":170149087,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=1 timeout_ms=500"} -{"ts_ms":170149091,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170149093,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=170149093 server_send_ts_ms=170149093"} -{"ts_ms":170149595,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=2 timeout_ms=500"} -{"ts_ms":170149595,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":1014,"bytes_sent":96,"bytes_recv":0,"send_count":3,"recv_count":0,"tx_current_mbps":0.000757,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000757,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":9600,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":9214.541667,"queue_min_ms":86.000000,"queue_max_ms":21801.000000,"transmission_avg_ms":295.500000,"transmission_min_ms":253.000000,"transmission_max_ms":338.000000,"propagation_avg_ms":5.000000,"propagation_min_ms":5.000000,"propagation_max_ms":5.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.022141,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":2.000000,"cwnd_avg":1.987854,"cwnd_max":2.000000,"last_rtt_ms":10,"min_rtt_ms":10,"max_rtt_ms":10,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":2,"kcp_data_bytes_sent":64,"kcp_retrans_bytes":0} -{"ts_ms":170149602,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2023,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000501,"rx_current_mbps":0.000501,"tx_avg_mbps":0.000253,"rx_avg_mbps":0.000380,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":38194.750000,"queue_min_ms":21930.000000,"queue_max_ms":65016.000000,"transmission_avg_ms":455.700000,"transmission_min_ms":1.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":254.500000,"propagation_min_ms":254.500000,"propagation_max_ms":254.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.001586,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.003173,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.001015,"cwnd_max":2.000000,"last_rtt_ms":509,"min_rtt_ms":509,"max_rtt_ms":509,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":2,"kcp_data_bytes_sent":64,"kcp_retrans_bytes":0} -{"ts_ms":170149602,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170149604,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3026,"bytes_sent":96,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000752,"rx_current_mbps":0.000501,"tx_avg_mbps":0.000254,"rx_avg_mbps":0.000254,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":15014.927856,"queue_min_ms":86.000000,"queue_max_ms":108145.000000,"transmission_avg_ms":1057.100000,"transmission_min_ms":255.000000,"transmission_max_ms":2005.000000,"propagation_avg_ms":508.000000,"propagation_min_ms":508.000000,"propagation_max_ms":508.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.397003,"send_buffer_pct_max":1.562500,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001594,"recv_buffer_pct_max":0.781250,"cwnd_last":2.000000,"cwnd_avg":1.000680,"cwnd_max":2.000000,"last_rtt_ms":1016,"min_rtt_ms":1016,"max_rtt_ms":1016,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":4,"kcp_data_segs_out":6,"kcp_data_bytes_sent":288,"kcp_retrans_bytes":192} -{"ts_ms":170149604,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=170149604 server_send_ts_ms=170149604"} -{"ts_ms":170150101,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=3 timeout_ms=500"} -{"ts_ms":170150101,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170150103,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=170150103 server_send_ts_ms=170150103"} -{"ts_ms":170150607,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=4 timeout_ms=500"} -{"ts_ms":170150607,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":2026,"bytes_sent":160,"bytes_recv":0,"send_count":5,"recv_count":0,"tx_current_mbps":0.000506,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000632,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":9600,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":14926.788462,"queue_min_ms":86.000000,"queue_max_ms":43516.000000,"transmission_avg_ms":400.750000,"transmission_min_ms":253.000000,"transmission_max_ms":506.000000,"propagation_avg_ms":4.752551,"propagation_min_ms":4.500000,"propagation_max_ms":5.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.022186,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":4.000000,"cwnd_avg":2.977688,"cwnd_max":4.000000,"last_rtt_ms":9,"min_rtt_ms":9,"max_rtt_ms":10,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":4,"kcp_data_bytes_sent":128,"kcp_retrans_bytes":0} -{"ts_ms":170150614,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3035,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000506,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000337,"rx_avg_mbps":0.000422,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":1,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.200000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":1.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":43421.400000,"queue_min_ms":21457.000000,"queue_max_ms":86989.000000,"transmission_avg_ms":467.481481,"transmission_min_ms":1.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":254.500000,"propagation_min_ms":254.500000,"propagation_max_ms":254.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.003698,"send_buffer_pct_max":2.343750,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.004226,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000676,"cwnd_max":2.000000,"last_rtt_ms":509,"min_rtt_ms":509,"max_rtt_ms":509,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":2,"kcp_data_segs_out":6,"kcp_data_bytes_sent":192,"kcp_retrans_bytes":64} -{"ts_ms":170150614,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170150615,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":4037,"bytes_sent":192,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000760,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000380,"rx_avg_mbps":0.000317,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":19422.972753,"queue_min_ms":86.000000,"queue_max_ms":108145.000000,"transmission_avg_ms":838.685185,"transmission_min_ms":249.500000,"transmission_max_ms":2005.000000,"propagation_avg_ms":508.000000,"propagation_min_ms":508.000000,"propagation_max_ms":508.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":2.343750,"send_buffer_pct_avg":0.789603,"send_buffer_pct_max":2.343750,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001989,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.002037,"cwnd_max":2.000000,"last_rtt_ms":1112,"min_rtt_ms":1016,"max_rtt_ms":1112,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":6,"kcp_data_segs_out":10,"kcp_data_bytes_sent":480,"kcp_retrans_bytes":288} -{"ts_ms":170150615,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=170150615 server_send_ts_ms=170150615"} -{"ts_ms":170151114,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=5 timeout_ms=500"} -{"ts_ms":170151114,"level":"WARN","component":"client","message":"time_sync_no_valid_sample"} -{"ts_ms":170151114,"level":"WARN","component":"client","message":"time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"} -{"ts_ms":170151114,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=168031754 bytes=9600 total_chunks=7"} -{"ts_ms":170151125,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170151127,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170151129,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170151131,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170151134,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170151136,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170151136,"level":"INFO","component":"relay","message":"forward_ok bytes=1264"} -{"ts_ms":170151136,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":170155114,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=kcp transfer_id=168031754 total_bytes=9600 total_chunks=7 sent_bytes=9600 progress_bytes=9600 tx_avg_mbps=0.013 tx_current_mbps=0.001 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=10500.931 transmission_avg_ms=242.578 propagation_avg_ms=4.234 last_rtt_ms=12 min_rtt_ms=8 send_buffer_avg_pct=0.06 recv_buffer_avg_pct=0.00 cwnd_avg=3.68 tcp_retrans=0 tcp_data_segs_out=0 tcp_original_bytes=0 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=19 kcp_original_bytes=10248 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:7 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":170155114,"level":"INFO","component":"perf","tag":"final","elapsed_ms":6533,"bytes_sent":10248,"bytes_recv":0,"send_count":13,"recv_count":0,"tx_current_mbps":0.017906,"rx_current_mbps":0.000000,"tx_avg_mbps":0.012549,"rx_avg_mbps":0.000000,"progress_bytes":9600,"total_work_bytes":9600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":10500.931452,"queue_min_ms":86.000000,"queue_max_ms":43567.600000,"transmission_avg_ms":242.578248,"transmission_min_ms":2.010309,"transmission_max_ms":507.000000,"propagation_avg_ms":4.233596,"propagation_min_ms":4.000000,"propagation_max_ms":5.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.063956,"send_buffer_pct_max":10.937500,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":4.000000,"cwnd_avg":3.682620,"cwnd_max":4.000000,"last_rtt_ms":12,"min_rtt_ms":8,"max_rtt_ms":12,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":19,"kcp_data_bytes_sent":10248,"kcp_retrans_bytes":0} -{"ts_ms":170243071,"level":"INFO","component":"kcp","message":"init bind_port=43500 peer_ip=NULL peer_port=0 conv=43500"} -{"ts_ms":170243071,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=43500 peer_port=0"} -{"ts_ms":170244073,"level":"INFO","component":"kcp","message":"init bind_port=43499 peer_ip=NULL peer_port=0 conv=43499"} -{"ts_ms":170244073,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=43499 peer_port=0"} -{"ts_ms":170244073,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=43500 conv=43500"} -{"ts_ms":170244073,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=43500"} -{"ts_ms":170244073,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=43500"} -{"ts_ms":170245074,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=43499 conv=43499"} -{"ts_ms":170245074,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=43499"} -{"ts_ms":170245075,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1003,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1003.000000,"transmission_min_ms":1003.000000,"transmission_max_ms":1003.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001604,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":170245075,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170245076,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2005,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000128,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000128,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000006,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":2005.000000,"transmission_min_ms":2005.000000,"transmission_max_ms":2005.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.000805,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":170245076,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=170245076 server_send_ts_ms=170245076"} -{"ts_ms":170245580,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=1 timeout_ms=500"} -{"ts_ms":170245585,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170245586,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=170245586 server_send_ts_ms=170245586"} -{"ts_ms":170246086,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=2 timeout_ms=500"} -{"ts_ms":170246086,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":1012,"bytes_sent":96,"bytes_recv":0,"send_count":3,"recv_count":0,"tx_current_mbps":0.000759,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000759,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":9600,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":9225.291667,"queue_min_ms":86.000000,"queue_max_ms":21758.000000,"transmission_avg_ms":295.166667,"transmission_min_ms":253.000000,"transmission_max_ms":337.333333,"propagation_avg_ms":5.500000,"propagation_min_ms":5.500000,"propagation_max_ms":5.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.022141,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":2.000000,"cwnd_avg":1.987854,"cwnd_max":2.000000,"last_rtt_ms":11,"min_rtt_ms":11,"max_rtt_ms":11,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":2,"kcp_data_bytes_sent":64,"kcp_retrans_bytes":0} -{"ts_ms":170246094,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2022,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000502,"rx_current_mbps":0.000502,"tx_avg_mbps":0.000253,"rx_avg_mbps":0.000380,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":38184.000000,"queue_min_ms":21930.000000,"queue_max_ms":65059.000000,"transmission_avg_ms":656.100000,"transmission_min_ms":255.000000,"transmission_max_ms":1003.000000,"propagation_avg_ms":255.000000,"propagation_min_ms":255.000000,"propagation_max_ms":255.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.001586,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.003173,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.001015,"cwnd_max":2.000000,"last_rtt_ms":510,"min_rtt_ms":510,"max_rtt_ms":510,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":2,"kcp_data_bytes_sent":64,"kcp_retrans_bytes":0} -{"ts_ms":170246094,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170246094,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3023,"bytes_sent":96,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000754,"rx_current_mbps":0.000503,"tx_avg_mbps":0.000254,"rx_avg_mbps":0.000254,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":14948.831995,"queue_min_ms":57.333333,"queue_max_ms":108145.000000,"transmission_avg_ms":1056.800000,"transmission_min_ms":255.000000,"transmission_max_ms":2005.000000,"propagation_avg_ms":506.000000,"propagation_min_ms":506.000000,"propagation_max_ms":506.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.396217,"send_buffer_pct_max":1.562500,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001598,"recv_buffer_pct_max":0.781250,"cwnd_last":2.000000,"cwnd_avg":1.000682,"cwnd_max":2.000000,"last_rtt_ms":1012,"min_rtt_ms":1012,"max_rtt_ms":1012,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":5,"kcp_data_segs_out":7,"kcp_data_bytes_sent":336,"kcp_retrans_bytes":240} -{"ts_ms":170246094,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=170246094 server_send_ts_ms=170246094"} -{"ts_ms":170246593,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=3 timeout_ms=500"} -{"ts_ms":170246596,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170246598,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=170246598 server_send_ts_ms=170246598"} -{"ts_ms":170247100,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=4 timeout_ms=500"} -{"ts_ms":170247100,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":2026,"bytes_sent":160,"bytes_recv":0,"send_count":5,"recv_count":0,"tx_current_mbps":0.000505,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000632,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":9600,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":14664.858025,"queue_min_ms":86.000000,"queue_max_ms":43602.000000,"transmission_avg_ms":401.083333,"transmission_min_ms":253.000000,"transmission_max_ms":507.000000,"propagation_avg_ms":5.376656,"propagation_min_ms":5.000000,"propagation_max_ms":5.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.022955,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":4.000000,"cwnd_avg":2.974671,"cwnd_max":4.000000,"last_rtt_ms":10,"min_rtt_ms":10,"max_rtt_ms":11,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":4,"kcp_data_bytes_sent":128,"kcp_retrans_bytes":0} -{"ts_ms":170247104,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3032,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000507,"rx_current_mbps":0.000507,"tx_avg_mbps":0.000338,"rx_avg_mbps":0.000422,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":43461.533333,"queue_min_ms":21586.000000,"queue_max_ms":86946.000000,"transmission_avg_ms":579.166667,"transmission_min_ms":251.000000,"transmission_max_ms":1003.000000,"propagation_avg_ms":255.000000,"propagation_min_ms":255.000000,"propagation_max_ms":255.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.003700,"send_buffer_pct_max":2.343750,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.004229,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000677,"cwnd_max":2.000000,"last_rtt_ms":510,"min_rtt_ms":510,"max_rtt_ms":510,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":2,"kcp_data_segs_out":6,"kcp_data_bytes_sent":192,"kcp_retrans_bytes":64} -{"ts_ms":170247104,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170247106,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":4035,"bytes_sent":192,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000759,"rx_current_mbps":0.000506,"tx_avg_mbps":0.000381,"rx_avg_mbps":0.000317,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":19435.721216,"queue_min_ms":57.333333,"queue_max_ms":108145.000000,"transmission_avg_ms":839.296296,"transmission_min_ms":252.000000,"transmission_max_ms":2005.000000,"propagation_avg_ms":506.000000,"propagation_min_ms":506.000000,"propagation_max_ms":506.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":2.343750,"send_buffer_pct_avg":0.788819,"send_buffer_pct_max":2.343750,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001992,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.111678,"cwnd_max":2.000000,"last_rtt_ms":1109,"min_rtt_ms":1012,"max_rtt_ms":1109,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":6,"kcp_data_segs_out":10,"kcp_data_bytes_sent":480,"kcp_retrans_bytes":288} -{"ts_ms":170247106,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=170247106 server_send_ts_ms=170247106"} -{"ts_ms":170247606,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=5 timeout_ms=500"} -{"ts_ms":170247606,"level":"WARN","component":"client","message":"time_sync_no_valid_sample"} -{"ts_ms":170247606,"level":"WARN","component":"client","message":"time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"} -{"ts_ms":170247606,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=167904212 bytes=9600 total_chunks=7"} -{"ts_ms":170247620,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170247622,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170247624,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170247626,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170247628,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170247630,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170247630,"level":"INFO","component":"relay","message":"forward_ok bytes=1264"} -{"ts_ms":170247630,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":170251606,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=kcp transfer_id=167904212 total_bytes=9600 total_chunks=7 sent_bytes=9600 progress_bytes=9600 tx_avg_mbps=0.013 tx_current_mbps=0.001 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=10533.509 transmission_avg_ms=242.474 propagation_avg_ms=5.116 last_rtt_ms=14 min_rtt_ms=10 send_buffer_avg_pct=0.07 recv_buffer_avg_pct=0.00 cwnd_avg=3.68 tcp_retrans=0 tcp_data_segs_out=0 tcp_original_bytes=0 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=19 kcp_original_bytes=10248 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:7 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":170251606,"level":"INFO","component":"perf","tag":"final","elapsed_ms":6532,"bytes_sent":10248,"bytes_recv":0,"send_count":13,"recv_count":0,"tx_current_mbps":0.017910,"rx_current_mbps":0.000000,"tx_avg_mbps":0.012551,"rx_avg_mbps":0.000000,"progress_bytes":9600,"total_work_bytes":9600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":10533.509167,"queue_min_ms":86.000000,"queue_max_ms":43602.000000,"transmission_avg_ms":242.474379,"transmission_min_ms":2.006344,"transmission_max_ms":507.000000,"propagation_avg_ms":5.116488,"propagation_min_ms":5.000000,"propagation_max_ms":5.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.068095,"send_buffer_pct_max":10.937500,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":4.000000,"cwnd_avg":3.681561,"cwnd_max":4.000000,"last_rtt_ms":14,"min_rtt_ms":10,"max_rtt_ms":14,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":19,"kcp_data_bytes_sent":10248,"kcp_retrans_bytes":0} -{"ts_ms":170297882,"level":"INFO","component":"kcp","message":"init bind_port=44532 peer_ip=NULL peer_port=0 conv=44532"} -{"ts_ms":170297882,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=44532 peer_port=0"} -{"ts_ms":170298884,"level":"INFO","component":"kcp","message":"init bind_port=44531 peer_ip=NULL peer_port=0 conv=44531"} -{"ts_ms":170298884,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=1 bind_port=44531 peer_port=0"} -{"ts_ms":170298884,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=44532 conv=44532"} -{"ts_ms":170298884,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=44532"} -{"ts_ms":170298884,"level":"INFO","component":"relay","message":"target_updated ip=127.0.0.1 port=44532"} -{"ts_ms":170299885,"level":"INFO","component":"kcp","message":"init bind_port=0 peer_ip=127.0.0.1 peer_port=44531 conv=44531"} -{"ts_ms":170299885,"level":"INFO","component":"network","message":"omni_init_success proto=2 role=0 bind_port=0 peer_port=44531"} -{"ts_ms":170299886,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":1002,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000255,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000255,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":1002.000000,"transmission_min_ms":1002.000000,"transmission_max_ms":1002.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001604,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":170299886,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170299888,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2006,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000128,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000128,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":2006.000000,"transmission_min_ms":2006.000000,"transmission_max_ms":2006.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.000803,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.000000,"cwnd_max":1.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":170299888,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=170299888 server_send_ts_ms=170299888"} -{"ts_ms":170300391,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=1 timeout_ms=500"} -{"ts_ms":170300397,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170300398,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=170300398 server_send_ts_ms=170300398"} -{"ts_ms":170300898,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=2 timeout_ms=500"} -{"ts_ms":170300898,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":1013,"bytes_sent":96,"bytes_recv":0,"send_count":3,"recv_count":0,"tx_current_mbps":0.000758,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000758,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":9600,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":9203.791667,"queue_min_ms":86.000000,"queue_max_ms":21779.500000,"transmission_avg_ms":295.333333,"transmission_min_ms":253.000000,"transmission_max_ms":337.666667,"propagation_avg_ms":4.753579,"propagation_min_ms":4.500000,"propagation_max_ms":5.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.022096,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":2.000000,"cwnd_avg":1.987879,"cwnd_max":2.000000,"last_rtt_ms":9,"min_rtt_ms":9,"max_rtt_ms":10,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":3,"kcp_data_bytes_sent":96,"kcp_retrans_bytes":0} -{"ts_ms":170300908,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":2024,"bytes_sent":64,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000501,"rx_current_mbps":0.000501,"tx_avg_mbps":0.000253,"rx_avg_mbps":0.000379,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.128000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":38237.750000,"queue_min_ms":21973.000000,"queue_max_ms":65059.000000,"transmission_avg_ms":656.300000,"transmission_min_ms":255.500000,"transmission_max_ms":1002.000000,"propagation_avg_ms":255.500000,"propagation_min_ms":255.500000,"propagation_max_ms":255.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.001585,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.003169,"recv_buffer_pct_max":0.781250,"cwnd_last":1.000000,"cwnd_avg":1.001014,"cwnd_max":2.000000,"last_rtt_ms":511,"min_rtt_ms":511,"max_rtt_ms":511,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":2,"kcp_data_bytes_sent":64,"kcp_retrans_bytes":0} -{"ts_ms":170300908,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170300910,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3028,"bytes_sent":96,"bytes_recv":96,"send_count":2,"recv_count":3,"tx_current_mbps":0.000751,"rx_current_mbps":0.000501,"tx_avg_mbps":0.000254,"rx_avg_mbps":0.000254,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":15009.178667,"queue_min_ms":57.333333,"queue_max_ms":108188.000000,"transmission_avg_ms":1057.600000,"transmission_min_ms":255.000000,"transmission_max_ms":2006.000000,"propagation_avg_ms":508.000000,"propagation_min_ms":508.000000,"propagation_max_ms":508.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.396994,"send_buffer_pct_max":1.562500,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001592,"recv_buffer_pct_max":0.781250,"cwnd_last":2.000000,"cwnd_avg":1.000679,"cwnd_max":2.000000,"last_rtt_ms":1016,"min_rtt_ms":1016,"max_rtt_ms":1016,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":4,"kcp_data_segs_out":6,"kcp_data_bytes_sent":288,"kcp_retrans_bytes":192} -{"ts_ms":170300910,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=170300910 server_send_ts_ms=170300910"} -{"ts_ms":170301405,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=3 timeout_ms=500"} -{"ts_ms":170301405,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170301407,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=170301407 server_send_ts_ms=170301407"} -{"ts_ms":170301911,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=4 timeout_ms=500"} -{"ts_ms":170301911,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":2026,"bytes_sent":160,"bytes_recv":0,"send_count":5,"recv_count":0,"tx_current_mbps":0.000505,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000632,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":9600,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":14652.966667,"queue_min_ms":86.000000,"queue_max_ms":43559.000000,"transmission_avg_ms":401.041667,"transmission_min_ms":253.000000,"transmission_max_ms":507.000000,"propagation_avg_ms":4.626402,"propagation_min_ms":4.500000,"propagation_max_ms":5.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.781250,"send_buffer_pct_avg":0.021372,"send_buffer_pct_max":0.781250,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":4.000000,"cwnd_avg":2.976697,"cwnd_max":4.000000,"last_rtt_ms":9,"min_rtt_ms":9,"max_rtt_ms":10,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":5,"kcp_data_bytes_sent":160,"kcp_retrans_bytes":0} -{"ts_ms":170301918,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":3034,"bytes_sent":128,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000507,"rx_current_mbps":0.000507,"tx_avg_mbps":0.000338,"rx_avg_mbps":0.000422,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000484,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":43404.200000,"queue_min_ms":21973.000000,"queue_max_ms":87032.000000,"transmission_avg_ms":578.518519,"transmission_min_ms":248.500000,"transmission_max_ms":1002.000000,"propagation_avg_ms":255.500000,"propagation_min_ms":255.500000,"propagation_max_ms":255.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.003169,"send_buffer_pct_max":1.562500,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.004754,"recv_buffer_pct_max":1.562500,"cwnd_last":1.000000,"cwnd_avg":1.001352,"cwnd_max":2.000000,"last_rtt_ms":627,"min_rtt_ms":511,"max_rtt_ms":627,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":1,"kcp_data_segs_out":5,"kcp_data_bytes_sent":160,"kcp_retrans_bytes":32} -{"ts_ms":170301919,"level":"INFO","component":"relay","message":"forward_ok bytes=32"} -{"ts_ms":170301919,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":4037,"bytes_sent":192,"bytes_recv":160,"send_count":4,"recv_count":5,"tx_current_mbps":0.000761,"rx_current_mbps":0.000507,"tx_avg_mbps":0.000380,"rx_avg_mbps":0.000317,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":19372.672815,"queue_min_ms":57.333333,"queue_max_ms":108188.000000,"transmission_avg_ms":838.592593,"transmission_min_ms":248.500000,"transmission_max_ms":2006.000000,"propagation_avg_ms":508.000000,"propagation_min_ms":508.000000,"propagation_max_ms":508.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":1.562500,"send_buffer_pct_avg":0.787615,"send_buffer_pct_max":2.343750,"recv_buffer_pct_last":0.781250,"recv_buffer_pct_avg":0.001989,"recv_buffer_pct_max":0.781250,"cwnd_last":2.000000,"cwnd_avg":1.002546,"cwnd_max":2.000000,"last_rtt_ms":1159,"min_rtt_ms":1016,"max_rtt_ms":1159,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":6,"kcp_data_segs_out":10,"kcp_data_bytes_sent":480,"kcp_retrans_bytes":288} -{"ts_ms":170301919,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=170301919 server_send_ts_ms=170301919"} -{"ts_ms":170302417,"level":"WARN","component":"client","message":"time_sync_probe_timeout probe_id=5 timeout_ms=500"} -{"ts_ms":170302418,"level":"WARN","component":"client","message":"time_sync_no_valid_sample"} -{"ts_ms":170302418,"level":"WARN","component":"client","message":"time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"} -{"ts_ms":170302418,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=167842125 bytes=9600 total_chunks=7"} -{"ts_ms":170302429,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170302431,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170302433,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170302435,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170302437,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170302440,"level":"INFO","component":"relay","message":"forward_ok bytes=1464"} -{"ts_ms":170302440,"level":"INFO","component":"relay","message":"forward_ok bytes=1264"} -{"ts_ms":170302440,"level":"INFO","component":"relay","message":"forward_ok bytes=40"} -{"ts_ms":170310418,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=kcp transfer_id=167842125 total_bytes=9600 total_chunks=7 sent_bytes=9600 progress_bytes=9600 tx_avg_mbps=0.008 tx_current_mbps=0.001 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=10417.745 transmission_avg_ms=242.675 propagation_avg_ms=4.524 last_rtt_ms=12 min_rtt_ms=9 send_buffer_avg_pct=0.04 recv_buffer_avg_pct=0.00 cwnd_avg=3.80 tcp_retrans=0 tcp_data_segs_out=0 tcp_original_bytes=0 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=20 kcp_original_bytes=10280 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:7 ack_received=0 ack_rtt_ms=0 ack_bytes_written=0 clock_sync_ok=0 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=0"} -{"ts_ms":170310419,"level":"INFO","component":"perf","tag":"final","elapsed_ms":10534,"bytes_sent":10248,"bytes_recv":0,"send_count":13,"recv_count":0,"tx_current_mbps":0.009486,"rx_current_mbps":0.000000,"tx_avg_mbps":0.007783,"rx_avg_mbps":0.000000,"progress_bytes":9600,"total_work_bytes":9600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":1,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":10417.744674,"queue_min_ms":86.000000,"queue_max_ms":43567.600000,"transmission_avg_ms":242.675470,"transmission_min_ms":2.010309,"transmission_max_ms":507.000000,"propagation_avg_ms":4.524261,"propagation_min_ms":4.500000,"propagation_max_ms":5.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.039238,"send_buffer_pct_max":10.937500,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":4.000000,"cwnd_avg":3.802619,"cwnd_max":4.000000,"last_rtt_ms":12,"min_rtt_ms":9,"max_rtt_ms":12,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":20,"kcp_data_bytes_sent":10280,"kcp_retrans_bytes":0} -{"ts_ms":171375152,"level":"INFO","component":"tcp","message":"listening port=9000"} -{"ts_ms":171388855,"level":"INFO","component":"tcp","message":"connected peer_ip=127.0.0.1 peer_port=9000"} -{"ts_ms":171388855,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=1 bind_port=9000 peer_port=0"} -{"ts_ms":171388855,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=0 bind_port=0 peer_port=9000"} -{"ts_ms":171388855,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":171388855,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=208000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":171388855,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":13703,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000019,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000019,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":13703.000000,"transmission_min_ms":13703.000000,"transmission_max_ms":13703.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":171388855,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":171388855,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":171388855,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=171388855 server_send_ts_ms=171388855"} -{"ts_ms":171388860,"level":"INFO","component":"client","message":"time_sync_sample probe_id=1 rtt_ms=0 offset_ms=0"} -{"ts_ms":171388860,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":171388860,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":171388860,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":171388860,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":171388860,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=171388860 server_send_ts_ms=171388860"} -{"ts_ms":171388865,"level":"INFO","component":"client","message":"time_sync_sample probe_id=2 rtt_ms=0 offset_ms=0"} -{"ts_ms":171388865,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":171388865,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":171388865,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":171388865,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":171388865,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=171388865 server_send_ts_ms=171388865"} -{"ts_ms":171388870,"level":"INFO","component":"client","message":"time_sync_sample probe_id=3 rtt_ms=0 offset_ms=0"} -{"ts_ms":171388870,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":171388870,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":171388870,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":171388870,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=171388870 server_send_ts_ms=171388870"} -{"ts_ms":171388870,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":171388875,"level":"INFO","component":"client","message":"time_sync_sample probe_id=4 rtt_ms=0 offset_ms=0"} -{"ts_ms":171388875,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":171388875,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":171388875,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":171388875,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":171388875,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=171388875 server_send_ts_ms=171388875"} -{"ts_ms":171388880,"level":"INFO","component":"client","message":"time_sync_sample probe_id=5 rtt_ms=0 offset_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"client","message":"time_sync_selected offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"server","message":"time_sync_ready offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=14 bytes_sent=1776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=16 bytes_sent=3256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=18 bytes_sent=4736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=20 bytes_sent=6216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=22 bytes_sent=7696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=24 bytes_sent=9176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=26 bytes_sent=10656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=28 bytes_sent=12136 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=30 bytes_sent=13616 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=32 bytes_sent=15096 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=34 bytes_sent=16576 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=36 bytes_sent=18056 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=38 bytes_sent=19536 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=40 bytes_sent=21016 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=42 bytes_sent=22496 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=44 bytes_sent=23976 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=46 bytes_sent=25456 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=48 bytes_sent=26936 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=50 bytes_sent=28416 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=52 bytes_sent=29896 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=54 bytes_sent=31376 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=56 bytes_sent=32856 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=58 bytes_sent=34336 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=60 bytes_sent=35816 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=62 bytes_sent=37296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=64 bytes_sent=38776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=66 bytes_sent=40256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=68 bytes_sent=41736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=70 bytes_sent=43216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=72 bytes_sent=44696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=74 bytes_sent=46176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=76 bytes_sent=47656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=78 bytes_sent=49136 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=80 bytes_sent=50616 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=82 bytes_sent=52096 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=84 bytes_sent=53576 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=86 bytes_sent=55056 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=88 bytes_sent=56536 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=90 bytes_sent=58016 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=92 bytes_sent=59496 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=94 bytes_sent=60976 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=96 bytes_sent=62456 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=98 bytes_sent=63936 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=100 bytes_sent=65416 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=102 bytes_sent=66896 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=104 bytes_sent=68376 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=106 bytes_sent=69856 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=108 bytes_sent=71336 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=110 bytes_sent=72816 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=112 bytes_sent=74296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=112 bytes_sent=74296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=112 bytes_sent=74296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=115 bytes_sent=78736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=117 bytes_sent=80216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=42816 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=119 bytes_sent=81696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=42816 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=121 bytes_sent=83176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=42816 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=123 bytes_sent=84656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=44608 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=125 bytes_sent=86136 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=44608 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=127 bytes_sent=87616 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=44608 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=129 bytes_sent=89096 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=44608 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=131 bytes_sent=90576 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=44608 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=133 bytes_sent=92056 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=44608 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=135 bytes_sent=93536 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=44608 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=137 bytes_sent=95016 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=44608 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=139 bytes_sent=95072 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":171388881,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=168931098 bytes=89600 total_chunks=64"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":171388881,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=0 transfer_id=168931098 expected_bytes=89600 written_bytes=89600 expected_chunks=64 unique_chunks=64 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:64 rx_avg_mbps=0.055 rx_current_mbps=0.000 processing_avg_ms=0.000 queue_avg_ms=3.338 transmission_avg_ms=362.693 propagation_avg_ms=0.000 end_to_end_avg_ms=0.000 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=2.78 cwnd_avg=10.00 local_tcp_retrans=0 local_tcp_data_segs_out=10 local_tcp_original_bytes=320 local_tcp_retrans_bytes=0 local_tcp_retrans_rate_pct=0.00 local_kcp_retrans=0 local_kcp_data_segs_out=0 local_kcp_original_bytes=0 local_kcp_retrans_bytes=0 local_kcp_retrans_rate_pct=0.00 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":171388881,"level":"INFO","component":"server","message":"file_transfer_end bytes=89600"} -{"ts_ms":171388882,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=2960 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=384 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":171388882,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=20 snd_ssthresh=2147483647 snd_mss=44800 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=139 bytes_sent=95072 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":171388882,"level":"INFO","component":"client","message":"transfer_ack transfer_id=168931098 bytes_written=89600 rtt_ms=1"} -{"ts_ms":171389882,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=tcp transfer_id=168931098 total_bytes=89600 total_chunks=64 sent_bytes=89600 progress_bytes=89600 tx_avg_mbps=0.732 tx_current_mbps=0.000 rx_avg_mbps=0.002 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=1.541 transmission_avg_ms=2.135 propagation_avg_ms=0.500 last_rtt_ms=1 min_rtt_ms=1 send_buffer_avg_pct=0.04 recv_buffer_avg_pct=0.00 cwnd_avg=11.82 tcp_retrans=0 tcp_data_segs_out=139 tcp_original_bytes=95072 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:64 ack_received=1 ack_rtt_ms=1 ack_bytes_written=89600 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":171389882,"level":"INFO","component":"server","message":"tcp_peer_closed"} -{"ts_ms":171389882,"level":"INFO","component":"perf","tag":"final","elapsed_ms":1028,"bytes_sent":93936,"bytes_recv":288,"send_count":71,"recv_count":6,"tx_current_mbps":0.731019,"rx_current_mbps":0.002241,"tx_avg_mbps":0.731019,"rx_avg_mbps":0.002241,"progress_bytes":89600,"total_work_bytes":89600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.000001,"recv_call_last_ms":7,"recv_call_min_ms":0,"recv_call_max_ms":7,"recv_call_avg_ms":5.400000,"proto_send_avg_ms":0.000001,"proto_recv_avg_ms":5.400000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":1.540649,"queue_min_ms":0.434526,"queue_max_ms":12.774936,"transmission_avg_ms":2.135404,"transmission_min_ms":0.011497,"transmission_max_ms":23.754808,"propagation_avg_ms":0.500000,"propagation_min_ms":0.500000,"propagation_max_ms":0.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.037293,"send_buffer_pct_max":0.338085,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":20.000000,"cwnd_avg":11.818182,"cwnd_max":20.000000,"last_rtt_ms":1,"min_rtt_ms":1,"max_rtt_ms":1,"tcp_retrans":0,"tcp_data_segs_out":139,"tcp_data_bytes_sent":95072,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173245245,"level":"INFO","component":"hub","message":"listening bind_ip=0.0.0.0 port=34608"} -{"ts_ms":173246250,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:36138"} -{"ts_ms":173246250,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":1005,"bytes_sent":0,"bytes_recv":52,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000414,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000414,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173246250,"level":"INFO","component":"hub","message":"client_registered client_id=beta remote=127.0.0.1:36138"} -{"ts_ms":173247252,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:36144"} -{"ts_ms":173247253,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":2008,"bytes_sent":184,"bytes_recv":104,"send_count":1,"recv_count":2,"tx_current_mbps":0.001468,"rx_current_mbps":0.000415,"tx_avg_mbps":0.000733,"rx_avg_mbps":0.000414,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173247253,"level":"INFO","component":"hub","message":"client_registered client_id=alpha remote=127.0.0.1:36144"} -{"ts_ms":173247253,"level":"INFO","component":"hub","message":"peer_bound client_id=alpha peer_id=beta"} -{"ts_ms":173247253,"level":"INFO","component":"hub","message":"forward_ok src_id=alpha dst_id=beta inner_type=3 payload_bytes=16"} -{"ts_ms":173247253,"level":"INFO","component":"perf","tag":"peer_recv","elapsed_ms":1004,"bytes_sent":52,"bytes_recv":288,"send_count":1,"recv_count":2,"tx_current_mbps":0.000414,"rx_current_mbps":0.002295,"tx_avg_mbps":0.000414,"rx_avg_mbps":0.002295,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173249253,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":173249253,"level":"INFO","component":"hub","message":"client_closed client_id=alpha remote=127.0.0.1:36144"} -{"ts_ms":173249253,"level":"INFO","component":"perf","tag":"final","elapsed_ms":2001,"bytes_sent":208,"bytes_recv":368,"send_count":3,"recv_count":2,"tx_current_mbps":0.000832,"rx_current_mbps":0.001471,"tx_avg_mbps":0.000832,"rx_avg_mbps":0.001471,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173250250,"level":"INFO","component":"hub","message":"client_closed client_id=beta remote=127.0.0.1:36138"} -{"ts_ms":173250250,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":173250250,"level":"INFO","component":"perf","tag":"final","elapsed_ms":4001,"bytes_sent":52,"bytes_recv":288,"send_count":1,"recv_count":2,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000104,"rx_avg_mbps":0.000576,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173250256,"level":"INFO","component":"perf","tag":"final","elapsed_ms":5011,"bytes_sent":656,"bytes_recv":260,"send_count":4,"recv_count":4,"tx_current_mbps":0.001257,"rx_current_mbps":0.000416,"tx_avg_mbps":0.001047,"rx_avg_mbps":0.000415,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173364263,"level":"INFO","component":"hub","message":"listening bind_ip=0.0.0.0 port=35500"} -{"ts_ms":173378613,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:55878"} -{"ts_ms":173378613,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":14350,"bytes_sent":0,"bytes_recv":52,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000029,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000029,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173378613,"level":"INFO","component":"hub","message":"client_registered client_id=pc remote=127.0.0.1:55878"} -{"ts_ms":173430613,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:58988"} -{"ts_ms":173430613,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":173430613,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":66350,"bytes_sent":368,"bytes_recv":156,"send_count":2,"recv_count":3,"tx_current_mbps":0.000057,"rx_current_mbps":0.000016,"tx_avg_mbps":0.000044,"rx_avg_mbps":0.000019,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173430613,"level":"INFO","component":"hub","message":"client_registered client_id=jetson remote=127.0.0.1:58988"} -{"ts_ms":173430613,"level":"INFO","component":"perf","tag":"final","elapsed_ms":0,"bytes_sent":104,"bytes_recv":0,"send_count":2,"recv_count":0,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173430613,"level":"INFO","component":"hub","message":"peer_bound client_id=jetson peer_id=pc"} -{"ts_ms":173430613,"level":"INFO","component":"hub","message":"client_closed client_id=jetson remote=127.0.0.1:58988"} -{"ts_ms":173442531,"level":"INFO","component":"perf","tag":"peer_send","elapsed_ms":63918,"bytes_sent":156,"bytes_recv":368,"send_count":3,"recv_count":2,"tx_current_mbps":0.000020,"rx_current_mbps":0.000046,"tx_avg_mbps":0.000020,"rx_avg_mbps":0.000046,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173442572,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":78309,"bytes_sent":368,"bytes_recv":260,"send_count":2,"recv_count":5,"tx_current_mbps":0.000000,"rx_current_mbps":0.000070,"tx_avg_mbps":0.000038,"rx_avg_mbps":0.000027,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173458187,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":173458187,"level":"INFO","component":"hub","message":"client_closed client_id=pc remote=127.0.0.1:55878"} -{"ts_ms":173458187,"level":"INFO","component":"perf","tag":"final","elapsed_ms":79574,"bytes_sent":156,"bytes_recv":552,"send_count":3,"recv_count":3,"tx_current_mbps":0.000000,"rx_current_mbps":0.000094,"tx_avg_mbps":0.000016,"rx_avg_mbps":0.000055,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173458288,"level":"INFO","component":"perf","tag":"final","elapsed_ms":94025,"bytes_sent":552,"bytes_recv":260,"send_count":3,"recv_count":5,"tx_current_mbps":0.000094,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000047,"rx_avg_mbps":0.000022,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173473829,"level":"INFO","component":"hub","message":"listening bind_ip=0.0.0.0 port=35510"} -{"ts_ms":173483104,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:57448"} -{"ts_ms":173483104,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":9276,"bytes_sent":0,"bytes_recv":52,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000045,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000045,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173483104,"level":"INFO","component":"hub","message":"client_registered client_id=pc remote=127.0.0.1:57448"} -{"ts_ms":173500119,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:35912"} -{"ts_ms":173500119,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":26291,"bytes_sent":184,"bytes_recv":104,"send_count":1,"recv_count":2,"tx_current_mbps":0.000087,"rx_current_mbps":0.000024,"tx_avg_mbps":0.000056,"rx_avg_mbps":0.000032,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173500119,"level":"INFO","component":"hub","message":"client_registered client_id=jetson remote=127.0.0.1:35912"} -{"ts_ms":173500119,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":173500119,"level":"INFO","component":"hub","message":"peer_bound client_id=jetson peer_id=pc"} -{"ts_ms":173500119,"level":"INFO","component":"hub","message":"client_closed client_id=jetson remote=127.0.0.1:35912"} -{"ts_ms":173500119,"level":"INFO","component":"perf","tag":"final","elapsed_ms":0,"bytes_sent":104,"bytes_recv":0,"send_count":2,"recv_count":0,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000000,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173506445,"level":"INFO","component":"perf","tag":"peer_send","elapsed_ms":23342,"bytes_sent":104,"bytes_recv":184,"send_count":2,"recv_count":1,"tx_current_mbps":0.000036,"rx_current_mbps":0.000063,"tx_avg_mbps":0.000036,"rx_avg_mbps":0.000063,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173506486,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":32658,"bytes_sent":184,"bytes_recv":208,"send_count":1,"recv_count":4,"tx_current_mbps":0.000000,"rx_current_mbps":0.000131,"tx_avg_mbps":0.000045,"rx_avg_mbps":0.000051,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173665093,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:43684"} -{"ts_ms":173665094,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":191266,"bytes_sent":368,"bytes_recv":260,"send_count":2,"recv_count":5,"tx_current_mbps":0.000009,"rx_current_mbps":0.000003,"tx_avg_mbps":0.000015,"rx_avg_mbps":0.000011,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173665094,"level":"INFO","component":"hub","message":"client_registered client_id=jetson remote=127.0.0.1:43684"} -{"ts_ms":173665094,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665094,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665094,"level":"INFO","component":"peer","message":"file_send_done self_id=jetson dst_id=pc file=/tmp/scene2_input.bin bytes=22400 chunks=16"} -{"ts_ms":173665094,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665094,"level":"INFO","component":"perf","tag":"peer_recv","elapsed_ms":181991,"bytes_sent":104,"bytes_recv":1904,"send_count":2,"recv_count":3,"tx_current_mbps":0.000000,"rx_current_mbps":0.000087,"tx_avg_mbps":0.000005,"rx_avg_mbps":0.000084,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173665094,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665094,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665094,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665094,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665094,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665094,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665094,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665094,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665094,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665114,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665115,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665115,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665115,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":173665115,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=2 payload_bytes=24"} -{"ts_ms":173665115,"level":"INFO","component":"hub","message":"client_closed client_id=jetson remote=127.0.0.1:43684"} -{"ts_ms":173675489,"level":"INFO","component":"perf","tag":"peer_send","elapsed_ms":192386,"bytes_sent":276,"bytes_recv":25240,"send_count":4,"recv_count":20,"tx_current_mbps":0.000132,"rx_current_mbps":0.017959,"tx_avg_mbps":0.000011,"rx_avg_mbps":0.001050,"progress_bytes":22400,"total_work_bytes":22400,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":173675531,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":201703,"bytes_sent":25424,"bytes_recv":25120,"send_count":21,"recv_count":24,"tx_current_mbps":0.019206,"rx_current_mbps":0.019055,"tx_avg_mbps":0.001008,"rx_avg_mbps":0.000996,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174077368,"level":"INFO","component":"hub","message":"listening bind_ip=0.0.0.0 port=35520"} -{"ts_ms":174098819,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:50626"} -{"ts_ms":174098819,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":21451,"bytes_sent":0,"bytes_recv":52,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000019,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000019,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174098819,"level":"INFO","component":"hub","message":"client_registered client_id=pc remote=127.0.0.1:50626"} -{"ts_ms":174100006,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:50636"} -{"ts_ms":174100006,"level":"INFO","component":"peer","message":"file_send_done self_id=jetson dst_id=pc file=/tmp/scene2_input2.bin bytes=11200 chunks=8"} -{"ts_ms":174100006,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":22638,"bytes_sent":184,"bytes_recv":104,"send_count":1,"recv_count":2,"tx_current_mbps":0.001240,"rx_current_mbps":0.000350,"tx_avg_mbps":0.000065,"rx_avg_mbps":0.000037,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174100006,"level":"INFO","component":"hub","message":"client_registered client_id=jetson remote=127.0.0.1:50636"} -{"ts_ms":174100006,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174100006,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174100006,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174100007,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174100006,"level":"INFO","component":"perf","tag":"peer_recv","elapsed_ms":1188,"bytes_sent":52,"bytes_recv":1720,"send_count":1,"recv_count":2,"tx_current_mbps":0.000350,"rx_current_mbps":0.011582,"tx_avg_mbps":0.000350,"rx_avg_mbps":0.011582,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174100007,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174100007,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174100007,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174100007,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174100007,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=2 payload_bytes=24"} -{"ts_ms":174100049,"level":"INFO","component":"hub","message":"forward_ok src_id=pc dst_id=jetson inner_type=4 payload_bytes=32"} -{"ts_ms":174108469,"level":"INFO","component":"perf","tag":"peer_send","elapsed_ms":9651,"bytes_sent":273,"bytes_recv":12584,"send_count":3,"recv_count":10,"tx_current_mbps":0.000209,"rx_current_mbps":0.010270,"tx_avg_mbps":0.000226,"rx_avg_mbps":0.010431,"progress_bytes":11200,"total_work_bytes":11200,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174108469,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":31101,"bytes_sent":12888,"bytes_recv":12725,"send_count":12,"recv_count":13,"tx_current_mbps":0.012009,"rx_current_mbps":0.011931,"tx_avg_mbps":0.003315,"rx_avg_mbps":0.003273,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174108469,"level":"INFO","component":"hub","message":"forward_ok src_id=pc dst_id=jetson inner_type=3 payload_bytes=13"} -{"ts_ms":174108469,"level":"INFO","component":"perf","tag":"peer_recv","elapsed_ms":8463,"bytes_sent":12452,"bytes_recv":405,"send_count":10,"recv_count":3,"tx_current_mbps":0.011771,"rx_current_mbps":0.000383,"tx_avg_mbps":0.011771,"rx_avg_mbps":0.000383,"progress_bytes":11200,"total_work_bytes":11200,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174156733,"level":"INFO","component":"hub","message":"listening bind_ip=0.0.0.0 port=35530"} -{"ts_ms":174180085,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:52294"} -{"ts_ms":174180085,"level":"INFO","component":"bridge","message":"listening bind_ip=0.0.0.0 listen_port=35531 upstream=127.0.0.1:35530 client_id=jetson"} -{"ts_ms":174180085,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":23352,"bytes_sent":0,"bytes_recv":52,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000018,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000018,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174180085,"level":"INFO","component":"hub","message":"client_registered client_id=jetson remote=127.0.0.1:52294"} -{"ts_ms":174180085,"level":"WARN","component":"bridge","message":"downstream_forward_skipped type=10 len=168"} -{"ts_ms":174210025,"level":"INFO","component":"hub","message":"client_connected remote=127.0.0.1:41956"} -{"ts_ms":174210025,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":53292,"bytes_sent":184,"bytes_recv":104,"send_count":1,"recv_count":2,"tx_current_mbps":0.000049,"rx_current_mbps":0.000014,"tx_avg_mbps":0.000028,"rx_avg_mbps":0.000016,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174210025,"level":"INFO","component":"hub","message":"client_registered client_id=pc remote=127.0.0.1:41956"} -{"ts_ms":174210558,"level":"INFO","component":"bridge","message":"downstream_connected"} -{"ts_ms":174210558,"level":"INFO","component":"perf","tag":"bridge_recv","elapsed_ms":30474,"bytes_sent":52,"bytes_recv":236,"send_count":1,"recv_count":2,"tx_current_mbps":0.000014,"rx_current_mbps":0.000062,"tx_avg_mbps":0.000014,"rx_avg_mbps":0.000062,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174210558,"level":"INFO","component":"peer","message":"file_send_done self_id=jetson dst_id=pc file=/tmp/scene3_input.bin bytes=11200 chunks=8"} -{"ts_ms":174210600,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174210600,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174210600,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174210600,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174210600,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174210600,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174210600,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174210600,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} -{"ts_ms":174210600,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=2 payload_bytes=24"} -{"ts_ms":174210641,"level":"INFO","component":"hub","message":"forward_ok src_id=pc dst_id=jetson inner_type=4 payload_bytes=32"} -{"ts_ms":174218180,"level":"INFO","component":"perf","tag":"hub_recv","elapsed_ms":61447,"bytes_sent":12888,"bytes_recv":12729,"send_count":12,"recv_count":13,"tx_current_mbps":0.012463,"rx_current_mbps":0.012385,"tx_avg_mbps":0.001678,"rx_avg_mbps":0.001657,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174218180,"level":"INFO","component":"perf","tag":"peer_send","elapsed_ms":8156,"bytes_sent":277,"bytes_recv":12584,"send_count":3,"recv_count":10,"tx_current_mbps":0.000272,"rx_current_mbps":0.012343,"tx_avg_mbps":0.000272,"rx_avg_mbps":0.012343,"progress_bytes":11200,"total_work_bytes":11200,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174218180,"level":"INFO","component":"hub","message":"forward_ok src_id=pc dst_id=jetson inner_type=3 payload_bytes=17"} -{"ts_ms":174218180,"level":"INFO","component":"perf","tag":"bridge_recv","elapsed_ms":38096,"bytes_sent":12756,"bytes_recv":12861,"send_count":12,"recv_count":13,"tx_current_mbps":0.013334,"rx_current_mbps":0.013251,"tx_avg_mbps":0.002679,"rx_avg_mbps":0.002701,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174218180,"level":"INFO","component":"perf","tag":"peer_recv","elapsed_ms":7622,"bytes_sent":12452,"bytes_recv":409,"send_count":10,"recv_count":3,"tx_current_mbps":0.013070,"rx_current_mbps":0.000429,"tx_avg_mbps":0.013070,"rx_avg_mbps":0.000429,"progress_bytes":11200,"total_work_bytes":11200,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174257711,"level":"INFO","component":"hub","message":"client_closed client_id=pc remote=127.0.0.1:41956"} -{"ts_ms":174257712,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":174257712,"level":"INFO","component":"perf","tag":"final","elapsed_ms":47688,"bytes_sent":277,"bytes_recv":12584,"send_count":3,"recv_count":10,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000046,"rx_avg_mbps":0.002111,"progress_bytes":11200,"total_work_bytes":11200,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174259018,"level":"INFO","component":"perf","tag":"final","elapsed_ms":102285,"bytes_sent":12993,"bytes_recv":12729,"send_count":13,"recv_count":13,"tx_current_mbps":0.000021,"rx_current_mbps":0.000000,"tx_avg_mbps":0.001016,"rx_avg_mbps":0.000996,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174259019,"level":"INFO","component":"bridge","message":"upstream_closed"} -{"ts_ms":174259121,"level":"INFO","component":"hub","message":"client_closed client_id=pc remote=127.0.0.1:50626"} -{"ts_ms":174259121,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":174259121,"level":"INFO","component":"perf","tag":"final","elapsed_ms":160303,"bytes_sent":273,"bytes_recv":12584,"send_count":3,"recv_count":10,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000014,"rx_avg_mbps":0.000628,"progress_bytes":11200,"total_work_bytes":11200,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174259825,"level":"INFO","component":"perf","tag":"final","elapsed_ms":182457,"bytes_sent":12989,"bytes_recv":12725,"send_count":13,"recv_count":13,"tx_current_mbps":0.000005,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000570,"rx_avg_mbps":0.000558,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174259825,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":174260018,"level":"INFO","component":"perf","tag":"final","elapsed_ms":160012,"bytes_sent":12452,"bytes_recv":405,"send_count":10,"recv_count":3,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000623,"rx_avg_mbps":0.000020,"progress_bytes":11200,"total_work_bytes":11200,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174268544,"level":"INFO","component":"peer","message":"hub_closed"} -{"ts_ms":174268544,"level":"INFO","component":"bridge","message":"downstream_closed"} -{"ts_ms":174268544,"level":"INFO","component":"perf","tag":"final","elapsed_ms":57986,"bytes_sent":12452,"bytes_recv":409,"send_count":10,"recv_count":3,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.001718,"rx_avg_mbps":0.000056,"progress_bytes":11200,"total_work_bytes":11200,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174268545,"level":"INFO","component":"perf","tag":"final","elapsed_ms":88461,"bytes_sent":12861,"bytes_recv":12861,"send_count":13,"recv_count":13,"tx_current_mbps":0.000017,"rx_current_mbps":0.000000,"tx_avg_mbps":0.001163,"rx_avg_mbps":0.001163,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":0.000000,"transmission_min_ms":0.000000,"transmission_max_ms":0.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":174984954,"level":"INFO","component":"tcp","message":"listening port=9000"} -{"ts_ms":175086386,"level":"INFO","component":"tcp","message":"connected peer_ip=127.0.0.1 peer_port=9000"} -{"ts_ms":175086386,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=1 bind_port=9000 peer_port=0"} -{"ts_ms":175086386,"level":"INFO","component":"network","message":"omni_init_success proto=0 role=0 bind_port=0 peer_port=9000"} -{"ts_ms":175086386,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=0 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":175086387,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=207000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=0 bytes_sent=0 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=1"} -{"ts_ms":175086387,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":101433,"bytes_sent":0,"bytes_recv":32,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000003,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000003,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":101433.000000,"transmission_min_ms":101433.000000,"transmission_max_ms":101433.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":175086387,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=1"} -{"ts_ms":175086387,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=48 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=0"} -{"ts_ms":175086387,"level":"INFO","component":"server","message":"time_sync_reply probe_id=1 server_recv_ts_ms=175086387 server_send_ts_ms=175086387"} -{"ts_ms":175086392,"level":"INFO","component":"client","message":"time_sync_sample probe_id=1 rtt_ms=1 offset_ms=0"} -{"ts_ms":175086392,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":175086392,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=2 bytes_sent=64 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":175086392,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":175086392,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=96 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":175086392,"level":"INFO","component":"server","message":"time_sync_reply probe_id=2 server_recv_ts_ms=175086392 server_send_ts_ms=175086392"} -{"ts_ms":175086397,"level":"INFO","component":"client","message":"time_sync_sample probe_id=2 rtt_ms=0 offset_ms=0"} -{"ts_ms":175086397,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":175086397,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=4 bytes_sent=128 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":175086397,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":175086397,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=144 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":175086397,"level":"INFO","component":"server","message":"time_sync_reply probe_id=3 server_recv_ts_ms=175086397 server_send_ts_ms=175086397"} -{"ts_ms":175086402,"level":"INFO","component":"client","message":"time_sync_sample probe_id=3 rtt_ms=0 offset_ms=0"} -{"ts_ms":175086402,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":175086402,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=6 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":175086402,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":175086402,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=192 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":175086402,"level":"INFO","component":"server","message":"time_sync_reply probe_id=4 server_recv_ts_ms=175086402 server_send_ts_ms=175086402"} -{"ts_ms":175086407,"level":"INFO","component":"client","message":"time_sync_sample probe_id=4 rtt_ms=0 offset_ms=0"} -{"ts_ms":175086407,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":175086407,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=8 bytes_sent=256 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":175086407,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":175086407,"level":"INFO","component":"server","message":"time_sync_reply probe_id=5 server_recv_ts_ms=175086407 server_send_ts_ms=175086407"} -{"ts_ms":175086407,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=240 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":175086412,"level":"INFO","component":"client","message":"time_sync_sample probe_id=5 rtt_ms=0 offset_ms=0"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":175086412,"level":"INFO","component":"client","message":"time_sync_selected offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":175086412,"level":"INFO","component":"server","message":"time_sync_ready offset_ms=0 best_rtt_ms=0 samples=5"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38464 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=14 bytes_sent=1776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=16 bytes_sent=3256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=18 bytes_sent=4736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=20 bytes_sent=6216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=22 bytes_sent=7696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=5 last_data_recv_ms=0"} -{"ts_ms":175086412,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=24 bytes_sent=9176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=5"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=26 bytes_sent=10656 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=28 bytes_sent=12136 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=30 bytes_sent=13616 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=32 bytes_sent=15096 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=34 bytes_sent=16576 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=36 bytes_sent=18056 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=38 bytes_sent=19536 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=40 bytes_sent=21016 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=42 bytes_sent=22496 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=44 bytes_sent=23976 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=46 bytes_sent=25456 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=48 bytes_sent=26936 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=50 bytes_sent=28416 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=52 bytes_sent=29896 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=54 bytes_sent=31376 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=56 bytes_sent=32856 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=58 bytes_sent=34336 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=60 bytes_sent=35816 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=62 bytes_sent=37296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=64 bytes_sent=38776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=66 bytes_sent=40256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=68 bytes_sent=41736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=70 bytes_sent=43216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=72 bytes_sent=44696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=74 bytes_sent=46176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=76 bytes_sent=47656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=78 bytes_sent=49136 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=80 bytes_sent=50616 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=82 bytes_sent=52096 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=84 bytes_sent=53576 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=86 bytes_sent=55056 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=88 bytes_sent=56536 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=90 bytes_sent=58016 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=92 bytes_sent=59496 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=94 bytes_sent=60976 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=96 bytes_sent=62456 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=98 bytes_sent=63936 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=100 bytes_sent=65416 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=38720 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=102 bytes_sent=66896 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=104 bytes_sent=68376 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=106 bytes_sent=69856 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=108 bytes_sent=71336 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=110 bytes_sent=72816 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=112 bytes_sent=74296 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=114 bytes_sent=75776 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=116 bytes_sent=77256 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=118 bytes_sent=78736 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=120 bytes_sent=80216 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=122 bytes_sent=81696 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=124 bytes_sent=83176 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=126 bytes_sent=84656 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=128 bytes_sent=86136 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=6 last_data_recv_ms=0"} -{"ts_ms":175086413,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=130 bytes_sent=87616 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=6"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=7 last_data_recv_ms=1"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=132 bytes_sent=89096 bytes_retrans=0 fackets=0 last_data_sent_ms=1 last_data_recv_ms=7"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=7 last_data_recv_ms=0"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=134 bytes_sent=90576 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=7"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=7 last_data_recv_ms=0"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=136 bytes_sent=92056 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=7"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=7 last_data_recv_ms=0"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=138 bytes_sent=93536 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=7"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=7 last_data_recv_ms=0"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=140 bytes_sent=95016 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=7"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=142 bytes_sent=95072 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=7"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=10 bytes_sent=320 bytes_retrans=0 fackets=0 last_data_sent_ms=7 last_data_recv_ms=0"} -{"ts_ms":175086414,"level":"INFO","component":"client","message":"file_transfer_done transfer_id=172361726 bytes=89600 total_chunks=64"} -{"ts_ms":175086414,"level":"INFO","component":"client","message":"keepalive_mode=on press_ctrl_c_to_exit"} -{"ts_ms":175086414,"level":"INFO","component":"summary","message":"event=transfer_summary role=server proto=0 transfer_id=172361726 expected_bytes=89600 written_bytes=89600 expected_chunks=64 unique_chunks=64 duplicate_chunks=0 out_of_order_chunks=0 loss_rate_pct=0.00 missing_chunks=0 missing_ranges=none burst_loss_count=0 max_burst_loss_len=0 recv_windows=1 recv_window_distribution=0:64 rx_avg_mbps=0.007 rx_current_mbps=0.000 processing_avg_ms=0.000 queue_avg_ms=2.577 transmission_avg_ms=2671.345 propagation_avg_ms=0.000 end_to_end_avg_ms=0.031 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.13 cwnd_avg=10.00 local_tcp_retrans=0 local_tcp_data_segs_out=10 local_tcp_original_bytes=320 local_tcp_retrans_bytes=0 local_tcp_retrans_rate_pct=0.00 local_kcp_retrans=0 local_kcp_data_segs_out=0 local_kcp_original_bytes=0 local_kcp_retrans_bytes=0 local_kcp_retrans_rate_pct=0.00 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":175086414,"level":"INFO","component":"server","message":"file_transfer_end bytes=89600"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=12 bytes_sent=384 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":175086414,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=142 bytes_sent=95072 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=0"} -{"ts_ms":175086414,"level":"INFO","component":"client","message":"transfer_ack transfer_id=172361726 bytes_written=89600 rtt_ms=0"} -{"ts_ms":175109320,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=14 bytes_sent=421 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=22906"} -{"ts_ms":175109320,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=142 bytes_sent=95072 bytes_retrans=0 fackets=0 last_data_sent_ms=22906 last_data_recv_ms=0"} -{"ts_ms":175109320,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":124366,"bytes_sent":309,"bytes_recv":93936,"send_count":7,"recv_count":71,"tx_current_mbps":0.000108,"rx_current_mbps":0.032758,"tx_avg_mbps":0.000020,"rx_avg_mbps":0.006043,"progress_bytes":89600,"total_work_bytes":89600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":5,"recv_call_avg_ms":0.065539,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.065539,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":2.577366,"queue_min_ms":0.014866,"queue_max_ms":11.950904,"transmission_avg_ms":2622.887704,"transmission_min_ms":0.011501,"transmission_max_ms":101433.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.031250,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":1.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000031,"send_buffer_pct_max":0.002437,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.130756,"recv_buffer_pct_max":1.129150,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":14,"tcp_data_bytes_sent":421,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":175109321,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":22935,"bytes_sent":93936,"bytes_recv":309,"send_count":71,"recv_count":7,"tx_current_mbps":0.032766,"rx_current_mbps":0.000108,"tx_avg_mbps":0.032766,"rx_avg_mbps":0.000108,"progress_bytes":89600,"total_work_bytes":89600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.065537,"recv_call_last_ms":22907,"recv_call_min_ms":0,"recv_call_max_ms":22907,"recv_call_avg_ms":4585.720000,"proto_send_avg_ms":0.065538,"proto_recv_avg_ms":4585.520000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":3.164816,"queue_min_ms":1.691500,"queue_max_ms":7.875000,"transmission_avg_ms":22.060645,"transmission_min_ms":0.011923,"transmission_max_ms":1558.689320,"propagation_avg_ms":0.500000,"propagation_min_ms":0.500000,"propagation_max_ms":0.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.002913,"send_buffer_pct_max":0.056347,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":1,"min_rtt_ms":1,"max_rtt_ms":1,"tcp_retrans":0,"tcp_data_segs_out":142,"tcp_data_bytes_sent":95072,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":175121154,"level":"INFO","component":"tcpinfo","message":"tag=after_send state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=32768 rcv_mss=1464 lost=0 retrans=0 total_retrans=0 data_segs_out=16 bytes_sent=464 bytes_retrans=0 fackets=0 last_data_sent_ms=0 last_data_recv_ms=34740"} -{"ts_ms":175121154,"level":"INFO","component":"tcpinfo","message":"tag=after_recv state=1 retransmits=0 probes=0 backoff=0 rto=201000 ato=40000 rtt_ms=0 rttvar_ms=0 snd_cwnd=10 snd_ssthresh=2147483647 snd_mss=65483 rcv_mss=536 lost=0 retrans=0 total_retrans=0 data_segs_out=142 bytes_sent=95072 bytes_retrans=0 fackets=0 last_data_sent_ms=34740 last_data_recv_ms=0"} -{"ts_ms":175121154,"level":"INFO","component":"perf","tag":"on_send","elapsed_ms":136200,"bytes_sent":336,"bytes_recv":93936,"send_count":8,"recv_count":71,"tx_current_mbps":0.000018,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000020,"rx_avg_mbps":0.005518,"progress_bytes":89600,"total_work_bytes":89600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":5,"recv_call_avg_ms":0.065539,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.065539,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":2.577366,"queue_min_ms":0.014866,"queue_max_ms":11.950904,"transmission_avg_ms":2739.484062,"transmission_min_ms":0.011501,"transmission_max_ms":101433.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.031250,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":1.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000031,"send_buffer_pct_max":0.002437,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.129101,"recv_buffer_pct_max":1.129150,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":16,"tcp_data_bytes_sent":464,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":175121154,"level":"INFO","component":"perf","tag":"on_recv","elapsed_ms":34768,"bytes_sent":93936,"bytes_recv":336,"send_count":71,"recv_count":8,"tx_current_mbps":0.000000,"rx_current_mbps":0.000018,"tx_avg_mbps":0.021614,"rx_avg_mbps":0.000077,"progress_bytes":89600,"total_work_bytes":89600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.065537,"recv_call_last_ms":11833,"recv_call_min_ms":0,"recv_call_max_ms":22907,"recv_call_avg_ms":6035.176000,"proto_send_avg_ms":0.065538,"proto_recv_avg_ms":6035.016000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":3.164816,"queue_min_ms":1.691500,"queue_max_ms":7.875000,"transmission_avg_ms":171.566207,"transmission_min_ms":0.011923,"transmission_max_ms":11833.000000,"propagation_avg_ms":0.500000,"propagation_min_ms":0.500000,"propagation_max_ms":0.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.002876,"send_buffer_pct_max":0.056347,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":1,"min_rtt_ms":1,"max_rtt_ms":1,"tcp_retrans":0,"tcp_data_segs_out":142,"tcp_data_bytes_sent":95072,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} -{"ts_ms":175174645,"level":"INFO","component":"summary","message":"event=transfer_summary role=client proto=tcp transfer_id=172361726 total_bytes=89600 total_chunks=64 sent_bytes=89600 progress_bytes=89600 tx_avg_mbps=0.009 tx_current_mbps=0.000 rx_avg_mbps=0.000 processing_avg_ms=0.000 processing_max_ms=0.000 queue_avg_ms=3.165 transmission_avg_ms=171.566 propagation_avg_ms=0.500 last_rtt_ms=1 min_rtt_ms=1 send_buffer_avg_pct=0.00 recv_buffer_avg_pct=0.00 cwnd_avg=10.00 tcp_retrans=0 tcp_data_segs_out=142 tcp_original_bytes=95072 tcp_retrans_bytes=0 tcp_retrans_rate_pct=0.00 kcp_retrans=0 kcp_data_segs_out=0 kcp_original_bytes=0 kcp_retrans_bytes=0 kcp_retrans_rate_pct=0.00 send_windows=1 send_window_distribution=0:64 ack_received=1 ack_rtt_ms=0 ack_bytes_written=89600 clock_sync_ok=1 clock_offset_ms=0 clock_sync_rtt_ms=0 clock_sync_samples=5"} -{"ts_ms":175174646,"level":"INFO","component":"perf","tag":"final","elapsed_ms":88260,"bytes_sent":93936,"bytes_recv":336,"send_count":71,"recv_count":8,"tx_current_mbps":0.000000,"rx_current_mbps":0.000000,"tx_avg_mbps":0.008514,"rx_avg_mbps":0.000030,"progress_bytes":89600,"total_work_bytes":89600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":1,"send_call_avg_ms":0.065537,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":50972,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.065538,"proto_recv_avg_ms":6035.016000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":3.164816,"queue_min_ms":1.691500,"queue_max_ms":7.875000,"transmission_avg_ms":171.566207,"transmission_min_ms":0.011923,"transmission_max_ms":11833.000000,"propagation_avg_ms":0.500000,"propagation_min_ms":0.500000,"propagation_max_ms":0.500000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.002876,"send_buffer_pct_max":0.056347,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":10.000000,"cwnd_avg":10.000000,"cwnd_max":10.000000,"last_rtt_ms":1,"min_rtt_ms":1,"max_rtt_ms":1,"tcp_retrans":0,"tcp_data_segs_out":142,"tcp_data_bytes_sent":95072,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60184657,"level":"INFO","component":"peer_transport","message":"open role=1 proto=tcp bind_port=9003 peer_ip=- peer_port=0"} +{"ts_ms":60184657,"level":"INFO","component":"hub","message":"listening bind_ip=0.0.0.0 port=9003 proto=tcp"} +{"ts_ms":60193231,"level":"INFO","component":"peer_transport","message":"open role=0 proto=tcp bind_port=0 peer_ip=127.0.0.1 peer_port=9003"} +{"ts_ms":60193231,"level":"INFO","component":"peer_transport","message":"tcp_session_accepted remote=127.0.0.1:37670"} +{"ts_ms":60193231,"level":"INFO","component":"peer_transport","message":"open role=1 proto=tcp bind_port=9004 peer_ip=- peer_port=0"} +{"ts_ms":60193231,"level":"INFO","component":"bridge","message":"listening bind_ip=0.0.0.0 listen_port=9004 upstream=127.0.0.1:9003 proto=tcp client_id=jetson"} +{"ts_ms":60193231,"level":"INFO","component":"perf","app":"hub","proto":"tcp","mode":"hub","role":"server","self_id":"","tag":"peer_transport_recv","elapsed_ms":8574,"bytes_sent":0,"bytes_recv":52,"send_count":0,"recv_count":1,"tx_current_mbps":0.000000,"rx_current_mbps":0.000049,"tx_avg_mbps":0.000000,"rx_avg_mbps":0.000049,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":8574.000000,"transmission_min_ms":8574.000000,"transmission_max_ms":8574.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60193231,"level":"INFO","component":"hub","message":"client_registered client_id=jetson remote=127.0.0.1:37670"} +{"ts_ms":60193231,"level":"WARN","component":"bridge","message":"downstream_forward_skipped type=10 len=168"} +{"ts_ms":60224258,"level":"INFO","component":"peer_transport","message":"open role=0 proto=tcp bind_port=0 peer_ip=127.0.0.1 peer_port=9004"} +{"ts_ms":60224277,"level":"INFO","component":"peer_transport","message":"tcp_session_accepted remote=127.0.0.1:39160"} +{"ts_ms":60224277,"level":"INFO","component":"perf","app":"bridge","proto":"tcp","mode":"bridge","role":"relay","self_id":"jetson","tag":"peer_transport_recv","elapsed_ms":31046,"bytes_sent":52,"bytes_recv":236,"send_count":1,"recv_count":2,"tx_current_mbps":0.000013,"rx_current_mbps":0.000061,"tx_avg_mbps":0.000013,"rx_avg_mbps":0.000061,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":6840.644068,"transmission_min_ms":6840.644068,"transmission_max_ms":6840.644068,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60231317,"level":"INFO","component":"peer_transport","message":"open role=0 proto=tcp bind_port=0 peer_ip=127.0.0.1 peer_port=9003"} +{"ts_ms":60231317,"level":"INFO","component":"peer_transport","message":"tcp_session_accepted remote=127.0.0.1:51040"} +{"ts_ms":60231317,"level":"INFO","component":"perf","app":"hub","proto":"tcp","mode":"hub","role":"server","self_id":"","tag":"peer_transport_recv","elapsed_ms":46660,"bytes_sent":184,"bytes_recv":104,"send_count":1,"recv_count":2,"tx_current_mbps":0.000039,"rx_current_mbps":0.000011,"tx_avg_mbps":0.000032,"rx_avg_mbps":0.000018,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":18411.333333,"transmission_min_ms":8574.000000,"transmission_max_ms":38086.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60231317,"level":"INFO","component":"hub","message":"client_registered client_id=pc remote=127.0.0.1:51040"} +{"ts_ms":60231317,"level":"INFO","component":"hub","message":"peer_bound client_id=pc peer_id=jetson"} +{"ts_ms":60279607,"level":"INFO","component":"perf","app":"peer","proto":"tcp","mode":"hub","role":"client","self_id":"pc","tag":"peer_transport_send","elapsed_ms":48290,"bytes_sent":208,"bytes_recv":368,"send_count":3,"recv_count":2,"tx_current_mbps":0.000034,"rx_current_mbps":0.000061,"tx_avg_mbps":0.000034,"rx_avg_mbps":0.000061,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":24145.000000,"transmission_min_ms":24145.000000,"transmission_max_ms":24145.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60279607,"level":"INFO","component":"perf","app":"hub","proto":"tcp","mode":"hub","role":"server","self_id":"","tag":"peer_transport_recv","elapsed_ms":94950,"bytes_sent":552,"bytes_recv":260,"send_count":3,"recv_count":4,"tx_current_mbps":0.000061,"rx_current_mbps":0.000026,"tx_avg_mbps":0.000047,"rx_avg_mbps":0.000022,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":20266.285714,"transmission_min_ms":8574.000000,"transmission_max_ms":38086.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60279607,"level":"INFO","component":"hub","message":"forward_ok src_id=pc dst_id=jetson inner_type=3 payload_bytes=16"} +{"ts_ms":60279607,"level":"INFO","component":"perf","app":"bridge","proto":"tcp","mode":"bridge","role":"relay","self_id":"jetson","tag":"peer_transport_recv","elapsed_ms":86376,"bytes_sent":236,"bytes_recv":340,"send_count":2,"recv_count":3,"tx_current_mbps":0.000027,"rx_current_mbps":0.000015,"tx_avg_mbps":0.000022,"rx_avg_mbps":0.000031,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":28792.000000,"transmission_min_ms":6840.644068,"transmission_max_ms":55330.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60279608,"level":"INFO","component":"perf","app":"peer","proto":"tcp","mode":"hub","role":"client","self_id":"jetson","tag":"peer_transport_recv","elapsed_ms":55350,"bytes_sent":52,"bytes_recv":288,"send_count":1,"recv_count":2,"tx_current_mbps":0.000008,"rx_current_mbps":0.000042,"tx_avg_mbps":0.000008,"rx_avg_mbps":0.000042,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":6669.166667,"transmission_min_ms":1.000000,"transmission_max_ms":19987.500000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60312812,"level":"INFO","component":"perf","app":"peer","proto":"tcp","mode":"hub","role":"client","self_id":"jetson","tag":"peer_transport_send","elapsed_ms":88554,"bytes_sent":104,"bytes_recv":288,"send_count":2,"recv_count":2,"tx_current_mbps":0.000013,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000009,"rx_avg_mbps":0.000026,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":13302.875000,"transmission_min_ms":1.000000,"transmission_max_ms":33204.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60312861,"level":"INFO","component":"perf","app":"bridge","proto":"tcp","mode":"bridge","role":"relay","self_id":"jetson","tag":"peer_transport_recv","elapsed_ms":119630,"bytes_sent":340,"bytes_recv":392,"send_count":3,"recv_count":4,"tx_current_mbps":0.000025,"rx_current_mbps":0.000013,"tx_avg_mbps":0.000023,"rx_avg_mbps":0.000026,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":23926.200000,"transmission_min_ms":1.000000,"transmission_max_ms":55330.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60312861,"level":"INFO","component":"perf","app":"hub","proto":"tcp","mode":"hub","role":"server","self_id":"","tag":"peer_transport_recv","elapsed_ms":128204,"bytes_sent":656,"bytes_recv":312,"send_count":4,"recv_count":5,"tx_current_mbps":0.000025,"rx_current_mbps":0.000013,"tx_avg_mbps":0.000041,"rx_avg_mbps":0.000019,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":21130.116531,"transmission_min_ms":8574.000000,"transmission_max_ms":38086.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60312861,"level":"INFO","component":"hub","message":"peer_bound client_id=jetson peer_id=pc"} +{"ts_ms":60324031,"level":"INFO","component":"perf","app":"peer","proto":"tcp","mode":"hub","role":"client","self_id":"jetson","tag":"peer_transport_send","elapsed_ms":99773,"bytes_sent":206,"bytes_recv":472,"send_count":3,"recv_count":3,"tx_current_mbps":0.000073,"rx_current_mbps":0.000131,"tx_avg_mbps":0.000017,"rx_avg_mbps":0.000038,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":10746.583333,"transmission_min_ms":1.000000,"transmission_max_ms":33204.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60324079,"level":"INFO","component":"perf","app":"bridge","proto":"tcp","mode":"bridge","role":"relay","self_id":"jetson","tag":"peer_transport_recv","elapsed_ms":130848,"bytes_sent":576,"bytes_recv":678,"send_count":5,"recv_count":6,"tx_current_mbps":0.000168,"rx_current_mbps":0.000204,"tx_avg_mbps":0.000035,"rx_avg_mbps":0.000041,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":23992.376519,"transmission_min_ms":1.000000,"transmission_max_ms":55330.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60324079,"level":"INFO","component":"perf","app":"hub","proto":"tcp","mode":"hub","role":"server","self_id":"","tag":"peer_transport_recv","elapsed_ms":139422,"bytes_sent":840,"bytes_recv":414,"send_count":5,"recv_count":6,"tx_current_mbps":0.000131,"rx_current_mbps":0.000073,"tx_avg_mbps":0.000048,"rx_avg_mbps":0.000024,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":20861.075430,"transmission_min_ms":8574.000000,"transmission_max_ms":38086.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60324080,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=3 payload_bytes=14"} +{"ts_ms":60324080,"level":"INFO","component":"perf","app":"peer","proto":"tcp","mode":"hub","role":"client","self_id":"pc","tag":"peer_transport_recv","elapsed_ms":92763,"bytes_sent":208,"bytes_recv":470,"send_count":3,"recv_count":3,"tx_current_mbps":0.000000,"rx_current_mbps":0.000018,"tx_avg_mbps":0.000018,"rx_avg_mbps":0.000041,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":34309.000000,"transmission_min_ms":24145.000000,"transmission_max_ms":44473.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60427730,"level":"INFO","component":"perf","app":"peer","proto":"tcp","mode":"hub","role":"client","self_id":"jetson","tag":"peer_transport_send","elapsed_ms":203472,"bytes_sent":1742,"bytes_recv":472,"send_count":4,"recv_count":3,"tx_current_mbps":0.000118,"rx_current_mbps":0.000000,"tx_avg_mbps":0.000068,"rx_avg_mbps":0.000019,"progress_bytes":0,"total_work_bytes":89600,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":24025.500000,"transmission_min_ms":1.000000,"transmission_max_ms":103699.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60427730,"level":"INFO","component":"perf","app":"bridge","proto":"tcp","mode":"bridge","role":"relay","self_id":"jetson","tag":"peer_transport_recv","elapsed_ms":234499,"bytes_sent":678,"bytes_recv":2214,"send_count":6,"recv_count":7,"tx_current_mbps":0.000008,"rx_current_mbps":0.000119,"tx_avg_mbps":0.000023,"rx_avg_mbps":0.000076,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":30842.498728,"transmission_min_ms":1.000000,"transmission_max_ms":103651.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60427731,"level":"INFO","component":"peer","message":"file_send_done self_id=jetson dst_id=pc file=/tmp/input2.bin bytes=89600 chunks=64"} +{"ts_ms":60427731,"level":"INFO","component":"perf","app":"hub","proto":"tcp","mode":"hub","role":"server","self_id":"","tag":"peer_transport_recv","elapsed_ms":243074,"bytes_sent":942,"bytes_recv":1950,"send_count":6,"recv_count":7,"tx_current_mbps":0.000008,"rx_current_mbps":0.000119,"tx_avg_mbps":0.000031,"rx_avg_mbps":0.000064,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":25624.986903,"transmission_min_ms":1.000000,"transmission_max_ms":103652.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60427731,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60427731,"level":"INFO","component":"perf","app":"peer","proto":"tcp","mode":"hub","role":"client","self_id":"pc","tag":"peer_transport_recv","elapsed_ms":196414,"bytes_sent":208,"bytes_recv":2006,"send_count":3,"recv_count":4,"tx_current_mbps":0.000000,"rx_current_mbps":0.000119,"tx_avg_mbps":0.000008,"rx_avg_mbps":0.000082,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":57423.000000,"transmission_min_ms":24145.000000,"transmission_max_ms":103651.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60427781,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60427831,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60427881,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60427931,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60427981,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428032,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428082,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428132,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428182,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428232,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428282,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428332,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428383,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428433,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428483,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428533,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428583,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428633,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428684,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428734,"level":"INFO","component":"perf","app":"bridge","proto":"tcp","mode":"bridge","role":"relay","self_id":"jetson","tag":"peer_transport_recv","elapsed_ms":235503,"bytes_sent":31398,"bytes_recv":32934,"send_count":26,"recv_count":27,"tx_current_mbps":0.244781,"rx_current_mbps":0.244781,"tx_avg_mbps":0.001067,"rx_avg_mbps":0.001119,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":9878.127166,"transmission_min_ms":1.000000,"transmission_max_ms":162687.653117,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60428734,"level":"INFO","component":"perf","app":"hub","proto":"tcp","mode":"hub","role":"server","self_id":"","tag":"peer_transport_recv","elapsed_ms":244077,"bytes_sent":31662,"bytes_recv":32670,"send_count":26,"recv_count":27,"tx_current_mbps":0.245025,"rx_current_mbps":0.245025,"tx_avg_mbps":0.001038,"rx_avg_mbps":0.001071,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":9162.620181,"transmission_min_ms":1.000000,"transmission_max_ms":150670.566586,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60428734,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428734,"level":"INFO","component":"perf","app":"peer","proto":"tcp","mode":"hub","role":"client","self_id":"pc","tag":"peer_transport_recv","elapsed_ms":197417,"bytes_sent":208,"bytes_recv":32726,"send_count":3,"recv_count":24,"tx_current_mbps":0.000000,"rx_current_mbps":0.245025,"tx_avg_mbps":0.000008,"rx_avg_mbps":0.001326,"progress_bytes":28000,"total_work_bytes":89600,"progress_pct":31.250000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":7533.517894,"transmission_min_ms":50.000000,"transmission_max_ms":103651.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60428784,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428834,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428884,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428934,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60428985,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429035,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429085,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429135,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429185,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429235,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429285,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429336,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429386,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429436,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429486,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429536,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429587,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429637,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429687,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429737,"level":"INFO","component":"perf","app":"bridge","proto":"tcp","mode":"bridge","role":"relay","self_id":"jetson","tag":"peer_transport_recv","elapsed_ms":236506,"bytes_sent":62118,"bytes_recv":63654,"send_count":46,"recv_count":47,"tx_current_mbps":0.245025,"rx_current_mbps":0.245025,"tx_avg_mbps":0.002101,"rx_avg_mbps":0.002153,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":5676.833756,"transmission_min_ms":1.000000,"transmission_max_ms":162687.653117,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60429737,"level":"INFO","component":"perf","app":"hub","proto":"tcp","mode":"hub","role":"server","self_id":"","tag":"peer_transport_recv","elapsed_ms":245080,"bytes_sent":62382,"bytes_recv":63390,"send_count":46,"recv_count":47,"tx_current_mbps":0.245025,"rx_current_mbps":0.245025,"tx_avg_mbps":0.002036,"rx_avg_mbps":0.002069,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":5362.753952,"transmission_min_ms":1.000000,"transmission_max_ms":150670.566586,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60429737,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429737,"level":"INFO","component":"perf","app":"peer","proto":"tcp","mode":"hub","role":"client","self_id":"pc","tag":"peer_transport_recv","elapsed_ms":198420,"bytes_sent":208,"bytes_recv":63446,"send_count":3,"recv_count":44,"tx_current_mbps":0.000000,"rx_current_mbps":0.245025,"tx_avg_mbps":0.000008,"rx_avg_mbps":0.002558,"progress_bytes":56000,"total_work_bytes":89600,"progress_pct":62.500000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":4052.873529,"transmission_min_ms":50.000000,"transmission_max_ms":103651.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60429787,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429838,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429888,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429938,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60429988,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430038,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430089,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430139,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430189,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430239,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430289,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430339,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430389,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430440,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430490,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430540,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430590,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430640,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430690,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430740,"level":"INFO","component":"perf","app":"bridge","proto":"tcp","mode":"bridge","role":"relay","self_id":"jetson","tag":"peer_transport_recv","elapsed_ms":237509,"bytes_sent":92838,"bytes_recv":94374,"send_count":66,"recv_count":67,"tx_current_mbps":0.245025,"rx_current_mbps":0.245025,"tx_avg_mbps":0.003127,"rx_avg_mbps":0.003179,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":4000.956462,"transmission_min_ms":1.000000,"transmission_max_ms":162687.653117,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60430741,"level":"INFO","component":"perf","app":"hub","proto":"tcp","mode":"hub","role":"server","self_id":"","tag":"peer_transport_recv","elapsed_ms":246084,"bytes_sent":93102,"bytes_recv":94110,"send_count":66,"recv_count":67,"tx_current_mbps":0.244781,"rx_current_mbps":0.244781,"tx_avg_mbps":0.003027,"rx_avg_mbps":0.003059,"progress_bytes":0,"total_work_bytes":0,"progress_pct":0.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":3807.918914,"transmission_min_ms":1.000000,"transmission_max_ms":150670.566586,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60430741,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430741,"level":"INFO","component":"perf","app":"peer","proto":"tcp","mode":"hub","role":"client","self_id":"pc","tag":"peer_transport_recv","elapsed_ms":199424,"bytes_sent":208,"bytes_recv":94166,"send_count":3,"recv_count":64,"tx_current_mbps":0.000000,"rx_current_mbps":0.244781,"tx_avg_mbps":0.000008,"rx_avg_mbps":0.003778,"progress_bytes":84000,"total_work_bytes":89600,"progress_pct":93.750000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":2782.187738,"transmission_min_ms":50.000000,"transmission_max_ms":103651.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} +{"ts_ms":60430791,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430841,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430891,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=1 payload_bytes=1448"} +{"ts_ms":60430941,"level":"INFO","component":"hub","message":"forward_ok src_id=jetson dst_id=pc inner_type=2 payload_bytes=24"} +{"ts_ms":60430941,"level":"INFO","component":"hub","message":"forward_ok src_id=pc dst_id=jetson inner_type=4 payload_bytes=32"} +{"ts_ms":60430941,"level":"INFO","component":"perf","app":"peer","proto":"tcp","mode":"hub","role":"client","self_id":"jetson","tag":"peer_transport_recv","elapsed_ms":206683,"bytes_sent":98622,"bytes_recv":592,"send_count":68,"recv_count":4,"tx_current_mbps":0.241370,"rx_current_mbps":0.000299,"tx_avg_mbps":0.003817,"rx_avg_mbps":0.000023,"progress_bytes":89600,"total_work_bytes":89600,"progress_pct":100.000000,"send_call_last_ms":0,"send_call_min_ms":0,"send_call_max_ms":0,"send_call_avg_ms":0.000000,"recv_call_last_ms":0,"recv_call_min_ms":0,"recv_call_max_ms":0,"recv_call_avg_ms":0.000000,"proto_send_avg_ms":0.000000,"proto_recv_avg_ms":0.000000,"processing_avg_ms":0.000000,"processing_min_ms":0.000000,"processing_max_ms":0.000000,"queue_avg_ms":0.000000,"queue_min_ms":0.000000,"queue_max_ms":0.000000,"transmission_avg_ms":12456.503949,"transmission_min_ms":0.001156,"transmission_max_ms":103699.000000,"propagation_avg_ms":0.000000,"propagation_min_ms":0.000000,"propagation_max_ms":0.000000,"end_to_end_avg_ms":0.000000,"end_to_end_min_ms":0.000000,"end_to_end_max_ms":0.000000,"send_buffer_pct_last":0.000000,"send_buffer_pct_avg":0.000000,"send_buffer_pct_max":0.000000,"recv_buffer_pct_last":0.000000,"recv_buffer_pct_avg":0.000000,"recv_buffer_pct_max":0.000000,"cwnd_last":0.000000,"cwnd_avg":0.000000,"cwnd_max":0.000000,"last_rtt_ms":0,"min_rtt_ms":0,"max_rtt_ms":0,"tcp_retrans":0,"tcp_data_segs_out":0,"tcp_data_bytes_sent":0,"tcp_retrans_bytes":0,"kcp_retrans":0,"kcp_data_segs_out":0,"kcp_data_bytes_sent":0,"kcp_retrans_bytes":0} diff --git a/scripts/local_smoke_test.sh b/scripts/local_smoke_test.sh deleted file mode 100755 index 9956edf..0000000 --- a/scripts/local_smoke_test.sh +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/env bash -# 本机一键 smoke 测试: -# - test1: TCP 直连 client -> server 文件一致性 -# - test2: UDP client -> relay -> server,包含动态目标切换 -set -euo pipefail - -# 根目录与构建产物目录。 -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" -BUILD_DIR="$ROOT_DIR/build" -# 每次测试创建独立临时目录,避免互相污染。 -TMP_DIR="$(mktemp -d /tmp/omnisocket-smoke.XXXXXX)" - -# 随机选择一组端口,降低被系统中已有进程占用的概率。 -BASE_PORT=$((20000 + (RANDOM % 20000))) -DIRECT_PORT="$BASE_PORT" -RELAY_PORT=$((BASE_PORT + 1)) -SINK1_PORT=$((BASE_PORT + 2)) -SINK2_PORT=$((BASE_PORT + 3)) - -# 记录后台进程 PID,统一在 cleanup 中回收。 -PIDS=() - -cleanup() { - # 无论脚本成功/失败,都尽量回收子进程,避免残留占端口。 - for pid in "${PIDS[@]:-}"; do - kill "$pid" 2>/dev/null || true - wait "$pid" 2>/dev/null || true - done - # 删除临时目录与中间文件。 - rm -rf "$TMP_DIR" -} -trap cleanup EXIT - -log() { - printf '[smoke] %s\n' "$1" -} - -wait_with_timeout() { - # 轮询等待某个 PID 退出,超时返回非 0。 - # 参数: - # $1 pid - # $2 timeout_s - local pid="$1" - local timeout_s="$2" - local i - for ((i = 0; i < timeout_s * 10; ++i)); do - if ! kill -0 "$pid" 2>/dev/null; then - wait "$pid" 2>/dev/null || true - return 0 - fi - sleep 0.1 - done - return 1 -} - -log "ports direct=$DIRECT_PORT relay=$RELAY_PORT sink1=$SINK1_PORT sink2=$SINK2_PORT" -log "building native binaries" -# 统一从干净状态构建。 -make -C "$ROOT_DIR" clean all >/dev/null - -# 测试输入与输出文件路径。 -INPUT_FILE="$TMP_DIR/input.bin" -DIRECT_OUT="$TMP_DIR/direct_out.bin" -RELAY1_OUT="$TMP_DIR/relay_sink1.bin" -RELAY2_OUT="$TMP_DIR/relay_sink2.bin" - -# 准备随机输入文件(32 * 1400 = 44800 bytes)。 -dd if=/dev/urandom of="$INPUT_FILE" bs=1400 count=32 status=none - -log "test1: direct tcp client -> server" -# 启动 TCP 服务端接收文件。 -"$BUILD_DIR/omni_server" -p tcp -P "$DIRECT_PORT" -o "$DIRECT_OUT" >"$TMP_DIR/direct_server.log" 2>&1 & -DIRECT_SERVER_PID=$! -PIDS+=("$DIRECT_SERVER_PID") -sleep 1 - -# 启动客户端发送文件。 -"$BUILD_DIR/omni_client" -p tcp -H 127.0.0.1 -P "$DIRECT_PORT" -f "$INPUT_FILE" -w 1 >"$TMP_DIR/direct_client.log" 2>&1 -wait_with_timeout "$DIRECT_SERVER_PID" 10 -# 校验接收文件与输入文件一致。 -cmp -s "$INPUT_FILE" "$DIRECT_OUT" -log "test1 passed" - -log "test2: udp relay forwarding with dynamic port switch" -# sink1:relay 初始目标(预期可能不再接收最终数据)。 -"$BUILD_DIR/omni_server" -p udp -P "$SINK1_PORT" -o "$RELAY1_OUT" >"$TMP_DIR/relay_sink1.log" 2>&1 & -SINK1_PID=$! -PIDS+=("$SINK1_PID") - -# sink2:relay 切换后的目标(最终校验对象)。 -"$BUILD_DIR/omni_server" -p udp -P "$SINK2_PORT" -o "$RELAY2_OUT" >"$TMP_DIR/relay_sink2.log" 2>&1 & -SINK2_PID=$! -PIDS+=("$SINK2_PID") - -# 预置 relay 控制命令:启动后立即切到 sink2。 -CTRL_FILE="$TMP_DIR/relay_ctrl.txt" -printf 'set 127.0.0.1 %s\n' "$SINK2_PORT" >"$CTRL_FILE" - -# 启动 relay(UDP 监听 RELAY_PORT)。 -"$BUILD_DIR/omni_relay" -p udp -L "$RELAY_PORT" -H 127.0.0.1 -P "$SINK1_PORT" <"$CTRL_FILE" >"$TMP_DIR/relay.log" 2>&1 & -RELAY_PID=$! -PIDS+=("$RELAY_PID") -sleep 1 - -# 客户端发送到 relay,由 relay 中转到目标 sink。 -"$BUILD_DIR/omni_client" -p udp -H 127.0.0.1 -P "$RELAY_PORT" -f "$INPUT_FILE" -w 1 >"$TMP_DIR/relay_client.log" 2>&1 -wait_with_timeout "$SINK2_PID" 10 -# 校验 relay 最终接收端文件一致。 -cmp -s "$INPUT_FILE" "$RELAY2_OUT" - -if [[ -s "$RELAY1_OUT" ]]; then - # 如果 sink1 收到数据,通常是切换命令生效前的短暂窗口内到达。 - log "warning: sink1 received data before switch (relay reconfiguration happened mid-flight)" -fi - -# relay/sink1 不一定会自然退出,这里主动结束避免脚本挂住。 -kill "$RELAY_PID" 2>/dev/null || true -wait "$RELAY_PID" 2>/dev/null || true -kill "$SINK1_PID" 2>/dev/null || true - -log "test2 passed" -log "all smoke tests passed" diff --git a/src/apps/bridge_main.c b/src/apps/bridge_main.c index 3110085..c2e9033 100644 --- a/src/apps/bridge_main.c +++ b/src/apps/bridge_main.c @@ -1,44 +1,28 @@ /* * bridge_main.c - * 固定多跳代理: + * 固定多跳桥接: * - 上游作为一个 peer 主动连接远端 hub * - 下游作为一个轻量 hub 接入本地 peer - * - 将 bind / tunnel / status 在上下游之间原样转发 - * - * 适用场景: - * - A 连接 C(hub) - * - B 连接 D(bridge) - * - D 再连接 C - * - C 只看见 bridge 暴露出来的逻辑 client_id + * - 将 bind / tunnel / status 在上下游之间转发 */ #include "common.h" #include "logger.h" +#include "peer_transport.h" -#include -#include -#include -#include #include -#include #include #include #include #include -#include -#include #include #define BRIDGE_MAX_PAYLOAD (PEER_TUNNEL_META_SIZE + 65536u) typedef struct BridgeRuntime { - int listen_fd; - int upstream_fd; - int downstream_fd; - pthread_mutex_t upstream_mu; - pthread_mutex_t downstream_mu; - pthread_mutex_t state_mu; - atomic_int running; + PeerTransport *upstream; + PeerTransport *downstream; + PeerTransportSession *downstream_session; char client_id[OMNI_PEER_ID_SIZE]; } BridgeRuntime; @@ -66,10 +50,31 @@ static void usage(const char *prog) { fprintf(stderr, "Usage:\n" - " %s -H -P -i -L [-b ]\n", + " %s -H -P -i -L \n" + " [-b ] [-p tcp|udp|kcp]\n", prog); } +static int parse_proto(const char *s, OmniProtocol *out_proto) +{ + if (!s || !out_proto) { + return 0; + } + if (strcmp(s, "tcp") == 0) { + *out_proto = OMNI_PROTO_TCP; + return 1; + } + if (strcmp(s, "udp") == 0) { + *out_proto = OMNI_PROTO_UDP; + return 1; + } + if (strcmp(s, "kcp") == 0) { + *out_proto = OMNI_PROTO_KCP; + return 1; + } + return 0; +} + static int peer_id_is_valid(const char *id) { size_t len = 0; @@ -93,127 +98,6 @@ static int peer_id_is_valid(const char *id) return 1; } -static ssize_t read_n(int fd, void *buf, size_t n) -{ - uint8_t *p = (uint8_t *)buf; - size_t done = 0; - - while (done < n) { - ssize_t rc = recv(fd, p + done, n - done, 0); - if (rc == 0) { - return 0; - } - if (rc < 0) { - if (errno == EINTR) { - continue; - } - return -1; - } - done += (size_t)rc; - } - return (ssize_t)done; -} - -static ssize_t write_n(int fd, const void *buf, size_t n) -{ - const uint8_t *p = (const uint8_t *)buf; - size_t done = 0; - - while (done < n) { - ssize_t rc = send(fd, p + done, n - done, 0); - if (rc < 0) { - if (errno == EINTR) { - continue; - } - return -1; - } - done += (size_t)rc; - } - return (ssize_t)done; -} - -static int recv_app_message(int fd, MsgHeader *out_hdr, uint8_t *payload_buf, size_t payload_cap) -{ - MsgHeader net_hdr; - ssize_t n; - - n = read_n(fd, &net_hdr, MSG_HEADER_SIZE); - if (n == 0) { - return 0; - } - if (n != (ssize_t)MSG_HEADER_SIZE) { - return OMNI_ERR_IO; - } - - omni_msg_header_decode(&net_hdr, out_hdr); - if (out_hdr->len > payload_cap) { - return OMNI_ERR_IO; - } - if (out_hdr->len > 0) { - n = read_n(fd, payload_buf, out_hdr->len); - if (n != (ssize_t)out_hdr->len) { - return OMNI_ERR_IO; - } - } - - logger_on_recv(MSG_HEADER_SIZE + out_hdr->len); - logger_maybe_print_performance_log("bridge_recv"); - return 1; -} - -static int send_app_message_fd_locked(int fd, - uint32_t type, - const void *payload, - uint32_t payload_len) -{ - MsgHeader hdr; - uint8_t header_buf[MSG_HEADER_SIZE]; - - omni_msg_header_encode(&hdr, type, payload_len, omni_now_ms()); - memcpy(header_buf, &hdr, sizeof(header_buf)); - - if (write_n(fd, header_buf, sizeof(header_buf)) != (ssize_t)sizeof(header_buf)) { - return OMNI_ERR_IO; - } - if (payload_len > 0 && payload) { - if (write_n(fd, payload, payload_len) != (ssize_t)payload_len) { - return OMNI_ERR_IO; - } - } - - logger_on_send(MSG_HEADER_SIZE + payload_len); - logger_maybe_print_performance_log("bridge_send"); - return OMNI_OK; -} - -static int bridge_send_upstream(BridgeRuntime *rt, - uint32_t type, - const void *payload, - uint32_t payload_len) -{ - int rc; - - pthread_mutex_lock(&rt->upstream_mu); - rc = send_app_message_fd_locked(rt->upstream_fd, type, payload, payload_len); - pthread_mutex_unlock(&rt->upstream_mu); - return rc; -} - -static int bridge_send_downstream(BridgeRuntime *rt, - uint32_t type, - const void *payload, - uint32_t payload_len) -{ - int rc = OMNI_ERR_IO; - - pthread_mutex_lock(&rt->downstream_mu); - if (rt->downstream_fd >= 0) { - rc = send_app_message_fd_locked(rt->downstream_fd, type, payload, payload_len); - } - pthread_mutex_unlock(&rt->downstream_mu); - return rc; -} - static int send_status_to_downstream(BridgeRuntime *rt, uint32_t code, const char *self_id, @@ -222,209 +106,182 @@ static int send_status_to_downstream(BridgeRuntime *rt, { PeerStatusMeta status_meta; + if (!rt || !rt->downstream || !rt->downstream_session) { + return OMNI_ERR_PARAM; + } + omni_peer_status_meta_encode(&status_meta, code, self_id, peer_id, detail); - return bridge_send_downstream(rt, - MSG_TYPE_PEER_STATUS, - &status_meta, - PEER_STATUS_META_SIZE); + return peer_transport_send(rt->downstream, + rt->downstream_session, + MSG_TYPE_PEER_STATUS, + &status_meta, + PEER_STATUS_META_SIZE); } -static int create_connected_socket(const char *host, uint16_t port) -{ - int fd; - struct sockaddr_in addr; - - fd = socket(AF_INET, SOCK_STREAM, 0); - if (fd < 0) { - return -1; - } - - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - addr.sin_port = htons(port); - if (inet_pton(AF_INET, host, &addr.sin_addr) != 1) { - close(fd); - errno = EINVAL; - return -1; - } - - if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) { - close(fd); - return -1; - } - return fd; -} - -static int create_listen_socket(const char *bind_ip, uint16_t port) -{ - int fd; - int reuse = 1; - struct sockaddr_in addr; - - fd = socket(AF_INET, SOCK_STREAM, 0); - if (fd < 0) { - return -1; - } - - (void)setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse)); - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - addr.sin_port = htons(port); - if (bind_ip && bind_ip[0] != '\0') { - if (inet_pton(AF_INET, bind_ip, &addr.sin_addr) != 1) { - close(fd); - return -1; - } - } else { - addr.sin_addr.s_addr = htonl(INADDR_ANY); - } - - if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) { - close(fd); - return -1; - } - if (listen(fd, 8) != 0) { - close(fd); - return -1; - } - return fd; -} - -static int bridge_send_upstream_register(BridgeRuntime *rt) +static int send_upstream_register(BridgeRuntime *rt) { PeerRegisterMeta meta; + if (!rt || !rt->upstream) { + return OMNI_ERR_PARAM; + } omni_peer_register_meta_encode(&meta, rt->client_id); - return bridge_send_upstream(rt, MSG_TYPE_PEER_REGISTER, &meta, PEER_REGISTER_META_SIZE); + return peer_transport_send(rt->upstream, + NULL, + MSG_TYPE_PEER_REGISTER, + &meta, + PEER_REGISTER_META_SIZE); } -static void *upstream_thread_main(void *arg) +static int handle_upstream_event(BridgeRuntime *rt, + const PeerTransportEvent *event, + const uint8_t *payload) { - BridgeRuntime *rt = (BridgeRuntime *)arg; - uint8_t payload[BRIDGE_MAX_PAYLOAD]; - - while (atomic_load(&rt->running)) { - MsgHeader hdr; - int rc = recv_app_message(rt->upstream_fd, &hdr, payload, sizeof(payload)); - - if (rc == 0) { - logger_log("INFO", "bridge", "upstream_closed"); - break; - } - if (rc < 0) { - logger_log("ERROR", "bridge", "upstream_recv_failed rc=%d", rc); - break; - } - - switch (hdr.type) { - case MSG_TYPE_PEER_STATUS: - case MSG_TYPE_PEER_TUNNEL: - if (bridge_send_downstream(rt, hdr.type, payload, hdr.len) != OMNI_OK) { - logger_log("WARN", "bridge", - "downstream_forward_skipped type=%u len=%u", - (unsigned)hdr.type, - (unsigned)hdr.len); - } - break; - default: - logger_log("WARN", "bridge", "unexpected_upstream_type=%u len=%u", - (unsigned)hdr.type, (unsigned)hdr.len); - break; - } + if (!rt || !event) { + return OMNI_ERR_PARAM; } - atomic_store(&rt->running, 0); - return NULL; -} - -static void clear_downstream_fd(BridgeRuntime *rt, int fd) -{ - pthread_mutex_lock(&rt->downstream_mu); - if (rt->downstream_fd == fd) { - rt->downstream_fd = -1; + if (event->kind == PEER_TRANSPORT_EVENT_CLOSED) { + logger_log("INFO", "bridge", "upstream_closed"); + return OMNI_ERR_IO; + } + + switch (event->header.type) { + case MSG_TYPE_PEER_STATUS: + case MSG_TYPE_PEER_TUNNEL: + if (!rt->downstream_session) { + logger_log("WARN", "bridge", + "downstream_forward_skipped type=%u len=%u", + (unsigned)event->header.type, + (unsigned)event->header.len); + return OMNI_OK; + } + return peer_transport_send(rt->downstream, + rt->downstream_session, + event->header.type, + payload, + event->header.len); + default: + logger_log("WARN", "bridge", + "unexpected_upstream_type=%u len=%u", + (unsigned)event->header.type, + (unsigned)event->header.len); + return OMNI_OK; } - pthread_mutex_unlock(&rt->downstream_mu); } -static void handle_downstream_connection(BridgeRuntime *rt, int fd) +static int handle_downstream_register(BridgeRuntime *rt, + PeerTransportSession *session, + const uint8_t *payload, + uint32_t payload_len) { - uint8_t payload[BRIDGE_MAX_PAYLOAD]; - int registered = 0; + PeerRegisterMeta register_meta; - while (atomic_load(&rt->running)) { - MsgHeader hdr; - int rc = recv_app_message(fd, &hdr, payload, sizeof(payload)); + if (!rt || !session) { + return OMNI_ERR_PARAM; + } + if (payload_len < PEER_REGISTER_META_SIZE) { + rt->downstream_session = session; + return send_status_to_downstream(rt, + PEER_STATUS_ERROR, + NULL, + NULL, + "short_register_payload"); + } - if (rc == 0) { + omni_peer_register_meta_decode((const PeerRegisterMeta *)payload, ®ister_meta); + if (strcmp(register_meta.client_id, rt->client_id) != 0) { + rt->downstream_session = session; + logger_log("WARN", "bridge", + "downstream_register_mismatch got=%s expect=%s", + register_meta.client_id, + rt->client_id); + return send_status_to_downstream(rt, + PEER_STATUS_ERROR, + register_meta.client_id, + NULL, + "client_id_mismatch"); + } + + rt->downstream_session = session; + return send_status_to_downstream(rt, + PEER_STATUS_REGISTERED, + rt->client_id, + NULL, + "bridge_register_ok"); +} + +static int handle_downstream_event(BridgeRuntime *rt, + const PeerTransportEvent *event, + const uint8_t *payload) +{ + if (!rt || !event) { + return OMNI_ERR_PARAM; + } + + if (event->kind == PEER_TRANSPORT_EVENT_CLOSED) { + if (rt->downstream_session == event->session) { logger_log("INFO", "bridge", "downstream_closed"); - break; - } - if (rc < 0) { - logger_log("ERROR", "bridge", "downstream_recv_failed rc=%d", rc); - break; + rt->downstream_session = NULL; } + peer_transport_close_session(rt->downstream, event->session); + return OMNI_OK; + } - switch (hdr.type) { - case MSG_TYPE_PEER_REGISTER: { - PeerRegisterMeta register_meta; + if (rt->downstream_session && rt->downstream_session != event->session) { + PeerStatusMeta status_meta; - if (hdr.len < PEER_REGISTER_META_SIZE) { - (void)send_status_to_downstream(rt, PEER_STATUS_ERROR, NULL, NULL, "short_register_payload"); - break; - } - omni_peer_register_meta_decode((const PeerRegisterMeta *)payload, ®ister_meta); - if (strcmp(register_meta.client_id, rt->client_id) != 0) { - (void)send_status_to_downstream(rt, - PEER_STATUS_ERROR, - register_meta.client_id, - NULL, - "client_id_mismatch"); - logger_log("WARN", "bridge", - "downstream_register_mismatch got=%s expect=%s", - register_meta.client_id, - rt->client_id); - break; - } - registered = 1; + omni_peer_status_meta_encode(&status_meta, + PEER_STATUS_ERROR, + rt->client_id, + NULL, + "bridge_busy"); + (void)peer_transport_send(rt->downstream, + event->session, + MSG_TYPE_PEER_STATUS, + &status_meta, + PEER_STATUS_META_SIZE); + peer_transport_close_session(rt->downstream, event->session); + logger_log("WARN", "bridge", "reject_extra_downstream"); + return OMNI_OK; + } + + switch (event->header.type) { + case MSG_TYPE_PEER_REGISTER: + return handle_downstream_register(rt, + event->session, + payload, + event->header.len); + case MSG_TYPE_PEER_BIND: + case MSG_TYPE_PEER_TUNNEL: + if (rt->downstream_session != event->session) { + rt->downstream_session = event->session; (void)send_status_to_downstream(rt, - PEER_STATUS_REGISTERED, + PEER_STATUS_ERROR, rt->client_id, NULL, - "bridge_register_ok"); - break; + "register_first"); + return OMNI_OK; } - case MSG_TYPE_PEER_BIND: - case MSG_TYPE_PEER_TUNNEL: - if (!registered) { - (void)send_status_to_downstream(rt, - PEER_STATUS_ERROR, - rt->client_id, - NULL, - "register_first"); - break; - } - if (bridge_send_upstream(rt, hdr.type, payload, hdr.len) != OMNI_OK) { - logger_log("ERROR", "bridge", - "upstream_forward_failed type=%u len=%u", - (unsigned)hdr.type, - (unsigned)hdr.len); - (void)send_status_to_downstream(rt, - PEER_STATUS_ERROR, - rt->client_id, - NULL, - "upstream_forward_failed"); - } - break; - default: - logger_log("WARN", "bridge", "unexpected_downstream_type=%u len=%u", - (unsigned)hdr.type, (unsigned)hdr.len); - break; + if (peer_transport_send(rt->upstream, + NULL, + event->header.type, + payload, + event->header.len) != OMNI_OK) { + (void)send_status_to_downstream(rt, + PEER_STATUS_ERROR, + rt->client_id, + NULL, + "upstream_forward_failed"); } + return OMNI_OK; + default: + logger_log("WARN", "bridge", + "unexpected_downstream_type=%u len=%u", + (unsigned)event->header.type, + (unsigned)event->header.len); + return OMNI_OK; } - - clear_downstream_fd(rt, fd); - shutdown(fd, SHUT_RDWR); - close(fd); } int main(int argc, char **argv) @@ -432,13 +289,16 @@ int main(int argc, char **argv) const char *upstream_ip = NULL; const char *bind_ip = NULL; const char *client_id = NULL; + const char *proto_str = "tcp"; + OmniProtocol proto = OMNI_PROTO_TCP; int upstream_port = 0; int listen_port = 0; int opt; BridgeRuntime rt; - pthread_t upstream_tid; + uint8_t upstream_payload[BRIDGE_MAX_PAYLOAD]; + uint8_t downstream_payload[BRIDGE_MAX_PAYLOAD]; - while ((opt = getopt(argc, argv, "H:P:i:L:b:")) != -1) { + while ((opt = getopt(argc, argv, "H:P:i:L:b:p:")) != -1) { switch (opt) { case 'H': upstream_ip = optarg; @@ -455,113 +315,97 @@ int main(int argc, char **argv) case 'b': bind_ip = optarg; break; + case 'p': + proto_str = optarg; + break; default: usage(argv[0]); return 1; } } - if (!upstream_ip || upstream_port <= 0 || listen_port <= 0 || !peer_id_is_valid(client_id)) { + if (!upstream_ip || upstream_port <= 0 || listen_port <= 0 || + !peer_id_is_valid(client_id) || !parse_proto(proto_str, &proto)) { usage(argv[0]); return 1; } logger_init(); install_signal_handlers(); - + logger_set_context("bridge", proto_str, "bridge", "relay", client_id); memset(&rt, 0, sizeof(rt)); - rt.listen_fd = -1; - rt.upstream_fd = -1; - rt.downstream_fd = -1; omni_copy_fixed_ascii(rt.client_id, sizeof(rt.client_id), client_id); - atomic_init(&rt.running, 1); - pthread_mutex_init(&rt.upstream_mu, NULL); - pthread_mutex_init(&rt.downstream_mu, NULL); - pthread_mutex_init(&rt.state_mu, NULL); - rt.upstream_fd = create_connected_socket(upstream_ip, (uint16_t)upstream_port); - if (rt.upstream_fd < 0) { - perror("bridge upstream connect"); - goto fail; + rt.upstream = peer_transport_open(OMNI_ROLE_CLIENT, + proto, + NULL, + 0, + upstream_ip, + (uint16_t)upstream_port); + if (!rt.upstream) { + perror("bridge upstream"); + return 1; } - if (bridge_send_upstream_register(&rt) != OMNI_OK) { + if (send_upstream_register(&rt) != OMNI_OK) { fprintf(stderr, "bridge upstream register failed\n"); - goto fail; + peer_transport_close(rt.upstream); + return 1; } - rt.listen_fd = create_listen_socket(bind_ip, (uint16_t)listen_port); - if (rt.listen_fd < 0) { - perror("bridge listen"); - goto fail; - } - - if (pthread_create(&upstream_tid, NULL, upstream_thread_main, &rt) != 0) { - perror("bridge pthread_create"); - goto fail; + rt.downstream = peer_transport_open(OMNI_ROLE_SERVER, + proto, + bind_ip, + (uint16_t)listen_port, + NULL, + 0); + if (!rt.downstream) { + perror("bridge downstream"); + peer_transport_close(rt.upstream); + return 1; } logger_log("INFO", "bridge", - "listening bind_ip=%s listen_port=%u upstream=%s:%u client_id=%s", + "listening bind_ip=%s listen_port=%u upstream=%s:%u proto=%s client_id=%s", bind_ip ? bind_ip : "0.0.0.0", (unsigned)listen_port, upstream_ip, (unsigned)upstream_port, + peer_transport_proto_name(proto), rt.client_id); - while (atomic_load(&rt.running) && !g_stop) { - struct sockaddr_in peer_addr; - socklen_t peer_len = sizeof(peer_addr); - int cfd = accept(rt.listen_fd, (struct sockaddr *)&peer_addr, &peer_len); + while (!g_stop) { + PeerTransportEvent event; + int rc; - if (cfd < 0) { - if (errno == EINTR && !g_stop) { - continue; - } - if (g_stop) { - break; - } - perror("bridge accept"); + rc = peer_transport_next_event(rt.upstream, + &event, + upstream_payload, + sizeof(upstream_payload), + 50); + if (rc < 0) { + logger_log("ERROR", "bridge", "upstream_recv_failed rc=%d", rc); + break; + } + if (rc > 0 && handle_upstream_event(&rt, &event, upstream_payload) != OMNI_OK) { break; } - pthread_mutex_lock(&rt.downstream_mu); - if (rt.downstream_fd >= 0) { - pthread_mutex_unlock(&rt.downstream_mu); - close(cfd); - logger_log("WARN", "bridge", "reject_extra_downstream"); - continue; + rc = peer_transport_next_event(rt.downstream, + &event, + downstream_payload, + sizeof(downstream_payload), + 50); + if (rc < 0) { + logger_log("ERROR", "bridge", "downstream_recv_failed rc=%d", rc); + break; + } + if (rc > 0) { + (void)handle_downstream_event(&rt, &event, downstream_payload); } - rt.downstream_fd = cfd; - pthread_mutex_unlock(&rt.downstream_mu); - - logger_log("INFO", "bridge", "downstream_connected"); - handle_downstream_connection(&rt, cfd); } - atomic_store(&rt.running, 0); - if (rt.listen_fd >= 0) { - close(rt.listen_fd); - } - pthread_join(upstream_tid, NULL); - if (rt.upstream_fd >= 0) { - shutdown(rt.upstream_fd, SHUT_RDWR); - close(rt.upstream_fd); - } + peer_transport_close(rt.downstream); + peer_transport_close(rt.upstream); logger_print_performance_log("final"); - pthread_mutex_destroy(&rt.state_mu); - pthread_mutex_destroy(&rt.downstream_mu); - pthread_mutex_destroy(&rt.upstream_mu); return 0; - -fail: - if (rt.listen_fd >= 0) { - close(rt.listen_fd); - } - if (rt.upstream_fd >= 0) { - close(rt.upstream_fd); - } - pthread_mutex_destroy(&rt.state_mu); - pthread_mutex_destroy(&rt.downstream_mu); - pthread_mutex_destroy(&rt.upstream_mu); - return 1; } diff --git a/src/apps/client_main.c b/src/apps/client_main.c deleted file mode 100644 index 2c23fd8..0000000 --- a/src/apps/client_main.c +++ /dev/null @@ -1,844 +0,0 @@ -/* - * client_main.c - * 客户端:读取大文件分片发送,同时后台接收服务端控制/确认消息 - * - * 整体模型: - * 1) 主线程负责读文件、切 chunk、封装业务帧并发送。 - * 2) 接收线程负责监听服务端命令和最终 ACK。 - * 3) 两个线程通过原子变量共享“运行状态”和“ACK 结果”。 - */ - -#include "common.h" -#include "network.h" -#include "logger.h" - -#include -#include -#include -#include -#include -#include -#include - -/* 接收线程的单帧缓冲区上限:业务头 + chunk 元数据 + 最大 payload。 */ -#define CLIENT_FRAME_BUF_SIZE (MSG_HEADER_SIZE + TRANSFER_CHUNK_META_SIZE + 65536u) -#define OMNI_TIME_SYNC_PROBE_COUNT 5u -#define OMNI_TIME_SYNC_REPLY_TIMEOUT_MS 500u - -typedef struct ClientRuntime { - OmniContext *ctx; /* 底层协议上下文。 */ - atomic_int running; /* 共享退出标志,主线程和接收线程都会检查。 */ - atomic_int ack_received; /* 是否已经收到服务端的传输完成确认。 */ - atomic_ullong ack_rtt_ms; /* FILE_END -> TRANSFER_ACK 这一来一回的 RTT。 */ - atomic_ullong ack_bytes_written; /* 服务端实际写盘字节数。 */ - atomic_uint ack_transfer_id; /* 收到 ACK 对应的传输 ID。 */ - atomic_uint sync_expected_probe_id; /* 当前正在等的 probe。 */ - atomic_ullong sync_expected_client_send_ts_ms; /* 当前 probe 的客户端 t0。 */ - atomic_int sync_reply_ready; /* 后台线程是否已经收到匹配响应。 */ - atomic_ullong sync_reply_rtt_ms; /* 当前 probe 的 RTT。 */ - atomic_llong sync_reply_offset_ms; /* 当前 probe 的 offset。 */ -} ClientRuntime; - -typedef struct ClockSyncResult { - int valid; /* 是否已拿到可用 offset。 */ - int64_t server_minus_client_offset_ms; /* server_time - client_time */ - uint64_t best_rtt_ms; /* 选中样本的 RTT。 */ - uint32_t sample_count; /* 实际成功样本数。 */ -} ClockSyncResult; - -/* 信号处理只做最轻量的事情:设置停止标志,由主流程自己收尾。 */ -static volatile sig_atomic_t g_stop = 0; - -/* SIGINT/SIGTERM 的处理函数:通知发送循环尽快退出。 */ -static void on_signal(int signo) -{ - (void)signo; - g_stop = 1; -} - -/* 注册 Ctrl+C / kill 的处理逻辑,避免被粗暴中断后缺少收尾日志。 */ -static void install_signal_handlers(void) -{ - struct sigaction sa; - memset(&sa, 0, sizeof(sa)); - sa.sa_handler = on_signal; - sigemptyset(&sa.sa_mask); - sa.sa_flags = 0; - - (void)sigaction(SIGINT, &sa, NULL); - (void)sigaction(SIGTERM, &sa, NULL); -} - -/* 打印客户端命令行帮助。 */ -static void usage(const char *prog) -{ - fprintf(stderr, - "Usage:\n" - " %s -p tcp|udp|kcp -H -P -f \n" - " [-b ] [-m ] [-w ]\n", - prog); -} - -/* 将字符串协议名转换为内部枚举;非法输入默认回退 TCP。 */ -static OmniProtocol parse_proto(const char *s) -{ - if (!s) return OMNI_PROTO_TCP; - if (strcmp(s, "tcp") == 0) return OMNI_PROTO_TCP; - if (strcmp(s, "udp") == 0) return OMNI_PROTO_UDP; - if (strcmp(s, "kcp") == 0) return OMNI_PROTO_KCP; - return OMNI_PROTO_TCP; -} - -/* - * 发送一个完整的业务帧。 - * 这里统一负责:拼 MsgHeader -> 拷贝 payload -> 调底层 omni_send。 - */ -static int send_app_message_with_timestamp(OmniContext *ctx, - uint32_t type, - const void *payload, - uint32_t payload_len, - uint64_t timestamp_ms) -{ - size_t total_len = MSG_HEADER_SIZE + (size_t)payload_len; - uint8_t *frame = (uint8_t *)malloc(total_len); - if (!frame) { - logger_log("ERROR", "client", "malloc_frame_failed len=%zu", total_len); - return OMNI_ERR_GENERIC; - } - - MsgHeader hdr; - /* 业务层总是按“头 + 载荷”的统一格式发给对端。 */ - omni_msg_header_encode(&hdr, type, payload_len, timestamp_ms); - memcpy(frame, &hdr, MSG_HEADER_SIZE); - if (payload_len > 0 && payload) { - memcpy(frame + MSG_HEADER_SIZE, payload, payload_len); - } - - ssize_t n = omni_send(ctx, frame, total_len); - free(frame); - - if (n != (ssize_t)total_len) { - logger_log("ERROR", "client", - "omni_send_failed expect=%zu got=%zd type=%u", - total_len, n, (unsigned)type); - return OMNI_ERR_IO; - } - return OMNI_OK; -} - -/* 从接收到的一整帧中拆出应用层头和 payload 指针,并做长度一致性校验。 */ -static int decode_app_message(const uint8_t *frame, - size_t frame_len, - MsgHeader *out_hdr, - const uint8_t **out_payload) -{ - if (!frame || frame_len < MSG_HEADER_SIZE || !out_hdr || !out_payload) { - return OMNI_ERR_PARAM; - } - - MsgHeader net_hdr; - memcpy(&net_hdr, frame, MSG_HEADER_SIZE); - omni_msg_header_decode(&net_hdr, out_hdr); - - if ((size_t)out_hdr->len + MSG_HEADER_SIZE != frame_len) { - return OMNI_ERR_IO; - } - - *out_payload = frame + MSG_HEADER_SIZE; - return OMNI_OK; -} - -/* 用四时间戳公式估算 server_time - client_time。 */ -static int64_t compute_server_minus_client_offset_ms(const TimeSyncReplyMeta *reply, - uint64_t client_recv_ts_ms) -{ - int64_t req_leg = (int64_t)reply->server_recv_ts_ms - - (int64_t)reply->client_send_ts_ms; - int64_t resp_leg = (int64_t)reply->server_send_ts_ms - - (int64_t)client_recv_ts_ms; - return (req_leg + resp_leg) / 2; -} - -/* - * 在正式发文件前做几轮时钟探测: - * - 主线程发 t0 - * - 服务端回 t1/t2 - * - 后台接收线程在 t3 处写回 RTT/offset - * - 主线程带超时地等待,保证经由单向 relay 时不会卡死 - */ -static int perform_time_sync(OmniContext *ctx, - ClientRuntime *rt, - ClockSyncResult *out_result) -{ - uint64_t best_rtt_ms = UINT64_MAX; - int64_t best_offset_ms = 0; - uint32_t sample_count = 0; - - if (!ctx || !rt || !out_result) { - return OMNI_ERR_PARAM; - } - - memset(out_result, 0, sizeof(*out_result)); - - for (uint32_t probe_id = 1; probe_id <= OMNI_TIME_SYNC_PROBE_COUNT; ++probe_id) { - TimeSyncProbeMeta probe_meta; - uint64_t client_send_ts_ms = omni_now_ms(); - int got_reply = 0; - - atomic_store(&rt->sync_reply_ready, 0); - atomic_store(&rt->sync_expected_probe_id, probe_id); - atomic_store(&rt->sync_expected_client_send_ts_ms, client_send_ts_ms); - - omni_time_sync_probe_meta_encode(&probe_meta, probe_id, client_send_ts_ms); - if (send_app_message_with_timestamp(ctx, - MSG_TYPE_TIME_SYNC_REQ, - &probe_meta, - TIME_SYNC_PROBE_META_SIZE, - client_send_ts_ms) != OMNI_OK) { - logger_log("ERROR", "client", - "time_sync_send_failed probe_id=%u", - (unsigned)probe_id); - return OMNI_ERR_IO; - } - - for (uint32_t waited_ms = 0; - waited_ms < OMNI_TIME_SYNC_REPLY_TIMEOUT_MS; - waited_ms += 5u) { - if (atomic_load(&rt->sync_reply_ready)) { - uint64_t rtt_ms = atomic_load(&rt->sync_reply_rtt_ms); - int64_t offset_ms = atomic_load(&rt->sync_reply_offset_ms); - - sample_count++; - got_reply = 1; - logger_on_rtt(rtt_ms); - logger_log("INFO", "client", - "time_sync_sample probe_id=%u rtt_ms=%llu offset_ms=%lld", - (unsigned)probe_id, - (unsigned long long)rtt_ms, - (long long)offset_ms); - if (rtt_ms < best_rtt_ms) { - best_rtt_ms = rtt_ms; - best_offset_ms = offset_ms; - } - break; - } - usleep(5 * 1000); - } - - atomic_store(&rt->sync_expected_probe_id, 0); - atomic_store(&rt->sync_expected_client_send_ts_ms, 0); - atomic_store(&rt->sync_reply_ready, 0); - - if (!got_reply) { - logger_log("WARN", "client", - "time_sync_probe_timeout probe_id=%u timeout_ms=%u", - (unsigned)probe_id, - (unsigned)OMNI_TIME_SYNC_REPLY_TIMEOUT_MS); - } - } - - if (sample_count == 0 || best_rtt_ms == UINT64_MAX) { - logger_log("WARN", "client", "time_sync_no_valid_sample"); - return OMNI_ERR_IO; - } - - out_result->valid = 1; - out_result->server_minus_client_offset_ms = best_offset_ms; - out_result->best_rtt_ms = best_rtt_ms; - out_result->sample_count = sample_count; - - { - TimeSyncReportMeta report_meta; - uint64_t report_ts_ms = omni_now_ms(); - - omni_time_sync_report_meta_encode(&report_meta, - best_offset_ms, - best_rtt_ms, - sample_count); - if (send_app_message_with_timestamp(ctx, - MSG_TYPE_TIME_SYNC_REPORT, - &report_meta, - TIME_SYNC_REPORT_META_SIZE, - report_ts_ms) != OMNI_OK) { - logger_log("ERROR", "client", - "time_sync_report_send_failed offset_ms=%lld best_rtt_ms=%llu", - (long long)best_offset_ms, - (unsigned long long)best_rtt_ms); - return OMNI_ERR_IO; - } - } - - logger_log("INFO", "client", - "time_sync_selected offset_ms=%lld best_rtt_ms=%llu samples=%u", - (long long)best_offset_ms, - (unsigned long long)best_rtt_ms, - (unsigned)sample_count); - return OMNI_OK; -} - -/* 按需扩容“每秒发送多少片”的统计数组。 */ -static int ensure_window_capacity(uint64_t **counts, size_t *cap, uint32_t window_id) -{ - size_t need = (size_t)window_id + 1u; - size_t new_cap; - uint64_t *new_counts; - - if (need <= *cap) { - return OMNI_OK; - } - - new_cap = (*cap == 0) ? 8u : *cap; - while (new_cap < need) { - new_cap *= 2u; - } - - new_counts = (uint64_t *)realloc(*counts, new_cap * sizeof(uint64_t)); - if (!new_counts) { - return OMNI_ERR_GENERIC; - } - - memset(new_counts + *cap, 0, (new_cap - *cap) * sizeof(uint64_t)); - *counts = new_counts; - *cap = new_cap; - return OMNI_OK; -} - -/* 将窗口分布统计转成 "0:12,1:15,3:9" 这类便于日志输出的字符串。 */ -static char *format_window_distribution(const uint64_t *counts, uint32_t total_windows) -{ - size_t cap = 256; - size_t len = 0; - char *buf = (char *)malloc(cap); - if (!buf) { - return NULL; - } - buf[0] = '\0'; - - for (uint32_t i = 0; i < total_windows; ++i) { - char tmp[64]; - int n; - if (counts[i] == 0) { - continue; - } - n = snprintf(tmp, sizeof(tmp), "%s%u:%llu", - (len == 0) ? "" : ",", - (unsigned)i, - (unsigned long long)counts[i]); - if (n <= 0) { - continue; - } - while (len + (size_t)n + 1 > cap) { - char *new_buf; - cap *= 2u; - new_buf = (char *)realloc(buf, cap); - if (!new_buf) { - free(buf); - return NULL; - } - buf = new_buf; - } - memcpy(buf + len, tmp, (size_t)n); - len += (size_t)n; - buf[len] = '\0'; - } - - if (len == 0) { - snprintf(buf, cap, "none"); - } - return buf; -} - -/* 通过保存/恢复文件指针位置计算总文件大小,不影响后续顺序读取。 */ -static uint64_t compute_file_size(FILE *fp) -{ - off_t cur = ftello(fp); - off_t end; - if (cur < 0) { - return 0; - } - if (fseeko(fp, 0, SEEK_END) != 0) { - return 0; - } - end = ftello(fp); - (void)fseeko(fp, cur, SEEK_SET); - if (end < 0) { - return 0; - } - return (uint64_t)end; -} - -/* 计算百分比时统一处理分母为 0 的情况。 */ -static double rate_percent(uint64_t numerator, uint64_t denominator) -{ - if (denominator == 0) { - return 0.0; - } - return ((double)numerator * 100.0) / (double)denominator; -} - -static uint64_t saturating_sub_u64(uint64_t total, uint64_t delta) -{ - return (total > delta) ? (total - delta) : 0; -} - -/* - * 后台接收线程: - * - 接收服务端主动下发的命令 - * - 接收传输结束 ACK,并把结果写入原子变量 - */ -static void *recv_thread_main(void *arg) -{ - ClientRuntime *rt = (ClientRuntime *)arg; - uint8_t frame[CLIENT_FRAME_BUF_SIZE]; - - /* 允许主线程在退出时 cancel 本线程。 */ - pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); - pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL); - - while (atomic_load(&rt->running)) { - ssize_t n = omni_recv(rt->ctx, frame, sizeof(frame)); - if (n < 0) { - logger_log("ERROR", "client", "recv_failed n=%zd", n); - break; - } - if (n == 0) { - usleep(2 * 1000); - continue; - } - - MsgHeader hdr; - const uint8_t *payload = NULL; - int rc = decode_app_message(frame, (size_t)n, &hdr, &payload); - if (rc != OMNI_OK) { - logger_log("ERROR", "client", "invalid_app_frame bytes=%zd rc=%d", n, rc); - continue; - } - - if (hdr.type == MSG_TYPE_COMMAND) { - /* 命令消息只是做演示打印,不参与文件传输状态机。 */ - char cmd[2048]; - size_t cpy = hdr.len < (uint32_t)(sizeof(cmd) - 1) ? hdr.len : (sizeof(cmd) - 1); - memcpy(cmd, payload, cpy); - cmd[cpy] = '\0'; - printf("[server-cmd] %s\n", cmd); - fflush(stdout); - } else if (hdr.type == MSG_TYPE_TRANSFER_ACK) { - TransferAckMeta ack_meta; - uint64_t rtt_ms; - - if (hdr.len < TRANSFER_ACK_META_SIZE) { - logger_log("WARN", "client", "short_transfer_ack len=%u", (unsigned)hdr.len); - continue; - } - - omni_transfer_ack_meta_decode((const TransferAckMeta *)payload, &ack_meta); - /* 服务端把 FILE_END 的发送时间原样回显回来,因此客户端可直接测一轮 ACK RTT。 */ - rtt_ms = omni_now_ms() - ack_meta.echoed_end_ts_ms; - atomic_store(&rt->ack_received, 1); - atomic_store(&rt->ack_rtt_ms, rtt_ms); - atomic_store(&rt->ack_bytes_written, ack_meta.bytes_written); - atomic_store(&rt->ack_transfer_id, ack_meta.transfer_id); - logger_on_rtt(rtt_ms); - logger_log("INFO", "client", - "transfer_ack transfer_id=%u bytes_written=%llu rtt_ms=%llu", - (unsigned)ack_meta.transfer_id, - (unsigned long long)ack_meta.bytes_written, - (unsigned long long)rtt_ms); - } else if (hdr.type == MSG_TYPE_TIME_SYNC_RESP) { - TimeSyncReplyMeta reply_meta; - uint32_t expected_probe_id; - uint64_t expected_client_send_ts_ms; - uint64_t client_recv_ts_ms; - uint64_t rtt_ms; - int64_t offset_ms; - - if (hdr.len < TIME_SYNC_REPLY_META_SIZE) { - logger_log("WARN", "client", "short_time_sync_resp len=%u", (unsigned)hdr.len); - continue; - } - - omni_time_sync_reply_meta_decode((const TimeSyncReplyMeta *)payload, &reply_meta); - expected_probe_id = atomic_load(&rt->sync_expected_probe_id); - expected_client_send_ts_ms = atomic_load(&rt->sync_expected_client_send_ts_ms); - if (expected_probe_id == 0 || - reply_meta.probe_id != expected_probe_id || - reply_meta.client_send_ts_ms != expected_client_send_ts_ms) { - logger_log("WARN", "client", - "unexpected_time_sync_resp probe_id=%u expected_probe=%u", - (unsigned)reply_meta.probe_id, - (unsigned)expected_probe_id); - continue; - } - - client_recv_ts_ms = omni_now_ms(); - rtt_ms = client_recv_ts_ms - reply_meta.client_send_ts_ms; - offset_ms = compute_server_minus_client_offset_ms(&reply_meta, - client_recv_ts_ms); - atomic_store(&rt->sync_reply_rtt_ms, rtt_ms); - atomic_store(&rt->sync_reply_offset_ms, offset_ms); - atomic_store(&rt->sync_reply_ready, 1); - } else { - logger_log("INFO", "client", - "recv_non_command type=%u len=%u", - (unsigned)hdr.type, (unsigned)hdr.len); - } - } - - atomic_store(&rt->running, 0); - return NULL; -} - -/* - * 客户端主流程: - * 1) 解析参数并建立连接 - * 2) 启动接收线程 - * 3) 循环读取文件并分片发送 - * 4) 发送 FILE_END - * 5) 等待 ACK 或超时,然后输出汇总 - */ -int main(int argc, char **argv) -{ - const char *proto_str = "tcp"; - const char *server_ip = NULL; - const char *file_path = NULL; - OmniProtocol proto; - FILE *fp = NULL; - OmniContext *ctx = NULL; - pthread_t recv_tid; - ClientRuntime rt; - uint8_t *chunk = NULL; - uint64_t *window_counts = NULL; - size_t window_cap = 0; - uint32_t total_windows = 0; - uint64_t total_bytes = 0; - uint32_t total_chunks = 0; - uint32_t transfer_id; - uint64_t total_sent = 0; - uint64_t offset = 0; - uint64_t transfer_start_send_ms = 0; - uint64_t file_end_send_ts_ms = 0; - ClockSyncResult clock_sync; - int server_port = 0; - int bind_port = 0; - unsigned chunk_size = OMNI_DEFAULT_MTU; - int wait_seconds = 2; - int opt; - int exit_code = 0; - - install_signal_handlers(); - - while ((opt = getopt(argc, argv, "p:H:P:f:b:m:w:")) != -1) { - switch (opt) { - case 'p': - proto_str = optarg; - break; - case 'H': - server_ip = optarg; - break; - case 'P': - server_port = atoi(optarg); - break; - case 'f': - file_path = optarg; - break; - case 'b': - bind_port = atoi(optarg); - break; - case 'm': - chunk_size = (unsigned)strtoul(optarg, NULL, 10); - break; - case 'w': - wait_seconds = atoi(optarg); - break; - default: - usage(argv[0]); - return 1; - } - } - - if (!server_ip || server_port <= 0 || !file_path) { - usage(argv[0]); - return 1; - } - if (chunk_size == 0 || chunk_size > 65536u) { - fprintf(stderr, "invalid chunk size: %u\n", chunk_size); - return 1; - } - - fp = fopen(file_path, "rb"); - if (!fp) { - perror("fopen"); - return 1; - } - - total_bytes = compute_file_size(fp); - total_chunks = (chunk_size == 0) ? 0u : - (uint32_t)((total_bytes + (uint64_t)chunk_size - 1u) / (uint64_t)chunk_size); - transfer_id = (uint32_t)((omni_now_ms() ^ (uint64_t)getpid() ^ total_bytes) & 0xffffffffu); - proto = parse_proto(proto_str); - ctx = omni_init(OMNI_ROLE_CLIENT, proto, - NULL, (uint16_t)bind_port, - server_ip, (uint16_t)server_port); - if (!ctx) { - fclose(fp); - fprintf(stderr, "omni_init failed\n"); - return 1; - } - logger_set_transfer_total(total_bytes); - logger_set_progress(0); - memset(&clock_sync, 0, sizeof(clock_sync)); - - /* 接收线程与主线程共享一个 runtime 结构。 */ - rt.ctx = ctx; - atomic_init(&rt.running, 1); - atomic_init(&rt.ack_received, 0); - atomic_init(&rt.ack_rtt_ms, 0); - atomic_init(&rt.ack_bytes_written, 0); - atomic_init(&rt.ack_transfer_id, 0); - atomic_init(&rt.sync_expected_probe_id, 0); - atomic_init(&rt.sync_expected_client_send_ts_ms, 0); - atomic_init(&rt.sync_reply_ready, 0); - atomic_init(&rt.sync_reply_rtt_ms, 0); - atomic_init(&rt.sync_reply_offset_ms, 0); - - if (pthread_create(&recv_tid, NULL, recv_thread_main, &rt) != 0) { - perror("pthread_create"); - fclose(fp); - omni_close(ctx); - return 1; - } - - if (perform_time_sync(ctx, &rt, &clock_sync) != OMNI_OK) { - logger_log("WARN", "client", - "time_sync_unavailable transfer_will_continue_without_compensated_server_metrics"); - } - - chunk = (uint8_t *)malloc(chunk_size); - if (!chunk) { - logger_log("ERROR", "client", "malloc_chunk_failed size=%u", chunk_size); - atomic_store(&rt.running, 0); - pthread_cancel(recv_tid); - pthread_join(recv_tid, NULL); - fclose(fp); - omni_close(ctx); - return 1; - } - - for (uint32_t seq = 1; atomic_load(&rt.running); ++seq) { - uint64_t origin_ts_ms; - size_t nread; - - if (g_stop) { - logger_log("INFO", "client", "signal_received_stop_sending"); - atomic_store(&rt.running, 0); - exit_code = 1; - break; - } - - origin_ts_ms = omni_now_ms(); - nread = fread(chunk, 1, chunk_size, fp); - if (nread == 0) { - if (feof(fp)) { - break; - } - if (ferror(fp)) { - logger_log("ERROR", "client", "fread_failed"); - atomic_store(&rt.running, 0); - exit_code = 1; - break; - } - } - - if (nread > 0) { - uint64_t process_t0 = omni_now_ms(); - uint64_t send_ts_ms = omni_now_ms(); - uint32_t window_id; - size_t payload_len = TRANSFER_CHUNK_META_SIZE + nread; - uint8_t *payload = (uint8_t *)malloc(payload_len); - TransferChunkMeta meta; - int rc; - - if (!payload) { - logger_log("ERROR", "client", "malloc_payload_failed len=%zu", payload_len); - atomic_store(&rt.running, 0); - exit_code = 1; - break; - } - - if (transfer_start_send_ms == 0) { - transfer_start_send_ms = send_ts_ms; - } - /* 以“首次发送时间”为零点,将分片映射到按秒划分的发送窗口。 */ - window_id = (uint32_t)((send_ts_ms - transfer_start_send_ms) / 1000u); - if (ensure_window_capacity(&window_counts, &window_cap, window_id) != OMNI_OK) { - free(payload); - logger_log("ERROR", "client", "window_counter_alloc_failed window=%u", - (unsigned)window_id); - atomic_store(&rt.running, 0); - exit_code = 1; - break; - } - - omni_transfer_chunk_meta_encode(&meta, - transfer_id, - seq, - total_chunks, - window_id, - total_bytes, - offset, - (uint32_t)nread, - origin_ts_ms); - /* payload = chunk 元数据 + 实际文件数据。 */ - memcpy(payload, &meta, TRANSFER_CHUNK_META_SIZE); - memcpy(payload + TRANSFER_CHUNK_META_SIZE, chunk, nread); - logger_on_processing_latency((double)(omni_now_ms() - process_t0)); - - rc = send_app_message_with_timestamp(ctx, MSG_TYPE_FILE_CHUNK, - payload, (uint32_t)payload_len, - send_ts_ms); - free(payload); - - if (rc != OMNI_OK) { - atomic_store(&rt.running, 0); - exit_code = 1; - break; - } - - window_counts[window_id]++; - if (window_id + 1u > total_windows) { - total_windows = window_id + 1u; - } - total_sent += nread; - offset += nread; - logger_set_progress(total_sent); - } - } - - if (atomic_load(&rt.running)) { - TransferEndMeta end_meta; - file_end_send_ts_ms = omni_now_ms(); - /* FILE_END 表示“数据流已经发完”,不是文件内容本身。 */ - omni_transfer_end_meta_encode(&end_meta, - transfer_id, - total_chunks, - total_bytes, - total_windows); - if (send_app_message_with_timestamp(ctx, MSG_TYPE_FILE_END, - &end_meta, TRANSFER_END_META_SIZE, - file_end_send_ts_ms) != OMNI_OK) { - atomic_store(&rt.running, 0); - exit_code = 1; - } - } - - logger_log("INFO", "client", - "file_transfer_done transfer_id=%u bytes=%llu total_chunks=%u", - (unsigned)transfer_id, - (unsigned long long)total_sent, - (unsigned)total_chunks); - - if (wait_seconds < 0) { - /* keepalive 模式:发送完成后不主动退出,便于继续观察控制消息。 */ - logger_log("INFO", "client", "keepalive_mode=on press_ctrl_c_to_exit"); - while (atomic_load(&rt.running) && !g_stop) { - sleep(1); - } - } else { - /* 普通模式:等待一小段时间给服务端回 ACK。 */ - for (int i = 0; i < wait_seconds && atomic_load(&rt.running) && !g_stop; ++i) { - if (atomic_load(&rt.ack_received)) { - break; - } - sleep(1); - } - } - - { - /* 输出客户端视角的最终汇总,包括发送窗口分布和 ACK 结果。 */ - OmniStats snapshot = logger_get_snapshot(); - char *window_dist = format_window_distribution(window_counts, total_windows); - uint64_t tcp_original_bytes = saturating_sub_u64(snapshot.tcp_data_bytes_sent, - snapshot.tcp_retrans_bytes); - uint64_t kcp_original_bytes = saturating_sub_u64(snapshot.kcp_data_bytes_sent, - snapshot.kcp_retrans_bytes); - double tcp_retrans_rate = rate_percent(snapshot.tcp_retrans_bytes, tcp_original_bytes); - double kcp_retrans_rate = rate_percent(snapshot.kcp_retrans_bytes, kcp_original_bytes); - uint64_t ack_rtt_ms = atomic_load(&rt.ack_rtt_ms); - uint64_t ack_bytes_written = atomic_load(&rt.ack_bytes_written); - unsigned ack_received = (unsigned)atomic_load(&rt.ack_received); - - logger_log("INFO", "summary", - "event=transfer_summary role=client proto=%s transfer_id=%u " - "total_bytes=%llu total_chunks=%u sent_bytes=%llu progress_bytes=%llu " - "tx_avg_mbps=%.3f tx_current_mbps=%.3f rx_avg_mbps=%.3f " - "processing_avg_ms=%.3f processing_max_ms=%.3f " - "queue_avg_ms=%.3f transmission_avg_ms=%.3f propagation_avg_ms=%.3f " - "last_rtt_ms=%llu min_rtt_ms=%llu " - "send_buffer_avg_pct=%.2f recv_buffer_avg_pct=%.2f " - "cwnd_avg=%.2f " - "tcp_retrans=%llu tcp_data_segs_out=%llu tcp_original_bytes=%llu " - "tcp_retrans_bytes=%llu tcp_retrans_rate_pct=%.2f " - "kcp_retrans=%llu kcp_data_segs_out=%llu kcp_original_bytes=%llu " - "kcp_retrans_bytes=%llu kcp_retrans_rate_pct=%.2f " - "send_windows=%u send_window_distribution=%s " - "ack_received=%u ack_rtt_ms=%llu ack_bytes_written=%llu " - "clock_sync_ok=%u clock_offset_ms=%lld clock_sync_rtt_ms=%llu clock_sync_samples=%u", - proto_str, - (unsigned)transfer_id, - (unsigned long long)total_bytes, - (unsigned)total_chunks, - (unsigned long long)total_sent, - (unsigned long long)snapshot.progress_bytes, - snapshot.tx_avg_mbps, - snapshot.tx_current_mbps, - snapshot.rx_avg_mbps, - (snapshot.processing_delay_ms.count == 0) ? 0.0 : - snapshot.processing_delay_ms.sum / (double)snapshot.processing_delay_ms.count, - snapshot.processing_delay_ms.max, - (snapshot.queue_delay_ms.count == 0) ? 0.0 : - snapshot.queue_delay_ms.sum / (double)snapshot.queue_delay_ms.count, - (snapshot.transmission_delay_ms.count == 0) ? 0.0 : - snapshot.transmission_delay_ms.sum / (double)snapshot.transmission_delay_ms.count, - (snapshot.propagation_delay_ms.count == 0) ? 0.0 : - snapshot.propagation_delay_ms.sum / (double)snapshot.propagation_delay_ms.count, - (unsigned long long)snapshot.last_rtt_ms, - (unsigned long long)((snapshot.min_rtt_ms == UINT64_MAX) ? 0 : snapshot.min_rtt_ms), - (snapshot.send_buffer_pct.count == 0) ? 0.0 : - snapshot.send_buffer_pct.sum / (double)snapshot.send_buffer_pct.count, - (snapshot.recv_buffer_pct.count == 0) ? 0.0 : - snapshot.recv_buffer_pct.sum / (double)snapshot.recv_buffer_pct.count, - (snapshot.cwnd.count == 0) ? 0.0 : - snapshot.cwnd.sum / (double)snapshot.cwnd.count, - (unsigned long long)snapshot.tcp_retrans, - (unsigned long long)snapshot.tcp_data_segs_out, - (unsigned long long)tcp_original_bytes, - (unsigned long long)snapshot.tcp_retrans_bytes, - tcp_retrans_rate, - (unsigned long long)snapshot.kcp_retrans, - (unsigned long long)snapshot.kcp_data_segs_out, - (unsigned long long)kcp_original_bytes, - (unsigned long long)snapshot.kcp_retrans_bytes, - kcp_retrans_rate, - (unsigned)total_windows, - window_dist ? window_dist : "alloc_failed", - ack_received, - (unsigned long long)ack_rtt_ms, - (unsigned long long)ack_bytes_written, - (unsigned)clock_sync.valid, - (long long)clock_sync.server_minus_client_offset_ms, - (unsigned long long)clock_sync.best_rtt_ms, - (unsigned)clock_sync.sample_count); - free(window_dist); - } - - /* 主线程统一做收尾:停线程、释放缓冲、关闭文件和连接。 */ - atomic_store(&rt.running, 0); - pthread_cancel(recv_tid); - pthread_join(recv_tid, NULL); - - free(window_counts); - free(chunk); - fclose(fp); - omni_close(ctx); - return exit_code; -} diff --git a/src/apps/hub_main.c b/src/apps/hub_main.c index 1e7bcf4..bae78a5 100644 --- a/src/apps/hub_main.c +++ b/src/apps/hub_main.c @@ -1,58 +1,39 @@ /* * hub_main.c - * 云端 hub:维护 client_id -> 连接 的映射,并负责 register / bind / tunnel 路由 + * 多客户端 hub:维护 client_id -> session 的映射,并负责 register / bind / tunnel 路由 * - * 当前阶段只实现 TCP 控制面: - * - 多个 peer 主动连接 hub + * 支持统一的 tcp / udp / kcp 传输: + * - 多个 peer 主动接入 hub * - peer 先 REGISTER 自己的逻辑 ID * - peer 可 BIND 默认目标 * - peer 发送 TUNNEL 后,hub 根据 dst_id 转发给目标 - * - * 后续文件/视频消息可以直接复用 MSG_TYPE_PEER_TUNNEL 的 inner_type。 */ #include "common.h" #include "logger.h" +#include "peer_transport.h" -#include #include -#include -#include -#include #include -#include #include #include #include #include -#include -#include #include #define HUB_MAX_PAYLOAD (PEER_TUNNEL_META_SIZE + 65536u) -#define HUB_BACKLOG 64 - -typedef struct HubState HubState; typedef struct HubClient { - HubState *hub; - int fd; - pthread_t tid; - pthread_mutex_t write_mu; - atomic_int running; + PeerTransportSession *session; char client_id[OMNI_PEER_ID_SIZE]; char bound_peer[OMNI_PEER_ID_SIZE]; - char remote_ip[64]; - uint16_t remote_port; struct HubClient *next; } HubClient; -struct HubState { - int listen_fd; - atomic_int running; - pthread_mutex_t mu; +typedef struct HubState { + PeerTransport *transport; HubClient *clients; -}; +} HubState; static volatile sig_atomic_t g_stop = 0; @@ -78,10 +59,30 @@ static void usage(const char *prog) { fprintf(stderr, "Usage:\n" - " %s -P [-b ] [-p tcp]\n", + " %s -P [-b ] [-p tcp|udp|kcp]\n", prog); } +static int parse_proto(const char *s, OmniProtocol *out_proto) +{ + if (!s || !out_proto) { + return 0; + } + if (strcmp(s, "tcp") == 0) { + *out_proto = OMNI_PROTO_TCP; + return 1; + } + if (strcmp(s, "udp") == 0) { + *out_proto = OMNI_PROTO_UDP; + return 1; + } + if (strcmp(s, "kcp") == 0) { + *out_proto = OMNI_PROTO_KCP; + return 1; + } + return 0; +} + static int peer_id_is_valid(const char *id) { size_t len = 0; @@ -103,174 +104,14 @@ static int peer_id_is_valid(const char *id) return 1; } -static const char *safe_client_id(const HubClient *client) -{ - if (!client || client->client_id[0] == '\0') { - return "unregistered"; - } - return client->client_id; -} - -static ssize_t read_n(int fd, void *buf, size_t n) -{ - uint8_t *p = (uint8_t *)buf; - size_t done = 0; - - while (done < n) { - ssize_t rc = recv(fd, p + done, n - done, 0); - if (rc == 0) { - return 0; - } - if (rc < 0) { - if (errno == EINTR) { - continue; - } - return -1; - } - done += (size_t)rc; - } - return (ssize_t)done; -} - -static ssize_t write_n(int fd, const void *buf, size_t n) -{ - const uint8_t *p = (const uint8_t *)buf; - size_t done = 0; - - while (done < n) { - ssize_t rc = send(fd, p + done, n - done, 0); - if (rc < 0) { - if (errno == EINTR) { - continue; - } - return -1; - } - done += (size_t)rc; - } - return (ssize_t)done; -} - -static int recv_app_message(int fd, MsgHeader *out_hdr, uint8_t *payload_buf, size_t payload_cap) -{ - MsgHeader net_hdr; - ssize_t n; - - if (!out_hdr || !payload_buf) { - return OMNI_ERR_PARAM; - } - - n = read_n(fd, &net_hdr, MSG_HEADER_SIZE); - if (n == 0) { - return 0; - } - if (n != (ssize_t)MSG_HEADER_SIZE) { - return OMNI_ERR_IO; - } - - omni_msg_header_decode(&net_hdr, out_hdr); - if (out_hdr->len > payload_cap) { - logger_log("ERROR", "hub", "payload_too_large len=%u cap=%zu", - (unsigned)out_hdr->len, payload_cap); - return OMNI_ERR_IO; - } - if (out_hdr->len == 0) { - return 1; - } - - n = read_n(fd, payload_buf, out_hdr->len); - if (n != (ssize_t)out_hdr->len) { - return OMNI_ERR_IO; - } - - logger_on_recv(MSG_HEADER_SIZE + out_hdr->len); - logger_maybe_print_performance_log("hub_recv"); - return 1; -} - -static int send_app_message_locked(HubClient *client, - uint32_t type, - const void *payload, - uint32_t payload_len) -{ - MsgHeader hdr; - uint8_t header_buf[MSG_HEADER_SIZE]; - - if (!client) { - return OMNI_ERR_PARAM; - } - - omni_msg_header_encode(&hdr, type, payload_len, omni_now_ms()); - memcpy(header_buf, &hdr, sizeof(header_buf)); - - if (write_n(client->fd, header_buf, sizeof(header_buf)) != (ssize_t)sizeof(header_buf)) { - return OMNI_ERR_IO; - } - if (payload_len > 0 && payload) { - if (write_n(client->fd, payload, payload_len) != (ssize_t)payload_len) { - return OMNI_ERR_IO; - } - } - - logger_on_send(MSG_HEADER_SIZE + payload_len); - logger_maybe_print_performance_log("hub_send"); - return OMNI_OK; -} - -static int send_app_message(HubClient *client, - uint32_t type, - const void *payload, - uint32_t payload_len) -{ - int rc; - - if (!client) { - return OMNI_ERR_PARAM; - } - - pthread_mutex_lock(&client->write_mu); - rc = send_app_message_locked(client, type, payload, payload_len); - pthread_mutex_unlock(&client->write_mu); - return rc; -} - -static int send_status_locked(HubClient *client, - uint32_t code, - const char *self_id, - const char *peer_id, - const char *detail) -{ - PeerStatusMeta status_meta; - - omni_peer_status_meta_encode(&status_meta, code, self_id, peer_id, detail); - return send_app_message_locked(client, - MSG_TYPE_PEER_STATUS, - &status_meta, - PEER_STATUS_META_SIZE); -} - -static int send_status(HubClient *client, - uint32_t code, - const char *self_id, - const char *peer_id, - const char *detail) -{ - PeerStatusMeta status_meta; - - omni_peer_status_meta_encode(&status_meta, code, self_id, peer_id, detail); - return send_app_message(client, - MSG_TYPE_PEER_STATUS, - &status_meta, - PEER_STATUS_META_SIZE); -} - -static HubClient *find_client_locked(HubState *hub, const char *client_id) +static HubClient *find_client_by_id(HubState *hub, const char *client_id) { HubClient *cur; - for (cur = hub->clients; cur != NULL; cur = cur->next) { - if (cur->client_id[0] == '\0') { - continue; - } + if (!hub || !client_id) { + return NULL; + } + for (cur = hub->clients; cur; cur = cur->next) { if (strcmp(cur->client_id, client_id) == 0) { return cur; } @@ -278,267 +119,338 @@ static HubClient *find_client_locked(HubState *hub, const char *client_id) return NULL; } -static void add_client_locked(HubState *hub, HubClient *client) +static HubClient *find_client_by_session(HubState *hub, PeerTransportSession *session) { - client->next = hub->clients; - hub->clients = client; + HubClient *cur; + + if (!hub || !session) { + return NULL; + } + for (cur = hub->clients; cur; cur = cur->next) { + if (cur->session == session) { + return cur; + } + } + return NULL; } -static void remove_client_locked(HubState *hub, HubClient *client) +static int send_status_session(HubState *hub, + PeerTransportSession *session, + uint32_t code, + const char *self_id, + const char *peer_id, + const char *detail) { - HubClient **pp = &hub->clients; + PeerStatusMeta status_meta; - while (*pp) { - if (*pp == client) { - *pp = client->next; - client->next = NULL; - return; + if (!hub || !session) { + return OMNI_ERR_PARAM; + } + + omni_peer_status_meta_encode(&status_meta, code, self_id, peer_id, detail); + return peer_transport_send(hub->transport, + session, + MSG_TYPE_PEER_STATUS, + &status_meta, + PEER_STATUS_META_SIZE); +} + +static void notify_peer_offline(HubState *hub, const char *departed_id) +{ + HubClient *cur; + + if (!hub || !departed_id || !departed_id[0]) { + return; + } + + for (cur = hub->clients; cur; cur = cur->next) { + if (strcmp(cur->bound_peer, departed_id) == 0) { + cur->bound_peer[0] = '\0'; + (void)send_status_session(hub, + cur->session, + PEER_STATUS_UNBOUND, + cur->client_id, + departed_id, + "peer_offline binding_cleared"); } - pp = &(*pp)->next; } } -static void unregister_client(HubClient *client) +static void remove_client(HubState *hub, HubClient *client) { - HubState *hub; - HubClient **notify = NULL; - size_t notify_count = 0; - size_t notify_cap = 0; - HubClient *cur; + HubClient **cur; char departed_id[OMNI_PEER_ID_SIZE]; - if (!client || !client->hub) { + if (!hub || !client) { return; } - hub = client->hub; - memset(departed_id, 0, sizeof(departed_id)); + departed_id[0] = '\0'; omni_copy_fixed_ascii(departed_id, sizeof(departed_id), client->client_id); - pthread_mutex_lock(&hub->mu); - remove_client_locked(hub, client); - - if (departed_id[0] != '\0') { - for (cur = hub->clients; cur != NULL; cur = cur->next) { - if (strcmp(cur->bound_peer, departed_id) != 0) { - continue; - } - if (notify_count == notify_cap) { - size_t new_cap = (notify_cap == 0) ? 4u : notify_cap * 2u; - HubClient **new_notify = - (HubClient **)realloc(notify, new_cap * sizeof(*new_notify)); - if (!new_notify) { - break; - } - notify = new_notify; - notify_cap = new_cap; - } - cur->bound_peer[0] = '\0'; - pthread_mutex_lock(&cur->write_mu); - notify[notify_count++] = cur; + cur = &hub->clients; + while (*cur) { + if (*cur == client) { + *cur = client->next; + break; } + cur = &(*cur)->next; } - pthread_mutex_unlock(&hub->mu); - for (size_t i = 0; i < notify_count; ++i) { - (void)send_status_locked(notify[i], - PEER_STATUS_UNBOUND, - notify[i]->client_id, - departed_id, - "peer_offline binding_cleared"); - pthread_mutex_unlock(¬ify[i]->write_mu); + if (departed_id[0]) { + notify_peer_offline(hub, departed_id); } - free(notify); + peer_transport_close_session(hub->transport, client->session); + free(client); } -static void close_client(HubClient *client) +static HubClient *register_client(HubState *hub, + PeerTransportSession *session, + const char *client_id) { - if (!client) { - return; + HubClient *client; + HubClient *existing; + char remote_buf[128]; + + if (!hub || !session || !client_id) { + return NULL; } - pthread_mutex_lock(&client->write_mu); - if (client->fd >= 0) { - shutdown(client->fd, SHUT_RDWR); - close(client->fd); - client->fd = -1; + existing = find_client_by_session(hub, session); + if (existing) { + omni_copy_fixed_ascii(existing->client_id, sizeof(existing->client_id), client_id); + return existing; } - pthread_mutex_unlock(&client->write_mu); + + existing = find_client_by_id(hub, client_id); + if (existing && existing->session != session) { + logger_log("WARN", "hub", + "client_id_replaced client_id=%s old_remote=%s", + client_id, + peer_transport_session_remote(existing->session, + remote_buf, + sizeof(remote_buf))); + remove_client(hub, existing); + } + + client = (HubClient *)calloc(1, sizeof(*client)); + if (!client) { + return NULL; + } + client->session = session; + omni_copy_fixed_ascii(client->client_id, sizeof(client->client_id), client_id); + client->next = hub->clients; + hub->clients = client; + return client; } -static int handle_register(HubClient *client, const uint8_t *payload, uint32_t payload_len) +static int handle_register(HubState *hub, + PeerTransportSession *session, + const uint8_t *payload, + uint32_t payload_len) { PeerRegisterMeta register_meta; + HubClient *client; char detail[128]; - - logger_log("DEBUG", "hub", - "handle_register remote=%s:%u payload_len=%u", - client->remote_ip, - (unsigned)client->remote_port, - (unsigned)payload_len); + char remote_buf[128]; if (payload_len < PEER_REGISTER_META_SIZE) { - return send_status(client, PEER_STATUS_ERROR, NULL, NULL, "short_register_payload"); + return send_status_session(hub, + session, + PEER_STATUS_ERROR, + NULL, + NULL, + "short_register_payload"); } omni_peer_register_meta_decode((const PeerRegisterMeta *)payload, ®ister_meta); if (!peer_id_is_valid(register_meta.client_id)) { - return send_status(client, PEER_STATUS_ERROR, NULL, NULL, "invalid_client_id"); + return send_status_session(hub, + session, + PEER_STATUS_ERROR, + NULL, + NULL, + "invalid_client_id"); } - pthread_mutex_lock(&client->hub->mu); - if (client->client_id[0] != '\0') { - pthread_mutex_unlock(&client->hub->mu); - return send_status(client, PEER_STATUS_ERROR, client->client_id, NULL, "already_registered"); + client = register_client(hub, session, register_meta.client_id); + if (!client) { + return send_status_session(hub, + session, + PEER_STATUS_ERROR, + NULL, + register_meta.client_id, + "register_alloc_failed"); } - if (find_client_locked(client->hub, register_meta.client_id) != NULL) { - pthread_mutex_unlock(&client->hub->mu); - return send_status(client, PEER_STATUS_ERROR, NULL, register_meta.client_id, "client_id_in_use"); - } - omni_copy_fixed_ascii(client->client_id, sizeof(client->client_id), register_meta.client_id); - pthread_mutex_unlock(&client->hub->mu); - snprintf(detail, sizeof(detail), "registered remote=%s:%u", - client->remote_ip, (unsigned)client->remote_port); + snprintf(detail, sizeof(detail), "registered remote=%s", + peer_transport_session_remote(session, remote_buf, sizeof(remote_buf))); logger_log("INFO", "hub", - "client_registered client_id=%s remote=%s:%u", + "client_registered client_id=%s remote=%s", client->client_id, - client->remote_ip, - (unsigned)client->remote_port); - return send_status(client, - PEER_STATUS_REGISTERED, - client->client_id, - NULL, - detail); + remote_buf); + return send_status_session(hub, + session, + PEER_STATUS_REGISTERED, + client->client_id, + NULL, + detail); } -static int handle_bind(HubClient *client, const uint8_t *payload, uint32_t payload_len) +static int handle_bind(HubState *hub, + HubClient *client, + const uint8_t *payload, + uint32_t payload_len) { PeerBindMeta bind_meta; HubClient *target; - logger_log("DEBUG", "hub", - "handle_bind client_id=%s payload_len=%u", - safe_client_id(client), - (unsigned)payload_len); - - if (client->client_id[0] == '\0') { - return send_status(client, PEER_STATUS_ERROR, NULL, NULL, "register_first"); + if (!hub || !client) { + return OMNI_ERR_PARAM; } if (payload_len < PEER_BIND_META_SIZE) { - return send_status(client, PEER_STATUS_ERROR, client->client_id, NULL, "short_bind_payload"); + return send_status_session(hub, + client->session, + PEER_STATUS_ERROR, + client->client_id, + NULL, + "short_bind_payload"); } omni_peer_bind_meta_decode((const PeerBindMeta *)payload, &bind_meta); if (!peer_id_is_valid(bind_meta.peer_id)) { - return send_status(client, PEER_STATUS_ERROR, client->client_id, NULL, "invalid_peer_id"); + return send_status_session(hub, + client->session, + PEER_STATUS_ERROR, + client->client_id, + NULL, + "invalid_peer_id"); } if (strcmp(bind_meta.peer_id, client->client_id) == 0) { - return send_status(client, PEER_STATUS_ERROR, client->client_id, bind_meta.peer_id, "cannot_bind_self"); + return send_status_session(hub, + client->session, + PEER_STATUS_ERROR, + client->client_id, + bind_meta.peer_id, + "cannot_bind_self"); } - pthread_mutex_lock(&client->hub->mu); - target = find_client_locked(client->hub, bind_meta.peer_id); + target = find_client_by_id(hub, bind_meta.peer_id); if (!target) { - pthread_mutex_unlock(&client->hub->mu); - return send_status(client, PEER_STATUS_ERROR, client->client_id, bind_meta.peer_id, "peer_not_online"); + return send_status_session(hub, + client->session, + PEER_STATUS_ERROR, + client->client_id, + bind_meta.peer_id, + "peer_not_online"); } - omni_copy_fixed_ascii(client->bound_peer, sizeof(client->bound_peer), bind_meta.peer_id); - pthread_mutex_unlock(&client->hub->mu); + omni_copy_fixed_ascii(client->bound_peer, sizeof(client->bound_peer), bind_meta.peer_id); logger_log("INFO", "hub", "peer_bound client_id=%s peer_id=%s", client->client_id, bind_meta.peer_id); - return send_status(client, - PEER_STATUS_BOUND, - client->client_id, - bind_meta.peer_id, - "bind_ok"); + return send_status_session(hub, + client->session, + PEER_STATUS_BOUND, + client->client_id, + bind_meta.peer_id, + "bind_ok"); } -static int handle_tunnel(HubClient *client, const uint8_t *payload, uint32_t payload_len) +static int handle_tunnel(HubState *hub, + HubClient *client, + const uint8_t *payload, + uint32_t payload_len) { PeerTunnelMeta tunnel_meta; - HubClient *target = NULL; + PeerTunnelMeta forward_meta; + HubClient *target; char effective_dst[OMNI_PEER_ID_SIZE]; uint8_t *forward_payload = NULL; uint32_t inner_len; int rc = OMNI_OK; - logger_log("DEBUG", "hub", - "handle_tunnel client_id=%s payload_len=%u", - safe_client_id(client), - (unsigned)payload_len); - - if (client->client_id[0] == '\0') { - return send_status(client, PEER_STATUS_ERROR, NULL, NULL, "register_first"); + if (!hub || !client) { + return OMNI_ERR_PARAM; } if (payload_len < PEER_TUNNEL_META_SIZE) { - return send_status(client, PEER_STATUS_ERROR, client->client_id, NULL, "short_tunnel_payload"); + return send_status_session(hub, + client->session, + PEER_STATUS_ERROR, + client->client_id, + NULL, + "short_tunnel_payload"); } omni_peer_tunnel_meta_decode((const PeerTunnelMeta *)payload, &tunnel_meta); inner_len = payload_len - PEER_TUNNEL_META_SIZE; memset(effective_dst, 0, sizeof(effective_dst)); - pthread_mutex_lock(&client->hub->mu); if (tunnel_meta.dst_id[0] != '\0') { omni_copy_fixed_ascii(effective_dst, sizeof(effective_dst), tunnel_meta.dst_id); } else { omni_copy_fixed_ascii(effective_dst, sizeof(effective_dst), client->bound_peer); } - if (effective_dst[0] != '\0') { - target = find_client_locked(client->hub, effective_dst); - if (target) { - pthread_mutex_lock(&target->write_mu); - } - } - pthread_mutex_unlock(&client->hub->mu); - if (!peer_id_is_valid(effective_dst)) { - return send_status(client, PEER_STATUS_ERROR, client->client_id, NULL, "missing_or_invalid_destination"); + return send_status_session(hub, + client->session, + PEER_STATUS_ERROR, + client->client_id, + NULL, + "missing_or_invalid_destination"); } + + target = find_client_by_id(hub, effective_dst); if (!target) { - return send_status(client, PEER_STATUS_ERROR, client->client_id, effective_dst, "destination_not_online"); + return send_status_session(hub, + client->session, + PEER_STATUS_ERROR, + client->client_id, + effective_dst, + "destination_not_online"); } forward_payload = (uint8_t *)malloc(payload_len); if (!forward_payload) { - pthread_mutex_unlock(&target->write_mu); - return send_status(client, PEER_STATUS_ERROR, client->client_id, effective_dst, "malloc_forward_payload_failed"); + return send_status_session(hub, + client->session, + PEER_STATUS_ERROR, + client->client_id, + effective_dst, + "malloc_forward_payload_failed"); } - { - PeerTunnelMeta forward_meta; - - omni_peer_tunnel_meta_encode(&forward_meta, - client->client_id, - effective_dst, - tunnel_meta.inner_type); - memcpy(forward_payload, &forward_meta, PEER_TUNNEL_META_SIZE); - if (inner_len > 0) { - memcpy(forward_payload + PEER_TUNNEL_META_SIZE, - payload + PEER_TUNNEL_META_SIZE, - inner_len); - } + omni_peer_tunnel_meta_encode(&forward_meta, + client->client_id, + effective_dst, + tunnel_meta.inner_type); + memcpy(forward_payload, &forward_meta, PEER_TUNNEL_META_SIZE); + if (inner_len > 0) { + memcpy(forward_payload + PEER_TUNNEL_META_SIZE, + payload + PEER_TUNNEL_META_SIZE, + inner_len); } - rc = send_app_message_locked(target, - MSG_TYPE_PEER_TUNNEL, - forward_payload, - payload_len); - pthread_mutex_unlock(&target->write_mu); + rc = peer_transport_send(hub->transport, + target->session, + MSG_TYPE_PEER_TUNNEL, + forward_payload, + payload_len); free(forward_payload); - if (rc != OMNI_OK) { logger_log("ERROR", "hub", "forward_failed src_id=%s dst_id=%s inner_type=%u", client->client_id, effective_dst, (unsigned)tunnel_meta.inner_type); - return send_status(client, PEER_STATUS_ERROR, client->client_id, effective_dst, "forward_failed"); + return send_status_session(hub, + client->session, + PEER_STATUS_ERROR, + client->client_id, + effective_dst, + "forward_failed"); } logger_log("INFO", "hub", @@ -550,109 +462,15 @@ static int handle_tunnel(HubClient *client, const uint8_t *payload, uint32_t pay return OMNI_OK; } -static void *client_thread_main(void *arg) -{ - HubClient *client = (HubClient *)arg; - uint8_t payload[HUB_MAX_PAYLOAD]; - - while (atomic_load(&client->hub->running) && atomic_load(&client->running)) { - MsgHeader hdr; - int rc = recv_app_message(client->fd, &hdr, payload, sizeof(payload)); - - if (rc == 0) { - logger_log("INFO", "hub", - "client_closed client_id=%s remote=%s:%u", - safe_client_id(client), - client->remote_ip, - (unsigned)client->remote_port); - break; - } - if (rc < 0) { - logger_log("ERROR", "hub", - "client_recv_failed client_id=%s remote=%s:%u rc=%d", - safe_client_id(client), - client->remote_ip, - (unsigned)client->remote_port, - rc); - break; - } - - logger_log("DEBUG", "hub", - "message_recv client_id=%s type=%u len=%u", - safe_client_id(client), - (unsigned)hdr.type, - (unsigned)hdr.len); - - switch (hdr.type) { - case MSG_TYPE_PEER_REGISTER: - (void)handle_register(client, payload, hdr.len); - break; - case MSG_TYPE_PEER_BIND: - (void)handle_bind(client, payload, hdr.len); - break; - case MSG_TYPE_PEER_TUNNEL: - (void)handle_tunnel(client, payload, hdr.len); - break; - default: - (void)send_status(client, - PEER_STATUS_ERROR, - client->client_id[0] ? client->client_id : NULL, - NULL, - "unsupported_message_type"); - break; - } - } - - atomic_store(&client->running, 0); - unregister_client(client); - close_client(client); - pthread_mutex_destroy(&client->write_mu); - free(client); - return NULL; -} - -static int create_listen_socket(const char *bind_ip, uint16_t port) -{ - int fd; - int reuse = 1; - struct sockaddr_in addr; - - fd = socket(AF_INET, SOCK_STREAM, 0); - if (fd < 0) { - return -1; - } - - (void)setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse)); - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - addr.sin_port = htons(port); - if (bind_ip && bind_ip[0] != '\0') { - if (inet_pton(AF_INET, bind_ip, &addr.sin_addr) != 1) { - close(fd); - return -1; - } - } else { - addr.sin_addr.s_addr = htonl(INADDR_ANY); - } - - if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) { - close(fd); - return -1; - } - if (listen(fd, HUB_BACKLOG) != 0) { - close(fd); - return -1; - } - return fd; -} - int main(int argc, char **argv) { const char *bind_ip = NULL; const char *proto_str = "tcp"; + OmniProtocol proto = OMNI_PROTO_TCP; int listen_port = 0; int opt; HubState hub; + uint8_t payload[HUB_MAX_PAYLOAD]; while ((opt = getopt(argc, argv, "b:p:P:")) != -1) { switch (opt) { @@ -671,84 +489,113 @@ int main(int argc, char **argv) } } - if (listen_port <= 0 || strcmp(proto_str, "tcp") != 0) { + if (listen_port <= 0 || !parse_proto(proto_str, &proto)) { usage(argv[0]); return 1; } logger_init(); install_signal_handlers(); - + logger_set_context("hub", proto_str, "hub", "server", NULL); memset(&hub, 0, sizeof(hub)); - atomic_init(&hub.running, 1); - pthread_mutex_init(&hub.mu, NULL); - hub.listen_fd = create_listen_socket(bind_ip, (uint16_t)listen_port); - if (hub.listen_fd < 0) { - perror("hub listen"); - pthread_mutex_destroy(&hub.mu); + hub.transport = peer_transport_open(OMNI_ROLE_SERVER, + proto, + bind_ip, + (uint16_t)listen_port, + NULL, + 0); + if (!hub.transport) { + perror("hub transport"); return 1; } - logger_log("INFO", "hub", "listening bind_ip=%s port=%u", + logger_log("INFO", "hub", + "listening bind_ip=%s port=%u proto=%s", bind_ip ? bind_ip : "0.0.0.0", - (unsigned)listen_port); + (unsigned)listen_port, + peer_transport_proto_name(proto)); - while (atomic_load(&hub.running) && !g_stop) { - struct sockaddr_in peer_addr; - socklen_t peer_len = sizeof(peer_addr); - int cfd = accept(hub.listen_fd, (struct sockaddr *)&peer_addr, &peer_len); + while (!g_stop) { + PeerTransportEvent event; + HubClient *client; + int rc; - if (cfd < 0) { - if (errno == EINTR && !g_stop) { - continue; + rc = peer_transport_next_event(hub.transport, + &event, + payload, + sizeof(payload), + 100); + if (rc < 0) { + logger_log("ERROR", "hub", "transport_recv_failed rc=%d", rc); + continue; + } + if (rc == 0) { + continue; + } + + if (event.kind == PEER_TRANSPORT_EVENT_CLOSED) { + client = find_client_by_session(&hub, event.session); + if (client) { + logger_log("INFO", "hub", + "client_closed client_id=%s", + client->client_id[0] ? client->client_id : "unregistered"); + remove_client(&hub, client); + } else { + peer_transport_close_session(hub.transport, event.session); } - if (g_stop) { + continue; + } + + switch (event.header.type) { + case MSG_TYPE_PEER_REGISTER: + (void)handle_register(&hub, event.session, payload, event.header.len); + break; + case MSG_TYPE_PEER_BIND: + client = find_client_by_session(&hub, event.session); + if (!client) { + (void)send_status_session(&hub, + event.session, + PEER_STATUS_ERROR, + NULL, + NULL, + "register_first"); break; } - perror("hub accept"); + (void)handle_bind(&hub, client, payload, event.header.len); + break; + case MSG_TYPE_PEER_TUNNEL: + client = find_client_by_session(&hub, event.session); + if (!client) { + (void)send_status_session(&hub, + event.session, + PEER_STATUS_ERROR, + NULL, + NULL, + "register_first"); + break; + } + (void)handle_tunnel(&hub, client, payload, event.header.len); + break; + default: + client = find_client_by_session(&hub, event.session); + (void)send_status_session(&hub, + event.session, + PEER_STATUS_ERROR, + client ? client->client_id : NULL, + NULL, + "unsupported_message_type"); break; } - - HubClient *client = (HubClient *)calloc(1, sizeof(*client)); - if (!client) { - close(cfd); - continue; - } - - client->hub = &hub; - client->fd = cfd; - atomic_init(&client->running, 1); - pthread_mutex_init(&client->write_mu, NULL); - if (!inet_ntop(AF_INET, &peer_addr.sin_addr, client->remote_ip, sizeof(client->remote_ip))) { - omni_copy_fixed_ascii(client->remote_ip, sizeof(client->remote_ip), "unknown"); - } - client->remote_port = ntohs(peer_addr.sin_port); - - pthread_mutex_lock(&hub.mu); - add_client_locked(&hub, client); - pthread_mutex_unlock(&hub.mu); - - if (pthread_create(&client->tid, NULL, client_thread_main, client) != 0) { - perror("hub pthread_create"); - unregister_client(client); - close_client(client); - pthread_mutex_destroy(&client->write_mu); - free(client); - continue; - } - pthread_detach(client->tid); - - logger_log("INFO", "hub", - "client_connected remote=%s:%u", - client->remote_ip, - (unsigned)client->remote_port); } - atomic_store(&hub.running, 0); - if (hub.listen_fd >= 0) { - close(hub.listen_fd); + while (hub.clients) { + HubClient *next = hub.clients->next; + peer_transport_close_session(hub.transport, hub.clients->session); + free(hub.clients); + hub.clients = next; } + peer_transport_close(hub.transport); logger_print_performance_log("final"); return 0; } diff --git a/src/apps/peer_main.c b/src/apps/peer_main.c index bc83453..804dbeb 100644 --- a/src/apps/peer_main.c +++ b/src/apps/peer_main.c @@ -1,6 +1,8 @@ /* * peer_main.c - * 对等端:主动连接 hub/bridge,既支持命令透传,也支持文件透传 + * 对等端: + * - hub 模式:连接 hub / bridge,使用 register / bind / tunnel 路由 + * - direct 模式:peer 与 peer 直接通信 * * 交互命令: * bind 绑定默认目标 @@ -14,25 +16,26 @@ #include "common.h" #include "logger.h" +#include "peer_transport.h" -#include #include -#include -#include #include -#include #include #include #include #include -#include -#include +#include #include #define PEER_MAX_PAYLOAD (PEER_TUNNEL_META_SIZE + 65536u) #define PEER_MAX_CHUNK_SIZE (65536u - TRANSFER_CHUNK_META_SIZE) #define PEER_OUTPUT_PATH_SIZE 512u +typedef enum PeerMode { + PEER_MODE_HUB = 0, + PEER_MODE_DIRECT = 1 +} PeerMode; + typedef struct PeerRecvFileState { FILE *fp; uint32_t transfer_id; @@ -42,17 +45,29 @@ typedef struct PeerRecvFileState { } PeerRecvFileState; typedef struct PeerRuntime { - int fd; - pthread_mutex_t send_mu; - pthread_mutex_t state_mu; - pthread_mutex_t file_mu; - atomic_int running; + PeerTransport *transport; + PeerTransportSession *session; + PeerMode mode; + OmniRole role; + int running; + int direct_register_sent; char client_id[OMNI_PEER_ID_SIZE]; char bound_peer[OMNI_PEER_ID_SIZE]; char output_path[PEER_OUTPUT_PATH_SIZE]; PeerRecvFileState rx_file; } PeerRuntime; +typedef struct StartupActions { + const char *initial_bind; + const char *message_dst; + const char *initial_message; + const char *initial_file; + unsigned chunk_size; + int bind_sent; + int message_sent; + int file_sent; +} StartupActions; + static volatile sig_atomic_t g_stop = 0; static void on_signal(int signo) @@ -77,10 +92,54 @@ static void usage(const char *prog) { fprintf(stderr, "Usage:\n" - " %s -H -P -i \n" - " [-b ] [-d ] [-m ] [-F ] [-o ]\n" - " [-c ] [-w ]\n", - prog); + " hub mode:\n" + " %s -H -P -i [-p tcp|udp|kcp]\n" + " [-b ] [-d ] [-m ] [-F ] [-o ]\n" + " [-c ] [-w ]\n" + " direct client mode:\n" + " %s -M direct -H -P -i [-p tcp|udp|kcp]\n" + " [-b ] [-d ] [-m ] [-F ] [-o ]\n" + " [-c ] [-w ]\n" + " direct server mode:\n" + " %s -M direct -L -i [-p tcp|udp|kcp]\n" + " [-b ] [-o ] [-c ] [-w ]\n", + prog, prog, prog); +} + +static int parse_proto(const char *s, OmniProtocol *out_proto) +{ + if (!s || !out_proto) { + return 0; + } + if (strcmp(s, "tcp") == 0) { + *out_proto = OMNI_PROTO_TCP; + return 1; + } + if (strcmp(s, "udp") == 0) { + *out_proto = OMNI_PROTO_UDP; + return 1; + } + if (strcmp(s, "kcp") == 0) { + *out_proto = OMNI_PROTO_KCP; + return 1; + } + return 0; +} + +static int parse_mode(const char *s, PeerMode *out_mode) +{ + if (!s || !out_mode) { + return 0; + } + if (strcmp(s, "hub") == 0) { + *out_mode = PEER_MODE_HUB; + return 1; + } + if (strcmp(s, "direct") == 0) { + *out_mode = PEER_MODE_DIRECT; + return 1; + } + return 0; } static int peer_id_is_valid(const char *id) @@ -106,124 +165,21 @@ static int peer_id_is_valid(const char *id) return 1; } -static ssize_t read_n(int fd, void *buf, size_t n) -{ - uint8_t *p = (uint8_t *)buf; - size_t done = 0; - - while (done < n) { - ssize_t rc = recv(fd, p + done, n - done, 0); - if (rc == 0) { - return 0; - } - if (rc < 0) { - if (errno == EINTR) { - continue; - } - return -1; - } - done += (size_t)rc; - } - return (ssize_t)done; -} - -static ssize_t write_n(int fd, const void *buf, size_t n) -{ - const uint8_t *p = (const uint8_t *)buf; - size_t done = 0; - - while (done < n) { - ssize_t rc = send(fd, p + done, n - done, 0); - if (rc < 0) { - if (errno == EINTR) { - continue; - } - return -1; - } - done += (size_t)rc; - } - return (ssize_t)done; -} - -static int recv_app_message(int fd, MsgHeader *out_hdr, uint8_t *payload_buf, size_t payload_cap) -{ - MsgHeader net_hdr; - ssize_t n; - - n = read_n(fd, &net_hdr, MSG_HEADER_SIZE); - if (n == 0) { - return 0; - } - if (n != (ssize_t)MSG_HEADER_SIZE) { - return OMNI_ERR_IO; - } - - omni_msg_header_decode(&net_hdr, out_hdr); - if (out_hdr->len > payload_cap) { - return OMNI_ERR_IO; - } - if (out_hdr->len > 0) { - n = read_n(fd, payload_buf, out_hdr->len); - if (n != (ssize_t)out_hdr->len) { - return OMNI_ERR_IO; - } - } - - logger_on_recv(MSG_HEADER_SIZE + out_hdr->len); - logger_maybe_print_performance_log("peer_recv"); - return 1; -} - -static int send_app_message_locked(PeerRuntime *rt, - uint32_t type, - const void *payload, - uint32_t payload_len) -{ - MsgHeader hdr; - uint8_t header_buf[MSG_HEADER_SIZE]; - - omni_msg_header_encode(&hdr, type, payload_len, omni_now_ms()); - memcpy(header_buf, &hdr, sizeof(header_buf)); - - if (write_n(rt->fd, header_buf, sizeof(header_buf)) != (ssize_t)sizeof(header_buf)) { - return OMNI_ERR_IO; - } - if (payload_len > 0 && payload) { - if (write_n(rt->fd, payload, payload_len) != (ssize_t)payload_len) { - return OMNI_ERR_IO; - } - } - - logger_on_send(MSG_HEADER_SIZE + payload_len); - logger_maybe_print_performance_log("peer_send"); - return OMNI_OK; -} - -static int send_app_message(PeerRuntime *rt, - uint32_t type, - const void *payload, - uint32_t payload_len) -{ - int rc; - - pthread_mutex_lock(&rt->send_mu); - rc = send_app_message_locked(rt, type, payload, payload_len); - pthread_mutex_unlock(&rt->send_mu); - return rc; -} - -static void peer_get_bound_peer(PeerRuntime *rt, char out_peer_id[OMNI_PEER_ID_SIZE]) -{ - pthread_mutex_lock(&rt->state_mu); - omni_copy_fixed_ascii(out_peer_id, OMNI_PEER_ID_SIZE, rt->bound_peer); - pthread_mutex_unlock(&rt->state_mu); -} - static void peer_set_bound_peer(PeerRuntime *rt, const char *peer_id) { - pthread_mutex_lock(&rt->state_mu); + if (!rt) { + return; + } omni_copy_fixed_ascii(rt->bound_peer, sizeof(rt->bound_peer), peer_id); - pthread_mutex_unlock(&rt->state_mu); +} + +static void close_recv_file(PeerRuntime *rt) +{ + if (!rt || !rt->rx_file.fp) { + return; + } + fclose(rt->rx_file.fp); + rt->rx_file.fp = NULL; } static uint64_t compute_file_size(FILE *fp) @@ -245,10 +201,14 @@ static int peer_resolve_dst(PeerRuntime *rt, const char *dst_id, char out_dst_id[OMNI_PEER_ID_SIZE]) { + if (!rt || !out_dst_id) { + return OMNI_ERR_PARAM; + } + if (dst_id && dst_id[0] != '\0') { omni_copy_fixed_ascii(out_dst_id, OMNI_PEER_ID_SIZE, dst_id); } else { - peer_get_bound_peer(rt, out_dst_id); + omni_copy_fixed_ascii(out_dst_id, OMNI_PEER_ID_SIZE, rt->bound_peer); } if (!peer_id_is_valid(out_dst_id)) { @@ -258,6 +218,18 @@ static int peer_resolve_dst(PeerRuntime *rt, return OMNI_OK; } +static int peer_send_app(PeerRuntime *rt, + PeerTransportSession *session, + uint32_t type, + const void *payload, + uint32_t payload_len) +{ + if (!rt || !rt->transport) { + return OMNI_ERR_PARAM; + } + return peer_transport_send(rt->transport, session, type, payload, payload_len); +} + static int peer_send_inner(PeerRuntime *rt, const char *dst_id, uint32_t inner_type, @@ -269,6 +241,13 @@ static int peer_send_inner(PeerRuntime *rt, uint8_t *payload; int rc; + if (!rt) { + return OMNI_ERR_PARAM; + } + if (rt->mode == PEER_MODE_DIRECT && !rt->session) { + fprintf(stderr, "direct peer not ready yet\n"); + return OMNI_ERR_IO; + } if (peer_resolve_dst(rt, dst_id, effective_dst) != OMNI_OK) { return OMNI_ERR_PARAM; } @@ -282,18 +261,23 @@ static int peer_send_inner(PeerRuntime *rt, return OMNI_ERR_GENERIC; } - omni_peer_tunnel_meta_encode(&meta, NULL, effective_dst, inner_type); + omni_peer_tunnel_meta_encode(&meta, + rt->mode == PEER_MODE_DIRECT ? rt->client_id : NULL, + effective_dst, + inner_type); memcpy(payload, &meta, PEER_TUNNEL_META_SIZE); if (inner_len > 0 && inner_payload) { memcpy(payload + PEER_TUNNEL_META_SIZE, inner_payload, inner_len); } - rc = send_app_message(rt, - MSG_TYPE_PEER_TUNNEL, - payload, - (uint32_t)(PEER_TUNNEL_META_SIZE + (size_t)inner_len)); + rc = peer_send_app(rt, + rt->mode == PEER_MODE_DIRECT ? rt->session : NULL, + MSG_TYPE_PEER_TUNNEL, + payload, + (uint32_t)(PEER_TUNNEL_META_SIZE + (size_t)inner_len)); logger_log("DEBUG", "peer", - "send_inner self_id=%s dst_id=%s inner_type=%u payload_len=%u", + "send_inner mode=%d self_id=%s dst_id=%s inner_type=%u payload_len=%u", + (int)rt->mode, rt->client_id, effective_dst, (unsigned)inner_type, @@ -302,13 +286,31 @@ static int peer_send_inner(PeerRuntime *rt, return rc; } -static int peer_send_register(PeerRuntime *rt) +static int peer_send_hub_register(PeerRuntime *rt) { PeerRegisterMeta meta; omni_peer_register_meta_encode(&meta, rt->client_id); logger_log("DEBUG", "peer", "send_register client_id=%s", rt->client_id); - return send_app_message(rt, MSG_TYPE_PEER_REGISTER, &meta, PEER_REGISTER_META_SIZE); + return peer_send_app(rt, NULL, MSG_TYPE_PEER_REGISTER, &meta, PEER_REGISTER_META_SIZE); +} + +static int peer_send_direct_register(PeerRuntime *rt) +{ + PeerRegisterMeta meta; + PeerTransportSession *session; + + if (!rt) { + return OMNI_ERR_PARAM; + } + session = rt->session ? rt->session : peer_transport_default_session(rt->transport); + if (!session) { + return OMNI_ERR_IO; + } + + omni_peer_register_meta_encode(&meta, rt->client_id); + logger_log("DEBUG", "peer", "send_direct_register client_id=%s", rt->client_id); + return peer_send_app(rt, session, MSG_TYPE_PEER_REGISTER, &meta, PEER_REGISTER_META_SIZE); } static int peer_send_bind(PeerRuntime *rt, const char *peer_id) @@ -320,9 +322,18 @@ static int peer_send_bind(PeerRuntime *rt, const char *peer_id) return OMNI_ERR_PARAM; } + if (rt->mode == PEER_MODE_DIRECT) { + peer_set_bound_peer(rt, peer_id); + fprintf(stdout, "[direct] self=%s peer=%s detail=bind_local_ok\n", + rt->client_id, + peer_id); + fflush(stdout); + return OMNI_OK; + } + omni_peer_bind_meta_encode(&meta, peer_id); logger_log("DEBUG", "peer", "send_bind self_id=%s peer_id=%s", rt->client_id, peer_id); - return send_app_message(rt, MSG_TYPE_PEER_BIND, &meta, PEER_BIND_META_SIZE); + return peer_send_app(rt, NULL, MSG_TYPE_PEER_BIND, &meta, PEER_BIND_META_SIZE); } static int peer_send_command(PeerRuntime *rt, const char *dst_id, const char *text) @@ -411,7 +422,7 @@ static int peer_send_file(PeerRuntime *rt, logger_set_transfer_total(total_bytes); logger_set_progress(0); - for (uint32_t seq = 1; atomic_load(&rt->running) && !g_stop; ++seq) { + for (uint32_t seq = 1; rt->running && !g_stop; ++seq) { size_t nread = fread(chunk, 1, chunk_size, fp); if (nread == 0) { @@ -451,7 +462,7 @@ static int peer_send_file(PeerRuntime *rt, } } - if (rc == OMNI_OK && atomic_load(&rt->running) && !g_stop) { + if (rc == OMNI_OK && rt->running && !g_stop) { TransferEndMeta end_meta; omni_transfer_end_meta_encode(&end_meta, @@ -515,17 +526,68 @@ static void handle_status_message(PeerRuntime *rt, const uint8_t *payload, uint3 fflush(stdout); } -static int peer_open_recv_file_locked(PeerRuntime *rt, const TransferChunkMeta *meta) +static void handle_direct_register_message(PeerRuntime *rt, + PeerTransportSession *session, + const uint8_t *payload, + uint32_t payload_len) +{ + PeerRegisterMeta register_meta; + char remote_buf[128]; + + if (payload_len < PEER_REGISTER_META_SIZE) { + logger_log("WARN", "peer", "short_direct_register len=%u", (unsigned)payload_len); + return; + } + + if (rt->role == OMNI_ROLE_SERVER) { + if (rt->session && rt->session != session) { + logger_log("WARN", "peer", + "reject_extra_direct_peer remote=%s", + peer_transport_session_remote(session, remote_buf, sizeof(remote_buf))); + peer_transport_close_session(rt->transport, session); + return; + } + rt->session = session; + } + + omni_peer_register_meta_decode((const PeerRegisterMeta *)payload, ®ister_meta); + if (!peer_id_is_valid(register_meta.client_id)) { + logger_log("WARN", "peer", + "invalid_direct_peer_id remote=%s", + peer_transport_session_remote(session, remote_buf, sizeof(remote_buf))); + return; + } + + if (rt->bound_peer[0] && strcmp(rt->bound_peer, register_meta.client_id) != 0) { + logger_log("WARN", "peer", + "direct_peer_id_override old=%s new=%s", + rt->bound_peer, + register_meta.client_id); + } + peer_set_bound_peer(rt, register_meta.client_id); + + fprintf(stdout, + "[direct] self=%s peer=%s detail=registered remote=%s\n", + rt->client_id, + register_meta.client_id, + peer_transport_session_remote(session, remote_buf, sizeof(remote_buf))); + fflush(stdout); + + if (!rt->direct_register_sent) { + if (peer_send_direct_register(rt) == OMNI_OK) { + rt->direct_register_sent = 1; + } + } +} + +static int peer_open_recv_file(PeerRuntime *rt, const TransferChunkMeta *meta) { if (!rt->output_path[0]) { return OMNI_ERR_PARAM; } if (!rt->rx_file.fp || rt->rx_file.transfer_id != meta->transfer_id) { - if (rt->rx_file.fp) { - fclose(rt->rx_file.fp); - rt->rx_file.fp = NULL; - } + close_recv_file(rt); rt->rx_file.fp = fopen(rt->output_path, "wb+"); if (!rt->rx_file.fp) { return OMNI_ERR_IO; @@ -561,9 +623,7 @@ static void handle_file_chunk_message(PeerRuntime *rt, return; } - pthread_mutex_lock(&rt->file_mu); - if (peer_open_recv_file_locked(rt, &meta) != OMNI_OK) { - pthread_mutex_unlock(&rt->file_mu); + if (peer_open_recv_file(rt, &meta) != OMNI_OK) { fprintf(stderr, "[peer %s -> %s] receive file dropped: missing -o \n", tunnel_meta->src_id[0] ? tunnel_meta->src_id : "-", @@ -576,18 +636,15 @@ static void handle_file_chunk_message(PeerRuntime *rt, logger_log("ERROR", "peer", "fseeko_failed offset=%llu errno=%d", (unsigned long long)meta.offset_bytes, errno); - pthread_mutex_unlock(&rt->file_mu); return; } if (fwrite(payload + TRANSFER_CHUNK_META_SIZE, 1, meta.chunk_bytes, rt->rx_file.fp) != meta.chunk_bytes) { logger_log("ERROR", "peer", "fwrite_failed chunk_bytes=%u", (unsigned)meta.chunk_bytes); - pthread_mutex_unlock(&rt->file_mu); return; } rt->rx_file.bytes_written += meta.chunk_bytes; logger_set_progress(rt->rx_file.bytes_written); - pthread_mutex_unlock(&rt->file_mu); } static void handle_file_end_message(PeerRuntime *rt, @@ -606,14 +663,12 @@ static void handle_file_end_message(PeerRuntime *rt, } omni_transfer_end_meta_decode((const TransferEndMeta *)payload, &end_meta); - pthread_mutex_lock(&rt->file_mu); if (rt->rx_file.fp) { fflush(rt->rx_file.fp); bytes_written = rt->rx_file.bytes_written; total_chunks = rt->rx_file.total_chunks ? rt->rx_file.total_chunks : end_meta.total_chunks; total_bytes = rt->rx_file.total_bytes ? rt->rx_file.total_bytes : end_meta.total_bytes; } - pthread_mutex_unlock(&rt->file_mu); fprintf(stdout, "[file %s -> %s] transfer_id=%u bytes_written=%llu total_bytes=%llu total_chunks=%u output=%s\n", @@ -671,6 +726,9 @@ static void handle_tunnel_message(PeerRuntime *rt, const uint8_t *payload, uint3 } omni_peer_tunnel_meta_decode((const PeerTunnelMeta *)payload, &tunnel_meta); + if (rt->mode == PEER_MODE_DIRECT && tunnel_meta.src_id[0] && !rt->bound_peer[0]) { + peer_set_bound_peer(rt, tunnel_meta.src_id); + } inner_payload = payload + PEER_TUNNEL_META_SIZE; inner_len = payload_len - PEER_TUNNEL_META_SIZE; @@ -713,186 +771,273 @@ static void handle_tunnel_message(PeerRuntime *rt, const uint8_t *payload, uint3 fflush(stdout); } -static void *recv_thread_main(void *arg) -{ - PeerRuntime *rt = (PeerRuntime *)arg; - uint8_t payload[PEER_MAX_PAYLOAD]; - - while (atomic_load(&rt->running)) { - MsgHeader hdr; - int rc = recv_app_message(rt->fd, &hdr, payload, sizeof(payload)); - - if (rc == 0) { - logger_log("INFO", "peer", "hub_closed"); - break; - } - if (rc < 0) { - logger_log("ERROR", "peer", "recv_failed rc=%d", rc); - break; - } - - switch (hdr.type) { - case MSG_TYPE_PEER_STATUS: - handle_status_message(rt, payload, hdr.len); - break; - case MSG_TYPE_PEER_TUNNEL: - handle_tunnel_message(rt, payload, hdr.len); - break; - default: - logger_log("WARN", "peer", "unexpected_message type=%u len=%u", - (unsigned)hdr.type, (unsigned)hdr.len); - break; - } - } - - atomic_store(&rt->running, 0); - return NULL; -} - -static int create_connected_socket(const char *hub_ip, uint16_t hub_port) -{ - int fd; - struct sockaddr_in addr; - - fd = socket(AF_INET, SOCK_STREAM, 0); - if (fd < 0) { - return -1; - } - - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - addr.sin_port = htons(hub_port); - if (inet_pton(AF_INET, hub_ip, &addr.sin_addr) != 1) { - close(fd); - errno = EINVAL; - return -1; - } - - if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) { - close(fd); - return -1; - } - return fd; -} - static void peer_print_state(PeerRuntime *rt) { - char bound_peer[OMNI_PEER_ID_SIZE]; - - peer_get_bound_peer(rt, bound_peer); fprintf(stdout, - "[self] client_id=%s bound_peer=%s output=%s\n", + "[self] mode=%s client_id=%s bound_peer=%s output=%s\n", + rt->mode == PEER_MODE_DIRECT ? "direct" : "hub", rt->client_id, - bound_peer[0] ? bound_peer : "-", + rt->bound_peer[0] ? rt->bound_peer : "-", rt->output_path[0] ? rt->output_path : "-"); fflush(stdout); } -static void run_interactive_loop(PeerRuntime *rt, unsigned chunk_size) +static int stdin_ready(void) { - char line[2048]; + fd_set rfds; + struct timeval tv; + int rc; - while (atomic_load(&rt->running) && !g_stop) { - if (!fgets(line, sizeof(line), stdin)) { - break; + FD_ZERO(&rfds); + FD_SET(STDIN_FILENO, &rfds); + tv.tv_sec = 0; + tv.tv_usec = 0; + rc = select(STDIN_FILENO + 1, &rfds, NULL, NULL, &tv); + return rc > 0 && FD_ISSET(STDIN_FILENO, &rfds); +} + +static void process_command(PeerRuntime *rt, const char *line, unsigned chunk_size) +{ + size_t len = strlen(line); + char local[2048]; + + if (len >= sizeof(local)) { + fprintf(stderr, "command too long\n"); + return; + } + memcpy(local, line, len + 1u); + while (len > 0 && (local[len - 1] == '\n' || local[len - 1] == '\r')) { + local[--len] = '\0'; + } + if (len == 0) { + return; + } + + if (strcmp(local, "quit") == 0) { + rt->running = 0; + return; + } + if (strcmp(local, "show") == 0) { + peer_print_state(rt); + return; + } + if (strncmp(local, "bind ", 5) == 0) { + if (peer_send_bind(rt, local + 5) != OMNI_OK) { + fprintf(stderr, "bind failed\n"); + } + return; + } + if (strncmp(local, "send ", 5) == 0) { + if (peer_send_command(rt, NULL, local + 5) != OMNI_OK) { + fprintf(stderr, "send failed\n"); + } + return; + } + if (strncmp(local, "say ", 4) == 0) { + char peer_id[OMNI_PEER_ID_SIZE]; + const char *text = strchr(local + 4, ' '); + + if (!text) { + fprintf(stderr, "usage: say \n"); + return; + } + memset(peer_id, 0, sizeof(peer_id)); + memcpy(peer_id, local + 4, (size_t)(text - (local + 4))); + text++; + if (peer_send_command(rt, peer_id, text) != OMNI_OK) { + fprintf(stderr, "say failed\n"); + } + return; + } + if (strncmp(local, "put ", 4) == 0) { + if (peer_send_file(rt, NULL, local + 4, chunk_size) != OMNI_OK) { + fprintf(stderr, "put failed\n"); + } + return; + } + if (strncmp(local, "push ", 5) == 0) { + char peer_id[OMNI_PEER_ID_SIZE]; + const char *file_path = strchr(local + 5, ' '); + + if (!file_path) { + fprintf(stderr, "usage: push \n"); + return; + } + memset(peer_id, 0, sizeof(peer_id)); + memcpy(peer_id, local + 5, (size_t)(file_path - (local + 5))); + file_path++; + if (peer_send_file(rt, peer_id, file_path, chunk_size) != OMNI_OK) { + fprintf(stderr, "push failed\n"); + } + return; + } + + fprintf(stderr, + "commands: bind | send | say | " + "put | push | show | quit\n"); +} + +static int direct_ready(const PeerRuntime *rt) +{ + return rt && rt->session && peer_id_is_valid(rt->bound_peer); +} + +static void maybe_run_startup_actions(PeerRuntime *rt, StartupActions *startup) +{ + if (!rt || !startup || !rt->running) { + return; + } + + if (startup->initial_bind && !startup->bind_sent) { + if (peer_send_bind(rt, startup->initial_bind) == OMNI_OK) { + startup->bind_sent = 1; + } + return; + } + + if (startup->initial_message && !startup->message_sent) { + if (rt->mode == PEER_MODE_DIRECT && !direct_ready(rt)) { + return; + } + if (peer_send_command(rt, + startup->message_dst, + startup->initial_message) == OMNI_OK) { + startup->message_sent = 1; + } + return; + } + + if (startup->initial_file && !startup->file_sent) { + if (rt->mode == PEER_MODE_DIRECT && !direct_ready(rt)) { + return; + } + if (peer_send_file(rt, + startup->message_dst, + startup->initial_file, + startup->chunk_size) == OMNI_OK) { + startup->file_sent = 1; + } + } +} + +static int startup_actions_done(const StartupActions *startup) +{ + if (!startup) { + return 1; + } + return (!startup->initial_bind || startup->bind_sent) && + (!startup->initial_message || startup->message_sent) && + (!startup->initial_file || startup->file_sent); +} + +static void handle_transport_event(PeerRuntime *rt, + const PeerTransportEvent *event, + const uint8_t *payload) +{ + char remote_buf[128]; + + if (!rt || !event) { + return; + } + + if (event->kind == PEER_TRANSPORT_EVENT_CLOSED) { + if (rt->mode == PEER_MODE_HUB) { + logger_log("INFO", "peer", "hub_closed"); + rt->running = 0; + return; } - size_t len = strlen(line); - while (len > 0 && (line[len - 1] == '\n' || line[len - 1] == '\r')) { - line[--len] = '\0'; - } - if (len == 0) { - continue; + logger_log("INFO", "peer", + "direct_peer_closed remote=%s", + peer_transport_session_remote(event->session, remote_buf, sizeof(remote_buf))); + if (rt->session == event->session) { + peer_transport_close_session(rt->transport, event->session); + rt->session = NULL; + rt->direct_register_sent = 0; + peer_set_bound_peer(rt, ""); + close_recv_file(rt); + rt->rx_file.transfer_id = 0; + rt->rx_file.total_chunks = 0; + rt->rx_file.total_bytes = 0; + rt->rx_file.bytes_written = 0; + if (rt->role == OMNI_ROLE_CLIENT) { + rt->running = 0; + } + } else { + peer_transport_close_session(rt->transport, event->session); } + return; + } - if (strcmp(line, "quit") == 0) { - atomic_store(&rt->running, 0); - break; + switch (event->header.type) { + case MSG_TYPE_PEER_STATUS: + handle_status_message(rt, payload, event->header.len); + break; + case MSG_TYPE_PEER_REGISTER: + if (rt->mode == PEER_MODE_DIRECT) { + handle_direct_register_message(rt, event->session, payload, event->header.len); + } else { + logger_log("WARN", "peer", "unexpected_register_in_hub_mode len=%u", + (unsigned)event->header.len); } - if (strcmp(line, "show") == 0) { - peer_print_state(rt); - continue; + break; + case MSG_TYPE_PEER_TUNNEL: + if (rt->mode == PEER_MODE_DIRECT && rt->role == OMNI_ROLE_SERVER && !rt->session) { + rt->session = event->session; } - if (strncmp(line, "bind ", 5) == 0) { - if (peer_send_bind(rt, line + 5) != OMNI_OK) { - fprintf(stderr, "bind failed\n"); - } - continue; - } - if (strncmp(line, "send ", 5) == 0) { - if (peer_send_command(rt, NULL, line + 5) != OMNI_OK) { - fprintf(stderr, "send failed\n"); - } - continue; - } - if (strncmp(line, "say ", 4) == 0) { - char peer_id[OMNI_PEER_ID_SIZE]; - const char *text = strchr(line + 4, ' '); - - if (!text) { - fprintf(stderr, "usage: say \n"); - continue; - } - memset(peer_id, 0, sizeof(peer_id)); - memcpy(peer_id, line + 4, (size_t)(text - (line + 4))); - text++; - if (peer_send_command(rt, peer_id, text) != OMNI_OK) { - fprintf(stderr, "say failed\n"); - } - continue; - } - if (strncmp(line, "put ", 4) == 0) { - if (peer_send_file(rt, NULL, line + 4, chunk_size) != OMNI_OK) { - fprintf(stderr, "put failed\n"); - } - continue; - } - if (strncmp(line, "push ", 5) == 0) { - char peer_id[OMNI_PEER_ID_SIZE]; - const char *file_path = strchr(line + 5, ' '); - - if (!file_path) { - fprintf(stderr, "usage: push \n"); - continue; - } - memset(peer_id, 0, sizeof(peer_id)); - memcpy(peer_id, line + 5, (size_t)(file_path - (line + 5))); - file_path++; - if (peer_send_file(rt, peer_id, file_path, chunk_size) != OMNI_OK) { - fprintf(stderr, "push failed\n"); - } - continue; - } - - fprintf(stderr, - "commands: bind | send | say | " - "put | push | show | quit\n"); + handle_tunnel_message(rt, payload, event->header.len); + break; + default: + logger_log("WARN", "peer", "unexpected_message type=%u len=%u", + (unsigned)event->header.type, + (unsigned)event->header.len); + break; } } int main(int argc, char **argv) { - const char *hub_ip = NULL; + const char *host = NULL; const char *client_id = NULL; const char *initial_bind = NULL; const char *initial_message = NULL; const char *initial_file = NULL; const char *message_dst = NULL; const char *output_path = NULL; + const char *mode_str = "hub"; + const char *proto_str = "tcp"; + const char *log_mode = "hub"; + const char *log_role = "client"; + OmniProtocol proto = OMNI_PROTO_TCP; + PeerMode mode = PEER_MODE_HUB; int wait_seconds = -2; - int hub_port = 0; - unsigned chunk_size = OMNI_DEFAULT_MTU; + int port = 0; + int listen_port = 0; + int stdin_is_tty; + int interactive_mode; int opt; + unsigned chunk_size = OMNI_DEFAULT_MTU; PeerRuntime rt; - pthread_t recv_tid; + StartupActions startup; + uint8_t payload[PEER_MAX_PAYLOAD]; + uint64_t wait_deadline_ms = 0; - while ((opt = getopt(argc, argv, "H:P:i:b:d:m:F:o:c:w:")) != -1) { + while ((opt = getopt(argc, argv, "M:p:H:P:L:i:b:d:m:F:o:c:w:")) != -1) { switch (opt) { + case 'M': + mode_str = optarg; + break; + case 'p': + proto_str = optarg; + break; case 'H': - hub_ip = optarg; + host = optarg; break; case 'P': - hub_port = atoi(optarg); + port = atoi(optarg); + break; + case 'L': + listen_port = atoi(optarg); break; case 'i': client_id = optarg; @@ -924,7 +1069,9 @@ int main(int argc, char **argv) } } - if (!hub_ip || hub_port <= 0 || !peer_id_is_valid(client_id)) { + if (!client_id || !peer_id_is_valid(client_id) || + !parse_mode(mode_str, &mode) || + !parse_proto(proto_str, &proto)) { usage(argv[0]); return 1; } @@ -942,110 +1089,139 @@ int main(int argc, char **argv) return 1; } + if (mode == PEER_MODE_HUB) { + if (!host || port <= 0 || listen_port > 0) { + usage(argv[0]); + return 1; + } + } else { + if (listen_port > 0) { + if (host || port > 0) { + usage(argv[0]); + return 1; + } + } else { + if (!host || port <= 0) { + usage(argv[0]); + return 1; + } + } + } + logger_init(); install_signal_handlers(); memset(&rt, 0, sizeof(rt)); + memset(&startup, 0, sizeof(startup)); + rt.mode = mode; + rt.role = (mode == PEER_MODE_DIRECT && listen_port > 0) ? OMNI_ROLE_SERVER : OMNI_ROLE_CLIENT; + log_mode = (mode == PEER_MODE_DIRECT) ? "direct" : "hub"; + log_role = (rt.role == OMNI_ROLE_SERVER) ? "server" : "client"; + logger_set_context("peer", proto_str, log_mode, log_role, client_id); + rt.running = 1; omni_copy_fixed_ascii(rt.client_id, sizeof(rt.client_id), client_id); if (output_path) { omni_copy_fixed_ascii(rt.output_path, sizeof(rt.output_path), output_path); } - atomic_init(&rt.running, 1); - pthread_mutex_init(&rt.send_mu, NULL); - pthread_mutex_init(&rt.state_mu, NULL); - pthread_mutex_init(&rt.file_mu, NULL); + startup.initial_bind = initial_bind; + startup.message_dst = message_dst; + startup.initial_message = initial_message; + startup.initial_file = initial_file; + startup.chunk_size = chunk_size; - rt.fd = create_connected_socket(hub_ip, (uint16_t)hub_port); - if (rt.fd < 0) { - perror("peer connect"); - pthread_mutex_destroy(&rt.file_mu); - pthread_mutex_destroy(&rt.state_mu); - pthread_mutex_destroy(&rt.send_mu); + if (rt.role == OMNI_ROLE_SERVER) { + rt.transport = peer_transport_open(OMNI_ROLE_SERVER, + proto, + NULL, + (uint16_t)listen_port, + NULL, + 0); + } else { + rt.transport = peer_transport_open(OMNI_ROLE_CLIENT, + proto, + NULL, + 0, + host, + (uint16_t)port); + rt.session = peer_transport_default_session(rt.transport); + } + if (!rt.transport) { + perror("peer transport"); return 1; } - if (pthread_create(&recv_tid, NULL, recv_thread_main, &rt) != 0) { - perror("pthread_create"); - close(rt.fd); - pthread_mutex_destroy(&rt.file_mu); - pthread_mutex_destroy(&rt.state_mu); - pthread_mutex_destroy(&rt.send_mu); - return 1; + if (rt.mode == PEER_MODE_HUB) { + if (peer_send_hub_register(&rt) != OMNI_OK) { + fprintf(stderr, "register failed\n"); + peer_transport_close(rt.transport); + return 1; + } + } else if (rt.role == OMNI_ROLE_CLIENT) { + if (peer_send_direct_register(&rt) != OMNI_OK) { + fprintf(stderr, "direct register failed\n"); + peer_transport_close(rt.transport); + return 1; + } + rt.direct_register_sent = 1; } - if (peer_send_register(&rt) != OMNI_OK) { - fprintf(stderr, "register failed\n"); - atomic_store(&rt.running, 0); - } - if (atomic_load(&rt.running) && initial_bind) { - if (peer_send_bind(&rt, initial_bind) != OMNI_OK) { - fprintf(stderr, "initial bind failed\n"); - atomic_store(&rt.running, 0); - } - } - if (atomic_load(&rt.running) && initial_message) { - if (wait_seconds == -2) { - wait_seconds = 2; - } - if (peer_send_command(&rt, message_dst, initial_message) != OMNI_OK) { - fprintf(stderr, "initial message send failed\n"); - atomic_store(&rt.running, 0); - } - } - if (atomic_load(&rt.running) && initial_file) { - if (wait_seconds == -2) { + stdin_is_tty = isatty(STDIN_FILENO); + interactive_mode = stdin_is_tty && + wait_seconds == -2 && + !initial_message && + !initial_file; + if (!interactive_mode && wait_seconds == -2) { + if (initial_file) { wait_seconds = 4; - } - if (peer_send_file(&rt, message_dst, initial_file, chunk_size) != OMNI_OK) { - fprintf(stderr, "initial file send failed\n"); - atomic_store(&rt.running, 0); + } else if (initial_message) { + wait_seconds = 2; + } else if (!stdin_is_tty) { + wait_seconds = -1; } } - if (atomic_load(&rt.running)) { - if (initial_message || initial_file) { - if (wait_seconds < 0) { - while (atomic_load(&rt.running) && !g_stop) { - sleep(1); - } + while (rt.running && !g_stop) { + PeerTransportEvent event; + int rc; + + maybe_run_startup_actions(&rt, &startup); + if (!interactive_mode && + wait_seconds >= 0 && + wait_deadline_ms == 0 && + startup_actions_done(&startup)) { + wait_deadline_ms = omni_now_ms() + (uint64_t)wait_seconds * 1000u; + } + if (wait_deadline_ms > 0 && omni_now_ms() >= wait_deadline_ms) { + break; + } + + rc = peer_transport_next_event(rt.transport, + &event, + payload, + sizeof(payload), + 50); + if (rc < 0) { + logger_log("ERROR", "peer", "transport_recv_failed rc=%d", rc); + if (rt.mode == PEER_MODE_HUB || rt.role == OMNI_ROLE_CLIENT) { + break; + } + } else if (rc > 0) { + handle_transport_event(&rt, &event, payload); + } + + if (interactive_mode && stdin_ready()) { + char line[2048]; + + if (!fgets(line, sizeof(line), stdin)) { + clearerr(stdin); } else { - for (int i = 0; i < wait_seconds && atomic_load(&rt.running) && !g_stop; ++i) { - sleep(1); - } - } - } else if (isatty(STDIN_FILENO)) { - run_interactive_loop(&rt, chunk_size); - } else { - if (wait_seconds == -2) { - wait_seconds = -1; - } - if (wait_seconds < 0) { - while (atomic_load(&rt.running) && !g_stop) { - sleep(1); - } - } else { - for (int i = 0; i < wait_seconds && atomic_load(&rt.running) && !g_stop; ++i) { - sleep(1); - } + process_command(&rt, line, chunk_size); } } } - atomic_store(&rt.running, 0); - shutdown(rt.fd, SHUT_RDWR); - close(rt.fd); - pthread_join(recv_tid, NULL); - - pthread_mutex_lock(&rt.file_mu); - if (rt.rx_file.fp) { - fclose(rt.rx_file.fp); - rt.rx_file.fp = NULL; - } - pthread_mutex_unlock(&rt.file_mu); - + close_recv_file(&rt); + peer_transport_close(rt.transport); logger_print_performance_log("final"); - pthread_mutex_destroy(&rt.file_mu); - pthread_mutex_destroy(&rt.state_mu); - pthread_mutex_destroy(&rt.send_mu); return 0; } diff --git a/src/apps/relay_main.c b/src/apps/relay_main.c deleted file mode 100644 index 367269c..0000000 --- a/src/apps/relay_main.c +++ /dev/null @@ -1,278 +0,0 @@ -/* - * relay_main.c - * 中转站:从 A 接收数据后立即转发到 B,支持运行时动态修改转发目标 - * - * 并发模型: - * - 主线程:阻塞接收上游流量并转发到当前目标 - * - 控制线程:读取 stdin 命令,动态切换目标地址 - * - * 线程安全策略: - * - tx_ctx / target_ip / target_port 受 tx_mu 互斥锁保护 - * - 主线程转发发送与控制线程切换目标不会并发踩内存 - * - * 控制命令(stdin): - * set 修改目标地址 - * show 打印当前目标 - * quit 退出 - */ - -#include "common.h" -#include "network.h" -#include "logger.h" - -#include -#include -#include -#include -#include -#include - -#define RELAY_BUF_SIZE (MSG_HEADER_SIZE + TRANSFER_CHUNK_META_SIZE + 65536u) - -typedef struct RelayState { - /* 当前 relay 工作协议。 */ - OmniProtocol proto; - /* 上游接收上下文(通常是服务端角色)。 */ - OmniContext *rx_ctx; - /* 下游发送上下文(通常是客户端角色,可动态替换)。 */ - OmniContext *tx_ctx; - /* 保护 tx_ctx 与目标地址信息。 */ - pthread_mutex_t tx_mu; - /* 运行标志。 */ - atomic_int running; - /* 当前目标地址快照(用于 show 命令与日志)。 */ - char target_ip[64]; - uint16_t target_port; -} RelayState; - -static void usage(const char *prog) -{ - fprintf(stderr, - "Usage:\n" - " %s -p tcp|udp|kcp -L -H -P \n", - prog); -} - -/* 将命令行协议字符串映射为内部协议枚举。 */ -static OmniProtocol parse_proto(const char *s) -{ - /* 非法输入回退 TCP。 */ - if (!s) return OMNI_PROTO_TCP; - if (strcmp(s, "tcp") == 0) return OMNI_PROTO_TCP; - if (strcmp(s, "udp") == 0) return OMNI_PROTO_UDP; - if (strcmp(s, "kcp") == 0) return OMNI_PROTO_KCP; - return OMNI_PROTO_TCP; -} - -/* 在运行期安全地切换下游转发目标。 */ -static int relay_set_target(RelayState *st, const char *ip, uint16_t port) -{ - /* - * 动态切换目标步骤: - * 1) 先建立新 tx_ctx(失败时保持旧目标不变) - * 2) 加锁替换指针与目标参数 - * 3) 解锁后关闭旧 tx_ctx(避免持锁做慢操作) - */ - OmniContext *new_tx = omni_init(OMNI_ROLE_CLIENT, st->proto, - NULL, 0, - ip, port); - if (!new_tx) { - logger_log("ERROR", "relay", "connect_target_failed ip=%s port=%u", - ip, (unsigned)port); - return OMNI_ERR_IO; - } - - pthread_mutex_lock(&st->tx_mu); - OmniContext *old_tx = st->tx_ctx; - st->tx_ctx = new_tx; - snprintf(st->target_ip, sizeof(st->target_ip), "%s", ip); - st->target_port = port; - pthread_mutex_unlock(&st->tx_mu); - - if (old_tx) { - omni_close(old_tx); - } - - logger_log("INFO", "relay", "target_updated ip=%s port=%u", ip, (unsigned)port); - return OMNI_OK; -} - -/* 控制线程:解析 stdin 指令并驱动 show / set / quit。 */ -static void *control_thread_main(void *arg) -{ - /* 控制线程负责解析 stdin 命令。 */ - RelayState *st = (RelayState *)arg; - char line[256]; - - while (atomic_load(&st->running)) { - if (!fgets(line, sizeof(line), stdin)) { - /* - * 管道/重定向 EOF 时不要立刻退出 relay: - * - 清理 EOF 状态 - * - 短暂休眠后继续循环 - * 这样 relay 仍可继续处理主数据面转发。 - */ - clearerr(stdin); - usleep(100 * 1000); - continue; - } - - size_t len = strlen(line); - while (len > 0 && (line[len - 1] == '\n' || line[len - 1] == '\r')) { - line[--len] = '\0'; - } - if (len == 0) { - continue; - } - - if (strcmp(line, "quit") == 0) { - /* 通知主线程退出。 */ - atomic_store(&st->running, 0); - break; - } - - if (strcmp(line, "show") == 0) { - /* 在锁保护下读取目标快照,避免与 set 并发冲突。 */ - pthread_mutex_lock(&st->tx_mu); - fprintf(stderr, "relay target: %s:%u\n", - st->target_ip[0] ? st->target_ip : "N/A", - (unsigned)st->target_port); - pthread_mutex_unlock(&st->tx_mu); - continue; - } - - char ip[64]; - unsigned port = 0; - if (sscanf(line, "set %63s %u", ip, &port) == 2 && port > 0 && port <= 65535u) { - /* 动态切目标。 */ - relay_set_target(st, ip, (uint16_t)port); - continue; - } - - fprintf(stderr, "unknown command: %s\n", line); - fprintf(stderr, "commands: set | show | quit\n"); - } - - return NULL; -} - -/* - * relay 主流程: - * - 上游用 server 角色收数据 - * - 下游用 client 角色发数据 - * - 主线程搬运数据,控制线程负责改目标 - */ -int main(int argc, char **argv) -{ - /* 命令行参数默认值。 */ - const char *proto_str = "tcp"; - const char *target_ip = NULL; - int listen_port = 0; - int target_port = 0; - - int opt; - while ((opt = getopt(argc, argv, "p:L:H:P:")) != -1) { - switch (opt) { - case 'p': - proto_str = optarg; - break; - case 'L': - listen_port = atoi(optarg); - break; - case 'H': - target_ip = optarg; - break; - case 'P': - target_port = atoi(optarg); - break; - default: - usage(argv[0]); - return 1; - } - } - - if (!target_ip || listen_port <= 0 || target_port <= 0) { - usage(argv[0]); - return 1; - } - - RelayState st; - memset(&st, 0, sizeof(st)); - st.proto = parse_proto(proto_str); - atomic_init(&st.running, 1); - pthread_mutex_init(&st.tx_mu, NULL); - - /* - * rx_ctx 作为上游入口(server 角色): - * - TCP: 等待上游 connect - * - UDP/KCP: 绑定监听端口接收上游包 - */ - st.rx_ctx = omni_init(OMNI_ROLE_SERVER, st.proto, NULL, (uint16_t)listen_port, NULL, 0); - if (!st.rx_ctx) { - fprintf(stderr, "relay: omni_init rx failed\n"); - pthread_mutex_destroy(&st.tx_mu); - return 1; - } - - /* - * 初始目标连接失败不直接退出: - * - relay 可先启动数据入口 - * - 后续通过 set 命令修复目标地址 - */ - (void)relay_set_target(&st, target_ip, (uint16_t)target_port); - - /* 启动控制面线程。 */ - pthread_t ctrl_tid; - if (pthread_create(&ctrl_tid, NULL, control_thread_main, &st) != 0) { - perror("pthread_create"); - omni_close(st.rx_ctx); - if (st.tx_ctx) omni_close(st.tx_ctx); - pthread_mutex_destroy(&st.tx_mu); - return 1; - } - - uint8_t buf[RELAY_BUF_SIZE]; - while (atomic_load(&st.running)) { - /* 数据面:收上游 -> 转发下游。 */ - ssize_t n = omni_recv(st.rx_ctx, buf, sizeof(buf)); - if (n < 0) { - logger_log("ERROR", "relay", "recv_failed n=%zd", n); - break; - } - if (n == 0) { - /* 暂时无数据时短暂退避。 */ - usleep(2 * 1000); - continue; - } - - ssize_t m = OMNI_ERR_PARAM; - /* 发送上下文受锁保护,防止与 set 命令并发替换。 */ - pthread_mutex_lock(&st.tx_mu); - if (st.tx_ctx) { - m = omni_send(st.tx_ctx, buf, (size_t)n); - } - pthread_mutex_unlock(&st.tx_mu); - - if (m != n) { - logger_log("ERROR", "relay", "forward_failed in=%zd out=%zd", n, m); - } else { - logger_log("INFO", "relay", "forward_ok bytes=%zd", n); - } - } - - /* 收尾:先停主循环,再依次释放 rx / 控制线程 / tx。 */ - atomic_store(&st.running, 0); - omni_close(st.rx_ctx); - pthread_join(ctrl_tid, NULL); - - pthread_mutex_lock(&st.tx_mu); - OmniContext *tx = st.tx_ctx; - st.tx_ctx = NULL; - pthread_mutex_unlock(&st.tx_mu); - if (tx) { - omni_close(tx); - } - - pthread_mutex_destroy(&st.tx_mu); - return 0; -} diff --git a/src/apps/server_main.c b/src/apps/server_main.c deleted file mode 100644 index 15ea74f..0000000 --- a/src/apps/server_main.c +++ /dev/null @@ -1,858 +0,0 @@ -/* - * server_main.c - * 服务端:接收文件写盘,输出结构化传输统计 - */ - -#include "common.h" -#include "network.h" -#include "logger.h" - -#include -#include -#include -#include -#include -#include - -#define SERVER_FRAME_BUF_SIZE (MSG_HEADER_SIZE + TRANSFER_CHUNK_META_SIZE + 65536u) - -/* - * 一次文件传输在服务端视角下的累计状态。 - * 它主要用来回答三个问题: - * 1) 收到了多少唯一分片 - * 2) 有没有重复/乱序/缺失 - * 3) 最终写盘了多少字节 - */ -typedef struct TransferState { - uint32_t transfer_id; /* 当前传输 ID。 */ - uint32_t total_chunks; /* 期望收到的总分片数。 */ - uint32_t total_windows; /* 发送端告诉我们的总窗口数。 */ - uint64_t total_bytes; /* 期望收到的总字节数。 */ - uint32_t highest_seq_seen; /* 目前见过的最大序号,用于判断乱序。 */ - uint32_t unique_chunks; /* 成功去重后收到的分片数。 */ - uint32_t duplicate_chunks; /* 重复到达的分片数。 */ - uint32_t out_of_order_chunks; /* 序号回退的分片数,表示存在乱序。 */ - uint64_t unique_bytes_written; /* 实际写盘的唯一数据量。 */ - uint8_t *seen; /* 位图/标记数组:某个 seq 是否已收到。 */ - size_t seen_cap; /* seen 数组容量。 */ - uint64_t *recv_window_counts; /* 每个时间窗口收到的分片数。 */ - size_t recv_window_cap; /* recv_window_counts 容量。 */ -} TransferState; - -typedef struct ClockSyncState { - int valid; /* 是否已经拿到客户端确认的 offset。 */ - int64_t server_minus_client_offset_ms; /* server_time - client_time */ - uint64_t best_rtt_ms; /* 客户端选中的最优 RTT 样本。 */ - uint32_t sample_count; /* 参与选择的有效样本数。 */ -} ClockSyncState; - -/* 服务端运行期上下文:连接、写盘目标、线程状态和传输统计都放在这里。 */ -typedef struct ServerRuntime { - OmniContext *ctx; - OmniProtocol proto; - FILE *out_fp; - atomic_int running; - atomic_int transfer_done; - uint64_t bytes_written; - TransferState transfer; - ClockSyncState clock_sync; -} ServerRuntime; - -/* 打印服务端命令行帮助。 */ -static void usage(const char *prog) -{ - fprintf(stderr, - "Usage:\n" - " %s -p tcp|udp|kcp -P -o [-b ]\n", - prog); -} - -/* 将字符串协议名解析为内部枚举,非法值默认回退 TCP。 */ -static OmniProtocol parse_proto(const char *s) -{ - if (!s) return OMNI_PROTO_TCP; - if (strcmp(s, "tcp") == 0) return OMNI_PROTO_TCP; - if (strcmp(s, "udp") == 0) return OMNI_PROTO_UDP; - if (strcmp(s, "kcp") == 0) return OMNI_PROTO_KCP; - return OMNI_PROTO_TCP; -} - -/* 与客户端对称:负责发送完整业务帧。 */ -static int send_app_message_with_timestamp(OmniContext *ctx, - uint32_t type, - const void *payload, - uint32_t payload_len, - uint64_t timestamp_ms) -{ - size_t total_len = MSG_HEADER_SIZE + (size_t)payload_len; - uint8_t *frame = (uint8_t *)malloc(total_len); - if (!frame) { - logger_log("ERROR", "server", "malloc_frame_failed len=%zu", total_len); - return OMNI_ERR_GENERIC; - } - - MsgHeader hdr; - omni_msg_header_encode(&hdr, type, payload_len, timestamp_ms); - memcpy(frame, &hdr, MSG_HEADER_SIZE); - if (payload_len > 0 && payload) { - memcpy(frame + MSG_HEADER_SIZE, payload, payload_len); - } - - ssize_t n = omni_send(ctx, frame, total_len); - free(frame); - - if (n != (ssize_t)total_len) { - logger_log("ERROR", "server", - "omni_send_failed expect=%zu got=%zd type=%u", - total_len, n, (unsigned)type); - return OMNI_ERR_IO; - } - return OMNI_OK; -} - -/* 与客户端对称:拆包并校验应用层帧长度。 */ -static int decode_app_message(const uint8_t *frame, - size_t frame_len, - MsgHeader *out_hdr, - const uint8_t **out_payload) -{ - if (!frame || frame_len < MSG_HEADER_SIZE || !out_hdr || !out_payload) { - return OMNI_ERR_PARAM; - } - - MsgHeader net_hdr; - memcpy(&net_hdr, frame, MSG_HEADER_SIZE); - omni_msg_header_decode(&net_hdr, out_hdr); - - if ((size_t)out_hdr->len + MSG_HEADER_SIZE != frame_len) { - return OMNI_ERR_IO; - } - - *out_payload = frame + MSG_HEADER_SIZE; - return OMNI_OK; -} - -/* 用客户端确认的 offset,把 origin_ts_ms 转成服务端时钟系并计算端到端时延。 */ -static double compute_compensated_end_to_end_ms(const ServerRuntime *rt, - uint64_t server_recv_ts_ms, - const TransferChunkMeta *meta) -{ - int64_t e2e_ms; - - if (!rt || !meta || !rt->clock_sync.valid) { - return -1.0; - } - - e2e_ms = (int64_t)server_recv_ts_ms - - ((int64_t)meta->origin_ts_ms + rt->clock_sync.server_minus_client_offset_ms); - if (e2e_ms < 0) { - return 0.0; - } - return (double)e2e_ms; -} - -/* 扩容 seen 标记数组,下标直接使用 seq 值。 */ -static int ensure_seen_capacity(TransferState *st, uint32_t total_chunks) -{ - size_t need = (size_t)total_chunks + 1u; - uint8_t *new_seen; - - if (need <= st->seen_cap) { - return OMNI_OK; - } - - new_seen = (uint8_t *)realloc(st->seen, need); - if (!new_seen) { - return OMNI_ERR_GENERIC; - } - memset(new_seen + st->seen_cap, 0, need - st->seen_cap); - st->seen = new_seen; - st->seen_cap = need; - return OMNI_OK; -} - -/* 扩容按窗口聚合的接收计数数组。 */ -static int ensure_window_capacity(uint64_t **counts, size_t *cap, uint32_t window_id) -{ - size_t need = (size_t)window_id + 1u; - size_t new_cap; - uint64_t *new_counts; - - if (need <= *cap) { - return OMNI_OK; - } - - new_cap = (*cap == 0) ? 8u : *cap; - while (new_cap < need) { - new_cap *= 2u; - } - - new_counts = (uint64_t *)realloc(*counts, new_cap * sizeof(uint64_t)); - if (!new_counts) { - return OMNI_ERR_GENERIC; - } - - memset(new_counts + *cap, 0, (new_cap - *cap) * sizeof(uint64_t)); - *counts = new_counts; - *cap = new_cap; - return OMNI_OK; -} - -/* 将接收窗口分布转成日志友好的字符串。 */ -static char *format_window_distribution(const uint64_t *counts, uint32_t total_windows) -{ - size_t cap = 256; - size_t len = 0; - char *buf = (char *)malloc(cap); - if (!buf) { - return NULL; - } - buf[0] = '\0'; - - for (uint32_t i = 0; i < total_windows; ++i) { - char tmp[64]; - int n; - if (counts[i] == 0) { - continue; - } - n = snprintf(tmp, sizeof(tmp), "%s%u:%llu", - (len == 0) ? "" : ",", - (unsigned)i, - (unsigned long long)counts[i]); - if (n <= 0) { - continue; - } - while (len + (size_t)n + 1 > cap) { - char *new_buf; - cap *= 2u; - new_buf = (char *)realloc(buf, cap); - if (!new_buf) { - free(buf); - return NULL; - } - buf = new_buf; - } - memcpy(buf + len, tmp, (size_t)n); - len += (size_t)n; - buf[len] = '\0'; - } - - if (len == 0) { - snprintf(buf, cap, "none"); - } - return buf; -} - -static uint64_t saturating_sub_u64(uint64_t total, uint64_t delta) -{ - return (total > delta) ? (total - delta) : 0; -} - -static double rate_percent(uint64_t numerator, uint64_t denominator) -{ - if (denominator == 0) { - return 0.0; - } - return ((double)numerator * 100.0) / (double)denominator; -} - -/* - * 根据 seen 位图生成缺失区间字符串,例如 "3-5,9,12-14"。 - * 同时顺手统计缺失 chunk 数、突发丢包次数和最长突发长度。 - */ -static char *format_missing_ranges(const TransferState *st, - uint32_t *out_missing_chunks, - uint32_t *out_burst_count, - uint32_t *out_max_burst_len) -{ - size_t cap = 256; - size_t len = 0; - char *buf = (char *)malloc(cap); - uint32_t missing_chunks = 0; - uint32_t burst_count = 0; - uint32_t max_burst_len = 0; - - if (!buf) { - return NULL; - } - buf[0] = '\0'; - - if (st->total_chunks == 0 || !st->seen) { - snprintf(buf, cap, "none"); - if (out_missing_chunks) *out_missing_chunks = 0; - if (out_burst_count) *out_burst_count = 0; - if (out_max_burst_len) *out_max_burst_len = 0; - return buf; - } - - for (uint32_t seq = 1; seq <= st->total_chunks; ++seq) { - if (st->seen[seq] != 0) { - continue; - } - - uint32_t start = seq; - uint32_t end = seq; - char tmp[64]; - int n; - - /* 把连续缺失的 seq 合并成一个区间,便于读日志时看出 burst loss。 */ - while (end + 1u <= st->total_chunks && st->seen[end + 1u] == 0) { - end++; - } - - missing_chunks += (end - start + 1u); - burst_count++; - if ((end - start + 1u) > max_burst_len) { - max_burst_len = end - start + 1u; - } - - if (start == end) { - n = snprintf(tmp, sizeof(tmp), "%s%u", - (len == 0) ? "" : ",", - (unsigned)start); - } else { - n = snprintf(tmp, sizeof(tmp), "%s%u-%u", - (len == 0) ? "" : ",", - (unsigned)start, - (unsigned)end); - } - if (n > 0) { - while (len + (size_t)n + 1 > cap) { - char *new_buf; - cap *= 2u; - new_buf = (char *)realloc(buf, cap); - if (!new_buf) { - free(buf); - return NULL; - } - buf = new_buf; - } - memcpy(buf + len, tmp, (size_t)n); - len += (size_t)n; - buf[len] = '\0'; - } - - seq = end; - } - - if (len == 0) { - snprintf(buf, cap, "none"); - } - - if (out_missing_chunks) *out_missing_chunks = missing_chunks; - if (out_burst_count) *out_burst_count = burst_count; - if (out_max_burst_len) *out_max_burst_len = max_burst_len; - return buf; -} - -/* 用首个有效分片补齐传输的基础元数据,后续分片只做一致性延续。 */ -static void transfer_state_init(TransferState *st, const TransferChunkMeta *meta) -{ - if (st->transfer_id == 0) { - st->transfer_id = meta->transfer_id; - } - if (st->total_chunks == 0) { - st->total_chunks = meta->total_chunks; - } - if (st->total_bytes == 0) { - st->total_bytes = meta->total_bytes; - } - if (meta->window_id + 1u > st->total_windows) { - st->total_windows = meta->window_id + 1u; - } -} - -/* - * 处理一个 FILE_CHUNK: - * - 校验元数据 - * - 去重 / 统计乱序 - * - 估算时延拆分 - * - 按 offset 随机写盘 - */ -static int server_record_chunk(ServerRuntime *rt, - const MsgHeader *hdr, - const uint8_t *payload, - uint32_t payload_len) -{ - TransferChunkMeta meta; - const uint8_t *chunk_data; - uint64_t process_t0; - - (void)hdr; - - if (payload_len < TRANSFER_CHUNK_META_SIZE) { - logger_log("ERROR", "server", "short_chunk_payload len=%u", (unsigned)payload_len); - return OMNI_ERR_IO; - } - - process_t0 = omni_now_ms(); - omni_transfer_chunk_meta_decode((const TransferChunkMeta *)payload, &meta); - if (meta.chunk_bytes > payload_len - TRANSFER_CHUNK_META_SIZE) { - logger_log("ERROR", "server", - "invalid_chunk_meta transfer_id=%u seq=%u chunk_bytes=%u payload_len=%u", - (unsigned)meta.transfer_id, - (unsigned)meta.seq, - (unsigned)meta.chunk_bytes, - (unsigned)payload_len); - return OMNI_ERR_IO; - } - - transfer_state_init(&rt->transfer, &meta); - if (ensure_seen_capacity(&rt->transfer, meta.total_chunks) != OMNI_OK) { - logger_log("ERROR", "server", "seen_bitmap_alloc_failed total_chunks=%u", - (unsigned)meta.total_chunks); - return OMNI_ERR_GENERIC; - } - if (ensure_window_capacity(&rt->transfer.recv_window_counts, - &rt->transfer.recv_window_cap, - meta.window_id) != OMNI_OK) { - logger_log("ERROR", "server", "recv_window_alloc_failed window=%u", - (unsigned)meta.window_id); - return OMNI_ERR_GENERIC; - } - - if (meta.seq == 0 || meta.seq > meta.total_chunks) { - logger_log("WARN", "server", "invalid_seq transfer_id=%u seq=%u total_chunks=%u", - (unsigned)meta.transfer_id, - (unsigned)meta.seq, - (unsigned)meta.total_chunks); - return OMNI_ERR_IO; - } - - /* seen 位图用于去重:重复片不再写盘,但会计入 duplicate_chunks。 */ - if (rt->transfer.seen[meta.seq] != 0) { - rt->transfer.duplicate_chunks++; - return OMNI_OK; - } - - rt->transfer.seen[meta.seq] = 1; - rt->transfer.unique_chunks++; - rt->transfer.recv_window_counts[meta.window_id]++; - /* 若当前序号小于历史最大序号,说明该片到达顺序发生了回退。 */ - if (meta.seq < rt->transfer.highest_seq_seen) { - rt->transfer.out_of_order_chunks++; - } - if (meta.seq > rt->transfer.highest_seq_seen) { - rt->transfer.highest_seq_seen = meta.seq; - } - - { - double e2e_ms = compute_compensated_end_to_end_ms(rt, process_t0, &meta); - if (e2e_ms >= 0.0) { - logger_on_end_to_end_latency(e2e_ms); - } - } - - logger_set_transfer_total(meta.total_bytes); - chunk_data = payload + TRANSFER_CHUNK_META_SIZE; - /* - * 必须按 offset 写盘,而不是简单 append。 - * 这样即便 UDP/KCP 发生乱序,输出文件仍能恢复到正确位置。 - */ - if (fseeko(rt->out_fp, (off_t)meta.offset_bytes, SEEK_SET) != 0) { - logger_log("ERROR", "server", - "fseeko_failed transfer_id=%u seq=%u offset=%llu", - (unsigned)meta.transfer_id, - (unsigned)meta.seq, - (unsigned long long)meta.offset_bytes); - return OMNI_ERR_IO; - } - if (fwrite(chunk_data, 1, meta.chunk_bytes, rt->out_fp) != meta.chunk_bytes) { - logger_log("ERROR", "server", - "fwrite_failed transfer_id=%u seq=%u chunk_bytes=%u", - (unsigned)meta.transfer_id, - (unsigned)meta.seq, - (unsigned)meta.chunk_bytes); - return OMNI_ERR_IO; - } - logger_on_processing_latency((double)(omni_now_ms() - process_t0)); - - rt->transfer.unique_bytes_written += meta.chunk_bytes; - rt->bytes_written = rt->transfer.unique_bytes_written; - logger_set_progress(rt->bytes_written); - return OMNI_OK; -} - -/* 输出服务端视角的最终汇总,包括丢包区间、乱序和时延统计。 */ -static void server_log_transfer_summary(ServerRuntime *rt) -{ - OmniStats snapshot = logger_get_snapshot(); - char *missing_ranges = NULL; - char *recv_window_dist = NULL; - uint32_t missing_chunks = 0; - uint32_t burst_count = 0; - uint32_t max_burst_len = 0; - double loss_rate = 0.0; - double tcp_retrans_rate = 0.0; - double kcp_retrans_rate = 0.0; - uint64_t tcp_original_bytes = saturating_sub_u64(snapshot.tcp_data_bytes_sent, - snapshot.tcp_retrans_bytes); - uint64_t kcp_original_bytes = saturating_sub_u64(snapshot.kcp_data_bytes_sent, - snapshot.kcp_retrans_bytes); - - missing_ranges = format_missing_ranges(&rt->transfer, - &missing_chunks, - &burst_count, - &max_burst_len); - recv_window_dist = format_window_distribution(rt->transfer.recv_window_counts, - rt->transfer.total_windows); - if (rt->transfer.total_chunks > 0) { - loss_rate = ((double)missing_chunks * 100.0) / (double)rt->transfer.total_chunks; - } - tcp_retrans_rate = rate_percent(snapshot.tcp_retrans_bytes, tcp_original_bytes); - kcp_retrans_rate = rate_percent(snapshot.kcp_retrans_bytes, kcp_original_bytes); - - logger_log("INFO", "summary", - "event=transfer_summary role=server proto=%d transfer_id=%u " - "expected_bytes=%llu written_bytes=%llu expected_chunks=%u unique_chunks=%u " - "duplicate_chunks=%u out_of_order_chunks=%u " - "loss_rate_pct=%.2f missing_chunks=%u missing_ranges=%s " - "burst_loss_count=%u max_burst_loss_len=%u recv_windows=%u recv_window_distribution=%s " - "rx_avg_mbps=%.3f rx_current_mbps=%.3f " - "processing_avg_ms=%.3f queue_avg_ms=%.3f transmission_avg_ms=%.3f " - "propagation_avg_ms=%.3f end_to_end_avg_ms=%.3f " - "send_buffer_avg_pct=%.2f recv_buffer_avg_pct=%.2f " - "cwnd_avg=%.2f " - "local_tcp_retrans=%llu local_tcp_data_segs_out=%llu local_tcp_original_bytes=%llu " - "local_tcp_retrans_bytes=%llu local_tcp_retrans_rate_pct=%.2f " - "local_kcp_retrans=%llu local_kcp_data_segs_out=%llu local_kcp_original_bytes=%llu " - "local_kcp_retrans_bytes=%llu local_kcp_retrans_rate_pct=%.2f " - "clock_sync_ok=%u clock_offset_ms=%lld clock_sync_rtt_ms=%llu clock_sync_samples=%u", - (int)rt->proto, - (unsigned)rt->transfer.transfer_id, - (unsigned long long)rt->transfer.total_bytes, - (unsigned long long)rt->bytes_written, - (unsigned)rt->transfer.total_chunks, - (unsigned)rt->transfer.unique_chunks, - (unsigned)rt->transfer.duplicate_chunks, - (unsigned)rt->transfer.out_of_order_chunks, - loss_rate, - (unsigned)missing_chunks, - missing_ranges ? missing_ranges : "alloc_failed", - (unsigned)burst_count, - (unsigned)max_burst_len, - (unsigned)rt->transfer.total_windows, - recv_window_dist ? recv_window_dist : "alloc_failed", - snapshot.rx_avg_mbps, - snapshot.rx_current_mbps, - (snapshot.processing_delay_ms.count == 0) ? 0.0 : - snapshot.processing_delay_ms.sum / (double)snapshot.processing_delay_ms.count, - (snapshot.queue_delay_ms.count == 0) ? 0.0 : - snapshot.queue_delay_ms.sum / (double)snapshot.queue_delay_ms.count, - (snapshot.transmission_delay_ms.count == 0) ? 0.0 : - snapshot.transmission_delay_ms.sum / (double)snapshot.transmission_delay_ms.count, - (snapshot.propagation_delay_ms.count == 0) ? 0.0 : - snapshot.propagation_delay_ms.sum / (double)snapshot.propagation_delay_ms.count, - (snapshot.end_to_end_delay_ms.count == 0) ? 0.0 : - snapshot.end_to_end_delay_ms.sum / (double)snapshot.end_to_end_delay_ms.count, - (snapshot.send_buffer_pct.count == 0) ? 0.0 : - snapshot.send_buffer_pct.sum / (double)snapshot.send_buffer_pct.count, - (snapshot.recv_buffer_pct.count == 0) ? 0.0 : - snapshot.recv_buffer_pct.sum / (double)snapshot.recv_buffer_pct.count, - (snapshot.cwnd.count == 0) ? 0.0 : - snapshot.cwnd.sum / (double)snapshot.cwnd.count, - (unsigned long long)snapshot.tcp_retrans, - (unsigned long long)snapshot.tcp_data_segs_out, - (unsigned long long)tcp_original_bytes, - (unsigned long long)snapshot.tcp_retrans_bytes, - tcp_retrans_rate, - (unsigned long long)snapshot.kcp_retrans, - (unsigned long long)snapshot.kcp_data_segs_out, - (unsigned long long)kcp_original_bytes, - (unsigned long long)snapshot.kcp_retrans_bytes, - kcp_retrans_rate, - (unsigned)rt->clock_sync.valid, - (long long)rt->clock_sync.server_minus_client_offset_ms, - (unsigned long long)rt->clock_sync.best_rtt_ms, - (unsigned)rt->clock_sync.sample_count); - - free(missing_ranges); - free(recv_window_dist); -} - -/* 释放 TransferState 持有的动态内存。 */ -static void transfer_state_free(TransferState *st) -{ - free(st->seen); - free(st->recv_window_counts); - memset(st, 0, sizeof(*st)); -} - -/* - * 服务端接收线程: - * - 接收 FILE_CHUNK 并写盘 - * - 接收 FILE_END 并输出汇总、回 ACK - * - 接收 COMMAND 仅记录日志 - */ -static void *recv_thread_main(void *arg) -{ - ServerRuntime *rt = (ServerRuntime *)arg; - uint8_t frame[SERVER_FRAME_BUF_SIZE]; - - pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); - pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL); - - while (atomic_load(&rt->running)) { - ssize_t n = omni_recv(rt->ctx, frame, sizeof(frame)); - if (n < 0) { - logger_log("ERROR", "server", "recv_failed n=%zd", n); - break; - } - if (n == 0) { - if (rt->proto == OMNI_PROTO_TCP) { - logger_log("INFO", "server", "tcp_peer_closed"); - break; - } - usleep(2 * 1000); - continue; - } - - MsgHeader hdr; - const uint8_t *payload = NULL; - int rc = decode_app_message(frame, (size_t)n, &hdr, &payload); - if (rc != OMNI_OK) { - logger_log("ERROR", "server", "invalid_app_frame bytes=%zd rc=%d", n, rc); - continue; - } - - if (hdr.type == MSG_TYPE_FILE_CHUNK) { - rc = server_record_chunk(rt, &hdr, payload, hdr.len); - if (rc != OMNI_OK) { - break; - } - } else if (hdr.type == MSG_TYPE_TIME_SYNC_REQ) { - TimeSyncProbeMeta probe_meta; - TimeSyncReplyMeta reply_meta; - uint64_t server_recv_ts_ms; - uint64_t server_send_ts_ms; - - if (hdr.len < TIME_SYNC_PROBE_META_SIZE) { - logger_log("WARN", "server", - "short_time_sync_probe len=%u", - (unsigned)hdr.len); - continue; - } - - server_recv_ts_ms = omni_now_ms(); - omni_time_sync_probe_meta_decode((const TimeSyncProbeMeta *)payload, &probe_meta); - server_send_ts_ms = omni_now_ms(); - omni_time_sync_reply_meta_encode(&reply_meta, - probe_meta.probe_id, - probe_meta.client_send_ts_ms, - server_recv_ts_ms, - server_send_ts_ms); - if (send_app_message_with_timestamp(rt->ctx, - MSG_TYPE_TIME_SYNC_RESP, - &reply_meta, - TIME_SYNC_REPLY_META_SIZE, - server_send_ts_ms) != OMNI_OK) { - logger_log("ERROR", "server", - "time_sync_reply_failed probe_id=%u", - (unsigned)probe_meta.probe_id); - break; - } - logger_log("INFO", "server", - "time_sync_reply probe_id=%u server_recv_ts_ms=%llu server_send_ts_ms=%llu", - (unsigned)probe_meta.probe_id, - (unsigned long long)server_recv_ts_ms, - (unsigned long long)server_send_ts_ms); - continue; - } else if (hdr.type == MSG_TYPE_TIME_SYNC_REPORT) { - TimeSyncReportMeta report_meta; - - if (hdr.len < TIME_SYNC_REPORT_META_SIZE) { - logger_log("WARN", "server", - "short_time_sync_report len=%u", - (unsigned)hdr.len); - continue; - } - - omni_time_sync_report_meta_decode((const TimeSyncReportMeta *)payload, &report_meta); - rt->clock_sync.valid = 1; - rt->clock_sync.server_minus_client_offset_ms = - report_meta.server_minus_client_offset_ms; - rt->clock_sync.best_rtt_ms = report_meta.best_rtt_ms; - rt->clock_sync.sample_count = report_meta.sample_count; - logger_on_rtt(report_meta.best_rtt_ms); - logger_log("INFO", "server", - "time_sync_ready offset_ms=%lld best_rtt_ms=%llu samples=%u", - (long long)rt->clock_sync.server_minus_client_offset_ms, - (unsigned long long)rt->clock_sync.best_rtt_ms, - (unsigned)rt->clock_sync.sample_count); - continue; - } else if (hdr.type == MSG_TYPE_FILE_END) { - TransferEndMeta end_meta; - TransferAckMeta ack_meta; - - if (hdr.len >= TRANSFER_END_META_SIZE) { - /* FILE_END 会补齐整次传输的最终期望规模信息。 */ - omni_transfer_end_meta_decode((const TransferEndMeta *)payload, &end_meta); - if (rt->transfer.transfer_id == 0) { - rt->transfer.transfer_id = end_meta.transfer_id; - } - if (rt->transfer.total_chunks == 0) { - rt->transfer.total_chunks = end_meta.total_chunks; - } - if (rt->transfer.total_bytes == 0) { - rt->transfer.total_bytes = end_meta.total_bytes; - } - if (end_meta.total_windows > rt->transfer.total_windows) { - rt->transfer.total_windows = end_meta.total_windows; - } - logger_set_transfer_total(rt->transfer.total_bytes); - } - - /* 先确保文件内容刷到磁盘,再输出汇总并回 ACK。 */ - fflush(rt->out_fp); - server_log_transfer_summary(rt); - atomic_store(&rt->transfer_done, 1); - logger_log("INFO", "server", "file_transfer_end bytes=%llu", - (unsigned long long)rt->bytes_written); - - omni_transfer_ack_meta_encode(&ack_meta, - rt->transfer.transfer_id, - rt->transfer.total_chunks, - rt->transfer.total_bytes, - rt->bytes_written, - hdr.timestamp); - (void)send_app_message_with_timestamp(rt->ctx, - MSG_TYPE_TRANSFER_ACK, - &ack_meta, - TRANSFER_ACK_META_SIZE, - omni_now_ms()); - continue; - } else if (hdr.type == MSG_TYPE_COMMAND) { - logger_log("INFO", "server", - "recv_command_from_peer len=%u (ignored)", - (unsigned)hdr.len); - } else { - logger_log("INFO", "server", - "recv_unknown_type type=%u len=%u", - (unsigned)hdr.type, (unsigned)hdr.len); - } - } - - atomic_store(&rt->running, 0); - return NULL; -} - -/* - * 服务端主流程: - * 1) 建立监听/接收上下文 - * 2) 启动后台接收线程 - * 3) 如果前台是交互终端,则允许输入命令发给客户端 - * 4) 等待传输完成后统一收尾 - */ -int main(int argc, char **argv) -{ - const char *proto_str = "tcp"; - const char *bind_ip = NULL; - const char *output_path = NULL; - OmniProtocol proto; - FILE *out_fp = NULL; - OmniContext *ctx = NULL; - ServerRuntime rt; - pthread_t recv_tid; - int listen_port = 0; - int opt; - - while ((opt = getopt(argc, argv, "p:b:P:o:")) != -1) { - switch (opt) { - case 'p': - proto_str = optarg; - break; - case 'b': - bind_ip = optarg; - break; - case 'P': - listen_port = atoi(optarg); - break; - case 'o': - output_path = optarg; - break; - default: - usage(argv[0]); - return 1; - } - } - - if (listen_port <= 0 || !output_path) { - usage(argv[0]); - return 1; - } - - out_fp = fopen(output_path, "wb+"); - if (!out_fp) { - perror("fopen"); - return 1; - } - - proto = parse_proto(proto_str); - ctx = omni_init(OMNI_ROLE_SERVER, proto, - bind_ip, (uint16_t)listen_port, - NULL, 0); - if (!ctx) { - fclose(out_fp); - fprintf(stderr, "omni_init failed\n"); - return 1; - } - - memset(&rt, 0, sizeof(rt)); - rt.ctx = ctx; - rt.proto = proto; - rt.out_fp = out_fp; - atomic_init(&rt.running, 1); - atomic_init(&rt.transfer_done, 0); - - if (pthread_create(&recv_tid, NULL, recv_thread_main, &rt) != 0) { - perror("pthread_create"); - omni_close(ctx); - fclose(out_fp); - return 1; - } - - if (isatty(STDIN_FILENO)) { - /* 交互模式:允许服务端向客户端发送文本命令。 */ - char line[2048]; - while (atomic_load(&rt.running)) { - if (!fgets(line, sizeof(line), stdin)) { - break; - } - - size_t len = strlen(line); - while (len > 0 && (line[len - 1] == '\n' || line[len - 1] == '\r')) { - line[--len] = '\0'; - } - - if (len == 0) { - continue; - } - if (strcmp(line, "quit") == 0) { - break; - } - - if (send_app_message_with_timestamp(ctx, - MSG_TYPE_COMMAND, - line, - (uint32_t)len, - omni_now_ms()) != OMNI_OK) { - logger_log("ERROR", "server", "send_command_failed"); - break; - } - } - } else { - /* 非交互模式:例如脚本执行时,只等待传输结束即可。 */ - while (atomic_load(&rt.running) && !atomic_load(&rt.transfer_done)) { - usleep(100 * 1000); - } - } - - /* 主线程统一收尾并释放接收线程持有的资源。 */ - atomic_store(&rt.running, 0); - pthread_cancel(recv_tid); - pthread_join(recv_tid, NULL); - omni_close(ctx); - fclose(out_fp); - transfer_state_free(&rt.transfer); - return 0; -} diff --git a/src/apps/test_main.c b/src/apps/test_main.c deleted file mode 100644 index 97cadf2..0000000 --- a/src/apps/test_main.c +++ /dev/null @@ -1,190 +0,0 @@ -/* - * test_main.c - * 简单测试程序:客户端/服务端双向传输 + 日志观测 - * - * 使用方式示例(同一机器上,两个终端): - * 终端1:./omni_test -r server -p tcp -P 9000 - * 终端2:./omni_test -r client -p tcp -P 9000 -H 127.0.0.1 - * - * 协议可选:tcp / udp / kcp - */ - -#include "common.h" -#include "network.h" -#include "logger.h" - -#include -#include -#include -#include - -/* 打印测试程序命令行帮助。 */ -static void usage(const char *prog) -{ - fprintf(stderr, - "Usage:\n" - " %s -r server -p tcp|udp|kcp -P \n" - " %s -r client -p tcp|udp|kcp -P -H \n", - prog, prog); -} - -/* 解析协议名,非法输入时默认回退 TCP。 */ -static OmniProtocol parse_proto(const char *s) -{ - if (strcmp(s, "tcp") == 0) return OMNI_PROTO_TCP; - if (strcmp(s, "udp") == 0) return OMNI_PROTO_UDP; - if (strcmp(s, "kcp") == 0) return OMNI_PROTO_KCP; - return OMNI_PROTO_TCP; -} - -/* - * 测试服务端: - * 持续收消息并原样 echo 回去,主要用于验证双向收发路径是否通畅。 - */ -static void run_server(OmniProtocol proto, uint16_t port) -{ - OmniContext *ctx = omni_init(OMNI_ROLE_SERVER, proto, - NULL, port, - NULL, 0); - if (!ctx) { - fprintf(stderr, "server: omni_init failed\n"); - return; - } - - logger_log("INFO", "test", "server_started proto=%d port=%u", - (int)proto, (unsigned)port); - - char buf[4096]; - for (;;) { - ssize_t n = omni_recv(ctx, buf, sizeof(buf)); - if (n < 0) { - logger_log("INFO", "test", "server_recv_end n=%zd", n); - break; - } - if (n == 0) { - /* KCP 在“暂时没拼出完整消息”时可能返回 0,因此这里不能立刻判定连接结束。 */ - if (proto == OMNI_PROTO_KCP) { - usleep(10 * 1000); - continue; - } - logger_log("INFO", "test", "server_recv_end n=%zd", n); - break; - } - logger_log("INFO", "test", "server_recv bytes=%zd", n); - - /* 简单 echo 回客户端,验证双向通信 */ - ssize_t m = omni_send(ctx, buf, (size_t)n); - logger_log("INFO", "test", "server_echo bytes=%zd", m); - } - - omni_close(ctx); -} - -/* - * 测试客户端: - * 连续发 100 条消息,每发一条就等一条 echo,用来观测协议往返行为。 - */ -static void run_client(OmniProtocol proto, const char *host, uint16_t port) -{ - if (!host) { - fprintf(stderr, "client: host is required\n"); - return; - } - - OmniContext *ctx = omni_init(OMNI_ROLE_CLIENT, proto, - NULL, 0, - host, port); - if (!ctx) { - fprintf(stderr, "client: omni_init failed\n"); - return; - } - - logger_log("INFO", "test", "client_started proto=%d host=%s port=%u", - (int)proto, host, (unsigned)port); - - char send_buf[2048]; - char recv_buf[4096]; - - for (int i = 0; i < 100; ++i) { - int len = snprintf(send_buf, sizeof(send_buf), - "msg=%d time_ms=%llu payload_size=%zu", - i, - (unsigned long long)omni_now_ms(), - sizeof(send_buf)); - - ssize_t n = omni_send(ctx, send_buf, (size_t)len); - logger_log("INFO", "test", "client_send i=%d bytes=%zd", i, n); - if (n <= 0) break; - - ssize_t m = omni_recv(ctx, recv_buf, sizeof(recv_buf)); - if (m < 0) { - logger_log("INFO", "test", "client_recv_end i=%d bytes=%zd", i, m); - break; - } - if (m == 0) { - /* 对 KCP 来说,0 更像“此刻没取到完整消息”,而不是 socket 关闭。 */ - if (proto == OMNI_PROTO_KCP) { - usleep(10 * 1000); - --i; - continue; - } - logger_log("INFO", "test", "client_recv_end i=%d bytes=%zd", i, m); - break; - } - logger_log("INFO", "test", - "client_recv_echo i=%d bytes=%zd first_bytes=\"%.32s\"", - i, m, recv_buf); - - usleep(10 * 1000); /* 10ms 间隔,模拟稳定流量 */ - } - - omni_close(ctx); -} - -/* 程序入口:根据角色参数派发到测试客户端或测试服务端。 */ -int main(int argc, char **argv) -{ - const char *role_str = NULL; - const char *proto_str = "tcp"; - const char *host = NULL; - int port = 0; - - int opt; - while ((opt = getopt(argc, argv, "r:p:P:H:")) != -1) { - switch (opt) { - case 'r': - role_str = optarg; - break; - case 'p': - proto_str = optarg; - break; - case 'P': - port = atoi(optarg); - break; - case 'H': - host = optarg; - break; - default: - usage(argv[0]); - return 1; - } - } - - if (!role_str || port <= 0) { - usage(argv[0]); - return 1; - } - - OmniProtocol proto = parse_proto(proto_str); - - if (strcmp(role_str, "server") == 0) { - run_server(proto, (uint16_t)port); - } else if (strcmp(role_str, "client") == 0) { - run_client(proto, host, (uint16_t)port); - } else { - usage(argv[0]); - return 1; - } - - return 0; -} diff --git a/src/core/logger.c b/src/core/logger.c index 1add275..5e7bac5 100644 --- a/src/core/logger.c +++ b/src/core/logger.c @@ -23,6 +23,11 @@ static FILE *g_json_fp = NULL; static int g_min_level = 1; /* default INFO */ static int g_initialized = 0; static pthread_mutex_t g_mu = PTHREAD_MUTEX_INITIALIZER; +static char g_ctx_app[32]; +static char g_ctx_proto[16]; +static char g_ctx_mode[16]; +static char g_ctx_role[16]; +static char g_ctx_self_id[OMNI_PEER_ID_SIZE]; /* 对 common.h 的时间接口做一层薄包装,统一 logger 模块内部的调用入口。 */ static uint64_t now_ms(void) @@ -30,6 +35,23 @@ static uint64_t now_ms(void) return omni_now_ms(); } +static void copy_context_field(char *dst, + size_t dst_sz, + const char *src, + const char *fallback) +{ + if (!dst || dst_sz == 0) { + return; + } + if (src && src[0] != '\0') { + omni_copy_fixed_ascii(dst, dst_sz, src); + return; + } + if (fallback) { + omni_copy_fixed_ascii(dst, dst_sz, fallback); + } +} + /* 将字符串日志级别映射为可比较的整数,数值越大表示级别越高。 */ static int level_to_int(const char *level) { @@ -199,6 +221,11 @@ void logger_init(void) pthread_mutex_lock(&g_mu); if (!g_initialized) { memset(&g_stats, 0, sizeof(g_stats)); + memset(g_ctx_app, 0, sizeof(g_ctx_app)); + memset(g_ctx_proto, 0, sizeof(g_ctx_proto)); + memset(g_ctx_mode, 0, sizeof(g_ctx_mode)); + memset(g_ctx_role, 0, sizeof(g_ctx_role)); + memset(g_ctx_self_id, 0, sizeof(g_ctx_self_id)); g_stats.start_ms = now_ms(); g_stats.last_report_ms = g_stats.start_ms; g_stats.window_start_ms = g_stats.start_ms; @@ -213,6 +240,10 @@ void logger_init(void) metric_reset(&g_stats.send_buffer_pct); metric_reset(&g_stats.recv_buffer_pct); metric_reset(&g_stats.cwnd); + copy_context_field(g_ctx_app, sizeof(g_ctx_app), NULL, "unknown"); + copy_context_field(g_ctx_proto, sizeof(g_ctx_proto), NULL, "unknown"); + copy_context_field(g_ctx_mode, sizeof(g_ctx_mode), NULL, "unknown"); + copy_context_field(g_ctx_role, sizeof(g_ctx_role), NULL, "unknown"); { const char *lvl_env = getenv("OMNI_LOG_LEVEL"); @@ -227,6 +258,36 @@ void logger_init(void) pthread_mutex_unlock(&g_mu); } +void logger_set_context(const char *app, + const char *proto, + const char *mode, + const char *role, + const char *self_id) +{ + pthread_mutex_lock(&g_mu); + if (!g_initialized) { + pthread_mutex_unlock(&g_mu); + logger_init(); + pthread_mutex_lock(&g_mu); + } + if (app) { + copy_context_field(g_ctx_app, sizeof(g_ctx_app), app, "unknown"); + } + if (proto) { + copy_context_field(g_ctx_proto, sizeof(g_ctx_proto), proto, "unknown"); + } + if (mode) { + copy_context_field(g_ctx_mode, sizeof(g_ctx_mode), mode, "unknown"); + } + if (role) { + copy_context_field(g_ctx_role, sizeof(g_ctx_role), role, "unknown"); + } + if (self_id) { + copy_context_field(g_ctx_self_id, sizeof(g_ctx_self_id), self_id, ""); + } + pthread_mutex_unlock(&g_mu); +} + /* 记录一次发送事件,更新累计发送字节和窗口内发送字节。 */ void logger_on_send(size_t bytes) { @@ -540,6 +601,11 @@ void logger_print_performance_log(const char *tag) uint64_t now; OmniStats snapshot; double progress_pct; + char ctx_app[sizeof(g_ctx_app)]; + char ctx_proto[sizeof(g_ctx_proto)]; + char ctx_mode[sizeof(g_ctx_mode)]; + char ctx_role[sizeof(g_ctx_role)]; + char ctx_self_id[sizeof(g_ctx_self_id)]; pthread_mutex_lock(&g_mu); now = now_ms(); @@ -555,6 +621,11 @@ void logger_print_performance_log(const char *tag) snapshot = g_stats; snapshot.last_report_ms = now; g_stats.last_report_ms = now; + omni_copy_fixed_ascii(ctx_app, sizeof(ctx_app), g_ctx_app); + omni_copy_fixed_ascii(ctx_proto, sizeof(ctx_proto), g_ctx_proto); + omni_copy_fixed_ascii(ctx_mode, sizeof(ctx_mode), g_ctx_mode); + omni_copy_fixed_ascii(ctx_role, sizeof(ctx_role), g_ctx_role); + omni_copy_fixed_ascii(ctx_self_id, sizeof(ctx_self_id), g_ctx_self_id); pthread_mutex_unlock(&g_mu); progress_pct = 0.0; @@ -568,7 +639,7 @@ void logger_print_performance_log(const char *tag) FILE *fp = stderr; print_timestamp(fp, now); fprintf(fp, - "level=INFO component=perf tag=%s " + "level=INFO component=perf app=%s proto=%s mode=%s role=%s self_id=%s tag=%s " "elapsed_ms=%llu bytes_sent=%llu bytes_recv=%llu " "send_count=%llu recv_count=%llu " "tx_current_mbps=%.3f rx_current_mbps=%.3f " @@ -582,6 +653,11 @@ void logger_print_performance_log(const char *tag) "last_rtt_ms=%llu min_rtt_ms=%llu max_rtt_ms=%llu " "tcp_retrans=%llu tcp_data_segs_out=%llu tcp_data_bytes_sent=%llu tcp_retrans_bytes=%llu " "kcp_retrans=%llu kcp_data_segs_out=%llu kcp_data_bytes_sent=%llu kcp_retrans_bytes=%llu\n", + ctx_app[0] ? ctx_app : "unknown", + ctx_proto[0] ? ctx_proto : "unknown", + ctx_mode[0] ? ctx_mode : "unknown", + ctx_role[0] ? ctx_role : "unknown", + ctx_self_id[0] ? ctx_self_id : "-", tag ? tag : "periodic", (unsigned long long)(now - snapshot.start_ms), (unsigned long long)snapshot.bytes_sent, @@ -632,6 +708,11 @@ void logger_print_performance_log(const char *tag) "{\"ts_ms\":%llu," "\"level\":\"INFO\"," "\"component\":\"perf\"," + "\"app\":\"%s\"," + "\"proto\":\"%s\"," + "\"mode\":\"%s\"," + "\"role\":\"%s\"," + "\"self_id\":\"%s\"," "\"tag\":\"%s\"," "\"elapsed_ms\":%llu," "\"bytes_sent\":%llu," @@ -691,6 +772,11 @@ void logger_print_performance_log(const char *tag) "\"kcp_data_bytes_sent\":%llu," "\"kcp_retrans_bytes\":%llu}\n", (unsigned long long)now, + ctx_app[0] ? ctx_app : "unknown", + ctx_proto[0] ? ctx_proto : "unknown", + ctx_mode[0] ? ctx_mode : "unknown", + ctx_role[0] ? ctx_role : "unknown", + ctx_self_id[0] ? ctx_self_id : "", tag ? tag : "periodic", (unsigned long long)(now - snapshot.start_ms), (unsigned long long)snapshot.bytes_sent, diff --git a/src/core/network.c b/src/core/network.c index 7a10730..dbd72b5 100644 --- a/src/core/network.c +++ b/src/core/network.c @@ -36,6 +36,20 @@ static const struct ProtoVTable *select_vtable(OmniProtocol proto) } } +static const char *proto_name(OmniProtocol proto) +{ + switch (proto) { + case OMNI_PROTO_TCP: + return "tcp"; + case OMNI_PROTO_UDP: + return "udp"; + case OMNI_PROTO_KCP: + return "kcp"; + default: + return "unknown"; + } +} + OmniContext *omni_init(OmniRole role, OmniProtocol proto, const char *bind_ip, @@ -44,6 +58,11 @@ OmniContext *omni_init(OmniRole role, uint16_t peer_port) { logger_init(); + logger_set_context("network", + proto_name(proto), + NULL, + role == OMNI_ROLE_SERVER ? "server" : "client", + NULL); const struct ProtoVTable *vt = select_vtable(proto); if (!vt || !vt->init) { diff --git a/src/core/peer_transport.c b/src/core/peer_transport.c new file mode 100644 index 0000000..1fef2c3 --- /dev/null +++ b/src/core/peer_transport.c @@ -0,0 +1,1141 @@ +#include "peer_transport.h" + +#include "logger.h" +#include "kcp/ikcp.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PEER_TRANSPORT_MAX_FRAME (131072u) +#define PEER_TRANSPORT_TCP_BACKLOG 64 +#define PEER_TRANSPORT_KCP_POLL_MS 10 + +struct PeerTransport; + +struct PeerTransportSession { + struct PeerTransport *transport; + int fd; + int closed; + struct sockaddr_in addr; + socklen_t addr_len; + ikcpcb *kcp; + uint32_t kcp_conv; + char remote_ip[64]; + uint16_t remote_port; + struct PeerTransportSession *next; +}; + +struct PeerTransport { + OmniRole role; + OmniProtocol proto; + int fd; + uint16_t bind_port; + PeerTransportSession *sessions; + PeerTransportSession *client_session; + uint8_t *rx_frame; +}; + +static void peer_transport_note_send(size_t bytes) +{ + logger_on_send(bytes); + logger_on_send_transmission_bytes(bytes); + logger_maybe_print_performance_log("peer_transport_send"); +} + +static void peer_transport_note_recv(size_t bytes) +{ + logger_on_recv(bytes); + logger_on_recv_transmission_bytes(bytes); + logger_maybe_print_performance_log("peer_transport_recv"); +} + +const char *peer_transport_proto_name(OmniProtocol proto) +{ + switch (proto) { + case OMNI_PROTO_TCP: + return "tcp"; + case OMNI_PROTO_UDP: + return "udp"; + case OMNI_PROTO_KCP: + return "kcp"; + default: + return "unknown"; + } +} + +static void event_reset(PeerTransportEvent *event) +{ + if (!event) { + return; + } + memset(event, 0, sizeof(*event)); + event->kind = PEER_TRANSPORT_EVENT_NONE; +} + +static int set_reuseaddr(int fd) +{ + int yes = 1; + return setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); +} + +static int set_tcp_nodelay(int fd) +{ + int yes = 1; + return setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &yes, sizeof(yes)); +} + +static ssize_t read_n(int fd, void *buf, size_t len) +{ + uint8_t *p = (uint8_t *)buf; + size_t done = 0; + + while (done < len) { + ssize_t rc = recv(fd, p + done, len - done, 0); + if (rc == 0) { + return 0; + } + if (rc < 0) { + if (errno == EINTR) { + continue; + } + return -1; + } + done += (size_t)rc; + } + return (ssize_t)done; +} + +static ssize_t write_n(int fd, const void *buf, size_t len) +{ + const uint8_t *p = (const uint8_t *)buf; + size_t done = 0; + + while (done < len) { + ssize_t rc = send(fd, p + done, len - done, 0); + if (rc < 0) { + if (errno == EINTR) { + continue; + } + return -1; + } + done += (size_t)rc; + } + return (ssize_t)done; +} + +static int sockaddr_equals(const struct sockaddr_in *a, const struct sockaddr_in *b) +{ + return a && b && + a->sin_family == b->sin_family && + a->sin_port == b->sin_port && + a->sin_addr.s_addr == b->sin_addr.s_addr; +} + +static void session_set_remote(PeerTransportSession *session, + const struct sockaddr_in *addr, + socklen_t addr_len) +{ + if (!session || !addr) { + return; + } + + session->addr = *addr; + session->addr_len = addr_len; + session->remote_port = ntohs(addr->sin_port); + if (!inet_ntop(AF_INET, &addr->sin_addr, + session->remote_ip, sizeof(session->remote_ip))) { + omni_copy_fixed_ascii(session->remote_ip, + sizeof(session->remote_ip), + "unknown"); + } +} + +static PeerTransportSession *session_alloc(PeerTransport *transport) +{ + PeerTransportSession *session; + + session = (PeerTransportSession *)calloc(1, sizeof(*session)); + if (!session) { + return NULL; + } + session->transport = transport; + session->fd = -1; + return session; +} + +static void session_free(PeerTransportSession *session) +{ + if (!session) { + return; + } + if (session->fd >= 0) { + close(session->fd); + } + if (session->kcp) { + ikcp_release(session->kcp); + } + free(session); +} + +static void transport_add_session(PeerTransport *transport, + PeerTransportSession *session) +{ + if (!transport || !session) { + return; + } + session->next = transport->sessions; + transport->sessions = session; +} + +static void transport_remove_session(PeerTransport *transport, + PeerTransportSession *session) +{ + PeerTransportSession **cur; + + if (!transport || !session) { + return; + } + + cur = &transport->sessions; + while (*cur) { + if (*cur == session) { + *cur = session->next; + session->next = NULL; + break; + } + cur = &(*cur)->next; + } + + if (transport->client_session == session) { + transport->client_session = NULL; + } +} + +static uint8_t *alloc_frame(uint32_t type, + const void *payload, + uint32_t payload_len, + size_t *out_frame_len) +{ + MsgHeader hdr; + uint8_t *frame; + size_t frame_len = MSG_HEADER_SIZE + (size_t)payload_len; + + frame = (uint8_t *)malloc(frame_len); + if (!frame) { + return NULL; + } + + omni_msg_header_encode(&hdr, type, payload_len, omni_now_ms()); + memcpy(frame, &hdr, MSG_HEADER_SIZE); + if (payload_len > 0 && payload) { + memcpy(frame + MSG_HEADER_SIZE, payload, payload_len); + } + + if (out_frame_len) { + *out_frame_len = frame_len; + } + return frame; +} + +static int decode_frame_to_event(PeerTransportSession *session, + const uint8_t *frame, + size_t frame_len, + PeerTransportEvent *event, + uint8_t *payload_buf, + size_t payload_cap) +{ + MsgHeader net_hdr; + MsgHeader host_hdr; + + if (!frame || frame_len < MSG_HEADER_SIZE || !event) { + return OMNI_ERR_PARAM; + } + + memcpy(&net_hdr, frame, MSG_HEADER_SIZE); + omni_msg_header_decode(&net_hdr, &host_hdr); + if ((size_t)host_hdr.len + MSG_HEADER_SIZE != frame_len) { + return OMNI_ERR_IO; + } + if ((size_t)host_hdr.len > payload_cap) { + return OMNI_ERR_IO; + } + if (host_hdr.len > 0 && payload_buf) { + memcpy(payload_buf, frame + MSG_HEADER_SIZE, host_hdr.len); + } + + event->kind = PEER_TRANSPORT_EVENT_MESSAGE; + event->session = session; + event->header = host_hdr; + peer_transport_note_recv(frame_len); + return OMNI_OK; +} + +static int wait_readable_single_fd(int fd, int timeout_ms) +{ + fd_set rfds; + struct timeval tv; + struct timeval *tv_ptr = NULL; + int rc; + + FD_ZERO(&rfds); + FD_SET(fd, &rfds); + + if (timeout_ms >= 0) { + tv.tv_sec = timeout_ms / 1000; + tv.tv_usec = (timeout_ms % 1000) * 1000; + tv_ptr = &tv; + } + + rc = select(fd + 1, &rfds, NULL, NULL, tv_ptr); + if (rc < 0) { + if (errno == EINTR) { + return 0; + } + return OMNI_ERR_IO; + } + return rc; +} + +static int tcp_create_listener(const char *bind_ip, uint16_t bind_port) +{ + int fd; + struct sockaddr_in addr; + + fd = socket(AF_INET, SOCK_STREAM, 0); + if (fd < 0) { + return -1; + } + + (void)set_reuseaddr(fd); + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = htons(bind_port); + if (bind_ip && bind_ip[0] != '\0') { + if (inet_pton(AF_INET, bind_ip, &addr.sin_addr) != 1) { + close(fd); + errno = EINVAL; + return -1; + } + } else { + addr.sin_addr.s_addr = htonl(INADDR_ANY); + } + + if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) { + close(fd); + return -1; + } + if (listen(fd, PEER_TRANSPORT_TCP_BACKLOG) != 0) { + close(fd); + return -1; + } + return fd; +} + +static int tcp_connect_peer(const char *peer_ip, uint16_t peer_port) +{ + int fd; + struct sockaddr_in addr; + + fd = socket(AF_INET, SOCK_STREAM, 0); + if (fd < 0) { + return -1; + } + + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = htons(peer_port); + if (!peer_ip || inet_pton(AF_INET, peer_ip, &addr.sin_addr) != 1) { + close(fd); + errno = EINVAL; + return -1; + } + + if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) { + close(fd); + return -1; + } + + (void)set_tcp_nodelay(fd); + return fd; +} + +static PeerTransportSession *tcp_accept_session(PeerTransport *transport) +{ + int cfd; + struct sockaddr_in addr; + socklen_t addr_len = sizeof(addr); + PeerTransportSession *session; + + cfd = accept(transport->fd, (struct sockaddr *)&addr, &addr_len); + if (cfd < 0) { + return NULL; + } + + (void)set_tcp_nodelay(cfd); + session = session_alloc(transport); + if (!session) { + close(cfd); + return NULL; + } + + session->fd = cfd; + session_set_remote(session, &addr, addr_len); + transport_add_session(transport, session); + logger_log("INFO", "peer_transport", + "tcp_session_accepted remote=%s:%u", + session->remote_ip, + (unsigned)session->remote_port); + return session; +} + +static int tcp_read_event(PeerTransport *transport, + PeerTransportSession *session, + PeerTransportEvent *event, + uint8_t *payload_buf, + size_t payload_cap) +{ + MsgHeader net_hdr; + MsgHeader host_hdr; + ssize_t n; + + n = read_n(session->fd, &net_hdr, MSG_HEADER_SIZE); + if (n == 0) { + session->closed = 1; + event->kind = PEER_TRANSPORT_EVENT_CLOSED; + event->session = session; + return 1; + } + if (n != (ssize_t)MSG_HEADER_SIZE) { + session->closed = 1; + event->kind = PEER_TRANSPORT_EVENT_CLOSED; + event->session = session; + return 1; + } + + omni_msg_header_decode(&net_hdr, &host_hdr); + if (host_hdr.len > PEER_TRANSPORT_MAX_FRAME - MSG_HEADER_SIZE || + (size_t)host_hdr.len > payload_cap) { + session->closed = 1; + event->kind = PEER_TRANSPORT_EVENT_CLOSED; + event->session = session; + return 1; + } + + memcpy(transport->rx_frame, &net_hdr, MSG_HEADER_SIZE); + if (host_hdr.len > 0) { + n = read_n(session->fd, + transport->rx_frame + MSG_HEADER_SIZE, + host_hdr.len); + if (n != (ssize_t)host_hdr.len) { + session->closed = 1; + event->kind = PEER_TRANSPORT_EVENT_CLOSED; + event->session = session; + return 1; + } + } + + return decode_frame_to_event(session, + transport->rx_frame, + MSG_HEADER_SIZE + host_hdr.len, + event, + payload_buf, + payload_cap) == OMNI_OK ? 1 : OMNI_ERR_IO; +} + +static int udp_create_socket(const char *bind_ip, uint16_t bind_port) +{ + int fd; + struct sockaddr_in addr; + + fd = socket(AF_INET, SOCK_DGRAM, 0); + if (fd < 0) { + return -1; + } + + (void)set_reuseaddr(fd); + if (bind_port != 0) { + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = htons(bind_port); + if (bind_ip && bind_ip[0] != '\0') { + if (inet_pton(AF_INET, bind_ip, &addr.sin_addr) != 1) { + close(fd); + errno = EINVAL; + return -1; + } + } else { + addr.sin_addr.s_addr = htonl(INADDR_ANY); + } + if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) { + close(fd); + return -1; + } + } + + return fd; +} + +static PeerTransportSession *find_session_by_addr(PeerTransport *transport, + const struct sockaddr_in *addr) +{ + PeerTransportSession *cur; + + if (!transport || !addr) { + return NULL; + } + + for (cur = transport->sessions; cur; cur = cur->next) { + if (!cur->closed && sockaddr_equals(&cur->addr, addr)) { + return cur; + } + } + return NULL; +} + +static PeerTransportSession *find_kcp_session(PeerTransport *transport, + const struct sockaddr_in *addr, + uint32_t conv) +{ + PeerTransportSession *cur; + + if (!transport || !addr) { + return NULL; + } + + for (cur = transport->sessions; cur; cur = cur->next) { + if (!cur->closed && + cur->kcp && + cur->kcp_conv == conv && + sockaddr_equals(&cur->addr, addr)) { + return cur; + } + } + return NULL; +} + +static int kcp_output_cb(const char *buf, int len, ikcpcb *kcp, void *user) +{ + PeerTransportSession *session = (PeerTransportSession *)user; + ssize_t n; + + (void)kcp; + if (!session || !session->transport) { + return OMNI_ERR_PARAM; + } + + n = sendto(session->transport->fd, + buf, + (size_t)len, + 0, + (struct sockaddr *)&session->addr, + session->addr_len); + return (n == len) ? 0 : OMNI_ERR_IO; +} + +static PeerTransportSession *kcp_create_session(PeerTransport *transport, + const struct sockaddr_in *addr, + socklen_t addr_len, + uint32_t conv) +{ + PeerTransportSession *session; + + session = session_alloc(transport); + if (!session) { + return NULL; + } + + session_set_remote(session, addr, addr_len); + session->kcp_conv = conv; + session->kcp = ikcp_create((IUINT32)conv, session); + if (!session->kcp) { + session_free(session); + return NULL; + } + + ikcp_setoutput(session->kcp, kcp_output_cb); + ikcp_nodelay(session->kcp, 1, 10, 2, 1); + ikcp_wndsize(session->kcp, 128, 128); + transport_add_session(transport, session); + return session; +} + +static void kcp_update_session(PeerTransportSession *session) +{ + if (!session || !session->kcp) { + return; + } + ikcp_update(session->kcp, (IUINT32)omni_now_ms()); +} + +static int kcp_try_event(PeerTransport *transport, + PeerTransportSession *session, + PeerTransportEvent *event, + uint8_t *payload_buf, + size_t payload_cap) +{ + int n; + + if (!transport || !session || !session->kcp) { + return OMNI_ERR_PARAM; + } + + kcp_update_session(session); + n = ikcp_recv(session->kcp, + (char *)transport->rx_frame, + (int)PEER_TRANSPORT_MAX_FRAME); + if (n < 0) { + return 0; + } + + return decode_frame_to_event(session, + transport->rx_frame, + (size_t)n, + event, + payload_buf, + payload_cap) == OMNI_OK ? 1 : OMNI_ERR_IO; +} + +static int kcp_pump_packet(PeerTransport *transport) +{ + struct sockaddr_in from; + socklen_t from_len = sizeof(from); + ssize_t n; + PeerTransportSession *session; + uint32_t conv = 0; + + n = recvfrom(transport->fd, + transport->rx_frame, + PEER_TRANSPORT_MAX_FRAME, + 0, + (struct sockaddr *)&from, + &from_len); + if (n < 0) { + if (errno == EINTR) { + return 0; + } + return OMNI_ERR_IO; + } + if ((size_t)n < sizeof(uint32_t)) { + return 0; + } + + conv = ikcp_getconv(transport->rx_frame); + if (transport->role == OMNI_ROLE_CLIENT) { + session = transport->client_session; + if (!session) { + session = kcp_create_session(transport, &from, from_len, conv); + if (!session) { + return OMNI_ERR_GENERIC; + } + transport->client_session = session; + } + } else { + session = find_kcp_session(transport, &from, conv); + if (!session) { + session = kcp_create_session(transport, &from, from_len, conv); + if (!session) { + return OMNI_ERR_GENERIC; + } + } + } + + if (ikcp_input(session->kcp, (const char *)transport->rx_frame, (long)n) != 0) { + return OMNI_ERR_IO; + } + kcp_update_session(session); + return 1; +} + +static int kcp_wait_for_io(PeerTransport *transport, int timeout_ms) +{ + int slice_ms = PEER_TRANSPORT_KCP_POLL_MS; + + if (!transport) { + return OMNI_ERR_PARAM; + } + if (timeout_ms == 0) { + return 0; + } + if (timeout_ms > 0 && timeout_ms < slice_ms) { + slice_ms = timeout_ms; + } + return wait_readable_single_fd(transport->fd, slice_ms); +} + +PeerTransport *peer_transport_open(OmniRole role, + OmniProtocol proto, + const char *bind_ip, + uint16_t bind_port, + const char *peer_ip, + uint16_t peer_port) +{ + PeerTransport *transport; + PeerTransportSession *session; + struct sockaddr_in addr; + + logger_init(); + + transport = (PeerTransport *)calloc(1, sizeof(*transport)); + if (!transport) { + return NULL; + } + + transport->role = role; + transport->proto = proto; + transport->fd = -1; + transport->bind_port = bind_port; + transport->rx_frame = (uint8_t *)malloc(PEER_TRANSPORT_MAX_FRAME); + if (!transport->rx_frame) { + free(transport); + return NULL; + } + + switch (proto) { + case OMNI_PROTO_TCP: + if (role == OMNI_ROLE_CLIENT) { + transport->fd = -1; + session = session_alloc(transport); + if (!session) { + peer_transport_close(transport); + return NULL; + } + session->fd = tcp_connect_peer(peer_ip, peer_port); + if (session->fd < 0) { + session_free(session); + peer_transport_close(transport); + return NULL; + } + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = htons(peer_port); + inet_pton(AF_INET, peer_ip, &addr.sin_addr); + session_set_remote(session, &addr, sizeof(addr)); + transport_add_session(transport, session); + transport->client_session = session; + } else { + transport->fd = tcp_create_listener(bind_ip, bind_port); + if (transport->fd < 0) { + peer_transport_close(transport); + return NULL; + } + } + break; + case OMNI_PROTO_UDP: + transport->fd = udp_create_socket(bind_ip, bind_port); + if (transport->fd < 0) { + peer_transport_close(transport); + return NULL; + } + if (role == OMNI_ROLE_CLIENT) { + session = session_alloc(transport); + if (!session) { + peer_transport_close(transport); + return NULL; + } + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = htons(peer_port); + if (!peer_ip || inet_pton(AF_INET, peer_ip, &addr.sin_addr) != 1) { + session_free(session); + peer_transport_close(transport); + errno = EINVAL; + return NULL; + } + session_set_remote(session, &addr, sizeof(addr)); + transport_add_session(transport, session); + transport->client_session = session; + } + break; + case OMNI_PROTO_KCP: + transport->fd = udp_create_socket(bind_ip, bind_port); + if (transport->fd < 0) { + peer_transport_close(transport); + return NULL; + } + if (role == OMNI_ROLE_CLIENT) { + uint32_t conv; + + if (!peer_ip) { + peer_transport_close(transport); + errno = EINVAL; + return NULL; + } + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = htons(peer_port); + if (inet_pton(AF_INET, peer_ip, &addr.sin_addr) != 1) { + peer_transport_close(transport); + errno = EINVAL; + return NULL; + } + + conv = peer_port; + session = kcp_create_session(transport, &addr, sizeof(addr), conv); + if (!session) { + peer_transport_close(transport); + return NULL; + } + transport->client_session = session; + } + break; + default: + peer_transport_close(transport); + errno = EINVAL; + return NULL; + } + + logger_log("INFO", "peer_transport", + "open role=%d proto=%s bind_port=%u peer_ip=%s peer_port=%u", + (int)role, + peer_transport_proto_name(proto), + (unsigned)bind_port, + peer_ip ? peer_ip : "-", + (unsigned)peer_port); + return transport; +} + +void peer_transport_close(PeerTransport *transport) +{ + PeerTransportSession *cur; + PeerTransportSession *next; + + if (!transport) { + return; + } + + cur = transport->sessions; + while (cur) { + next = cur->next; + session_free(cur); + cur = next; + } + + if (transport->fd >= 0) { + close(transport->fd); + } + free(transport->rx_frame); + free(transport); +} + +PeerTransportSession *peer_transport_default_session(PeerTransport *transport) +{ + if (!transport) { + return NULL; + } + return transport->client_session; +} + +int peer_transport_send(PeerTransport *transport, + PeerTransportSession *session, + uint32_t type, + const void *payload, + uint32_t payload_len) +{ + uint8_t *frame; + size_t frame_len = 0; + ssize_t n = -1; + int rc = OMNI_OK; + int raw_rc = 0; + + if (!transport) { + return OMNI_ERR_PARAM; + } + if (!session) { + session = transport->client_session; + } + if (!session || session->closed) { + return OMNI_ERR_IO; + } + + frame = alloc_frame(type, payload, payload_len, &frame_len); + if (!frame) { + return OMNI_ERR_GENERIC; + } + + switch (transport->proto) { + case OMNI_PROTO_TCP: + n = write_n(session->fd, frame, frame_len); + if (n != (ssize_t)frame_len) { + rc = OMNI_ERR_IO; + } + break; + case OMNI_PROTO_UDP: + n = sendto(transport->fd, + frame, + frame_len, + 0, + (struct sockaddr *)&session->addr, + session->addr_len); + if (n != (ssize_t)frame_len) { + rc = OMNI_ERR_IO; + } + break; + case OMNI_PROTO_KCP: + raw_rc = ikcp_send(session->kcp, (const char *)frame, (int)frame_len); + if (raw_rc >= 0) { + kcp_update_session(session); + } else { + rc = OMNI_ERR_IO; + } + break; + default: + rc = OMNI_ERR_PARAM; + break; + } + + if (rc == OMNI_OK) { + peer_transport_note_send(frame_len); + } else { + logger_log("ERROR", "peer_transport", + "send_failed proto=%s type=%u remote=%s:%u raw_rc=%d errno=%d", + peer_transport_proto_name(transport->proto), + (unsigned)type, + session->remote_ip, + (unsigned)session->remote_port, + raw_rc, + errno); + } + free(frame); + return rc; +} + +static int tcp_next_event(PeerTransport *transport, + PeerTransportEvent *event, + uint8_t *payload_buf, + size_t payload_cap, + int timeout_ms) +{ + uint64_t start_ms = omni_now_ms(); + + while (1) { + fd_set rfds; + struct timeval tv; + struct timeval *tv_ptr = NULL; + int maxfd = -1; + int rc; + PeerTransportSession *cur; + + FD_ZERO(&rfds); + if (transport->role == OMNI_ROLE_SERVER && transport->fd >= 0) { + FD_SET(transport->fd, &rfds); + maxfd = transport->fd; + } + for (cur = transport->sessions; cur; cur = cur->next) { + if (cur->closed || cur->fd < 0) { + continue; + } + FD_SET(cur->fd, &rfds); + if (cur->fd > maxfd) { + maxfd = cur->fd; + } + } + + if (maxfd < 0) { + return OMNI_ERR_IO; + } + + if (timeout_ms >= 0) { + uint64_t now_ms = omni_now_ms(); + int remaining = timeout_ms - (int)(now_ms - start_ms); + if (remaining <= 0) { + return 0; + } + tv.tv_sec = remaining / 1000; + tv.tv_usec = (remaining % 1000) * 1000; + tv_ptr = &tv; + } + + rc = select(maxfd + 1, &rfds, NULL, NULL, tv_ptr); + if (rc < 0) { + if (errno == EINTR) { + continue; + } + return OMNI_ERR_IO; + } + if (rc == 0) { + return 0; + } + + if (transport->role == OMNI_ROLE_SERVER && + transport->fd >= 0 && + FD_ISSET(transport->fd, &rfds)) { + (void)tcp_accept_session(transport); + } + + for (cur = transport->sessions; cur; cur = cur->next) { + if (cur->closed || cur->fd < 0) { + continue; + } + if (!FD_ISSET(cur->fd, &rfds)) { + continue; + } + return tcp_read_event(transport, cur, event, payload_buf, payload_cap); + } + } +} + +static int udp_next_event(PeerTransport *transport, + PeerTransportEvent *event, + uint8_t *payload_buf, + size_t payload_cap, + int timeout_ms) +{ + struct sockaddr_in from; + socklen_t from_len = sizeof(from); + ssize_t n; + PeerTransportSession *session; + int rc; + + rc = wait_readable_single_fd(transport->fd, timeout_ms); + if (rc <= 0) { + return rc; + } + + n = recvfrom(transport->fd, + transport->rx_frame, + PEER_TRANSPORT_MAX_FRAME, + 0, + (struct sockaddr *)&from, + &from_len); + if (n < 0) { + if (errno == EINTR) { + return 0; + } + return OMNI_ERR_IO; + } + + if (transport->role == OMNI_ROLE_CLIENT) { + session = transport->client_session; + if (!session) { + return OMNI_ERR_IO; + } + session_set_remote(session, &from, from_len); + } else { + session = find_session_by_addr(transport, &from); + if (!session) { + session = session_alloc(transport); + if (!session) { + return OMNI_ERR_GENERIC; + } + session_set_remote(session, &from, from_len); + transport_add_session(transport, session); + } + } + + return decode_frame_to_event(session, + transport->rx_frame, + (size_t)n, + event, + payload_buf, + payload_cap) == OMNI_OK ? 1 : OMNI_ERR_IO; +} + +static int kcp_next_event(PeerTransport *transport, + PeerTransportEvent *event, + uint8_t *payload_buf, + size_t payload_cap, + int timeout_ms) +{ + uint64_t start_ms = omni_now_ms(); + + while (1) { + PeerTransportSession *cur; + int rc; + + for (cur = transport->sessions; cur; cur = cur->next) { + rc = kcp_try_event(transport, cur, event, payload_buf, payload_cap); + if (rc != 0) { + return rc; + } + } + + if (timeout_ms == 0) { + return 0; + } + if (timeout_ms > 0 && + (int)(omni_now_ms() - start_ms) >= timeout_ms) { + return 0; + } + + rc = kcp_wait_for_io(transport, timeout_ms < 0 ? -1 : + timeout_ms - (int)(omni_now_ms() - start_ms)); + if (rc < 0) { + return rc; + } + if (rc == 0) { + continue; + } + + rc = kcp_pump_packet(transport); + if (rc < 0) { + return rc; + } + } +} + +int peer_transport_next_event(PeerTransport *transport, + PeerTransportEvent *event, + uint8_t *payload_buf, + size_t payload_cap, + int timeout_ms) +{ + if (!transport || !event || !payload_buf) { + return OMNI_ERR_PARAM; + } + + event_reset(event); + switch (transport->proto) { + case OMNI_PROTO_TCP: + return tcp_next_event(transport, event, payload_buf, payload_cap, timeout_ms); + case OMNI_PROTO_UDP: + return udp_next_event(transport, event, payload_buf, payload_cap, timeout_ms); + case OMNI_PROTO_KCP: + return kcp_next_event(transport, event, payload_buf, payload_cap, timeout_ms); + default: + return OMNI_ERR_PARAM; + } +} + +void peer_transport_close_session(PeerTransport *transport, + PeerTransportSession *session) +{ + if (!transport || !session) { + return; + } + transport_remove_session(transport, session); + session_free(session); +} + +const char *peer_transport_session_remote(const PeerTransportSession *session, + char *buf, + size_t buf_sz) +{ + if (!buf || buf_sz == 0) { + return NULL; + } + if (!session) { + snprintf(buf, buf_sz, "unknown:0"); + return buf; + } + snprintf(buf, buf_sz, "%s:%u", + session->remote_ip[0] ? session->remote_ip : "unknown", + (unsigned)session->remote_port); + return buf; +} + +uint16_t peer_transport_session_remote_port(const PeerTransportSession *session) +{ + if (!session) { + return 0; + } + return session->remote_port; +}