我目前正在撰写计算机科学与工程专业的学士论文,我们正在使用OpenGL在C ++中创建一个赛车游戏。在报告中,我正在比较TCP和UDP的使用,我找到了source,声称多个TCP连接可能会导致UDP连接中的数据包丢失。我甚至得到了一个很好的reference
问题在于它已有13年的历史,但我无法找到任何协议已修改以解决此问题的迹象。我也找不到任何更新的纸张或文章,进行类似的调查
所以,我的问题是协议中是否有任何可能相关的变化和/或我是否应该忘记在论文报告中使用这个旧的参考文献。
答案 0 :(得分:1)
阅读文章中的重点:
因此,测试中的WAN链路已经饱和,测试是为了确保TCP和UDP协议的公平性。在评论中链接的29篇文章也指出:
神话 - 网络没有损失 运作正常。
Reality - TCP的正常运行 拥塞控制可能导致损失 排队溢出。请参阅this report 更多信息。损失率 百分之几是常见的 严重拥堵。
这些都不是特别新的,或者对任何人都应该感到惊讶。以最低速度考虑家庭互联网连接,DSL或电缆,例如2mb / s并设置一台计算机,Bittorrent下载几个大文件,现在尝试运行一个UDP游戏,如Valve的Team Fortress 2.它不会运行良好。
通过VoIP,许多网络人员开始研究改善这种情况的方法,从而将QoS带到了桌面。然而,QoS需要合作WAN的两端,因此这对大多数最终用户没有任何好处。唯一真正的解决方案是带宽限制。如果您有一个2mb的链接,则将TCP流量设置为1.5mb,剩余的UDP流量用于游戏。
如果您正在开发分割协议游戏,您将为总流量定义一个带宽上限,例如每个客户端25KB / s,然后在该限制内定义TCP和UDP流量的单独限制,例如: TCP为15KB / s,UDP为10KB / s。通常游戏倾向于使用HTTP(TCP)下载游戏外的游戏内容,然后在游戏内切换到UDP以完全消除问题。