TCP流和UDP數據報之間的區別
1.TCP本身是面向連接的協議,S和C之間要使用TCP,必須先建立連接,數據就在該連接上流動,可以是雙向的,沒有邊界。所以叫數據流 ,占系統資源多
2.UDP不是面向連接的,不存在建立連接,釋放連接,每個數據包都是獨立的包,有邊界,一般不會合並。
3.TCP保證數據正確性,UDP可能丟包,TCP保證數據順序,UDP不保證
UDP使用場景
1.需要資源少,在網絡情況比較好的內網,或者對於丟包不敏感的應用。如DHCP協議就是基於UDP的。一般的獲取IP地址都是內網請求,而且一次獲取不到IP又沒事。
2.又比如基於UDP的RTP,TFTP,丟一幀數據問題也不大。再比如一些設備發現協議等等。
3.不需要一對一溝通,建立連接,而是可以廣播的應用。DHCP就是一種廣播的形式。VXLAN也是需要用到組播,也是基於UDP協議的。
4.需要處理速度快,時延低,可以容忍少數丟包,但是要求即便網絡擁塞,也毫不退縮,一往無前的時候。QUIC是Google提出的一種基於UDP改進的通信協議,其目的是降低網絡通信的延遲,提供更好的用戶互動體驗。