UDP與TCP的區別
- UDP是無鏈接的,即發送數據以前不須要創建鏈接,發送數據結束時也沒有鏈接能夠釋放,所以減小了開銷和發送數據以前的時延。目的主機的運輸層在收到UDP報文後,不須要給出任何確認。
- TCP是面向鏈接的運輸層協議,也就是說,應用程序在使用TCP協議以前,必須先創建TCP鏈接,在傳送數據完畢後,必須釋放已經創建的TCP鏈接
- UDP盡最大努力交付,即不保證可靠交付,所以主機不須要維持複雜的鏈接狀態表。
- TCP提供可靠交付的服務。經過TCP鏈接傳送的數據,無差錯、不丟失、不重複,而且按序到達。
- UDP是面向報文的。發送方的UDP對應用程序交下來的報文,在添加首部後就向下交付IP層,應用層交給UDP多長的報文,UDP就照樣發送,既不合並,也不拆分,一次發送一個報文。
- TCP是面向字節流的,即TCP把應用程序交下來的數據僅僅當作是一連串的無結構的字節流
- UDP支持一對1、一對多、多對一和多對多的交互通訊
- 每一條TCP鏈接只能有兩個端點,每一條TCP鏈接只能是點對點的(一對一)。
- UDP沒有擁塞控制,所以網絡出現的擁塞不會使源主機的發送速率下降。
- UDP的首部小,只有8個字節,比TCP的20個字節的首部要短
- TCP提供全雙工通訊。TCP容許通訊雙方的應用進程在任什麼時候候都能發送數據。TCP鏈接的兩端都設有發送緩存和接收緩存,用來臨時存放雙向通訊的數據。在發送時,應用程序在把數據傳送給TCP的緩存後,就能夠作本身的事情了,而TCP在合適的時候把數據發送出去。在接收時,TCP把收到的數據方法緩存,上層的應用進程在合適的時候讀取緩存中的數據。 參考書籍:計算機網絡(第7版) 謝希仁
歡迎關注本站公眾號,獲取更多信息