2013-03-27 74 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