我是Wireshark的新手并且正在捕获数据包和所有Stuff。让我直截了当。
我有一个硬件,它使用UDP广播通过以太网输出数据。我可以直接将以太网电缆插入直插式RJ-45耦合器(连接到硬件)和我的PC运行Wireshark。
要求:我需要捕获我的硬件正在广播的RAW数据,以便可以将其提供给其他团队,以便了解它为进一步的后期处理提供的格式。
我做了什么:最初,我连接了家里的以太网线,并开始捕获对我没有任何意义的数据包。
请指出我是否朝着正确的方向前进?很抱歉,如果这是一个非常基本的问题,但硬件的原始数据对于我的进一步任务非常重要....
答案 0 :(得分:0)
只要任何软件都可以理解电线,您将始终获得一个数据包。在您(在计算机前)和RJ-45插孔中的电缆之间有一个NIC(网络接口控制器,即您的网卡)。
您的以太网NIC将读取电缆上的电流(在manchester encoding中用于以太网),并将其自身与该电缆上的任何Ehternet流量同步。那里的“同步”鬃毛是什么?在任何Ehternet流量前面有64个交替的0和1位,用于同步两个通信NIC上的时钟。如果没有适当的时钟同步,某些数据可能会被误解。
但为什么我在谈论时钟同步?因为如果您希望数据像RAW一样在电缆上,您将无法获得它。 NIC永远不会向计算机的其余部分发送任何同步位,因此绝对不可能使用软件准确读取电缆上的内容。
另一方面,我很难相信您希望RAW数据为RAW。在同步位之后,以太网封装打包。是的,以太网使用数据包。它们是链路层数据包(OSI中的第2层)。
并且wireshark
完全为您提供(在大多数情况下,请参阅最后的说明,了解此规则的两个例外情况):NIC了解的每个Ehternet数据包,管理同步,并设法无冲突地读取发送到内核然后由wireshark读取。电缆有电气干扰,没有防止碰撞的设置(它只是一块木桶!)因此,网卡会对干扰和碰撞等事物进行抽象。
我将再一次重复:抽象同步位,发送方冲突(将电缆变成一个巨大的干扰)和普通干扰;剩下的就是一个接一个的数据包流。
NIC有时会忽略某些以太网数据包:未定向到其MAC的数据包。这可以通过启用混杂模式(在大多数NIC中可用)来更改。这与广播包无关。
wireshark获取来自NIC的所有流量的规则有例外:
如果流量非常快,则wireshark可能会退出内核计划而不会看到一些数据包。它发生了,不能做到这一点。
如果您在所有接口上进行侦听(而不是选择单个接口进行侦听),则wireshark将剥离以太网(或Wifi)标头。这是使输出文件统一(并且可能被其他应用程序读取)所需的wireshark hack。
TL; DR,wireshark输出(pcap
)几乎就是它从NIC获得的数据包流,一个接一个。这就像你可以通过软件获得RAW一样。