當前位置:編程學習大全網 - 源碼下載 - C# udp是什麽意思啊,是幹什麽的啊

C# udp是什麽意思啊,是幹什麽的啊

最普遍的介紹:

UDP 是User Datagram Protocol的簡稱, 中文名是用戶數據包協議,是壹種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。UDP是與TCP相對應的協議,它是面向非連接的協議,它不與對方連接,而直接把數據包發送過去。“面向非連接”就是正式通信前不必與對方建立連接,不管對方狀態就直接發送。

特點是什麽:

(1)UDP是壹個無連接協議,傳輸數據之前,源端和終端不建立連接,當它想傳送時就簡單的抓取來自應用程序的數據,並盡可能快的把他扔到網絡上。在發送端UDP傳送的速度僅僅是受應用程序數據生成的速度、計算機能力和傳輸帶寬限制;在接收端,UDP把每個消息段放在隊列中,應用程序每次從隊列中讀取壹個消息段。

(2)由於傳輸數據不建立連接,因此也就不需要維護連接狀態,包括收發狀態等,因此壹臺服務機可同時向多臺客戶機傳輸相同的信息。

(3)UDP信息包的標題很短,只有8個字節,相對於TCP的20個字節信息包的額外開銷很小。

(4)吞吐量不受擁擠控制算法的調節,只受應用軟件生成數據的速率、傳輸寬帶、源端和終端主機性能的限制。

(5)UDP使用盡量最大努力交付,即不保證可靠交付,因此主機不需要維持復雜的鏈接狀態表(該表中有許多參數)。

(6)UDP是面向報文的。發送方對應用程序交下來的報文,在添加首部後就向下交付個IP層。既不拆分,也不合並,而是保留這些報文的邊界,因此,應用程序需要選擇合適的報文大小。

舉例說明應用場景:

壹般用於實時視頻通訊,例如QQ

實時音視頻是可以而且應該用 UDP 的,壹方面因為它常常涉及到網絡穿透,另外壹方面它不需要重傳。——我需要實時的看到妳的圖像跟聲音,至於中間丟壹幀什麽的完全不重要。而為了重傳往往會造成延遲與不同步,考慮壹下,某壹幀因為重傳,導致0.5秒以後才到,那麽整個音視頻就延遲了0.5秒。

考慮壹下接收方看視頻,如果使用 TCP 導致視頻的中間延遲了0.5秒,只要我不按「快進」鍵,那麽後續的視頻全都會比發送方延遲0.5秒。這種延遲是累加的,隨著持續丟幀,延遲會越來越大,達到數秒,甚至分鐘級,這會嚴重影響實時音視頻的用戶體驗。

因此「實時音視頻聊天」功能通常都會使用 UDP 實現。

其它含義:

註:UDP比TCP更容易穿越路由器防火墻。

註:在互聯網技術中,UDP常用在緩存讀取,保存;用在監控或終端上報。

註:在選擇使用協議的時候,選擇UDP必須要謹慎。在網絡質量令人十分不滿意的環境下,UDP協議數據包丟失會比較嚴重。但是由於UDP的特性:它不屬於連接型協議,因而具有資源消耗小,處理速度快的優點,所以通常音頻、視頻和普通數據在傳送時使用UDP較多,因為它們即使偶爾丟失壹兩個數據包,也不會對接收結果產生太大影響。比如我們聊天用的ICQ和QQ就是使用的UDP協議。

  • 上一篇:芯片集中購買源代碼
  • 下一篇:黃歷中起造是什麽意思
  • copyright 2024編程學習大全網