OSX如何随机丢弃数据包

我正在testing我们的一个stream媒体应用程序的韧性来处理数据包丢失。 在Linux机器上,我通常使用iptables来像这样随机丢弃数据包:

iptables -A INPUT -m statistic --mode random --probability 0.1 -j DROP 

我需要在当前运行OSX的服务器上进行testing。 任何想法如何随机丢包在OSX服务器或Mac电脑上?

/安迪

您正在寻找的工具是dnctl 。 从manpage引用:

  plr packet-loss-rate Packet loss rate. Argument packet-loss-rate is a floating-point number between 0 and 1, with 0 meaning no loss, 1 meaning 100% loss. The loss rate is internally repre- sented on 31 bits. 

和:

要以5%的概率丢弃随机input的IPv4和IPv6 ICMP数据包,请创build一个pipe道:

 dnctl pipe 10 config plr 0.05 

Teun Vink使用dnctl的答案是有效的,但有点微妙,因为它依赖于一些其他的configuration。 看着这个工具,我发现Xcode有一个名为Network Link Conditioner的扩展,它更像是一个GUI界面,它的function非常棒。 看到这里的指示。

对于脚本解决scheme,Teun就是这样。

谢谢!