【问题标题】:Wireshark conversation list sidesWireshark 对话列表边
【发布时间】:2016-04-21 23:15:17
【问题描述】:

打开 Wireshark 对话列表时(统计信息 -> 对话列表) Wireshark 显示一列“数据包 A->B”和一列“数据包 B->A”。当我在流量的一侧(物理上)嗅探时,我可以看到大约一半的 MAC 地址仅在“A->B”上而不在“B->A”上具有流量,而另一半是另一种方式周围,​​这是有道理的,因为我在谈话的一侧嗅了嗅。

问题是:wireshark如何决定什么地址叫“A面”,什么地址叫“B面”?从我上面描述的内容很容易看出,它不取决于哪一方发送了更多的数据包/发送了第一个数据包,我发现很难相信它是随机决定的。

任何帮助将不胜感激。

【问题讨论】:

    标签: sockets wireshark mac-address


    【解决方案1】:

    看着the code that fills this list (ui/gtk/conversations_table.c:1726)

    gtk_list_store_insert_with_values(store, &iter, G_MAXINT,
            CONV_COLUMN_SRC_ADDR, src_addr,
            CONV_COLUMN_SRC_PORT, src_port,
            CONV_COLUMN_DST_ADDR, dst_addr,
            CONV_COLUMN_DST_PORT, dst_port,
            CONV_COLUMN_PACKETS,  conv_item->tx_frames+conv_item->rx_frames,
            CONV_COLUMN_BYTES,    conv_item->tx_bytes+conv_item->rx_bytes,
            CONV_COLUMN_PKT_AB,   conv_item->tx_frames,
            CONV_COLUMN_BYTES_AB, conv_item->tx_bytes,
            CONV_COLUMN_PKT_BA,   conv_item->rx_frames,
            CONV_COLUMN_BYTES_BA, conv_item->rx_bytes,
            CONV_COLUMN_START,    start_time,
            CONV_COLUMN_DURATION, duration,
            CONV_COLUMN_BPS_AB,   tx_ptr,
            CONV_COLUMN_BPS_BA,   rx_ptr,
            CONV_INDEX_COLUMN,    idx,
            -1);
    

    ...我们可以看到,在内部,它们不使用“地址 A”和“地址 B”——它是数据包的“源”和“目标”地址。您还可以看到,“A→B”列将显示 TX(即传输、传出)计数,而“B→A”列显示 RX(即接收、传入)计数。

    【讨论】:

    • 那么wireshark如何判断一个地址是“地址A”而列“packets A->B”的值为0呢?
    • 我没有答案;一旦我睡了一会儿,我将不得不深入研究代码。现实检查:您是否真的看到 Wireshark 在“数据包 A→B”列中显示 0?
    • 是的,我做到了。我会发布截图,但捕获文件在我工作的局域网中。
    • 您在分析什么协议?据我所见,蓝牙、ETH、FC、FDDI、Wi-Fi、IP4/6、IPX、JXTA、NCP、RSVP、SCTP、TCP、TR、UDP 和 USB 都将“数据包 A”设置为第一个数据包的源地址。
    • 我可以在 ipv4 中看到它,但它在以太网中最为明显。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多