设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 2567|回复: 3
收起左侧

[分享] TWAMP报文格式

[复制链接]
 成长值: 59575
发表于 2017-11-29 14:08:02 | 显示全部楼层 |阅读模式
网络协议报文格式大全
http://bbs.hh010.com/thread-531884-1-1.html
(出处: 鸿鹄论坛)


TWAMP报文格式
TWAMP:Two-way Active Measurement Protocol(TWAMP),双向测量协议,用于对丢包、时延和抖动等进行性能监控。
TWAMP是基于TCP连接进行协商和利用UDP报文进行测量。TWAMP的端口号可配置。
TWAMP工作时序图

                               
登录/注册后可看大图

TWAMP控制报文格式图1 Server Greeting消息格式

                               
登录/注册后可看大图



字段长度描述
Modes4 bytes
  • 1:不认证
  • 2 :认证
  • 4:加密
如果值为0,表示服务器不希望和客户端交互,可能会立刻关闭连接。
Challenge16 bytes服务器生成的随机数,用于接收者对共享秘钥的处理中。
Salt16 bytes用于从共享秘钥中提出秘钥的一个参数。
Count4 bytes用于从共享秘钥中提出秘钥的一个参数,2的次幂
MBZ12 bytes置0,接收时忽略。

图2 Set-Up-Response消息格式

                               
登录/注册后可看大图



字段长度描述
Modes4 bytes认证模式
KeyID80 bytes用于认证或加密模式中。不认证模式中,不使用此字段。
Token64 bytes用于认证或加密模式中。不认证模式中,不使用此字段。
Client-IV16 bytes用于认证或加密模式中。不认证模式中,不使用此字段。

图3 Server Start消息格式

                               
登录/注册后可看大图



字段长度描述
MBZ15 bytes置0,接收时忽略。
Accept1 byte表示服务器意愿继续交互,0表示服务器接受认证,愿意后续交互。非0表示服务器不接受认证。
Server-IV16 bytesServer-IV是服务器随机产生的,Server-IV不用于不认证模式。
Start-Time8 bytes时间戳,代表服务器当前操作开始的时间。
MBZ8 bytes置0,接收时忽略。

图4 Request TW-Session消息格式

                               
登录/注册后可看大图



字段长度描述
MBZ4 bits置0,接收时忽略。
IPVN4 bits发送和接收者的IP版本号,当前有效值为4或6。
Conf-Sender1 byte客户端设置为0或1。服务器将所有非0值解析为1。如果值为1,表示要求服务器配置对应的代理。
Conf-Receiver1 byte客户端设置为0或1。服务器将所有非0值解析为1。如果值为1,表示要求服务器配置对应的代理。
Number of Schedule Slots4 bytes表示在两块HMAC之间的槽位记录数量,发送者用来确认发送测试报文的时间。
Number of Packets4 bytes在TWAMP测试会话中发送的主动测量报文的数量。
Sender Port2 bytes如果Conf-Receive不置位,发送端口是指发送TWAMP测试报文的UDP端口。
Receiver Port2 bytes如果Conf-Receive不置位,接收端口是指接收TWAMP测试报文的UDP端口。
Sender Address4 bytesTWAMP测试会话的发送者IP地址。
Receiver Address4 bytesTWAMP测试会话的接收者IP地址。
SID16 bytes会话ID,只有Conf-Receiver为0才有意义。
Padding Length4 bytes普通TWAMP测试报文的Padding字节数。
Start Time8 bytes会话发起的时间。格式与TWAMP-Test的时间戳相同。
Timeout8 bytes超时或时延阈值,时间戳格式。
Type-P Descriptor4 bytes
前两比特如果为00,后面6个比特指定了发送的TWAMP测试报文的DSCP值(RFC2474定义的DSCP)。
前两比特如果为01,后面16个比特标识要求的PHB Identification Code (PHB ID)(RFC2836定义的)。
MBZ8 bytes置0,接收时忽略。
HMAC16 bytesTWAMP使用的HMAC是HMAC-SHA1,128比特,所以HMAC字段为16字节。

图5 Accept Session消息格式

                               
登录/注册后可看大图



字段长度描述
Accept1 byte表示服务器意愿继续交互,0表示服务器接受认证,愿意后续交互。非0表示服务器不接受认证。
MBZ1 byte置0,接收时忽略。
Port2 bytes回应消息中Port的含义取决于请求消息中的Conf-Sender和Conf-Receiver的值。如果两者都置位,则Port字段是不使用的。如果只是Conf-Sender置位,则Port表示接受TWAMP-Test报文的端口。如果只是Conf-Receiver置位,Port表示TWAMP-Test报文发送的端口。
SID16 bytes如果只发送了Conf-Sender,回应消息里的SID字段是不使用的。否则,SID唯一标识一个会话。
MBZ12 bytes置0,接收时忽略。
HMAC16 bytesTWAMP使用的HMAC是HMAC-SHA1,128比特,所以HMAC字段为16字节。

图6 Start Session消息格式

                               
登录/注册后可看大图

图7 Start ACK消息格式

                               
登录/注册后可看大图



字段长度描述
Accept1 byte如果是非0值,Start-Sessions请求将被拒绝。0表示接受。
MBZ15 bytes置0,接收时忽略。
HMAC16 bytesTWAMP使用的HMAC是HMAC-SHA1,128比特,所以HMAC字段为16字节。

图8 Stop Session消息格式

                               
登录/注册后可看大图



字段长度描述
Accept1 byte如果是非0值,表示故障,0表示正常。
MBZ2 bytes置0,接收时忽略。
Number of Sessions4 bytes表示Control-Client即将停止的会话的数量。
MBZ8 bytes置0,接收时忽略。
HMAC16 bytesTWAMP使用的HMAC是HMAC-SHA1,128比特,所以HMAC字段为16字节。


TWAMP测量报文的格式图9 Sender-test

                               
登录/注册后可看大图

图10 Reflector test

                               
登录/注册后可看大图



字段含义
Sequence Number根据传输顺序生成的报文序列号。从0开始并逐包增加,每个报文分配一个序号。Session-Reflector生成的报文序列号与到达的报文的序列号无关。
MBZ必须填为0,客户端忽略此字段。
Timestamp
时间戳字段表示Session-Reflector反射的检测报文所打上的传输时间戳。其定义和格式请参见OWAMP标准[RFC4656]的第4.1.2章节。
时间戳的格式与OWAMP [RFC4656]标准定义的时间戳格式相同,如下:
图11 时间戳字段的格式

                               
登录/注册后可看大图

与RFC1305标准定义的时间戳格式相同,前32比特表示从1900年1月1日0时至今的秒数的整数部分,后32比特表示小数部分。
Error Estimate
错误检测字段表示Session-Reflector反射的错误检测,其定义和格式请参见OWAMP标准[RFC4656]的第4.1.2章节。
错误检测字段指定了错误的检测和同步。其格式如下:
图12 Error Estimate字段格式

                               
登录/注册后可看大图

  • S:如果产生时间戳的设备的时钟与使用外部源的UTC同步,则S位置1。例如,如果使用GPS硬件,此比特必须置位,表示需要时钟源的当前位置和时间,或者使用了NTP,此比特也必须置位,表示与外部时钟源同步。如果没有外部时钟源同步需求,则此比特置0。
  • Z:与MBZ字段相同,必须置0,接收端忽略此字段。
  • Scale和 Multiplier字段都是无符号整数,Error Estimate = Multiplier*2^(-32)*2^Scale,单位是秒。Multiplier字段不能为0,如果为0,表示为错误报文必须被丢弃。
Sender Timestamp和 Sender Error Estimate这两个字段是从Session-Sender的检测报文的对应字段里复制过来的。
Sender TTLSession-Sender发送的检测报文的Sender TTL设置为255。Session-Reflector发送的检测报文里的Sender TTL设置为IP报文头的TTL值。
Receive Timestamp表示Session-Reflector接收到检测报文的时间。
Sender Sequence Number发送序列号是从Session-Sender发送的报文的序列号复制的。
HMACTWAMP测量报文的HMAC字段包含了AES(Advanced Encryption Standard)加密的字段,所以在认证模式下,HMAC包含了第1个块(16字节)。在加密模式下,HMAC包含了前6个块(96字节)。TWAMP测量报文中,HMAC字段不能被加密。
Packet Padding
TWAMP测量报文的报文填充字段。该字段不能被加密。
TWAMP测量报文的数据段在非认证模式时最小长度为41字节,认证模式或加密模式下最小长度为104字节。


参考标准
标准描述
RFC 5357Two-Way Active Measurement Protocol
RFC 4656A One-way Active Measurement Protocol (OWAMP)





发表于 2020-2-2 21:21:10 | 显示全部楼层
ddddddddddddddd
地板 2020-2-2 21:21:10 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-5-23 00:08 , Processed in 0.055579 second(s), 9 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表