工作台
当前:跟随系统
潮汐 Tidal · 在线网络工具箱

测网速、查延迟、看局域网里谁在线上
打开网页就能用

不用安装任何东西。手机、平板、电脑打开同一个网址, 就能测延迟与丢包、跑带宽测试,看看局域网里有哪些设备在线。

立即免费使用

以下功能无需登录,打开即用

看这个项目是怎么做的

架构、代码与实验记录

无需安装客户端 手机 / 平板 / 电脑同一网址 当前延迟 -- ms 数据来自服务器实时探测
技术详情
Reactor 运行中 · epoll LT · 2 workers HTTP :8080 HTTPS :443 · Let's Encrypt 证书 keep-alive 60s
LOCAL TELEMETRY / CONNECTING

网络运行态势

所有数字均来自服务器实时探测,每 15 秒刷新一次,刷新时间与数据来源标注在本卡片底部。

活跃连接--
引擎运行时长--
累计请求--
探测目标健康度
--
正在同步
等待本地接口响应
以下为 基准测试结果 · 2026-09-19,服务器单机实测,不是当前实时指标。
并发连接稳定
0+
峰值吞吐
0 req/s
P99 延迟
0 ms
测试通过
0/6

最近任务

诊断任务自动归档 · 本地保存最近 50 条

还没有诊断任务。开始一次检测,系统会自动生成报告和证据链。

连通性测试

发送 /ping 请求,测量往返延迟

点击按钮开始测试

服务健康

运行时长、连接数、总请求数

客户端信息

你的公网出口 IP、端口和请求头

下载测速

下载 2 MiB 数据,计算带宽

上传测速

上传 1 MiB 数据,计算带宽

请求头回显

查看服务器收到的 Header

目标探测

服务器主动探测目标主机可达性

输入目标后开始探测

宽带测速

延迟抖动 → 下载 → 上传,实时仪表盘;测量浏览器与本机服务器之间的真实吞吐

0.00
Mbps
点击下方按钮开始
⬇ 下载速率
⬆ 上传速率
⏱ 延迟(RTT)
〰 抖动(Jitter)
当前连接信息
历史记录(本机保存最近 10 次)
测速完成后自动记录
说明:测速结果为浏览器 ↔ 本服务器之间的吞吐,受本机网络栈限制。 若部署到公网服务器,则测得的是你到该服务器的真实网速。下载大小 2 MiB,上传大小 1 MiB。 目标探测由服务器以非阻塞 connect + poll 发起(worker 线程执行,超时默认 3s),可探测任意 host:port。

主机视角

哪台设备登录,哪台就是主机(不限于电脑);登录后可查看已配对设备并生成配对码

未登录

本机上报(自动)

打开本页即已自动开始心跳,无需任何操作;改个名字立即生效

未开启自动上报 —— 点击右侧按钮开始

我管理的主机组(下属设备)

你是主机:可看到所有绑定到你名下的设备 · 每 3 秒刷新
我管理的主机组(下属设备)
设备名称 IP 地址 MAC 地址 网络延迟 登录地址 网速 状态 最后心跳 操作

我加入的上级主机组

你是成员:只能看到主机与你自己 · 可随时退出该组
我加入的上级主机组
角色 设备名称 IP 地址 MAC 地址 网络延迟 登录地址 网速 状态 最后心跳 操作
配对机制(保持不变):① 任何设备都可点「生成设备配对码」,它就成为主机,得到一个 6 位一次性码(5 分钟有效); ② 其他设备点「输入配对码加入上级主机组」,输入码即绑定到该主机名下,此后自动心跳上报; ③ 主机可随时「移除」下属设备,设备也可自行「退出上级组」。
层级与可见性:主机本身也可以加入别的主机组,两个身份互不影响,分两个板块显示。 主机能看到自己名下全部下级(含下级的下级);成员只能看到主机和自己。
字段来源:名称可自定义;IP 为连接对端地址;MAC 从服务器 ARP 表实时查询(对方近期无通信时可能查不到); 网络延迟为浏览器请求 RTT;登录地址为设备访问本系统的网址;网速取自该设备在「宽带测速」里的最近一次真实结果(未测速则显示未测速)。 注册表保存在服务器内存,服务重启后需重新配对。

局域网设备(自动发现)

类似家用路由器的"已连接设备"页 · 无需其他设备安装或上报
这是什么?主机登录后,服务器读取本机的 ARP 表(WSL2 下同时读取 Windows 的 arp.exe -a,两者是同一个局域网的视角),再对所在网段做一轮并发 ping 扫描, 让沉默的设备也进入 ARP 缓存。结果列出最近与网络通信过的设备:IP、MAC、厂商(OUI 识别)、主机名(尽力反解)。 手机随机化 MAC、路由器开启 AP 隔离、或网段较大时可能发现不全——这是真实网络的物理限制,不是程序错误。
权限与使用范围:此操作由服务器发起网络探测(ARP 读取 + ICMP ping 扫描)。 仅对你拥有管理权限的网络使用,未经授权扫描他人网络可能违反法律法规。
🔒 该功能需要主机管理权限(设备监控 / 局域网扫描 / 性能测试),请先登录主机视角。
需要主机登录 · 扫描约需 5–30 秒
局域网设备(自动发现)
IP 地址 MAC 地址 厂商 主机名 标记 来源
登录主机视角后可扫描

目标监控状态

C++ Scheduler 周期检测 · 每 5 秒自动刷新
这是什么?服务器每 5 秒主动"敲门"检查一批公共服务的连通性: Ping 检测网络可达(223.5.5.5 是阿里公共 DNS)、TCP 检查端口是否开放、HTTP(S) 检查网站是否正常响应。 ONLINE = 正常 · OFFLINE = 对方拒绝连接 · TIMEOUT = 无响应。 目标分三组:核心目标计入首页健康度总分;本机可选自检(如容器内 HTTPS—— 容器部署时 TLS 由前置 Nginx 终结,8443 本就不监听)显示「未启用」不标红; fault-probe 是故意保留的演示故障探针(端口上恒无服务),显示「✓ 预期离线」, 与真实故障严格区分,不计入健康度。
目标监控状态
目标类型状态延迟 详情 / 错误最后检测

历史统计

检测次数 / 成功失败 / 失败率 / 延迟分布(内存保留最近 120 条)
历史统计
目标检测成功失败 失败率最小平均最大

服务器连接明细

每连接 IP/端口/时长/收发流量/请求数
服务器连接明细
#ID客户端时长RX TX请求数类型状态

网卡与 TCP 状态

实时读取 /proc/net/dev 与 /proc/net/tcp

网卡流量

TCP 状态

说明:目标列表由 config/targets.json 配置(type 支持 ping / tcp / http(s)), Scheduler 线程每 interval 秒把全部目标并发提交到线程池检测(支持 timeout 与 retry), 核心检测逻辑全部由 C++ 完成。ping 使用 ICMP(/bin/ping 子进程);tcp 为非阻塞 connect + poll; http/https 走真实 DNS → TCP → TLS 握手 → HTTP 请求链路并分段计时。
🔒 性能实测需要主机管理权限(需先创建主机视角并登录)。
尚未测试 —— 登录主机视角后点击按钮发起第一次实测(约 30 秒),本页不预留任何结果
这张表在测什么?用压测脚本 scripts/benchmark.py 在服务器本机启动一个压测客户端, 以 16 个并发连接持续 5 秒反复请求同一个静态文件,然后统计服务器在 5 种并发模型下的表现。 请求走本机回环(127.0.0.1,不经过外部网络),所以它衡量的是服务器软件自身的调度与 I/O 开销, 而不是你家宽带的速度。

每一列的含义: Requests = 5 秒内完成的总请求数; RPS = 每秒完成的请求数(吞吐量,越高越好); 平均 / P95 / P99 (ms) = 请求耗时。平均是"一般感受",P95/P99 是"最差的 5%/1% 请求也不慢于多少毫秒"—— P99 更能暴露卡顿:平均值很低但 P99 很高,说明偶发掉队; CPU % = 压测期间服务器进程平均占用一个核的百分比; RSS KB = 进程峰值内存占用。

五行模式的区别: epoll LT / ET 是两种事件通知方式:LT(水平触发,默认)"没处理完会一直提醒",稳妥; ET(边缘触发)"只在状态变化时提醒一次",代码必须一次把数据读写完,理论上更省系统调用; 0 workers 表示不用线程池,Reactor 单线程亲自读文件、拼响应(同步基线); 1 / 2 workers 把文件读取和响应拼装交给线程池,Reactor 专职收发事件; keep-alive 表示一个连接可以连续发多个请求,省去每个请求一次的 TCP 三次握手。

怎么读这张表:重点看三组对比—— ① 0 workers → 2 workers:线程池带来的吞吐提升; ② LT → ET:事件模型差异在本机场景下是否明显; ③ 短连接 → keep-alive:连接复用省掉握手的收益(延迟通常显著下降)。 每台机器的绝对数值不同(CPU、文件大小都会影响),但相对趋势在任何机器上是一致的。
已实现能力
模式 Requests RPS 平均 ms P95 ms P99 ms CPU % RSS KB
尚无测试结果
点击上方「在当前主机开始实测」,服务器才会真实压测并回传第一批数据
测试脚本为 scripts/benchmark.py,仅使用 Python 标准库。 短连接模式每次请求新建 TCP 连接;keep-alive 模式每个客户端复用一条连接。 固定 5 秒、并发 16,服务器单独运行,五行数据来自同环境同批次实测。 数据为 WSL2 本地单次快照,非生产容量承诺。

资产与链路

你的设备(浏览器侧采集) · 云机硬件资产 · 物理链路状态 · 一键链路排障 ☁️ 云机数据

你这台设备

由你的浏览器主动采集并上报 · 需你先授权 · 可随时撤回并删除 👤 你的设备

主机硬件读取

CPU、内存、内核、网卡与 ARP 邻居

点击按钮读取

物理链路状态

插网线即测 · 网卡 carrier / 速率 / 双工 · /api/links

物理链路检测

读取所有网卡的 carrier(是否插线)、协商速率、双工模式

点击按钮读取所有网卡链路状态
物理链路检测
接口类型Carrier 速率双工状态MTU
点击按钮开始检测

一键链路诊断

网卡 → 网关 → 外网,逐段定位故障

自动链路排查

按顺序检查网卡状态、网关连通、外网可达

点击按钮开始
说明:硬件数据来自服务器宿主机真实系统文件—— CPU 型号与核心数来自 /proc/cpuinfo,内存来自 /proc/meminfo, 网卡名称/MAC/状态来自 /sys/class/net,ARP 邻居与默认网关来自 /proc/net/arp/proc/net/route。 物理链路读取 /sys/class/net/<网卡>/carrier(1=链路建立,0=未插线)。 链路诊断按「分段定位,先近后远」思路:① 网卡与路由 → ② 默认网关 → ③ 公网 DNS,三步逐段定位。

设备接入

两条真实接入路径:网络设备管理通道 · 计算节点 Agent;不做模拟接入

路径一 · 网络设备管理通道

用网线连通交换机/路由器的管理 IP,抓 SSH(22)/Telnet(23) 横幅识别厂商

输入管理 IP 后开始探测

路径二 · 计算节点 Agent 接入

Agent 通过 --connect-type 指定接入方式;每 5 秒从 Collector 实时同步在线状态
仅用于生成下方启动命令,不会自动启动 Agent
注意:仅仅打开本页面不算接入。计算节点必须真实启动 Agent 并在 Collector(9090)注册成功, 对应接入方式卡片才会亮起绿点并列出节点;在线节点达到 ≥1 后,左侧「跨层监控平台」才可点击进入。

RDMA 高速网络 · InfiniBand / RoCE

GPU 集合通信底座 · 点击检测本机 RDMA 设备(读取 /sys/class/infiniband) ☁️ 云机数据

RDMA 设备检测

检测 InfiniBand HCA / RoCE 网卡、端口链路层与速率(真实 sysfs 读取)

点击检测本机是否有 InfiniBand HCA 或 RoCE 网卡
RDMA 是什么:远程直接内存访问——网卡把数据直接写进远端应用的内存,绕过 CPU 与内核协议栈(kernel bypass),零拷贝、微秒级延迟。 InfiniBand 是原生 IB 网络(HCA + IB 交换机),天生无损; RoCEv2 让 RDMA 跑在 UDP/IP/以太网上,需要无损以太网配套:PFC 优先级流控 + ECN/DCQCN 拥塞控制(RoCEv1 不可路由,已少见)。 AIDC 为什么关心:多机训练的 All-Reduce / All-Gather 走 RDMA,网络抖动会直接表现为 GPU 利用率掉下去。

🖥️ 本机自检(这不是集群节点接入)

只想看这台电脑自己的 CPU / 内存 / 网卡 / GPU 情况,请使用「资产与链路」。 该操作仅读本台主机,不会注册为 AIDC 集群节点,也不会出现在上方接入方式里。

识别原理:路径一由服务器对目标设备的 22(SSH)与 23(Telnet)管理端口发起真实 TCP 连接, 抓取登录横幅(banner)并按特征识别厂商——华为 VRP、H3C Comware、Cisco IOS、Juniper、OpenSSH/Dropbear 等, 无需账号密码,也不改动设备配置。完整 SSH 命令行管理(批量下发配置、采集运行状态)需引入 libssh,属于后续 AIDC 阶段计划。

DC-Lab 数据中心网络 · 学习档案

Spine-Leaf → EVPN 控制面 → 多租户 IRB · 内容实时读取自知识库

自主学习成果总览

10 个阶段 · 167 项实测断言全部通过 · 每阶段含概念/命令/实测/报文证据

AIDC 网络工程师知识体系

13 大分支 · 涵盖 DC-Lab 基础 + AIDC 全链路(RDMA / InfiniBand / RoCE / 无损网络 / GPU 互联 / 集合通信 / 集群设计 / 监控调优)· 点击节点查看「必须理解 / 必须观察 / 必须验证」四列表

点击左侧知识节点查看详细要求。

学习过程

十个阶段依次在解决什么问题 · 点击任意节点展开下方对应阶段档案

学习文稿

Markdown 原文 · 点击在页内直接排版阅览
更多学习文稿持续整理中:后续以 Markdown 提供的学习笔记,会经梳理串通后加入此处, 并配以时间轴与动态示意,保持「读得下去、能跟着做」的阅读体验。

报文证据索引

captures/ 下全部抓包 · 点击下载后用 Wireshark 打开
报文证据索引
文件阶段 / 内容操作
evpn.pcapEVPN 路由协议报文下载 pcap
vxlan.pcapVXLAN 封装与租户数据下载 pcap
p8_bgp.pcap阶段 8 · BGP 报文下载 pcap
p8_evpn.pcap阶段 8 · EVPN 报文下载 pcap
p8_ospf.pcap阶段 8 · OSPF 报文下载 pcap
p8_data.pcap阶段 8 · 数据面报文下载 pcap

VXLAN / EVPN 实测分镜

动画是已有软件实验 pcap 的教学索引;只有“证据”链接与原始命令可作为实测依据
验收边界:本分镜使用 WSL2 + Linux namespace + FRRouting 实验拓扑,不代表已在物理交换机生产网验证。控制面路由存在是数据面可转发的前提,不等于单独证明每一条业务流已成功。

阶段档案

展开查看每阶段的概念 / 命令 / 实测观察 / 报文结构

AIDC 动画演示专区

RDMA 通信 · RoCEv2 封装 · AllReduce Ring · PFC/ECN 拥塞控制 · 逐帧动画 + SVG 拓扑演示
专区说明:以下动画演示用于理解 AIDC 网络的核心流程——从 GPU 显存到远端内存的完整路径、 RoCEv2 帧的逐层封装、AllReduce Ring 算法的梯度同步过程、以及 PFC/ECN 拥塞控制闭环。 每个流程都有 SVG 动态拓扑图和逐帧讲解,点击步骤切换帧。

光链路 · 硬件热插排错

插入光模块 / 光网线即自动识别 · 数据来自 /sys/class/net 与 ethtool EEPROM
实时监测中 轮询间隔 3s

✅ 本页「光链路」管的范围

主机网卡口 ↔ 对端交换机 / 路由器之间的那一段物理连接:光纤(SFP/QSFP 光模块 + 双芯光纤)或电口(RJ45 双绞线)。
验证的是:模块插没插、光功率正不正常、速率协没协商、VLAN 通不通、到网关这一跳活没活 —— 即「线插进去以后,这一跳是否成立」。

⚠️ 不要与 AIDC 页搞混

AIDC「设备接入」走的是管理通道:用网线连通交换机/路由器的管理 IP,再从上层 SSH/扫描去管理整组数据中心设备。
简单记:本页看「这根光纤/网线本身」,AIDC 看「接上线之后去管理谁」。两处一个向下看物理跳、一个向上做管理面。

如何把链路接进来测试

先明确监测对象:本页监测的是运行潮汐服务的那台主机上的网络接口。 物理 Linux 主机上是真实的 RJ45 / SFP 口;在 WSL2 中运行时看到的是映射的虚拟网卡, 能反映链路 UP/DOWN 与速率,但读不到真实光模块信息。

场景一:插一根电口网线(双绞线)

  1. 准备:主机的 RJ45 网卡、一根完好的双绞线,对端可以是交换机口、家用路由器或另一台电脑。
  2. 插入:水晶头对准卡口推入,听到「咔哒」一声即锁定,两端都要插紧。
  3. 看结果:3 秒内事件日志出现链路 UP;对应接口状态变绿,速率显示协商结果(如 1000 Mb/s)、双工为 full;网卡指示灯同步亮起。
  4. 没 UP 怎么办:依次检查对端口是否启用、水晶头是否压好、线缆是否插紧。现代网卡支持 Auto-MDIX,直通 / 交叉线一般都能自适应。
  5. 拔出:按住水晶头弹片再拔;事件日志会记录链路 DOWN。

场景二:把主机接到一台交换机

  1. 物理拓扑:主机网卡 → 交换机任意业务口(不是管理口也可以,业务口负责承载流量)。插好后先在本页确认物理层 UP、速率与对端口匹配。
  2. 识别设备:切到 AIDC「设备接入」,输入交换机管理 IP(主机必须能路由到该管理网段),通过 SSH/Telnet 横幅识别厂商型号,无需账号密码。
  3. 验证连通:切到「链路诊断」执行一键排查,按 网卡 → 网关 → 外网 逐段确认。
物理口 UP 但业务不通,最常见原因是交换机口的 VLAN 配置不匹配(access VLAN 不一致、 该配 trunk 的配成 access 等)。本页能验证物理与 IP 层,VLAN / 端口配置需要登录交换机核对。

场景三:接入集成组网(多设备、多链路)

  1. 逐台接入:按场景二的方式先识别每一台交换机,确认厂商与管理可达。
  2. 逐链验证:每插好一条线,先在本页事件日志确认 UP 再插下一条——一次只变动一条链路,出问题时才能准确定位。
  3. 端到端验证:全部接完后用「链路诊断」逐段检查;跨设备的路由、VXLAN 隧道与 EVPN 属于配置面,可在「学习档案」中对照概念与命令。
  4. 变更留痕:拔线、换口都会实时写入事件日志,排障时按时间顺序回看即可。

场景四:光模块与光纤(仅物理主机)

  1. 前提条件:裸金属 Linux 主机、网卡带 SFP / SFP+ 笼、光模块规格与口速率匹配(如 10GbE 口配 SFP+)、网卡驱动支持 EEPROM 读取。
  2. 插入模块:去掉模块防尘帽,模块卡扣朝外、金手指朝下推入 SFP 笼,按到底直到锁定。
  3. 接入光纤:拔去光纤头防尘帽,LC 双芯按 TX / RX 对应插入(收发接反则链路不亮),对端同样接好。
  4. 看结果:页面出现光模块卡片,显示 present、协商速率与 DDM 数字诊断(收 / 发光功率、温度、电压、偏置电流);事件日志记录模块接入与链路 UP。
  5. 异常判断:接收光功率过低或为 0 → 对端发光异常、链路衰耗过大或 TX/RX 接反;完全无光 → 光纤未插紧或断纤。
  6. 拔出顺序:先拔光纤,再掰开模块卡扣取下模块,最后盖回防尘帽。光模块支持热插拔,但应避免频繁拔插。
在当前 WSL2 环境中无法验证光模块分支;把服务部署到带 SFP 笼的物理 Linux 主机后, 以上模块卡与 DDM 数据才会出现。此处不使用任何模拟光模块数据。
教学 教学演示台 · 链路故障分层定位 预置正常 / 故障场景,随时播放;纯教学演示,不产生任何真实探测流量 TD-00000000-0000 未开始
1模块在位
2光功率
3速率协商
4VLAN
5MAC 表
6STP
7LACP
8ARP
9直连路由
10动态路由
11MTU
12TCP/TLS
13DNS/HTTP
点击上方场景按钮开始演示;小兔子代表一个数据包,光点表示链路上的数据流,沿 模块→光纤→接入交换→Trunk→网关→路由 逐跳到达服务器 B。
点击一个场景开始;演示到的每一步都会在这里用白话解释「这步在查什么、为什么能 / 不能过」。
实测 实机测试台 · 当前主机真实链路体检 仅在检测到真实物理链路 UP 后才可开始;点击后逐项实测,报告直接固定在本位置
🔒 等待真实链路接入

本测试台只对真实物理链路开放。请在本机网卡插入光纤 / 网线并使链路 UP(可看上方面板的实时状态);
检测到 UP 的物理接口后会自动解锁。这里不提供任何模拟选项,也不做教学演示。

物理接口与光模块

全部链路

名称 / 状态 / 速率 / 双工 / MAC
全部链路
接口类型链路速率双工MAC

事件日志

接入 / 拔出 / 链路建立断开 / 光模块变化

等待硬件事件…

潮汐 Tidal · 由纯手写 C++ epoll Reactor 直接返回 · 无外部前端依赖
Linux High-Performance Network Engine · C++17 / epoll / OpenSSL / TLS