2013-03-09 65 views
0

对于刚刚返回时为30,或10查询这样的数量不多,但将不得不处理高达5级左右的请求在任何情况下,将TCP或UDP是一个更好的协议的服务?我倾向于UDP,但我想要一些专家意见。我也在寻找相对较快的回复时间。你能告诉我每种服务的优点是什么吗?谢谢。TCP或UDP简单服务

+2

匹克TCP除非你真的知道你需要UDP。处理起来更容易。 – Joe 2013-03-09 23:06:58

回答

3

TCP是一种可靠的基于连接的协议。因此,您可以保证数据的发送/接收 - 如果数据包未经验证可以在另一端收到,数据包会自动重新发送。但是,建立连接的三次握手开销。

TCP用于像HTTP协议其中存在的信息(HTTP请求和应答)一次性交换。


UDP是一种不可靠的无连接协议。因此,您可以简单地发送/接收数据包,但您没有(自动,OS堆栈提供的)方式来验证另一端是否收到了您的消息。如果你在意,你必须自己实施某种确认。

UDP通常用于更连续的,“流”类型的协议。例如,许多在线多人游戏使用UDP来与主机交换游戏信息。他们持续不断地定期做这件事。所以如果一个数据包丢失了,这不是什么大不了的事,因为另一个更新就在即。如果你不得不等待这个(现在过时的)更新被重新传输,那么对于游戏玩法来说会更糟糕。

DNS还通过UDP实现。


最终选择是你的。在大多数情况下,我可能会默认为TCP,并且只能在我描述的场景中使用UDP。

+0

好听起来不错。这听起来像TCP是要走的路,但服务器可以通过同一端口维护多个连接吗?因为它可能一次处理超过1个请求 – Iowa15 2013-03-09 23:11:36

+0

我会让你自己回答一个。提示:你有没有像其他人一样访问过一个网站? – 2013-03-09 23:16:41

+2

+1:TCP几乎总是**正确的答案。除了少数例外,UDP很少是你真正想要的。 – 2013-03-10 01:09:00