我的问题很简单:像Wireshark这样的数据包分析器软件是如何嗅探和分析网络流量的?它仅仅是复制链接上的每个帧并将有效负载和其他字段解码给用户吗?
我知道这个问题可能是多余的,但我真的想了解背后的技术方法,因为大多数博客和网页都解释了总体概况,而没有考虑科学方法。
谢谢。
发布于 2016-01-11 19:53:48
嗅探不同于分析--一般来说,像Wireshark这样的软件依赖于一种不同的软件(或硬件)将实际的数据包传递给它,通常是以一种称为"PCAP“的格式。
解析非常简单--大多数协议都有文档记录--尽管为您可能看到的每个协议开发解析器是非常耗时的(特别是在L4和更高版本)。一旦对数据包进行分析,就会基于该数据进行分析,该数据格式良好,与对任何其他类型的结构化数据进行的分析没有什么不同。
至于如何创建这些文件,有时就像要求操作系统将主机接收到的所有数据包以PCAP格式复制到文件一样简单,而其他时候,在硬件上窥视和复制物理线上的光或电子流是极其复杂的操作。常见的情况是使用网络设备上的span/镜像将所有数据包专门复制到端口,以便进行在线/脱机分析。
发布于 2016-01-12 21:50:24
这是一个相当广泛的问题,这里没有足够的空间来完全回答它。所以,让我们从一个高层次来看这个问题,从那里开始,如何做你自己的研究。
以太网帧分析:
Wireshark通过解码以太网帧的缓冲区并在其显示器中显示它们来工作。基本上,所看到的格式是在MAC层或以太网帧之上传递的。这很方便,因为底层硬件并不重要:铜、光纤、无线设备。Wireshark可以以PCAP格式读取帧或将它们写入存储。如果您使用Wireshark捕获一些数据包并将它们存储在一个文件中,您可以在稍后返回并将其分离。
嗅探:
捕获帧的细节因系统而异,对该系统的影响也不同。如果您正在开发嵌入式系统,您可以卸载一个帧缓冲区,将其转换为PCAP,然后将其加载到Wireshark中进行分析。如果您正在使用服务器或膝上型计算机,Wireshark可以直接与NIC接口来捕获帧。在大多数情况下,这是很好的,但在沉重的网络流量负载可能会丢失帧。在这种情况下,逻辑分析器或其他独立硬件可以捕获内部缓冲区中的所有帧,以便稍后卸载。
如果你在服务器、笔记本电脑等上工作,你可以很好地确定拷贝是为Wireshark看到的所有帧制作的。一般来说,这很好,但对于需要高带宽的应用程序来说,可能会影响性能。
以下是这个主题的一个很好的概述:实际的数据包分析,第二版,Chris Sanders,2011
如果您想深入挖掘,那么您需要深入研究操作系统、驱动程序或嵌入式系统的软件或固件。在这种情况下,你必须寻找一些特定的东西。
https://networkengineering.stackexchange.com/questions/25860
复制相似问题