【发布时间】:2017-11-28 12:43:26
【问题描述】:
我知道,我知道。这个问题之前已经被问过很多次了。但是我现在花了一个小时在谷歌上搜索,但没有找到我要找的东西,所以我会再次询问并提及我的背景以及让我难以做出决定的原因: 我正在为一个游戏编写服务器,其中响应时间非常重要并且时不时丢包不是问题。
从这一点以及我作为服务器主要必须将相同的数据发送到许多不同的客户端这一事实来看,显而易见的答案是 UDP。
当我遇到这个时,我已经开始编写代码了:
在某些应用程序中,TCP 比 UDP 更快(更好的吞吐量)。 相对于 MTU 大小进行大量小写入时就是这种情况。例如,我阅读了一个实验,其中通过以太网(1500 字节 MTU)发送 300 字节数据包流,TCP 比 UDP 快 50%。
在我的情况下,我发送的信息单元小于 100 字节,这意味着每个单元都适合单个 UDP 数据包(这对我来说非常愉快,因为我不必处理碎片)并且 UDP 似乎实现起来要容易得多,因为我不必处理大量的单个连接,但我的首要任务是尽量减少之间的时间
client sends something to server
和
client receives response from server
因此,如果这是更快的方式,我愿意选择 TCP。 不幸的是,我找不到有关上述案例的更多信息,这就是我问的原因:在我的案例中哪种协议更快?
【问题讨论】: