一---導讀緩存
UDP和TCP做爲運輸層的兩大協議,你們能夠把它兩形象的比喻成爲進程提供服務的管家,UDP是不靠譜的一個管家,而TCP是靠譜的管家。spa
二---UDP和TCP的不一樣點3d
A:通訊即時性的不一樣視頻
使用UDP通訊協議的雙方隨時能夠進行通訊,而使用TCP協議的雙方,必需要通過三次握手以後才能進行通訊,而且在通訊完成後要經歷四次揮手斷開鏈接。對象
B:面向(或者說操做的)對象不一樣blog
UDP是面向應用報文的:進程
使用UDP協議的發送方,收到來自應用進程的報文後,加上UDP首部(源端口,目的端口,長度,檢驗和),UDP接收收到報文後,拆除首部,而後將數據部分交給相應的進程(根據首部的目的端口號)。路由
TCP是面向字節流的(這是實現可靠傳輸,流量控制,擁塞控制的基礎):基礎
使用TCP協議的發送方,把應用進程發下來的報文看作字節流,而後對其一個個編號裝到發送緩存中,根據發送規則,提取必定的字節,將其打包成TCP報文段進行發送(想象一下寄快遞過程)。接收方接收到報文段,而後取出其中的數據載荷部分(把打包的盒子拆開),存到接收緩存中。一部分交付給應用進程打包
C:通訊的雙方數量不一樣
UDP支持單播,多播,廣播(一對一,一對多,一對全的通訊)。
TCP之間僅支持單播(一對一)。
D:對數據的責任感不一樣
IP協議向上(運輸層)提供的是無鏈接,不可靠的傳輸服務。
若傳輸層使用UDP協議,那向上提供的也是無鏈接,不可靠的傳輸服務,發送方發送的UDP數據報,若接收方根據數據報首部中的校驗和字段的值,檢查出誤碼,但僅僅丟棄該數據報,其它什麼也不作(不負責任),若通過路由器的時候數據報丟失,UDP接收方也是什麼都不作,僅僅是丟棄改數據報。(IP電話,視頻會議)
若用TCP協議,通訊雙方不會出現誤碼,丟失,亂序,重複等狀況(文件傳輸)
E:首部對比
UDP的首部僅僅包含源端口,目的端口,長度,檢驗和,每一個佔2個字節,首部也就是8個字節。
而TCP由於提供的是可靠的,面向鏈接的,具備流量控制和擁塞控制,因而TCP的首部要複雜的多,以下圖所示。