如何用Lua编写Wireshark插件解析KCP UDP包及视频RTP包的详细结构?

2026-04-01 19:380阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计278个文字,预计阅读时间需要2分钟。

如何用Lua编写Wireshark插件解析KCP UDP包及视频RTP包的详细结构?

前期时间开发了一个PC端局域网音视频通讯程序,采用开源KCP实现可靠的UDP传输。研究发现,KCP在封装数据包时,会在数据包前面加上它自己的头部。如果数据包较小,KCP可能会将多个数据包合并。

前段时间写了一个PC上局域网音视频通话的程序,使用开源KCP来实现可靠UDP传输。

通过研究发现KCP在发包时,会在数据包前面加上它自己的头。如果数据包较小,KCP可能会把多个数据包合成一个包发送,提高效率。

如下图所示。

kcp udp 包结构
28 bytes 4 bytes 4 bytes len1 28 bytes 4 bytes 4 bytes len2
├────────────┼────────┬────────┼────────┼────────────┼────────┬────────┼────────┤ │kcp header │ size1 │msg type│msg data│kcp header │ size2 │msg type│msg data│ ... └────────────┴────────┴────────┴────────┴────────────┴────────┴────────┴────────┘

size1 = 8 + len1
size2 = 8 + len2

kcp头后面是程序里自定义的数据包结构,由有8字节数据包头和实际发送的数据包组成,8字节数据包头里前4字节是头和数据包的总长度,后4字节是消息类型。

阅读全文

本文共计278个文字,预计阅读时间需要2分钟。

如何用Lua编写Wireshark插件解析KCP UDP包及视频RTP包的详细结构?

前期时间开发了一个PC端局域网音视频通讯程序,采用开源KCP实现可靠的UDP传输。研究发现,KCP在封装数据包时,会在数据包前面加上它自己的头部。如果数据包较小,KCP可能会将多个数据包合并。

前段时间写了一个PC上局域网音视频通话的程序,使用开源KCP来实现可靠UDP传输。

通过研究发现KCP在发包时,会在数据包前面加上它自己的头。如果数据包较小,KCP可能会把多个数据包合成一个包发送,提高效率。

如下图所示。

kcp udp 包结构
28 bytes 4 bytes 4 bytes len1 28 bytes 4 bytes 4 bytes len2
├────────────┼────────┬────────┼────────┼────────────┼────────┬────────┼────────┤ │kcp header │ size1 │msg type│msg data│kcp header │ size2 │msg type│msg data│ ... └────────────┴────────┴────────┴────────┴────────────┴────────┴────────┴────────┘

size1 = 8 + len1
size2 = 8 + len2

kcp头后面是程序里自定义的数据包结构,由有8字节数据包头和实际发送的数据包组成,8字节数据包头里前4字节是头和数据包的总长度,后4字节是消息类型。

阅读全文