2

我想使用 tshark 来过滤和处理直径消息。在我的捕获中,我看到一个 TCP 标头中有三个直径消息。我的用例要求我在直径消息中搜索 Result-Code。根据直径规范,可以在单个直径消息中包含多个结果代码。直径消息中也可能没有结果代码。

由于这个原因,如果我得到三个直径消息的结果代码为 A、B、C,我无法识别哪个结果代码属于哪个直径消息。

是否可以应用一些插件/功能来帮助我拆分三个直径消息?

我可以看到在https://ask.wireshark.org/questions/4291/multiple-occurrences-filter-for-diameter中有一个类似主题的旧链,但没有关于如何完成的答案。

4

2 回答 2

0

我会在这方面支持 Rajeev。在分析大量直径消息时,在单个 TCP 有效负载中管理合并的直径消息变得难以处理。

例子:

tshark -Tfields -e diameter.Session-Id -e diameter.Result-Code -e diameter.CC-Total-Octets -r mydiametercap.pcap -Y "diameter.Result-Code" > session-ids-and-results.txt

这个命令有时会给我这个(抽象的)输出:

<session-id-1>,<session-id-2>,<session-id-3><tab><many result codes (sometimes 3 per message)><tab><one value of total octets>

我不能相信所有字段都遵循相同的约定,因此不能使用可靠的解析算法来查看结果。当您认为 AVP(在此直径实现中以非常扁平的方式解释)可能属于 MSCC 部分或完全不同的部分时,情况会更糟,并且没有任何东西可以将它们分开。

不要误会我的意思:tshark 规则... :-) 只是想让它变得更好。

于 2016-06-17T04:02:43.337 回答
0

首先,您对结果代码的假设是错误的。

根据 RFC 6733(3588 也一样):

7.1。结果代码 AVP

结果代码 AVP(AVP 代码 268)是 Unsigned32 类型,
指示特定请求是成功完成还是
发生错误。IETF 定义的
Diameter 应用规范中的所有 Diameter 应答消息必须包含一个 Result-Code AVP

如果您将使用wireshark,您将能够单独查看每个答案,并且您将能够轻松查看每个答案属于哪个AVP

于 2015-11-10T09:08:11.277 回答