使用scapy以高频率发送UDP ping,为什么只接收前几个ICMP端口不可达消息?

时间:2015-09-06 02:31:41

标签: linux networking udp scapy icmp

在linux系统中,我使用 pkt = IP(dst=dst)/UDP(dport=RandShort()) ans,_ = sr(pkt*100, inter=0.02, timeout=3) 发送高频UDP ping。例如:每20毫秒,发送一个UDP包;共有100个。但我只能得到前几个ICMP端口无法访问的答案。

tcpdump

我尝试使用{{1}}来捕获数据包,发现所有UDP数据包都已发送到目标计算机,但只有少数ICMP数据包返回到源计算机。会导致这种情况的原因是什么?

如果我使用ICMP ping,则不会发生这种情况。

我想:

  1. 可能是由目标机器处理icmp数据包
  2. 的系统内核参数引起的
  3. 可能是由icmp数据包路由交换机策略引起的。

1 个答案:

答案 0 :(得分:0)

内核严格限制ICMP数据包的速率以防止DDOS攻击。通常每秒只有1个数据包。几乎不可能获得比任何外部(互联网)路由器更快的速度。 {{3}}