mpeg ts pcap 文件分析

一、简介
pcap文件是常用的数据报存储格式,可以理解为就是一种文件格式,只不过里面的数据是按照特定格式存储的,所以我们要解析里面的数据,也必须按照一定的格式,UltraEdit 打开能看到16进制的数据流,最好的是用wireshark打开分析数据

二、抓包
可以在机顶盒里面抓包。 tcpdump -i eth0 -s 0 -w cctv1.pcap
三、pcap文件格式
在这里插入图片描述在这里插入图片描述
如上图所示,pacp文件的总体结构就是这样封装的
1、pacp Header
文件头,每个pcap文件只有一个文件头,总共占 24(B)字节,以下是总共 7个字段的含义
Magic(4B):标识文件开始,并用识别文件和字节顺序。值可以为 0xa1b2c3d4或者0xd4c3b2a1,如果是0xa1b2c3d4表示是大端模式,按照原来的顺序一个字节一个字节的读,如果是0xd4c3b2a1表示小端模式,下面的字节都要交换顺序,现在的电脑大部分是小端模式

    Major(2B):当前文件的主要版本号,一般为0x0200
    Minor(2B):当前文件的次要版本号,一般为0x0400
    ThisZone(4B):当地的标准事件,如果用的是GMT则全零,一般全零
    SigFigs(4B):时间戳的精度,一般为全零
    SnapLen(4B):最大的存储长度,设置所抓获的数据包的最大长度,如果所有数据包都要抓获,将值设置为65535
	LinkType(4B): 链路类型。解析数据包首先要判断它的LinkType,所以这个值很重要。一般的值为1,即以太网
常用的LinkType(链路类型):
值     类型描述
0     BSD loopback devices, except for later OpenBSD
1     Ethernet, and Linux loopback devices
6     802.5 Token Ring
7     ARCnet
8     SLIP
9     PPP
10     FDDI
100     LLC/SNAP-encapsulated ATM
101     “raw IP”, with no link
102     BSD/OS SLIP
103     BSD/OS PPP
104     Cisco HDLC
105     802.11
108     later OpenBSD loopback devices (with the AF_value in network byte order)
113     special Linux “cooked” capture
114     LocalTalk    

2.Packet Header

数据包头可以有多个,每个数据包头后面都跟着真正的数据包。以下是Packet Header的4个字段含义

Timestamp(4B):时间戳高位,精确到seconds,这是Unix时间戳。捕获数据包的时间一般是根据这个值

Timestamp(4B):时间戳低位,能够精确到microseconds

Caplen(4B):当前数据区的长度,即抓取到的数据帧长度,由此可以得到下一个数据帧的位置。

Len(4B):离线数据长度,网路中实际数据帧的长度,一般不大于Caplen,多数情况下和Caplen值一样

3.Packet Data

Packet是链路层的数据帧,长度就是Packet Header中定义的Caplen值,所以每个Packet Header后面都跟着Caplen长度的Packet Data。也就是说pcap文件并没有规定捕获的数据帧之间有什么间隔字符串。Packet数据帧部分的格式就是标准的网络协议格式了。
在这里插入图片描述
红色部分是Pcap Header,蓝色部分是Packet Header,当然这是从pcap文件的起始部分开始的。希望别嫌弃这扭曲的线条委屈

Pcap Header的Magic:d4 c3 b2 a1,表示是小端模式,后面的字节从后往前读。

Pcap Header的Major:02 00,计算机读的应该是00 02。最大存储长度SnapLen:ff ff 00 00 ,同理计算机读的应该是00 00 ff ff,所以是2的16次方减一,是65535个字节。LinkType:01 00 00 00 ,实际是00 00 00 01,是以太网类型。

蓝色部分的Packet Header我就不一一说了,重点关注Caplen:5A 05 00 00,计算机读的是00 00 5A 05,转换成十进制就是1370,所以后面的1370个字节都是一个数据帧。之后就又是一个Pcap Header,如此循环。

同样的文件用wireshark打开看一下:
在这里插入图片描述 可以看到第一个数据帧,就是1370个字节。还可以看底下的数据帧的16进制原始数据和上面蓝色部分之后的数据是不是一样。

wireshark 应该是把 pacp Header 和 Packet Header 解析出来了,所以说
在这里插入图片描述wireshark 直接从Packet Data 开始展现

参考:https://blog.csdn.net/m0_37710388/article/details/89217421

分析帧:

一帧数据有 1370 个字节,ts包的标准长度为 188 个字节, 所以一帧数据包含了 7 个 ts 流,
1370 - 188*7 = 54 另外还有 54 个字节,
1. Ethernet II 帧的格式 一共14个字节
在这里插入图片描述
Destination: 6个字节 目的Mac 地址 即自己的本机mac 也就是机顶盒的Mac 00:21:26:0c:ae:43
Source: 6个字节 源Mac地址 44:97:5a:0e:62:fa
Type: 2个字节 IPv4 (0x0800) 0x0800 代表 ip协议数据 接下来的2个字节标识出以太网帧所携带的上层数据类型,如16进制数0x0800代表IP协议数据,16进制数0x809B代表AppleTalk协议数据,16进制数0x8138代表Novell类型协议数据等。
2. Internet Protocol Version 4 一共 20 个字节
在这里插入图片描述
Version: 4 网络t协议版本IPV4

Header Length: 20 bytes 报头的长度:20字节
Differentiated Services Field: 0x68 (DSCP: AF31, ECN: Not-ECT) 基于显示反馈的协议不ECT
Total Length: 1356 总长度 1356 就是减去上面 十四个字节了
Identification: 0x0000 (0) 标识: 0x0000 (0000)
Flags: 0x4000, Don’t fragment 标志: 0x024(Don’t Fragment)
Time to live: 124 生存时间 124
Protocol: UDP (17) udp协议 17
Header checksum: 0x485a [validation disabled] 头校验和:0x485a
Source: 10.254.192.150 来源:10.254.192.150
Destination: 225.1.4.73 目标:225.1.4.73

3.User Datagram Protocol 一共 8个字节
Source Port: 8042 源端口号
Destination Port: 1102 目标端口号
Length: 1336 总长度 就是减去上面 20 个字节
Checksum: 0xd391 [unverified] 校验和

4.Real-Time Transport Protocol 一共12个字节
80:
10… … = Version: RFC 1889 Version (2)
…0. … = Padding: False
…0 … = Extension: False
… 0000 = Contributing source identifiers count: 0
Payload type: MPEG-II transport streams (33) 有效负荷类型
Sequence number: 63673 序列号
Timestamp: 4143841614 时间戳 unix
Synchronization Source identifier: 0x00000000 (0) 同步源标识符

1370 - 12 - 20 - 8 - 12 = 1316
7*188 = 1336
下面就是7个ts包
在这里插入图片描述
在这里插入图片描述
47 开头的分析,请参考

https://blog.csdn.net/zhubin215130/article/details/8958567

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Wireshark是一个流行的网络协议分析工具,它允许用户捕获和分析网络数据包。PCAP文件是Wireshark使用的一种数据格式,用于存储捕获到的网络数据包。PCAP文件格式具体说明了文件的结构和存储方式,以便于其他工具或程序能够正确地解析和处理这些文件PCAP文件由全局文件头(Global Header)和数据包头(Packet Header)组成。全局文件头记录了文件的版本信息、网络接口类型等元数据。每个数据包都由数据包头和数据包负载组成。数据包头包含了数据包的时间戳、数据包长度等信息。 要解析PCAP文件,可以借助Wireshark软件本身或者使用编程语言中的相关库,如libpcap或WinPcap。在Java程序中,可以使用WireShark库进行解析,并在后台查看PCAP包的内容。 PCAP文件解析的过程包括读取PCAP文件的全局文件头,然后逐个读取数据包头和数据包负载,以提取所需的信息。例如,可以通过解析数据包头中的时间戳和源/目的IP地址来分析网络流量的来源和目标。 总结起来,Wireshark可以使用PCAP文件解析网络数据包。PCAP文件的结构和格式可以通过参考了解。在Java程序中,可以使用WireShark库进行解析,并在后台查看PCAP包的内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Wireshark文件pcap的格式详细解析有实例(Global Header、Packet Header)](https://blog.csdn.net/Hollake/article/details/90108950)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [借助WireShark解析PCAP包](https://blog.csdn.net/q35222806/article/details/78817811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值