第4章 抓取环境搭建:硬件连接、软件安装、网络配置

工欲善其事,必先利其器。抓TS流这事儿,说白了就是“搭台唱戏”。台子搭不好,戏就没法唱。我见过不少新手,一上来就怼着分析仪点来点去,结果抓出来的数据乱七八糟——说白了就是环境没配好。

这一章,咱们就把脚下的地夯实了。怎么搭?分三步:硬件连接、网络配置、软件设置。一个都不能少。

抓取环境搭建核心流程 TS源(机顶盒/码流卡) ASI 同轴电缆 或 IP流(千兆网线) 协议分析仪(主机) 分析软件(PC端) 注意:ASI接口必须接75Ω终端电阻,否则反射信号会严重干扰 IP抓取需确保PC端口镜像开启,否则TS包会丢失

4.1 硬件连接:别小看这根线

硬件是地基。我见过有人折腾了半天抓不到数据,最后发现是BNC接头没拧紧——这种低级错误,说出去都丢人。

4.1.1 接口类型与线缆

TS流进入分析仪的渠道就那么几种。看清你手上的设备,别盲接。

接口类型 物理连接 常见场景 注意事项
ASI BNC同轴电缆 广电设备、编码器输出 必须75Ω终端电阻,线长不超过30米
SPI DB25并行线 老式编码器、复用器 同步时钟必须连接,否则丢帧
千兆以太网 超五类/六类网线 IP化传输、OTT前端 开启端口镜像,关闭防火墙
RF F型接头同轴缆 有线电视前端 注意频道频率和调制方式

警告:ASI接口千万别带电插拔。我有一回急了,没关设备直接拔线,结果把分析仪的输入缓冲芯片烧了。一块芯片上万,换了心疼半个月。

4.1.2 连接步骤

  1. 关掉所有设备电源——包括TS源和分析仪。别嫌麻烦。
  2. 按照接口类型选择对应的线缆。ASI用BNC线,IP用千兆网线。
  3. 将线缆一端接TS源输出口,另一端接分析仪输入口。拧紧。
  4. 如果是ASI,在分析仪输入端的环通口接上75Ω终端电阻。
  5. 上电顺序:先开TS源,再开分析仪。等30秒让设备稳定。
  6. 观察分析仪面板指示灯。正常时锁定灯常亮,如果有指示灯异常,先查线缆。

小技巧:在项目现场,我习惯用一台手持频谱仪先确认ASI信号是否有载波。没信号就别硬接了,省得走弯路。

4.2 软件安装:选用什么样的武器

硬件连好了,软件可不能乱。市面上分析软件一大堆,但咱得挑趁手的。

4.2.1 常用分析软件推荐

软件名称 平台 特点 适用阶段
tshark / Wireshark Windows / Linux 免费、开源、支持IP流转TS 研发调试、网络层分析
Elecard StreamEye Windows 可视化好、PES/ES层分析 码流深入分析、合规性检查
DVB Inspector Windows 全协议解析、PSI/SI强大 广电系统联调、现场排障
TSReader Windows 支持ASI卡、录制回放 硬件环境下的TS录制

我个人习惯用 Wireshark + Elecard StreamEye 组合。Wireshark管底层包结构,StreamEye管码流层级。两者互补,基本覆盖所有场景。

4.2.2 安装与配置要点

安装不难,但有几点得注意。

  • 驱动一定要装对。如果你用ASI采集卡(如DekTec、Alta),必须先装卡驱动。我踩过坑:驱动版本不对,软件死活识别不到设备。
  • Wireshark需安装Npcap。不装的话,你连网卡都选不到。Windows下建议用Npcap的WinPcap兼容模式。
  • 权限问题。Linux下抓包需要root权限。可以用group大法,把用户加入wireshark组:sudo usermod -aG wireshark $USER,然后注销重登。
  • 路径里别有中文。有些老分析软件对中文支持不好,比如Elecard,目录有中文就崩溃。我习惯把工具装到 C:\Tools\ 这种纯英文路径。

重点:抓TS流前,用 tshark -D 列出所有可用接口。确认能看到你的ASI卡或网卡接口名。看不见就别往下走了。

4.3 网络配置:让数据流进来

IP化的TS流越来越普及。但网络配置搞不好,TS包就白抓了。

4.3.1 端口镜像

别把分析仪直接串在业务链路上。那会改变网络拓扑,TS流可能中断。

  • 在交换机上把TS源的输出端口配置为 SPAN端口(即端口镜像)。
  • 把分析仪的网口接到另一个空闲端口,设为镜像目标端口。
  • 注意:镜像端口会复制流量,不会影响源端。
# 以 Cisco 交换机为例
Switch(config)# monitor session 1 source interface GigabitEthernet0/1 both
Switch(config)# monitor session 1 destination interface GigabitEthernet0/24

注意:抓取IP TS流时,必须关闭分析仪的防火墙和防病毒软件。你想想看,防火墙一拦,UDP报文直接被丢弃,TS包就不完整了。

4.3.2 IP地址与多播

很多TS流走的是UDP多播。比如IPTV的码流,用的就是多播地址。

  • 确认TS源的多播组地址(如239.1.1.1)和端口号(如1234)。
  • 分析仪的网口必须加入该多播组。用 tshark -i eth0 -Y "udp.port==1234" 验证。
  • 如果抓不到,查交换机有没有开启IGMP Snooping。有时需要手动配置静态多播成员。
# 加入多播组(Linux)
ip maddr add 239.1.1.1 dev eth0
# 或用 tshark 直接抓
tshark -i eth0 -f "udp port 1234 and host 239.1.1.1"

4.3.3 网卡配置

抓包时,网卡不要跑其他业务流量。最好用独立的抓包网卡。

  • 关闭IPv6、DNS、DHCP等无关服务。
  • 手动设置IP地址,避免自动获取。
  • 设置巨帧(Jumbo Frame)为9KB,减少CPU中断。但TS包本身188字节,用巨帧只是降低系统负载。
  • 关闭TCP卸载引擎(TOE)、大包卸载等特性。否则Wireshark可能看到错误的校验和。

技巧:在Windows下,用 wmic nic where "netenabled=true" get name,index 查看网卡索引。再到Wireshark里选对应的网卡,就不会选错了。

4.4 验证环境:能不能干活,拉出来遛遛

环境搭好了,得验证一下。

  1. 打开分析软件,选择正确的接口。ASI选ASI卡,IP选网卡。
  2. 点击“开始抓取”,看是不是有数据流入。Packet速率应该在0以上。如果是0,检查连接和配置。
  3. 看一眼封包的Size。正常的TS包是188字节,偶尔会有204字节的(带RS纠错)。如果都是杂七杂八的大小,说明抓到的是协议头或者噪声。
  4. 用 tshark -r cap.pcap -Y "mpeg.pes" 快速过滤一下,看有没有PES数据。有PES说明TS流层级是好的。

一句话总结:硬件连对、软件配好、网络镜像搞通。这三步走完,你就能抓到干净的TS序列了。后面的事,就交给分析工具和你的经验了。