【发布时间】:2021-09-11 02:34:09
【问题描述】:
我正在尝试为我的项目模拟丢包。我正在使用 TCP/IP 协议。 netem 工具提供了这样的功能。延迟在环回 IP 中起作用,但我无法使数据包丢失起作用。根据netem的网址,丢包激活如下:
tc qdisc change dev lo root netem loss 5%
在c编程中使用TCP/IP套接字的客户端/服务器应用程序中,客户端发送此消息“Echo this!”,客户端收到的来自服务器的回显消息是完整的。据我所知,TCP/IP 保证了数据包的传递。用 TCP/IP 协议模拟丢包是不可能的吗?
【问题讨论】:
-
TCP 应用程序永远不会看到丢包,TCP 协议透明地执行自动重传。如果你想检测丢包,你应该使用 UDP。
-
@Barmar 这就是我的想法。非常感谢!
-
你仍然可以模拟丢包,你会在
netstat的重传统计中看到结果。
标签: linux sockets networking