我知道,我知道。这个问题已经被问了很多次。但是我花了一个小时在谷歌上搜索,没有找到我要找的内容,所以我会再次提出这个问题,并提及我的背景以及让我难以做出决定的因素:
我正在为一个游戏编写服务器,响应时间非常重要,偶尔丢失数据包并不是问题。
根据这个和作为服务器我大部分时间必须向许多不同的客户端发送相同的数据,显然的答案是UDP。
当我开始编写代码时,我遇到了这个:
根据这个和作为服务器我大部分时间必须向许多不同的客户端发送相同的数据,显然的答案是UDP。
当我开始编写代码时,我遇到了这个:
在我的情况下,我发送的信息单元是<100字节,这意味着每个信息单元都适合单个UDP数据包(这对我来说非常愉快,因为我不必处理分段),而UDP似乎更容易为我的目的实现,因为我不必处理大量的单个连接,但我的首要任务是将时间最小化。在某些应用中,TCP比UDP更快(吞吐量更高)。 当进行大量小写操作相对于MTU大小时,就是这种情况。例如,我读到了一项实验,在以太网(1500字节MTU)上传送300字节数据包流时,TCP比UDP快50%。
client sends something to server
和
client receives response from server
如果TCP是更快的方式,我愿意选择它。 不幸的是,我找不到关于上述引用案例的更多信息,这就是为什么我在问:在我的情况下哪个协议会更快?