UDP和TCP協議都屬於傳輸層協議,負責完成網絡中端到端之間的通信,其中UDP協議相對比較簡單,但是有些瑣碎的點還是值得總結的,另外一個UDP/TCP的區別也算是一個高頻考點了,因此,本文主要會總結下UDP協議的注意點,以及和TCP的區別,而TCP內容涉及太多了,會另外再開一篇博客總結的。
談協議,我們直接先看UDP報文是怎麼樣的,根據圖來學習理解UDP。
UDP的首部一共是8個字節,分別是源端口,目的端口,UDP長度,UDP檢驗和。其中源端口,目的端口標識了兩個主機上的進程(如果目的端口錯誤則丟失報文),UDP長度通常爲8字節,檢驗和則是用來檢測UDP數據報在傳輸中是否有錯,有錯即丟失。
需要注意的是:
TCP和UDP的區別:
- UDP是面向無連接的,TCP必須要建立連接
- UDP是盡最大努力交付(不可靠交付), TCP有專門的可靠傳輸機制
- UDP是面向報文段,一次性交付一個報文段(如果太長只會在IP層分片),TCP是面向字節流的,TCP對於數據只看作是無結構的字節流。
- UDP支持一對一,一對多,多對一,多對多的通信,TCP只支持點對點通信
- UDP首部只有8個字節,開銷小,TCP一般至少20字節
- UDP沒有擁塞機制,網絡擁塞不會使得UDP發送速率變低,當然這樣可能會導致網絡擁塞大家都沒法接收數據,TCP則有擁塞避免算法等等