为什么从socket接收的数据包少于Wireshark捕获的数据包?

时间:2018-04-08 08:54:07

标签: python sockets networking udp wireshark

我遇到了一个非常奇怪的问题。

我的代码只收到87266个数据包,但Wireshark中有167917个数据包

这是我的代码(python3):

counter = 0
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.settimeout(10)
sock.bind(('', 57130))
while True:
    try:
        data, _ = sock.recvfrom(4096)
        counter += 1
    except socket.timeout:
        break
print(counter)
exit(0)

输出87266

但是在Wireshark中,我收到了167917个数据包

enter image description here

我标记了dstport == 57130的所有数据包并将其导出到文件,然后打开此文件,因此这些No.是连续的。

我的操作系统是Windows 7

1 个答案:

答案 0 :(得分:0)

可能有一个网络过滤器驱动程序拦截特定的帧,以便Wireshark无法看到它们。它们由NIC驱动程序计算,但不在Wireshark中计算。