如何为我的Qt UDP程序模拟数据包丢失?

时间:2017-04-18 12:34:47

标签: c++ testing networking udp

作为家庭作业,我编写了UDP服务器 - 客户端应用程序,尝试使用校验和并通过确认正确接收的数据包来纠正UDP通信中的错误。

问题是在localhost上,收到的所有数据包都没有问题。我尝试了一些数据包篡改程序,但它们都需要通过网络接口进行通信。

如何模拟localhost环回地址上的UDP丢包?

1 个答案:

答案 0 :(得分:4)

UDP易于处理 - 只需在发送方或接收方中写入一些代码即可丢弃一定比例的消息,也可能偶尔重新排序一些代码。

如果您无法修改实际的发送方或接收方,那么编写第三个只是位于中间位置的程序就很容易,只需要一些丢弃并重新排序即可转发数据包。

如果你正在使用Linux,你可以设置sample为你丢弃数据包:http://code.nomad-labs.com/2010/03/11/simulating-dropped-packets-aka-crappy-internets-with-iptables/ - 这似乎甚至可以在环回端口上工作。