我正在使用boost :: asio编写一个异步c ++ TCP网络客户端/服务器,我需要在任何使用环境下都坚如磐石。我主要担心的是错误的联系,这让我在过去很难找到问题。
在编写应用程序时,连接通常很好或非常好。我需要的是找到一种很好的方法来模拟丢包,损坏,延迟峰值和其他问题的各种不良连接。
是否有任何驱动程序或软件可以让我这样做?
答案 0 :(得分:2)
有几种商业产品可以做到这一点,有些好的有些不好。显然,它们非常特定于平台,您不会对所选平台做任何说明。你指出的问题是操作系统级别,boost / C ++与此无关。
至于腐败,除非您以加密方式对流量进行签名,否则您实际上无法获得任何声明。
答案 1 :(得分:2)
TCP非常强大。它已经处理了数据包丢失,损坏(对于随机位翻转,而不是攻击)和限制。您应用程序唯一需要处理的是延迟峰值和连接丢失。
通过在阅读方法中引入随机延迟或在随机时间点删除连接,您可以获得相当好的里程。
然而,处理它的最好方法是考虑你应用程序的最糟糕的情况,并测试其中的一些。