当前位置:  开发笔记 > 程序员 > 正文

为什么UDP +软件可靠的订购系统比TCP更快?

如何解决《为什么UDP+软件可靠的订购系统比TCP更快?》经验,为你挑选了2个好方法。

今天的一些游戏使用通过UDP传输消息的网络系统,并确保消息可靠和有序.

例如,RakNet是一种流行的游戏网络引擎.它仅使用UDP进行连接,并且有一个完整的系统,以确保数据包可靠,并在您选择时进行排序.

我的基本问题是,那是什么?TCP是否与有序,可靠的UDP相同?是什么让人们不得不基本上重新发明轮子?



1> Steve Schnep..:

通用/专业

    TCP是一种通用的可靠系统

    UDP +无论什么是特殊用途的可靠系统.

对于他们专业的东西,专门的东西通常比通用的东西更好.

流/消息

    TCP是基于流的

    UDP是基于消息的

发送离散游戏信息地图通常更适合基于消息的范例.通过流发送它是可能的,但非常无效.如果要可靠地发送大量数据(文件传输),TCP非常有效.这就是Bit-torrent使用UDP控制消息和TCP用于数据发送的原因.



2> 小智..:

大约一年前,我们在"传说联盟"中从可靠转为不可靠,因为有几个优点已被证明是真实的:

1)旧信息变得无关紧要.如果我发送一个健康数据包但它没有到达...我不想等到同一个健康数据包重新发送,当我知道它已更改.

2)订单有时不是必需的.如果我向不同的系统发送不同的消息,则可能没有必要按顺序获取这些消息.我不强迫客户端等待有序消息.

3)不可靠不会备份消息...即等待确认,这意味着您可以更快地解决损失峰值.

4)您可以在必要时更有效地控制重新发送.比如重新打包没有发送到另一个数据包的东西.(TCP会重新打包,但您可以通过有关程序运行方式的知识更有效地完成.)

5)消息的流控制,例如丢弃在网络突然出现时不太相关的消息.当您遇到损失峰值时,网络系统可以选择不重新发送不太相关的消息.使用TCP,您仍然有一个尝试重新发送的消息队列,这可能是较低的优先级.

6)较小的头部数据包......实际上并不需要说太多.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有