首先,先說一下tcp和udp的區別。
1.tcp是面向連線的協議,有確認重傳機制,流量控制機制等;而udp是非面向連線的協議,盡力而為的傳送資料,重傳由上層協議來控制,也可以使用connect()來控制。
2.從頭部結構來說,tcp因為有選項部分,所以有首部長度字段;而udp沒有選項部分,所以不需要首部長度字段。
3.tcp的checksum部分是必需的;udp的選項部分是可選的,不填充的話預設為全零。
4.tcp避免分段,因為有重傳機制本來就浪費了一些頻寬,一旦出現分段,那麼重傳會大量增加,將會浪費大量頻寬並且會嚴重降低傳輸效率;而udp則不關心分不分段,且因為udp的頭部小(只有8位元組,而tcp頭部最小也得20位元組),故可以攜帶更多的資料。
5.tcp是基於資料流傳輸的,所以應用程式產生的全體資料與真正傳送的單個ip資料報沒有什麼聯絡;而udp是面向資料報的傳輸層協議,程序的每個操作產生都正好產生乙個udp資料報,並組裝成乙個ip資料報傳送。
以上就大概是tcp和udp在協議層面的區別了。
接下來,再從應用程式的層次說一下tcp和udp。
基於前面的說法,總結一下本文的問題答案。tcp適合實時性要求不高,但要求內容要完整傳輸的應用。相比而言,udp由於無連線、無重傳確認,所以傳輸效率高、延時小,適合實時性要求高的應用,如遊戲
let與var的區別,為什麼什麼要用let?
1.var是全域性宣告,let是塊級作用的,只適用於當前 塊 var a 1 if true if 內就是let作用於的塊 2.var變數會發生變數提公升,let則不會進行變數提公升 console.log a var a 2 console.log a 結果為underfined 如果是 let ...
電子族譜與傳統紙質族譜的區別 為什麼要用電子族譜
族譜是一項重要的家族史料,記載了族群的衍生,遷移,發展壯大的過程。它不僅是紀念先人是方式,也是傳承家族血脈,教育和激勵後輩進取的文化財產。電子族譜是相對於紙質族譜而言的,通常來說,只要是在電子裝置上結構化呈現的,就可以定義為電子族譜。電子族譜通常又會被稱為網路族譜,電腦族譜等,而隨著雲計算和雲儲存技...
TCP和UDP的區別
tcp transimission control protocol 傳輸控制協議 和udp user datagram protocol 是傳輸層的兩種實現版本!它們之間提供基本的服務又各有所長。因此,根據對特定服務質量的要求,應用層軟體單元可以選擇通過傳輸層的tcp版本或者udp版本來傳輸資料。...