我的问题很简单:Wireshark 等数据包分析软件如何嗅探和分析网络流量?是否只是通过复制链接上的每一帧并将有效载荷和其他字段解码给用户?
我知道这个问题可能是多余的,但我真的很想了解其背后的技术方法,因为大多数博客和网页在不考虑科学方法的情况下解释了总体概述。
谢谢你。
我的问题很简单:Wireshark 等数据包分析软件如何嗅探和分析网络流量?是否只是通过复制链接上的每一帧并将有效载荷和其他字段解码给用户?
我知道这个问题可能是多余的,但我真的很想了解其背后的技术方法,因为大多数博客和网页在不考虑科学方法的情况下解释了总体概述。
谢谢你。
嗅探不同于分析——一般来说,像 Wireshark 这样的软件依赖于不同的软件(或硬件)来将实际的数据包传送给它,通常采用一种称为“ PCAP ”的格式。
解析非常简单 - 大多数协议都有文档记录 - 尽管为您可能看到的每个协议开发解析器非常耗时(特别是在 L4 及更高级别)。一旦解析了数据包,就会根据该数据进行分析,该数据格式良好,与对任何其他类型的结构化数据执行的分析没有什么不同。
至于这些文件是如何创建的,有时就像要求操作系统将主机接收到的所有数据包复制到 PCAP 格式的文件一样简单,而其他时候则是在硬件中执行极其复杂的操作来查看和复制物理线上的光或电子流。一个常见的情况是使用网络设备上的跨度/镜像将所有数据包复制到一个端口,专门用于在线/离线分析。
这是一个相当广泛的问题,这里没有足够的空间来完全回答它。所以,让我们从高层次来看这个,并从一些方向来了解如何从那里进行自己的调查。
以太网帧分析:
Wireshark 的工作原理是解码以太网帧缓冲区并在其显示器中显示它们。基本上看到的格式是在 MAC 层或以太网帧之上传递的格式。这很方便,因为底层硬件并不重要:铜线、光纤、无线。Wireshark 可以将帧作为 PCAP 格式的文件读入或写出到存储中。如果您使用 Wireshark 捕获了一些数据包并将它们存储在一个文件中,您可以稍后再返回并将其拆开。
嗅探:
捕获帧的详细信息因系统而异,对该系统的影响也不同。如果您使用的是嵌入式系统,则可以卸载帧缓冲区,将其转换为 PCAP 并将其加载到 Wireshark 中进行分析。如果您在服务器或笔记本电脑上工作,Wireshark 可以直接与 NIC 连接以捕获帧。在大多数情况下,这很好,但在网络流量负载过重的情况下,帧可能会丢失。在这些情况下,逻辑分析仪或其他单独的硬件可以捕获内部缓冲区中的所有帧,以便稍后卸载。
如果您在服务器、笔记本电脑等上工作,您可以非常确定为 Wireshark 看到的所有帧制作了副本。通常这很好,但会影响需要高带宽的应用程序的性能。
这是该主题的一个很好的概述:Practical Packet Analysis,第 2 版,Chris Sanders,2011
如果您想深入挖掘,则需要深入研究操作系统、驱动程序或嵌入式系统的软件或固件。在这种情况下,您将不得不寻找特定的东西。