0.引言

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是全世界最广泛的网络封包分析软件之一。

Wireshark官网地址:https://www.wireshark.org/

软件主界面:

wireshark怎么抓包、wireshark抓包详细图文教程

为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容,总结,如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark。

wireshark 开始抓包

开始界面

wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。点击Caputre->Interfaces.. 出现下面对话框,选择正确的网卡。然后点击"Start"按钮, 开始抓包。注意网卡,千万不能选错了,否则抓不到正确的数据。我下面抓包这里选取的是VM8.

Wireshark 窗口介绍

(1) Display Filter(显示过滤器), 用于过滤

(2) Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表

(3) Packet Details Pane(封包详细信息), 显示封包中的字段

(4) Dissector Pane(16进制数据)

(5) Miscellanous(地址栏,杂项)

使用过滤是非常重要的, 初学者使用wireshark时,将会得到大量的冗余信息,在几千甚至几万条记录中,以至于很难找到自己需要的部分。搞得晕头转向。过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。

过滤器有两种:

一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所需要的记录

一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录。 在Capture -> Capture Filters 中设置保存过滤,在Filter栏上,填好Filter的表达式后,点击Save按钮, 取个名字。比如"Filter 102"。

Filter栏上就多了个"Filter 102" 的按钮。

过滤表达式的规则

表达式规则如下:

(1) 协议过滤

比如TCP,只显示TCP协议。下面抓包中会涉及到RTMP和HTTP协议。

(2)IP 过滤

比如 ip.src ==192.168.1.102 显示源地址为192.168.1.102,ip.dst==192.168.1.102, 目标地址为192.168.1.102

(3)端口过滤

tcp.port ==80, 端口为80,tcp.srcport == 80, 只显示TCP协议的愿端口为80。下面涉及到8080端口。

(4)Http模式过滤

http.request.method=="GET", 只显示HTTP GET方法的。

(5)逻辑运算符为 AND/ OR

封包列表(Packet List Pane)

封包列表的面板中显示,编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。 你可以看到不同的协议用了不同的颜色显示。你也可以修改这些显示颜色的规则, View ->Coloring Rules。

封包详细信息 (Packet Details Pane)

这个面板是我们最重要的,用来查看协议中的每一个字段。

各行信息分别为

Frame: 物理层的数据帧概况。

Ethernet II: 数据链路层以太网帧头部信息。

Internet Protocol Version 4: 互联网层IP包头部信息。

Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP。

Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议。

TCP包的具体内容

从下图可以看到wireshark捕获到的TCP包中的每个字段。

看到这, 基本上对wireshak有了初步了解, 现在我们看一个TCP三次握手的实例:

三次握手过程为,如下:

图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接。

第一次握手数据包

客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图

第二次握手的数据包

服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图:

第三次握手的数据包

客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图:

就这样通过了TCP三次握手,建立了连接。

这一节都是Wireshark使用图文教程。手把手教你抓包。

1.Wireshark抓包HLS

其中要设置三要素,三要素如下:

(1)ip地址

(2)端口

(3)协议 http

Wireshark窗口设置,如下:

ip.addr==172.16.204.133 and tcp.port==8080 and http

点击推流(可以使用各种推流工具),可以看到如下界面:

这里举例使用ffmpeg 推流: ffmpeg -re -i time.flv -vcodec copy -acodec copy -f flv -y

也可以参考前面的文章

超详细RTMP协议详解(资深流媒体架构师推荐)

手把手搭建流媒体服务器详细步骤

拉流使用ffplay(也可以使用其它工具),命令如下,界面如下表示可以捕获成功。

这里拉取RTMP流:ffplay rtmp://172.16.204.133/live/livestream

拉取HTTP流,命令如下,表示可以捕获成功,可以看到这里捕获的都是HTTP协议的内容。

关于HLS手把手搭建流媒体服务器,可以参考这篇文章:手把手配置HLS流媒体服务器

这里拉取HTTP流:HLS拉流地址:ffplay http://172.16.204.133:8080/live/livestream.m3u8

注意:HLS,这里走的是HTTP协议。

可以看到客户端请求服务器端livestream.m3u8的数据。

通过HLS抓包分析,可以看到通过HTTP分段拉取ts片段,如下图中的livestream-148.ts、livestream-149.ts、livestream-150.ts、livestream-151.ts

注意:客户端会实时拉取更新的livestream.m3u8。

还能抓取到PAT表、PMT表。

有些为了降低延时,有些策略会去拉取最近的ts流,但是这样可能会有个问题。为什么呢?

如果直接播放最后一个ts文件,那播放完当前ts文件的时候,这个时候去拉更新m3u8文件,接下来的ts文件不一定生成好。这样就可能会有断音,造成不好的用户体验。比如当前播放的是9秒,新生成的ts要10秒,这样就会造成断音。为了兼容这两种情况,那就可以适当缓冲下,再播放。

本篇文章偏向实战,抓包分析,本篇文章就分析到这里,欢迎大家关注欢迎关注,点赞,转发,收藏,分享,评论区讨论。

后面关于项目知识,后期会更新。欢迎关注微信公众号"记录世界 from antonio"。

hls二次加密 m3u8_HLS实战之Wireshark抓包分析相关推荐

  1. Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析

    Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析 一.介绍计算机网络体系结构 1.计算机的网络体系结构 在抓包分析TCP建立链接之前首先了解下计算机的网络通信的模型,我相信学习过计 ...

  2. 用Wireshark抓包分析协议 计算机网络

    此篇博客记录使用Wireshark抓包分析协议. 目录 一.DNS 二.分析TCP握手过程 三.TLS报文 四.HTTP协议 五.SMTP 六.ARP 七.RTP 八.RTMP 一.DNS DNS是域 ...

  3. Wireshark抓包分析微信功能----tcp/ip选修课期末大作业

    分析相关功能所抓取的数据包和完整大作业报告(word版)均已上传至Wireshark抓包分析微信功能----tcp/ip选修课期末大作业-网络监控文档类资源-CSDN文库 适合Wireshark入门的 ...

  4. 用wireshark抓包分析TCP协议的三次握手连接、四次握手断开

    用wireshark抓包分析TCP协议的三次握手连接.四次握手断开 一.TCP三次握手图解 二.TCP得四次挥手过程 三.用Fiddler抓包,分析验证一个HTTPS网站的TCP连接过程 一.TCP三 ...

  5. Wireshark抓包分析之ICMP协议包

    Wireshark抓包分析之ICMP协议包 一. Wireshark简介:(前身为Ethereal,2006年改名为wireshark) Wireshark 是一个网络封包分析软件.网络封包分析软件的 ...

  6. Wireshark抓包分析基础

    Wireshark抓包分析 (仅作为个人笔记,如有雷同,请联系删除..) 下载:https://www.wireshark.org/#download 1.设置时间格式:视图–>时间显示格式 2 ...

  7. Wireshark 抓包分析 RTSP/RTP/RTCP 基本工作过程

    整体而言,RTSP 通常工作于可靠的传输协议 TCP 之上,就像 HTTP 那样,用于发起/结束流媒体传输,交换流媒体元信息.RTP 通常工作于 UDP 之上,用于传输实际的流媒体数据,其中的载荷格式 ...

  8. TCP/IP详解卷1 - wireshark抓包分析

    TCP/IP详解卷1 - 系列文 TCP/IP详解卷1 - 思维导图(1) TCP/IP详解卷1 - wireshark抓包分析 引言 在初学TCP/IP协议时,会觉得协议是一种很抽象的东西,通过wi ...

  9. wireshark抓包分析数据怎么看 wireshark使用教程

    大家都知道Wireshark是非常流行且知名的网络抓包数据分析工具,可以截取各种网络数据包,并显示数据包详细信息,常用于开发测试过程各种问题定位.网络故障排查等情况.但是很多网友不清楚如何使用Wire ...

最新文章

  1. 想成为优秀的管理者,不能不知道的决策方法
  2. 『PaddlePaddle X Wechaty』有颜又有才的Living_Bot
  3. Hadoop hdfs创建及删除目录代码示例
  4. c++智能指针的设计思想
  5. 科目三要注意的失误点
  6. 【华为云技术分享】物体检测yolo3算法 学习笔记2
  7. C++ 位图及位图的实现
  8. Windows Phone 7 优秀开源项目概览 来源:http://www.cnblogs.com/porscheyin/archive/2010/12/15/1906476.html...
  9. 作业中会遇到【不能实现】部分。这时,正确的处理的方法~
  10. springBoot上传文件时MultipartFile报空问题解决方法
  11. 多种方法去除按钮以及链接点击时虚线
  12. 数据库事务的四大特性
  13. 驾考计算机播报原理,科目三电子路考流程详解 考驾照的都看看!
  14. 程序员的价值观与网络的复杂性
  15. Android 在线PDF文件加载
  16. 无法访问其它家庭组计算机,Win7电脑同一个家庭组或者工作组,电脑无法相互访问...
  17. 小悦悦事件,18路人视而不见,不只是道德问题
  18. oracle11.2最新补丁包34386237应用手记
  19. 页面首次打开弹出提示,以后不再弹出
  20. 【OpenCV-Python】教程:6-1 相机标定

热门文章

  1. 服务器又中毒了,得治一治!
  2. R语言绘制生存曲线图
  3. R包vegan的Mantel tests探索群落物种组成是否与环境相关
  4. Nature:植物叶际微生物组稳态维持机制
  5. R语言merge函数全连接dataframe数据(Full (outer) join)、merge函数进行全连接必须将参数all设置为true(all=TRUE)、默认merge函数通过公共列名合并数
  6. R语言进行数据聚合统计(Aggregating transforms)计算滑动窗口统计值(Window Statistics):使用R原生方法、data.table、dplyr等方案、计算滑动分组统计
  7. R语言构建xgboost模型:交叉验证(cross validation)训练xgboost模型,配置自定义的损失函数评估函数并使用交叉验证训练xgboost模型
  8. R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(改变图例位置)实战(dot plot)
  9. R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值、plot.roc函数绘制ROC曲线、添加置信区间、为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来
  10. R语言构建ElasticNet回归模型实战:基于mtcars数据集