网络诊断
功能描述
结合了 traceroute 和 ping 的功能,旨在帮助分析网络问题。在指定时间段内下发命令,返回从本机出发到目标主机的每跳的网络情况,每跳包含信息如下:
当前跳数
当前主机IP地址
本跳丢包率
本跳发包数
本跳收包数
本跳的平均时延
本跳的最佳时延
本跳的最差时延
本跳的时延标准差(波动率)
上报频率:每次在完成诊断任务后立即上报
1. 请求消息
1.1 topic
消息发送方
物联网平台
消息接收方
网关设备
1.2 请求消息payload
mid
stirng
是
消息ID,推荐使用uuid, 请求和应答匹配,用来匹配请求和应答消息和去重
msgTime
string
是
消息发送时间戳,RFC3339标准,例如:1985-04-12T23:20:50.52Z
zone
string
否
设备部署的区域,例如ZONE3
node
string
否
设备部署的节点,例如440000
requestId
string
否
微服务链路追踪用的标识
deviceSn
string
是
设备ESN码,用于唯一标识设备
deviceId
string
否
统一物联网平台分配的设备id,据说可能会重复,不能唯一标识设备
service
string
是
服务名称。这里固定为:diagnostics
cmd
string
是
具体操作方法,这里固定为:networkDiagnostics
params
jsonObject
是
对象内容
params结构体说明
target
必选
string
链路诊断的目标地址支持Ip或者hostname,Hostname需要系统已经配置了dns。推荐使用ip
port
可选
uint6
当诊断使用的tcp或者udp协议时必须要指定。当使用icmp协议时可以不填
duration
必选
string
诊断运行的时间,秒级以s表示,分钟以min表示
protocol
可选
string
ICMP、TCP、UDP默认为ICMP,不支持除此之外的协议
iface
必选
string
网卡名,如eth0(有线)、ppp0(无线)。希望诊断哪个网卡的链路情况。
delayThreshold
可选
number
网络时延阈值,单位ms。默认100ms。
lossPctThreshold
可选
number
丢包率阈值,单位百分比。默认50%。
请求示例
2. 应答消息
2.1 Topic
消息发送方
网关设备
消息接收方
物联网平台
2.2 应答消息payload
mid
string
是
消息ID,用于消息去重。
replyId
string
是
表示响应的是哪条请求指令,为该指令的mid,用来匹配请求和应答
msgTime
string
是
消息发送时间戳,采用RFC3339标准,例如:1985-04-12T23:20:50.52Z。
zone
string
否
设备部署的区域,例如ZONE3
node
string
否
设备部署的节点,例如440000
requestId
string
否
微服务链路追踪用的标识
deviceSn
string
是
设备ESN码,用于唯一标识设备
deviceId
string
否
统一物联网平台分配的设备id,据说可能会重复,不能唯一标识设备
code
uint16
是
标识应答的返回码
批处理请求时,如果所有处理都成功,返回200
如果有部分失败,返回400。
取值如下:
•200:请求成功。
•400:请求消息错误,例如消息格式错误等。
•404:不支持该操作。
•429:请求太多。
•500:服务端内部错误,由应用定义。
body
List<jsonObject>
否
详情
body结构体说明
字段名
必选/可选
类型
参数描述
target
必选
string
链路诊断的目标地址ip
imsi
可选
string
4g模组的Imsi号码。
simId
可选
string
4g模组的sim卡号
rssi
可选
uint32
4g模组的信号强度
bse
可选
uint32
4g模组的通道误码率
hops
必选
List<Hop>
链路中每一跳的详细信息
hop结构体说明
字段名
必选/可选
类型
参数描述
ttl
必选
Uint16
当前跳数
host
必选
string
当前主机ip。
lossPct
必选
number
丢包率
sent
必选
Uint16
发包数
recv
必选
Uint16
收到包的数量
avg
必选
number
当前链路平均时延
best
必选
number
最佳时延
worst
必选
number
最差时延
stddev
必选
number
标准差,代表的是时延的波动率
anomaly
必选
uint16
异常点情况,取值如下 •1:单跳的平均时延超过1000ms •2:单跳的时延波动率超过50% •3:单跳的丢包率超过50% •0:表示正常
应答示例
在下发指令正确的情况,一般响应两次。
最后更新于