摘要:是什么是的縮寫,是一種用戶數據報協議,又稱為用戶數據報文協議。協議所需資源多,首部需個字節不算可選項,首部字段只需個字節。協議沒有數據邊界,有。因此容易發生粘包的現象。采用協議,通過服務器中轉方式。
UDP是什么?
UDP是User Datagram Protocol的縮寫,是一種用戶數據報協議,又稱為用戶數據報文協議。區別于TCP是面向連接的協議,UDP是一個簡單的面向數據報的傳輸層協議,UDP的發起和接受是不需要經過連接的,僅僅只需要發送在對應端口上進行監聽接受即可,不需要兩個客戶端一定是連接的
由于UDP的速度快,所以適合于在線視頻媒體,電話視頻聊天,電視廣播,多人在線游戲這些項目
UDP傳輸不可靠的原因有五點:
TCP協議和UDP協議的區別是什么?
1.TCP協議是有連接的,有連接的意思是開始傳輸實際數據之前TCP的客戶端和服務器端必須通過三次握手建立連接,會話結束之后也要結束連接。而UDP是無連接的
2.TCP協議保證數據按序發送,按序到達,提供超時重傳來保證可靠性,但是UDP不保證按序到達,甚至不保證到達,只是努力交付,即便是按序發送的序列,也不保證按序送到。
3.TCP協議所需資源多,TCP首部需20個字節(不算可選項),UDP首部字段只需8個字節。
4.TCP有流量控制和擁塞控制,UDP沒有,網絡擁堵不會影響發送端的發送速率
5.TCP是一對一的連接,而UDP則可以支持一對一,多對多,一對多的通信。
6.TCP面向的是字節流的服務,UDP面向的是報文的服務。
7.TCP協議沒有數據邊界,UDP有。因此TCP容易發生粘包的現象。在UDP中數據包是多帶帶發送的,只有當他們到達時才會再次集成,包有明確的界限來判斷哪些包已經收到。
例子:
QQ客戶端之間的消息傳送也采用了UDP模式,因為國內的網絡環境非常復雜,而且很多用戶采用的方式是通過代理服務器共享一條線路上網的方式,在這些復雜的情況下,客戶端之間能彼此建立起來TCP連接的概率較小,嚴重影響傳送信息的效率。
采用UDP協議,通過服務器中轉方式。大家都知道,UDP協議是不可靠協議,它只管發送,不管對方是否收到的,但它的傳輸很高效。但是,作為聊天軟件,怎么可以采用這樣的不可靠方式來傳輸消息呢?于是,騰訊采用了上層協議來保證可靠傳輸:如果客戶端使用UDP協議發出消息后,服務器收到該包,需要使用UDP協議發回一個應答包。如此來保證消息可以無遺漏傳輸。之所以會發生在客戶端明明看到“消息發送失敗”但對方又收到了這個消息的情況,就是因為客戶端發出的消息服務器已經收到并轉發成功,但客戶端由于網絡原因沒有收到服務器的應答包引起的。
之所以當時應用UDP,最本質上UDP的優勢還是帶寬的利用。這一切要回歸到99~03年的網絡狀況,當時網絡的特點就是接入帶寬很窄而且抖動特別厲害。所謂抖動可能是多方面的,例如延時突發性地暴增、也有可能是由于路由層面的變化突然導致路由黑洞,還各種等等等等的問題。TCP因為擁塞控制、保證有序等原因,在這種網絡狀態上對帶寬的利用是非常低的。而且因為網絡抖動的原因,應用層心跳超時,應用層主動斷掉socket之后TCP需要三次握手才能重新建立鏈接,一旦出現頻繁的小抖動就會使得帶寬利用更低。而等待四次揮手的時間,也會占用服務器上寶貴的資源。
總結來說,當網絡差到一定程度了,TCP的優勢反而會成為劣勢。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/126104.html
摘要:由于本身發送的就是一份一份的數據報,所以自然而然的就有一個上限的大小。并且由于本身的不可靠性以及無序性,如果發送了這三個數據報過來,端接收到的可能是任意順序任意個數三個數據報的排列組合。 前言 最頭疼的問題莫過于到底該選TCP還是UDP作為傳輸層協議。通過快速對比分析 TCP 和 UDP 的區別,來幫助即時通訊初學者快速了解這些基礎的知識點,從而在IM、消息推送等網絡通信應用場景中能準...
摘要:前端主要關注于應用層的協議,傳輸層的協議斷舍離一下,就主要總結這兩種協議了。是序號,是確認序號。根據服務端發來的返回一個包給服務端。服務端接收后進入狀態。并在兩端維護了索引表,用于記錄出現過的,避免重復傳輸。 前端主要關注于應用層的 HTTP 協議,傳輸層的 TCP 協議,斷舍離一下,就主要總結這兩種協議了。 OSI 參考模型 與 TCP/IP 五層模型 showImg(https:/...
摘要:這時候超過定時器設定的時間就會再次發送丟包的數據直到對端響應,所以需要每次都備份發送的數據。 UDP 面向報文 UDP 是一個面向報文(報文可以理解為一段段的數據)的協議。意思就是 UDP 只是報文的搬運工,不會對報文進行任何拆分和拼接操作。 具體來說 在發送端,應用層將數據傳遞給傳輸層的 UDP 協議,UDP 只會給數據增加一個 UDP 頭標識下是 UDP 協議,然后就傳遞給網絡層...
閱讀 3514·2023-04-25 20:09
閱讀 3720·2022-06-28 19:00
閱讀 3035·2022-06-28 19:00
閱讀 3058·2022-06-28 19:00
閱讀 3132·2022-06-28 19:00
閱讀 2859·2022-06-28 19:00
閱讀 3014·2022-06-28 19:00
閱讀 2610·2022-06-28 19:00