傳輸層——UDP和TCP的對比


整理自計算機網絡微課堂

 

一、UDP是無連接的,而TCP是面向連接的。

使用UDP協議通信的雙方,可以隨時發送數據。

使用TCP協議的通信雙方,在進行數據傳輸之前,必須使用“三報文握手”來建立TCP連接,TCP連接建立成功后才能進行數據傳輸。數據傳輸結束后,必須使用“四報文揮手”來釋放TCP連接。這里的連接是指邏輯連接關系,而不是物理連接。

二、UDP支持單播、多播及廣播,TCP只支持單播。

UDP支持單播、多播、廣播,也就是說,UDP支持1對1、1對多、1對全的通信。

TCP只支持單播,也就是1對1通信。

三、UDP是面向報文的,TCP是面向字節流的

UDP對應用進程交付下來的報文既不合並也不拆分,而是保留這些報文的邊界。

發送方的TCP把應用進程交付下來的數據塊僅僅看作是一連串的、無結構的字節流,TCP並不知道這些待傳送的字節流的含義,僅將他們編號,並存儲在自己的發送緩存中。TCP根據發送策略,從發送緩存中提取一定數量的字節,構建TCP報文段並發送。

接收方的TCP一方面從所接收到的TCP報文段中取出數據載荷部分並存儲在接收緩存中,一方面將接收緩存中的一些字節交付給應用進程,TCP不保證接收方應用進程所收到的數據塊與發送方應用進程所發出的數據塊具有對應大小的關系。接收方的應用進程必須有能力識別收到的字節流,把它還原成有意義的應用層數據。也就是說,TCP是面向字節流的,這正是TCP實現可靠傳輸、流量控制、以及擁塞控制的基礎。

四、UDP向上層提供無連接、不可靠的傳輸服務,TCP向上層提供面向連接的可靠傳輸服務。

 

五、首部

UDP首部僅有4個字段,每個字段長度為2個字節,由於UDP不提供可靠傳輸服務,僅僅在網際協議的基礎上添加了用於區分應用進程的端口,因此,UDP的首部非常簡單,只有8個字節。

一個TCP報文段由首部和數據載荷兩部分構成,比UDP用戶數據報的首部復雜得多。其最小長度為20字節,最大長度為60字節,這是因為TCP要實現可靠傳輸、流量控制、擁塞控制等服務,因此TCP的首部復雜、字段多、首部長度長。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM