2013-03-27 72 views
4

我们正在开发一个游戏,数百万客户与我们的服务器进行通信。这些游戏大部分都是基于回合制的。我知道UDP提供了一些超过TCP的性能优势,但我想知道一个协议是否比另一个有安全优势?我已经阅读了一些网站,指出TCP通常会更安全,但是我看到大量利用TCP漏洞的攻击。UDP与TCP安全

我们的代码是相当宽容的连接不可靠的,失去/外的订单数据,这就是为什么我认为UDP的。谢谢!

+4

这些协议无论在设计时充分考虑了安全性... – 2013-03-27 19:10:13

回答

5

这是一个很好的资源比较UDP和TCP:http://www.skullbox.net/tcpudp.php

传统,最实时的应用程序使用UDP如:VOIP.I我不是安全, 专家,但我想他们两人都同样安全/ unsecure.It依赖于安全协议使用像TLS等

TCP只有保证数据包传送的机制。

6

与UDP最大的安全问题就是,你很容易受到欺骗和DOS攻击。由于握手永远不会完成,因此无法通过使用TCP在互联网上欺骗地址。 OTOH与UDP不存在隐式握手 - 任何会话维护必须由您的代码完成(处理开销)。

我知道,UDP提供了TCP的一些性能优势

只有在局域网 - 部分原因是不必进行握手的延迟的减少 - 但最大的区别是它绕过拥塞控制机制。这对于数据包丢失率很低的局域网不是问题 - 但是如果你想通过互联网发送数据,你将不得不在你的应用中实现带宽限制,错误恢复和拥塞控制(更多的处理高架)。虽然可以通过前向错误控制处理某些类型的数据包丢失,但这对于重载路由器无效。所有那些减慢UDP的东西都是有原因的。

如果您的数据流不超过任何方向的2个MSS,然后是来自远端的确认消息,那就去做吧 - 但如果您想快速移动大量数据,请使用TCP(或旅行车)。

+0

我们的游戏是不是流式音频或视频,这只是短暂的输送用包当前游戏状态 - 这会避免拥堵问题? – 2013-03-27 21:20:47

+0

如果他们真的很简短,那么拥塞不应该是太多的问题 - 使用FEC会减少影响 - 但是没有太多关于互联网UDP可靠性的数据,因此我建议执行一些现场试验或坚持TCP。 – symcbean 2013-03-27 21:58:18

+0

@symcbean UDP不会创建可靠的通信形式,因此具有超过TCP的性能优势,确保每个数据包都能被接收。 – 2014-08-25 20:53:30