![使用 Tshark 解码 LTE RRC 消息 (hexdump)](https://linux22.com/image/139081/%E4%BD%BF%E7%94%A8%20Tshark%20%E8%A7%A3%E7%A0%81%20LTE%20RRC%20%E6%B6%88%E6%81%AF%20(hexdump).png)
我有一个 LTE RRC 消息的十六进制转储,我正在尝试使用 Tshark 对其进行解码,但我无法弄清楚命令行语法。
我正在尝试使用 Wireshark/Tshark 的“用户 DLT”功能来解决这个问题,这似乎是最好/唯一的方法。
这是消息的十六进制转储:
684C424C18432277700C823504640420211108EB5800
我首先text2pcap
使用“User 0 (147) DLT”创建一个 .pcap 文件:
echo 000000 68 4c 42 4c 18 43 22 77 70 0c 82 35 04 64 04 20 21 11 08 eb 58 00 | \
text2pcap -D -l 147 - /tmp/sib.pcap
我认为现在问题就出在这里。我不知道该tshark
命令的正确语法。这就是我所在的地方:
tshark -V -o "uat:user_dlts:\"User 0 (DLT=147)\",\"lte_rrc\",\"0\",\"\",\"0\",\"\"" -r /tmp/sib.pcap
这是我得到的输出:
tshark: Invalid -o flag "uat:user_dlts:\"User 0 (DLT=147)\",\"lte_rrc\",\"0\",\"\",\"0\",\"\""
有任何想法吗?
答案1
我想到了;事实证明我只是在有效负载协议中使用了错误的字符串。我看到它作为一个选项tshark -G protocols
返回lte_rrc
,所以我认为这就足够了,但事实并非如此。我需要指定 LTE RRC 中的特定协议:lte-rrc.bcch.dl.sch
。所以我的完整tshark
命令如下所示:
tshark -V -o "uat:user_dlts:\"User 0 (DLT=147)\",\"lte-rrc.bcch.dl.sch\",\"0\",\"\",\"0\",\"\"" -r /tmp/sib.pcap
不幸的是,到目前为止,我还无法找到可以为该选项指定的可用协议的详尽(甚至接近详尽)列表-o
。
幸运的是,为了我的特定目的,3GPP 协议解码器,来自 http://3gppdecoder.free.fr为我提供了我需要的蜂窝协议列表。显然,这对其他协议没有帮助,但是......一个详尽的列表会很好。