TCP和UDP之間的區別

2021-10-03 05:08:20 字數 2038 閱讀 6090

1. 連線、無連線

他們之間的第一點並且最重要的區別是:tcp是面向連線的協議,而udp是無連線的協議。這意味著當乙個客戶端和乙個伺服器通過tcp傳送資料之前,必須先建立連線,他們可以通過tcp傳送資料。建立連線的過程也被稱為tcp握手,他通過控制訊息在客戶端和伺服器之間互換來實現。下面的圖形象描述了tcp握手過程。客戶端,它也是tcp連線的發起者,傳送乙個syn訊息給伺服器,該伺服器端正在監聽某個tcp埠。伺服器接收該訊息並傳送乙個syn-ack訊息,客戶端接受到該訊息之後會再回乙個ack訊息。一旦伺服器收到ack訊息,tcp連線就建立成功,準備資料傳輸了。另一方面,udp是無連線的協議,和點對點連線之前不需要傳送訊息。這就是為什麼,udp更加適合訊息的多播發布,從單個點向多個點傳輸訊息

2. 可靠性

tcp提供交付保證,這意味著乙個使用tcp協議傳送的訊息是保證交付給客戶端的。如果訊息在傳輸過程中丟失,那麼它將重發,這是由tcp協議本身控制的。另一方面,**udp是不可靠的,**它不提供任何交付的保證。乙個資料報包在運輸途中可能會丟失。這就是為什麼udp是不適合保證交付的專案

3. 有序性

除了提供交付保證,為tcp也保證了訊息的有序性。該訊息將以從伺服器端發出的同樣的順序傳送到客戶端,儘管這些訊息到網路的另一端時可能是無序的。tcp協議將會為你排好序。udp不提供任何有序性或序列性的保證。資料報將以任何可能的順序到達。這就是為什麼tcp是適合需要順序交付方式的應用,儘管有基於udp的協議通過使用序列號和重傳來提供有序和可靠性的應用,如tibco rendezvous,他實際上就是乙個基於udp的應用

4. 資料邊界

tcp不儲存資料的邊界,而udp保證。在傳輸控制協議,資料以位元組流的形式傳送,並沒有明顯的標誌表明傳輸訊號訊息(段)的邊界。在udp中,資料報單獨傳送的,只有當他們到達時,才會再次整合。包有明確的界限來哪些包已經收到,這意味著在訊息傳送後,在接收器介面將會有乙個讀操作,來生成乙個完整的訊息。雖然tcp也將在收集所有位元組之後生成乙個完整的訊息,但是這些資訊在傳給傳輸給接受端之前將儲存在tcp緩衝區,以確保更好的使用網路頻寬

5. 速度

6. 重量級、輕量級

由於上述的開銷,tcp被認為是重量級的協議,而與之相比,udp協議則是乙個輕量級的協議。因為udp傳輸的資訊中不承擔任何間接創造連線,保證交貨或秩序的的資訊。這也反映在用於承載元資料的頭的大小

7. 頭大小

tcp具有比udp更大的頭。乙個tcp資料報報頭的大小是20位元組,udp資料報報頭是8個位元組。tcp報頭中包含序列號,ack號,資料偏移量,保留,控制位,視窗,緊急指標,可選項,填充項,校驗位,源埠和目的埠。而udp報頭只包含長度,源埠號,目的埠,和校驗和。下圖是tcp和udp頭:

8. 擁塞或流控制

tcp有流量控制。在任何使用者資料可以被傳送之前,tcp需要三資料報來設定乙個套接字連線。tcp處理的可靠性和擁塞控制。另一方面,udp不能進行流量控制

9. 用法和應用

在網際網路中,tcp和udp都執行在哪些環境中了?在了解了tcp和udp之間的關鍵差異之後,我們可以很容易地得出結論,哪種情況適合他們。由於tcp提供可靠交付和有序性的保證,它是最適合需要高可靠並且對傳輸時間要求不高的應用udp是更適合的應用程式需要快速,高效的傳輸的應用,如遊戲。udp是無狀態的性質,在伺服器端需要對大量客戶端產生的少量請求進行應答的應用中是非常有用的。在實踐中,tcp被用於金融領域,如fix協議是一種基於tcp的協議,而udp是大量使用在遊戲和娛樂場所

TCP和UDP之間的區別和聯絡

tcp和udp之間的區別和聯絡 1.面向連線的tcp www.2cto.com tcp transmission control protocol,傳輸控制協議 是基於連線的協議,也就是說,在正式收發資料前,必須和對方建立可靠的連線。乙個tcp連線必須要經過三次 對話 才能建立起來,其中的過程非常複...

TCP和UDP之間的區別和聯絡

tcp和udp之間的區別和聯絡 1.面向連線的tcp tcp transmission control protocol,傳輸控制協議 是基於連線的協議,也就是說,在正式收發資料前,必須和對方建立可靠的連線。乙個tcp連線必須要經過三次 對話 才能建立起來,其中的過程非常複雜,我們這裡只做簡單 形象...

TCP與UDP之間的區別

tcp的優點 可靠,穩定 tcp的可靠體現在tcp在傳遞資料之前,會有三次握手來建立連線,而且在資料傳遞時,有確認 視窗 重傳 擁塞控制機制,在資料傳完後,還會斷開連線用來節約系統資源。tcp的缺點 慢,效率低,占用系統資源高,易被攻擊 tcp在傳遞資料之前,要先建連線,這會消耗時間,而且在資料傳遞...