Appearance
Appearance
Wireless Transaction Protocol(WTP)是 WAP Forum(现为 Open Mobile Alliance 的一部分)定义的协议之一。WTP 定义了 3 类 transaction:不可靠的无 Result Invoke(Class 0)、可靠的无 Result Invoke(Class 1),以及带可靠 Result 的可靠 Invoke(Class 2)。
为了实现这些 transaction,存在 3 种基本 PDU 类型:Invoke、Result 和 Ack。在通过 WSP 实现 WAP Push 时,需要 Class 0 和 Class 1 transaction。Class 2 transaction 可以与普通 HTTP transaction 相比较。Class 2 transaction 的 Invoke 可以由 Ack PDU 显式确认,也可以由 Result PDU 隐式确认;Result PDU 必须始终被显式确认。
属于同一 transaction 的不同 WTP packets 共享同一个 Transaction Identifier(TID)。这个 TID 是一个 16-bit 标识符,其中最高位表示方向。每当传输方向反转时(client to server 变成 server to client),该 bit 就会翻转。这样,一个 connection 就可以有多个挂起的 transaction。TID 因此可以看作提供 WTP transaction multiplexing 的一种方式。请注意,两个 endpoint 都必须支持多个未完成的 transaction,而且这通常在 WSP 层协商(maximum outstanding requests)。
如果 WTP Invoke 或 Result PDU 跨越多个 packets,则可以使用一种称为 Segmentation And Reassembly(WTP SAR)的机制,将 payload 拆分到 Segmented Invoke 和 Segmented Result PDUs 中。WTP SAR 还定义了一种 Negative Acknowledgement PDU 类型,用于列出未到达目的地的 WTP segments。
每个 WTP fragment 都用一个 8-bit Packet Sequence Number(PSN)标识,因此 WTP SAR 支持将 payload 拆分到最多 256 个 fragments 中。WTP fragments 以 fragment group 的形式传输,每个 group 包含协商数量的 fragments。一旦发送完一个 group,接收 endpoint 就会为整个 group 发出 cumulative Ack,或者发出带有缺失 fragment(s) 的 PSN 的 Negative Ack。
还存在一种所谓的 Extended WTP SAR,它允许 WTP message fragments 的最大数量大幅增加。
一个包含单个 invoke 和 3 个 result segments 的 WTP SAR transaction 示例为:Invoke、Result (PSN=0)、Segmented Result (PSN=1)、Segmented Result (PSN=2)、Negative Ack (PSN=1)、Segmented Result (PSN=1)、Ack。
当 WTP 与 WSP 结合使用时,WAP 规范将其称为 Connection-Oriented WSP(CO-WSP)。没有 WTP 层时,则形成所谓的 Connection-Less WSP(CL-WSP)协议栈。请注意,此处的 connection 与物理连接无关,仅指 WSP 中的额外功能。
Wireless Transaction Protocol(WTP)起源于 WAP Forum。第一个规范可追溯到 1998 年。如今 WTP 唯一常见的用途是与 WSP 结合使用。
根据协议栈的不同,已经定义了 4 个不同的标准 WDP(UDP)端口。当使用 WTP 时,端口为 9201(无 bearer-level security)和 9203(有 bearer-level security)。WTP 的存在意味着 WSP 变体是 CO-WSP。WSP 也可以运行在其他端口上。
WTLS:WTP 使用 WTLS 作为其(可选的)bearer-level security 协议。用于安全 connection-oriented WSP(WSP over WTP over WTLS)的知名 WDP(UDP)端口是 9203。
UDP:WTP 在 IP 网络上使用 UDP 作为其 transport protocol。用于 WTP 流量的知名 WDP(UDP)端口是 9201,用于不安全的 connection-oriented WSP(WSP over WTP)。
WDP:WTP 在非 IP 网络(例如 GSM SMS)上使用 WDP 作为其 transport protocol。
XXX - 在此添加示例流量(作为纯文本或 Wireshark 截图)。
WTP dissector 几乎功能完整;并非所有 TPIs 都会被解析,Extended SAR 也不会。
(XXX 添加指向影响 WTP 解析方式的首选项设置的链接)。
XXX - 添加一个简单的示例捕获文件。保持简短,将其 gzip 压缩以进一步缩小体积也是一个好主意,因为 Wireshark 可以自动打开 gzip 压缩文件。
完整的 WTLS display filter fields 列表可以在 display filter reference 中找到
只显示基于 WTP 的流量:
wtp你无法在捕获时直接过滤 WTP packets。不过,如果你知道所使用的 transport bearer(WDP(UDP)端口)(见上文),可以对它进行过滤。
导入自 https://wiki.wireshark.org/Wireless_Transaction_Protocol,时间为 2020-08-11 23:27:34 UTC