TCP和UDP的區別(面試必問)

一---導讀緩存

  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的首部要複雜的多,以下圖所示。

相關文章
相關標籤/搜索