UDP協議(User Data Protocol)


特點:
1.面向無連接的協議;
2.UDP報頭只有8字節。


簡介:
1.傳輸數據前源端和終端不需要連接,當它傳送數據時簡單地去抓取來自應用程序的數據,并盡可能快的把它。換句話說就是,客戶端向服務器發送信息,客戶端只需要給出服務器的ip地址和端口號,然后將信息封裝到一個待發送的報文中并且發送出去。至于服務器端是否存在,或者能否收到該報文,客戶端根本不用管。
2.在發送端,UDP傳送數據的速度僅僅受程序生成數據的速度、計算機能力和傳輸帶寬的限制。
3.在接收端,UDP把每個消息放到隊列中,應用程序每次從隊列中讀取一個消息段。
4.由于傳輸數據不需要建立連接,因此也就不用維護連接狀態,包括收發狀態等,因此一臺服務器可以同時向多個客戶機傳輸相同的消息。
5.UDP包的標題很短,只有8個字節,相對于TCP的20個字節信息包額外的開銷小很多。
6.吞吐量不受擁擠算法的調節,只受應用程序生成數據的速度、傳輸帶寬、源端和終端性能的限制。
7.UDP使用盡最大努力交付,即不保證可靠交付,所以主機不需要維護復雜的連接狀態表。
8.UDP是面向報文的。發送方的UDP對應用程序交下來的報文,添加了首部后直接交給下層的IP層,既不拆分,也不合并,而是保留這些報文的邊界,因此,應用程序需要選擇合適的報文大小。

使用“ping”命令來測試兩臺主機之間TCP/IP通信是否正常,其實“ping”命令的原理就是向對方主機發送UDP數據包,然后對方主機確認收到數據包,如果數據包是否到達的消息及時反饋回來,那么網絡就是通的。


優點:
1.傳輸速率快,不需要像TCP一樣建立連接,傳送數據時沒有確認、重傳、擁塞控制等機制。
2.較安全,由于沒有TCP的一些機制,被攻擊的漏洞少。

缺點:
1.不可靠,不穩定,由于沒有TCP的機制,在傳送數據時,如果網絡不好,容易出現丟包的情況。


用UDP協議通訊時怎樣得知目標機是否獲得了數據包?
????????偽造TCP的做法,每發一個UDP包時,都在里面加入一個seq序號,接收方接收到包后,將seq回復給發送方。如果在發送方指定的時間內沒有收到回應,說明丟包了。


TCP與UDP的區別

TCP UDP
TCP面向有連接的通信服務 UDP非面向連接的通信服務
TCP提供可靠的通信傳輸 UDP提供不可靠的通信傳輸,會丟包
TCP保證數據順序 UDP不保證
TCP數據無邊界 UDP有邊界
TCP速度慢 UDP速度快
TCP面向字節流 UDP面向報文
TCP一對一 UDP可以一對一,可一對多
TCP報文頭至少20個字節 UDP報文頭8個字節
TCP有流量控制、擁塞控制 UDP沒有

問題:

  • 為什么UDP比TCP快
    1.TCP需要三次握手連接;
    2.TCP有流量控制、擁塞控制。

  • 為什么TCP比UDP可靠
    1.TCP是面向連接,建立連接后才發送數據;而UDP則不管對方存不存在都會發送數據。
    2.TCP有確認機制,接收端每收到一個正確包都會回應給發送端;超時或者數據包不完整的時候發送端會重傳。UDP沒有,因此容易丟包。

  • 什么時候使用TCP
    ????????當對網絡通訊質量有要求的時候。比如:把整個數據完整無誤的發送給對方,這往往用于一些要求可靠的應用,如HTTP、HTTPS、FTP等傳輸文件的協議,POP、SMTP等郵件傳輸協議。在日常生活中,常見的TCP協議的應用有:瀏覽器、用HTTP的FlashFXP,用FTP的OutLook,用POP、SMTP 的Putty,用Telnet、SSH的QQ文件傳輸。

  • 什么時候應該使用UDP
    ????????當對網絡通訊質量要求不高的時候,要求網絡通信速度盡量快,這時用UDP。日常常見的使用UDP協議的應用:QQ語音,QQ視頻,TFTP。

  • TCP無邊界
    ????????客戶端將數據分多次發生數據給服務器,如果服務器的數據緩沖區夠大,那么服務器會在客戶端發送完數據后一次性接收過來,所以是無邊界的。

  • UDP有邊界
    ????????保護消息邊界,就是指傳輸協議把數據當作一條獨立的消息在網上傳輸,接收端只能接收獨立的消息.也就是說存在保護消息邊界,接收端一次只能接收發送端發出的一個數據包.
    ????????而面向流則是指無保護消息保護邊界的,如果發送端連續發送數據, 接收端有可能在一次接收動作中,會接收兩個或者更多的數據包.
    ????????客戶端每發送一次,服務器端就會接收一次,也就是說發送多少次就會接收多少次,因此是有邊界的。例如,我們連續發送三個數據包,大小分別是2k, 4k , 8k,這三個數據包,都已經到達了接收端的網絡堆棧中,如果使 用UDP協議,不管我們使用多大的接收緩沖區去接收數據,我們必須有 三次接收動作,才能夠把所有的數據包接收完.而使用TCP協議,我們 只要把接收的緩沖區大小設置在14k以上,我們就能夠一次把所有的 數據包接收下來.只需要有一次接收動作。


參考:TCP與UDP

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內容

  • 個人認為,Goodboy1881先生的TCP /IP 協議詳解學習博客系列博客是一部非常精彩的學習筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,084評論 0 8
  • 1.這篇文章不是本人原創的,只是個人為了對這部分知識做一個整理和系統的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,115評論 6 174
  • 1.1 TCP/IP協議組 TCP/IP協議(傳輸控制協議)由網絡層的IP協議和傳輸層的TCP協議組成 IP層負責...
    F麥子閱讀 2,807評論 0 25
  • 11.1 引言 UDP是一個簡單的面向數據報的運輸層協議:進程的每個輸出操作都正好產生一個UDP數據報,并組裝成一...
    張芳濤閱讀 2,844評論 1 6
  • 計算機網絡七層模型中,傳輸層有兩個重要的協議:(1)用戶數據報協議UDP (User Datagram Proto...
    Q南南南Q閱讀 1,734評論 0 3