Networking

UDP和TCP有什麼區別?

  • June 24, 2016

我的路由器有兩個協議(和一個“兩者”選項),我可以在設置埠轉發時選擇它們:UDP 和 TCP。這兩種協議有什麼區別?什麼時候在埠轉發中選擇另一種?

TCP由確認和重試支持,以確保您的數據到達目的地。UDP是無連接的並且“即發即棄”。UDP 主要用於流式應用程序,如果您失去了一些數據,則無需再次嘗試發送。

您使用哪一種取決於應用程序。例如,Web 伺服器使用 TCP。

你可以在這裡找到一個很好的總結:

UDP和TCP網際網路協議有什麼區別?

TCP 和 UDP 都工作在傳輸層 TCP/IP 模型上,但用途卻大不相同。

最重要的區別是:

  • 可靠性

TCP:面向

連接 UDP:無連接

  • Ordered

TCP:保證消息接收的

順序 UDP:不保證順序

  • 協議權重

TCP:重量級,因為連接/排序成本

UDP:輕量級,成本很少

  • 數據包

TCP:流式傳輸,數據作為“流”讀取,沒有區別一個數據包在哪裡結束,另一個數據包從哪裡開始。每個讀取呼叫可能有多個數據包。

UDP:數據報,每次讀取呼叫一個數據包。

框架結構

當數據通過網路發送時,需要將其封裝成所謂的“幀”。根據所使用的協議和拓撲,有多種封裝方法。下圖顯示了 TCP 和 UDP 幀結構的不同之處。

這是 TCP 幀結構:

TCP 幀

這個UDP幀結構,簡單多了:

UDP 幀

使用 TCP 的典型協議是 HTTP、FTP 和 SMTP。使用 UDP 的協議範例有 DNS 和 DHCP。

引用自:https://serverfault.com/questions/8981