加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用Lua编写Wireshark插件解析KCP UDP包,解析视频RTP包

发布时间:2020-12-14 21:45:26 所属栏目:大数据 来源:网络整理
导读:?前段时间写了一个PC上局域网音视频通话的程序,使用开源?KCP?来实现可靠UDP传输。 通过研究发现KCP在发包时,会在数据包前面加上它自己的头。如果数据包较小,KCP可能会把多个数据包合成一个包发送,提高效率。 如下图所示。 kcp udp 包结构 28 bytes 4 byt

?前段时间写了一个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字节是消息类型。

查看kcp代码,由下面两个函数确定kcp头的结构

?

发送视频包时,直接以rtp视频包作为数据,程序里视频包的msg type值为4738。

下面以视频包为例写一个Wireshark kcp 解析器插件,最终效果图如下:

抓包文件和代码 微云 网盘地址:https://share.weiyun.com/5umD1au

?

未完待续...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读