套接字没有获取第一个数据包

时间:2017-03-20 18:06:40

标签: python sockets

我在计算机中打开一个套接字并嗅探到达eth0的数据包。我用以下代码

来做到这一点
s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.ntohs(0x0003))
s.bind((args.interface, 0))
while True:
    packet = s.recvfrom(65565)

之后,我正在处理变量数据包并打印一些ETH标头,IP标头和UDP标头。该工具成功打印了我获得的DNS和SSH数据包的标头。过了一会儿,我发送了几个vxlan数据包,但它没有获取第一个数据包,并且在一些数据包之后它开始获取它们,但是,它丢失了第一个(有时4个,有时10个但不高)。

例如,这里有14个来自接口上的tcpdump的数据包。可以在DNS中看到VXLAN数据包(VxLAN具有UDP 6633):http://pastebin.com/uhTR4YLb

这里是我用于这些数据包的嗅探工具的输出。可以看到DNS数据包,但不能看到VXLAN:http://pastebin.com/3L0dL9dy

在此示例中,在7个VXLAN数据包之后,嗅探器工具将获取vxlan数据包。知道为什么第一个不是吗?我完全迷失了:(

0 个答案:

没有答案