wireshark在流媒体分析中常见操作

news2025/2/23 13:50:00

Wireshark

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
在流媒体相关工作中,涉及最多的流媒体交互协议分析、音视频流封装协议缝隙以及解封装处理,这些工作都离不了Wireshark工具。这里总结本人在工作中Wireshark常见操作,以备不时之需。
本文所有操作都是基于Win10 Wireshark 3.6.1
Wireshark界面

过滤表达式

属性与值之间使用 ==,属性值对之间使用逻辑and or等关联

  • ip.src 源ip
  • ip.dst目标ip
  • ip.addrip
  • udp.srcport udp源端口
  • udp.dstport udp目的端口
  • udp.portudp端口

这里简单介绍这些,对于抓包在linux环境,主流的还是tcpdump,通常使用tcpdump在linux服务器上抓取包,然后放到Windows下使用Wireshark进行分析,这里推荐

  • 万字长文教你玩转 tcpdump,从此抓包不用愁
  • UDP分片带来的抓包陷阱

实践分析总结

导出满足条件的包

  • 背景 通常情况咱们抓取的包是大量,而分析用到包只是其中一部分,这时有必须将有效包进行另存为保存,一方面便于技术从现场抓取传到公司供研发人员分析,(通常是要消耗现场技术人员的移动流量的),另一方面便于分析。
  • 操作步骤 在过滤器工具栏输入过滤条件,回车后进行过滤,分组列表只显示满足过滤条件的分组,依次点击【文件】菜单下的导出特定分组…,填写文件名,点击保存即可
  • 【查看tcp流量图】Flow Graph
    • 背景 在学习tcp协议时,提起最多的就是三握手、四挥手之类的,再怎么分析讲解的头头是道,不如抓包查看一波。
    • 操作步骤 点击【统计】菜单下的流量图,会显示所有流量的流量图,如果只需显示过滤后的tcp流量图,那么操作之前在过滤器工具栏输入过滤条件,在流量图对话框出来后,勾选限制显示过滤器,流类型选择TCP Flows即可,如下图 流量图
    • 注意事项 通常看到的Seq是从0开始,这里需要说明的Wireshark中显示的Seq是相对值,从0开始,而要显示原始值需要对Wireshark设置的。依次【编辑】-> 首选项… -> 展开 Protocols -> TCP,在TCP的配置页面,Relative sequence numbers 选项去掉即可

保存UDP/TCP/RTP负载数据

  • 背景 在视频抓包分析过程中,有时候需要从TCP、UDP、RTP中直接提取payload数据,比如较老的摄像机,有一些直接通过TCP/UDP传输视频裸流,或者PS打包的视频流,通过提取TCP和UDP的负载数据就可以直接组成裸流或者PS流文件,通过视频分析工具(Elecard StreamEye Tools)分析视频流数据是否正常。GB28181视频传输时通过RTP携带PS流的方式传输,因此通过提取RTP负载数据,形成的文件即是PS流文件,可通过分析工具直接分析PS流。
  • TCP和UDP提取其负载数据比较简单,他们提取方法很相似。以保存UDP负载数据为例。
    • 在UDP包数据列表中右键->追踪流->UDP 流,打开Udp 流对话框,对话框中集合了所有UDP通讯数据,选择你需要的UDP四元组,数据默认显示为ASCII,右下角show data as 选择原始数据,点击另存为保存成二进制文件,文件中数据即为UDP负载数据在这里插入图片描述
    • 现在的视频采集终端基本不会直接通过TCP或者UDP传输裸流,比较常用的是通过RTP方式来传输裸流或者PS流。这里详细介绍直接提取RTP负载,不做任何组包操作。需要注意的,这里如果从RTP流中提取负载数据是PS流可以直接使用播放器播放,如果负载数据是输H264或者H265裸流,因为不做组包处理,是无法使用播放器进行播放的,这里涉及到H264与H265两种封装方式的转换问题。直接提取RTP负载数据操作步骤如下
      1. 将UDP流解析为RTP协议 新版Wireshark会根据包的上下文(可以理解为RTSP或者SIP会话)自动将对应的UDP/TCP负载包解析为RTP协议,如若为解析成RTP协议。选择相应的数据包分组,右击选择Decode as …,在current属性列表中选择rtp,解码成rtp包。在这里插入图片描述
      2. 【电话】菜单下依次选择RTP -> RTP播放器,打开RTP播放器会话窗口
      3. 选择RTP的视频链路,选择export->payload,保存rtp负载 RTP播放器
      4. 如果RTP负载的是PS流,那么保存的文件可以直接供播放器进行播放。

RTP分析

  • 背景 RTP大多数场景下是在负载在UDP协议上的,在复杂的网络环境下,不靠谱的UDP着实给同行惹来不少麻烦。但凡遇到视频播放卡顿、画面模糊的情况,免不了一波操作。
  • 操作说明 【电话】菜单依次选择RTP -> RTP流 RTP流
    可以根据视频流的ip、port、ssrc选择RTP会话,然后进行如下操作
    • Prepare Filter 对包进行过滤处理,使Wireshark主菜单只显示该会话的包,便于另存为单独分析
    • Play Stream 便是上面提到的RTP播放器会话框,用来提取RTP负载数据等操作
    • 分析 可以查看RTP的丢包乱序情况,收发包抖动情况RTP流分析

SIP会话分析

  • 背景 基于GB28181进行业务开发时,免不了要对接其他厂商的流媒体服务器,一旦出现问题免不了一顿扯皮。那么抓包分析摆事实是撇清自身问题的最佳选择(当然这里也要打铁还要自身硬)。
  • 操作方法 点击【电话】菜单下的SIP流,选择相应的话,进行如下操作
    SIP流
    • Flow Sequence 通过SIP流序图可以分析学习整个会话流程
      呼叫流
    • Prepare Filter 过滤会话,分析相应的呼叫中SDP信息以及RTP分析,也可以导出特定分组… 保存用来分享学习
    • Play Stream 播放会话的RTP流,也可以从RTP播放器对话框调转到RTP流分析对话框

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/348181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学英语的优势已来,抓住这个机会

文 / 冰雪(微信公众号:王不留) ChatGPT大火,国外的商业价值还没找到,咱们这边已经开始变现了。谷雨小姐姐昨天在”一起学英语”微信群发了一张“收割韭菜”的文案截图。 299入社群,服务内容为:免…

卷严重、难度高、激励少,如何适应空投市场新变化

自从空投交互从2020年开始之后,不少人都开始加入到空投交互的行列中,一些项目也因为“格局”的因素,在项目正式上线前都会给早期参与者空投代币,以此吸引大家的关注。但是在越来越多的人加入到撸空投行列之中后,现在整…

javaEE 初阶 — 流量控制与拥塞控制

文章目录1. 流量控制2. 拥塞控制TCP 工作机制:确认应答机制 超时重传机制 连接管理机制 滑动窗口 1. 流量控制 流量控制是一种干扰发送的窗口大小的机制,滑动窗口,窗口越大,传输的效率就越高(一份时间,…

Gromacs中的g_mmpbsa计算带电底物与蛋白的结合能不准确

g_mmpbsa计算带电底物与蛋白的结合能总是不准确 TOC 在做的两个项目中,利用g_mmpbsa计算带电底物与蛋白的结合能结果非常不可靠,底物带两个硫酸根离子,g_mmpbsa在计算带电的底物与酶的结合能时总是不准确,因此后续若底物带电&…

三层交换机DHCP中继

关于中继,我们需要有一个对比。正常情况下我们是不是需要配置单臂路由然后开启DHCP地址池,然就设置网段网关以及DNS。这样的话考验 的其实是命令功底。但是为了方便,我们 可以添加服务器,将这个服务给到服务器去配置,这…

为什么sleeping的会话会造成阻塞(2)

背景客户反馈系统突然从11:10开始运行非常缓慢,在SQL专家云中看到大量的产生阻塞的活动会话,KILL掉阻塞的源头马上又出现新的源头,实在没有办法只能重启应用程序断开所有数据库连接才解决,请我们协助分析根本的原因。现象登录SQL专…

Web前端CSS清除浮动的5种方法

在移动端清除浮动布局,常用的5种方法: 使用清除浮动的类;使用overflow属性;使用 flex 布局;使用grid 布局;使用 table 布局。 根据实际情况选择适合的方法,需要注意兼容性和语义性问题。在移动…

Yolo v5 pytorch模型转onnx用c++进行推理

本文介绍如何使用u版的yolov5 模型转成 onnx模型,使用python代码推理onnx模型,然后再使用c代码推理onnx模型,本文使用yolov5 s版本,在m,l,x都试过可行环境配置 :1 u版的yolov5 4.0 版本,其他版本没有试过 https://github.com/ultr…

console调试,chrome调试工具之Console

背景 console作为web调试的一项重要技能大多数开发人员都是console.log()一把梭到底,其实console对象上还有很多可用于调试的方法 控制台打印类别,conso调试面板 第一个是全部消息,第二个是自己在控制台里使用console指令打印的&#xff0…

【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢

HashMap中为什么引入红黑树,而不是AVL树呢1. 概述 开始学习这个知识点之前我们需要知道,在JDK1.8 以及之前,针对HashMap有什么不同。 JDK 1.7的时候,HashMap的底层实现是数组 链表JDK1.8的时候,HashMap的底层实现是数…

Web3中文|Web3再起恐慌:全球第三大稳定币BUSD发行商面临诉讼

俗话说,老大的位置不好当。作为全球最大加密资产交易所BA的CEO,赵长鹏的生活可谓一刻都不能平静。 刚刚结束与SBF的口舌之争,从FTX倒台的熊市中挺过来,赵长鹏又遇到了新的麻烦。 Nansen数据显示,用户在过去24小时内从…

LabVIEW开发的上位机界面在其它电脑分辨率下-界面窗口偏移显示问题解决

目录 问题: 分析: 解决方式 1)编辑前面板边界适配对应的分辨率 2)编辑前面板窗口-窗口边界 3)编辑前面板窗口-保持窗口比例 4)设置VI属性--窗口运行时位置居中显示 参考 问题: 在基于La…

图的基本概念

1、图的概念 G(V,E) 图G由节点集合VV(G)和边集合EE(G)组成,其中V为非空有限集合。 集合V中的节点(node)用红色标出,通过集合E中黑色的边(edge)连接。 G的边:E中的每个顶点对&#x…

SAP 如何在调式中查找标准程序的权限对象

当我们尝试分析授权问题(SU53、SU24……)时,有许多不同的交易很有用。 但是,在某些情况下,在调试中检查授权对象很有用。 这很有用,例如,如果我们想确切地知道在事务执行的哪个点调用了给定的授…

关键路径法和最小生成树

1、关键路径法概述关键路径的服务对象是“AOE网”(Activity on edge netword)。不同的是AOV网只考虑顶点事件,而AOE网除了顶点事件(如v[0])外,重点还有就是有向边还表示了活动(如e[0][1] a0)。其中顶点事件…

重生之我是赏金猎人-SRC漏洞挖掘(二)-逆向app破解数据包sign值实现任意数据重放添加

0x00前言 本期登场的目标虽不是SRC,但是整个漏洞的利用手法很有学习意义。目前在很多大厂的http数据包中都会添加sign值对数据包是否被篡改进行校验,而sign算法的破解往往是我们漏洞测试的关键所在~ 本人在一些漏洞挖掘实战中经常发现在破解sign值后&a…

【电商】订单拆单的流程中,系统需要做哪些工作?

什么是拆单? 在网上购买商品下单成功后,过一段时间再次浏览时,有时会发现你的订单会变成两个或多个,这就是系统做了拆单而导致的。 拆单,就是将一个大的订单依据某些规则的集合,将其分解成两个或多个子订…

内核模块(编译方法)

目录 一、向内核添加新功能 1.1 静态加载法: 1.2 动态加载法: a、新功能源码与Linux内核源码在同一目录结构下时 b、新功能源码与Linux内核源码不在同一目录结构下时 c、主机ubuntu下使用ko文件 d、开发板Linux下使用ko文件 二、内核模块基础代码…

链表题目总结 -- 回文链表

目录一. 从中心开始找最大的回文字符串1. 思路简述2. 代码3. 总结二. 判断是否为回文字符串1. 思路简述2. 代码3.总结三. 判断是否是回文链表1. 思路简述2. 代码3. 总结4. 优化解法一. 从中心开始找最大的回文字符串 题目链接:没有。给定一个字符串s,从…

平面电路和非平面电路

主要区别 参考:https://www.eda365.com/article-192836-1.html 平面电路:在平面上的每个元件的两端都可以不用交叉而连接到电路; 非平面电路:在平面上存在元件两端无法不交叉线路连接到电路。 例子(上面参考连接中&a…