TCP诱导UDP数据包丢失和学士论文参考文献。

4
我目前正在撰写计算机科学和工程的学士论文,我们正在使用OpenGL在C++中创建赛车游戏。在报告中,我正在比较使用TCP和UDP,并找到了一个声称多个TCP连接可能会导致UDP连接丢包的来源。我甚至找到了一个很好的参考文献
问题在于这个参考文献已经有13年了,但我没有找到任何迹象表明这两种协议已经修改以解决此问题。我也找不到更加当前的论文或文章,做类似的研究。
因此,我的问题是是否有任何与协议相关的变化可能是相关的,或者我应该忘记在论文报告中使用这个老参考文献。

我会对此持谨慎态度。并不是说它从根本上是错误的,但我有点怀疑。你应该考虑奈良先端科学技术大学院大学的论文是1997年的了。路由器自那时以来经历了多少代演变...10(?)代吗。互联网与20世纪90年代完全不同。今天许多服务(例如VoIP)在互联网上使用UDP,并且运行得非常好。这与路由器将严格放弃UDP而选择TCP的论点相矛盾。 - Damon
我在同一条线路上使用UDP服务时,同时有相当数量的TCP流量,很少甚至从未遇到过明显的数据包丢失。当然这并不足以作为证据,但你可以自己在家和大学尝试一下。通过下载2-3个ISO文件,轻松填满电缆的TCP流量。神奇的是,VoIP仍然可以正常工作。 - Damon
2
你可能会觉得这很有趣:数据包丢失的神话 - Nick Dandoulakis
Damon:虽然你提出了一些好的观点,但我更关心那些带宽比我的大学或自己低的连接。用多个TCP连接填充这种类型的连接可能会对VoIP或任何其他基于UDP的应用程序产生更大的影响。问题是,如果我不能使用论文,我需要某种参考来确认这一点。 - Jonathan Gustafsson
@Jonathan Gustafsson:建议:尝试使用2G/3G进行测试?这可能会模拟低速互联网。但是请注意,2G/3G可能具有不同于拨号的特性。 - Lie Ryan
除了Damon的评论之外,许多路由器支持特定协议/端口的QOS。例如,在Tomato路由器上,您可以配置它们以低优先级提供BitTorrent服务,这样您就可以在共享合法ISO文件的同时仍然平静地浏览互联网。当然,这在很大程度上取决于路由器。 - Jeff
1个回答

1
在阅读文章时请注意以下要点:
1. 首先,我们关注的是只有TCP连接使用网络带宽的情况。 2. 随着TCP连接数量的增加,更多的数据包可以同时到达节点,从而导致缓冲区严重拥堵,使数据包丢失更频繁。
因此,在测试中,WAN链路已经饱和,并且测试是为了评估TCP和UDP协议的公平性。与评论中提供的29 West文章也指出:
谬论 - 正常运作的网络不会出现丢包问题。
事实 - TCP拥塞控制的正常操作可能会导致由于队列溢出而发生丢包。有关更多信息,请参阅this report。在严重拥塞的情况下,丢包率普遍超过几个百分点。

这些都不是特别新的内容,对任何人来说都不应该感到惊讶。考虑一个家庭互联网连接,DSL或Cable速度最低,例如2mb/s,并设置一台电脑使用Bittorrent下载多个大文件,现在尝试运行Valve的Team Fortress 2等UDP游戏。这不会很好地工作。

随着VoIP的出现,许多网络人员开始寻找改善这种情况的方法,这就引入了QoS。然而,QoS需要WAN两端的合作,因此对大多数终端用户没有任何好处。唯一真正的解决方案是带宽限制。如果您有一个2mb的链接,您可以将TCP流量设置为1.5mb,将其余部分留给UDP游戏流量。

如果您正在开发一个分裂协议游戏,您将定义一个上限带宽限制,例如每个客户端的总流量为25KB/s,然后在该限制内为TCP和UDP流量定义单独的限制,例如TCP为15KB/s,UDP为10KB/s。通常,游戏倾向于在游戏外部使用HTTP(TCP)下载游戏内容,然后在游戏内部切换到UDP以完全消除问题。


谢谢大家。我复习了我的旧计算机通信课程,重写了报告的一些网络部分,并且抛弃了旧的参考资料。 - Jonathan Gustafsson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接