簡述tcp和udp的區別?


tcp是面向連接的協議,也就是說,在收發數據前,必須和對方建立可靠的連接。一個TCP連接必須要經過三次“對話”才能建立起來。使用TCP協議傳輸數據,TCP提供超時重發,丟棄重復數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另一端。當數據從A端傳到B端后,B端會發送一個確認包(ACK包)給A端,告知A端數據我已收到!
  UDP協議就沒有這種確認機制,這就是為什么說TCP協議可靠,UDP協議不可靠,提供這種可靠服務,會加大網絡帶寬的開銷,因為“虛擬信道”是持續存在的,同時網絡中還會出現大量的ACK和FIN包。TCP協議提供了可靠的數據傳輸,但是其擁塞控制、數據校驗、重傳機制的網絡開銷很大,不適合實時通信,所以選擇開銷很小的UDP協議來傳輸數據。UDP協議是無連接的數據傳輸協議並且無重傳機制,會發生丟包、收到重復包、亂序等情況。
  1.基於連接與無連接。
  2.UDP不提供可靠性,不能保證數據能夠到達目的地。
  3.對系統資源的要求(TCP較多,UDP少)。
  4.UDP結構較簡單。
  5.TCP面向字節流模式,TCP會保證服務端按順序接收到全部的字節流,UDP面向數據報模式,不保證順序性。
很明顯,當數據傳輸的性能必須讓位於數據傳輸的完整性、可控制性和可靠性時,選擇TCP協議。當強調傳輸性能而不是傳輸的完整性時,如音頻和多媒體應用,UDP是最好的選擇。在數據傳輸時間很短,以至於此前的連接過程成為整個流量主體的情況下,UDP也是一個好的選擇,如DNS交換。UDP較低的開銷使其有更好的機會去傳送管理數據。TCP豐富的功能有時會導致不可預料的性能低下。


免責聲明!

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



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