Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

Wireless_Transaction_Protocol

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 截图)。

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

原始页面图片

WapProtocolFamily/WAP_Transport_Protocol_Stacks.jpg
WapProtocolFamily/WAP_Transport_Protocol_Stacks.jpg

相关 Wireshark Wiki 页面

网络分析技术档案