tft每日頭條

 > 生活

 > 計算機網絡tcp協議與udp的區别

計算機網絡tcp協議與udp的區别

生活 更新时间:2025-02-03 15:44:12

在程序員面試中,有一個經常被問到的網絡協議,那便是TCP與UDP,可能TCP大家都比較熟悉,三次握手四次揮手,對于UDP可能陌生一點,覺得應用場景比較少,不過這幾年,由于直播行業的快速發展,UDP的應用也越來越廣,今天我們來學習下UDP協議。

計算機網絡tcp協議與udp的區别(計算機網絡中的敢死隊)1

UDP,用戶數據包協議,又稱不可靠數據包協議,顧名思義,就是不能保證數據一定能傳輸到目标機器,既然不能保證傳達,為什麼還要用這種協議呢?豈不是非常地不合理?

場景

有位偉人說過,存在即為合理。例如網絡直播,網絡直播采用的很多協議都是基于UDP的,為什麼呢?在網絡直播的業務中,是允許部分丢包的,即便我們丢失了部分幀,也能夠正常的播放,并且用戶不一定感受得到。TCP是不允許丢包的,TCP協議會有複雜的重試機制,特别是在弱網環境下,一旦有數據發送失敗,TCP協議就會不停地重試,導緻新的視頻内容沒辦法刷出來,那樣子視頻反而會一卡一頓。同樣,在我們經常玩的MOBA遊戲中,例如王者榮耀或者英雄聯盟,一旦包丢失了,重新獲取到幾秒鐘前的包已經意義不大了。

計算機網絡tcp協議與udp的區别(計算機網絡中的敢死隊)2

構成

UDP的數據包非常的簡單,包頭隻有源端口、目标端口、長度跟校驗和四個字段,剩下的就是具體的包體了。和TCP相比,這已經是精簡到不能再精簡了,每一個字段都是必須的。源端口跟目标端口用來給操作系統定位是哪個應用來發送接收包信息,長度跟校驗和用來校驗UDP包是否正确。

特點

我們注意到,UDP的數據包并沒有序列,所以,UDP不保證消息交付順序,并且不确認,不重傳,不排重,随心所欲,有包就發,不像TCP會優先發隊首。

UDP不跟蹤連接狀态,不建立連接也不關心對方是否能收到!

UDP不需要流量控制,不管網絡的情況,沒有擁塞控制。

計算機網絡tcp協議與udp的區别(計算機網絡中的敢死隊)3

應用

即使UDP這麼的不靠譜,但是某些場景下的确需要這麼搞。UDP有三大使用場景。

  • 多播,因為UDP不用建立連接,所以非常适合用來廣播,要想,如果你是一個一萬台機器組建的集群,建立連接的消耗的代價是非常大的。
  • 網絡好或者允許丢包的的内網應用,在公司内網,網絡一般都非常好,這個時候非常适合使用UDP協議,消耗更小。
  • 需要處理速度更快,可以容忍少數丢包。UDP初生牛犢不怕虎,就跟敢死隊一樣,無論環境怎麼樣,都會一個勁地上,TCP就不這樣了,一旦隊列發生擁堵,就會等前面地處理完再處理。
總結

UDP雖然非常的簡單,但是UDP的應用仍然非常廣泛,可以關注我,後面我們再一起學習,一起分享。大家的支持是我繼續唠嗑的動力。同名公衆号(沙茶敏碎碎念)

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved