TCP/UDP
1TCP/UDP簡介
TCP和UDP是兩種常見的互聯(lián)網(wǎng)傳輸協(xié)議,它們都是在IP網(wǎng)絡(luò)上運(yùn)行的傳輸層協(xié)議。
TCP(Transmission Control Protocol:傳輸控制協(xié)議)是一種面向連接的可靠協(xié)議。
它提供數(shù)據(jù)傳輸?shù)挠行蛐?、完整性、流量控制和擁塞控制?/p>
TCP的通信過程包括三次握手建立連接和四次揮手?jǐn)嚅_連接。
使用TCP時,數(shù)據(jù)按順序發(fā)送和接收,確保數(shù)據(jù)可靠地到達(dá)目的地。
TCP適用于需要準(zhǔn)確可靠傳輸?shù)膽?yīng)用,如網(wǎng)頁瀏覽、文件傳輸、電子郵件和遠(yuǎn)程登錄。
UDP(User Datagram Protocol:用戶數(shù)據(jù)報協(xié)議)則是一種無連接的不可靠協(xié)議。
它提供了一種簡單的、不可靠的傳輸方式。
UDP不保證數(shù)據(jù)傳輸?shù)挠行蛐?、完整性、流量控制和擁塞控制?/p>
使用UDP時,數(shù)據(jù)以數(shù)據(jù)包的形式發(fā)送,接收方不需建立連接,直接接收。
UDP適用于實時應(yīng)用,如音頻、視頻流傳輸、在線游戲和廣播。
2TCP/UDP的特點
TCP/UDP有什么相同點?
都是在IP網(wǎng)絡(luò)上運(yùn)行的傳輸層協(xié)議;
都使用端口號來標(biāo)識不同的應(yīng)用程序;
都可以用于客戶端和服務(wù)器之間的通信。
TCP/UDP有什么不同點?
TCP是面向連接的,UDP是無連接的;
TCP提供可靠的數(shù)據(jù)傳輸服務(wù),UDP不提供可靠性保證;
TCP具有流量控制和擁塞控制功能,UDP沒有;
TCP需要進(jìn)行三次握手建立連接,UDP不需要。
TCP的錯誤檢測和糾正:
TCP使用校驗和來檢測傳輸過程中是否發(fā)生了數(shù)據(jù)損壞或錯誤。發(fā)送方在發(fā)送數(shù)據(jù)時計算校驗和,并將其包括在TCP頭部中。接收方在接收到數(shù)據(jù)后重新計算校驗和,并將其與接收到的校驗和進(jìn)行比較。如果兩者不匹配,則表明數(shù)據(jù)在傳輸過程中發(fā)生了錯誤,接收方會請求發(fā)送方重新發(fā)送丟失或損壞的數(shù)據(jù)。
TCP主要通過以下幾個字段進(jìn)行錯誤檢測和糾正
(1)校驗和——每個TCP報文段都包括檢驗和字段,校驗和用來檢查報文段是否出現(xiàn)傳輸錯誤,如果報文段出現(xiàn)傳輸錯誤,TCP檢查出錯就丟棄該報文段。
(2)確認(rèn)——接收端檢查報文是否出錯,發(fā)現(xiàn)出錯時就丟棄,不發(fā)確認(rèn);而發(fā)送端TCP就通過檢查接收端的確認(rèn),判斷發(fā)送的報文段是否已經(jīng)正確到達(dá)目的地。
(3)超時——發(fā)送端根據(jù)發(fā)出的報文段在超時規(guī)定的時間內(nèi)是否收到確認(rèn),從而來判斷該報文段是否丟失或傳輸出錯。TCP使用了4種計時器:重傳計時器、堅持計時器、保持計時器和時間等待計時器來保證了傳輸?shù)目煽啃浴?/p>
TCP的流量控制:
流量控制是一種機(jī)制,確保數(shù)據(jù)發(fā)送方和接收方之間的數(shù)據(jù)傳輸速度保持匹配。TCP使用滑動窗口機(jī)制實現(xiàn)流量控制。發(fā)送方在發(fā)送數(shù)據(jù)時,接收方會向發(fā)送方通告其可接收的數(shù)據(jù)量,即窗口大小。發(fā)送方根據(jù)接收方通告的窗口大小控制發(fā)送數(shù)據(jù)的速度,以確保不會發(fā)送過多的數(shù)據(jù)導(dǎo)致接收方無法及時處理。如果接收方無法及時處理數(shù)據(jù),它可以調(diào)整窗口大小以限制發(fā)送方的數(shù)據(jù)流量。
TCP的擁塞控制:
擁塞控制是一種機(jī)制,用于避免過多的數(shù)據(jù)注入到網(wǎng)絡(luò)中導(dǎo)致網(wǎng)絡(luò)擁塞。TCP使用一些算法來識別和應(yīng)對網(wǎng)絡(luò)擁塞。其中最常用的算法是擁塞避免算法和擁塞控制算法。擁塞避免算法通過動態(tài)調(diào)整擁塞窗口大小來控制發(fā)送方的數(shù)據(jù)發(fā)送速率。擁塞控制算法使用擁塞檢測和擁塞恢復(fù)來減少擁塞出現(xiàn)時的數(shù)據(jù)流量。
TCP的三次握手:
(圖片取自互聯(lián)網(wǎng),侵權(quán)請聯(lián)系刪除)
在建立TCP連接時,使用三次握手(three-way handshake)來確保雙方都同意建立連接。下面是三次握手的步驟:
1. 客戶端向服務(wù)器發(fā)送一個連接請求報文(SYN)并指定初始序列號。
2. 服務(wù)器收到連接請求后,回復(fù)一個確認(rèn)報文(ACK)作為響應(yīng),同時也發(fā)送一個連接請求報文(SYN)。
3. 客戶端收到服務(wù)器的回復(fù)后,再向服務(wù)器發(fā)送確認(rèn)報文(ACK)作為響應(yīng)。此時,連接建立,雙方可以開始進(jìn)行數(shù)據(jù)傳輸。
TCP的四次揮手:

(圖片取自互聯(lián)網(wǎng),侵權(quán)請聯(lián)系刪除)
當(dāng)TCP連接不再需要時,使用四次揮手(four-way handshake)來正常關(guān)閉連接。下面是四次揮手的步驟:
1. 客戶端向服務(wù)器發(fā)送一個連接釋放報文(FIN),表示客戶端不再發(fā)送數(shù)據(jù)。
2. 服務(wù)器收到連接釋放報文后,發(fā)送一個確認(rèn)報文(ACK)作為響應(yīng),表示已收到客戶端的連接釋放請求。
3. 服務(wù)器繼續(xù)傳輸可能仍在傳送的數(shù)據(jù),然后發(fā)送連接釋放報文(FIN)給客戶端。
4. 客戶端收到服務(wù)器的連接釋放報文后,發(fā)送一個確認(rèn)報文(ACK)作為響應(yīng),表示已收到服務(wù)器的連接釋放請求。此時,雙方的連接斷開。
3總結(jié)
TCP的優(yōu)勢
可靠性:TCP提供可靠的數(shù)據(jù)傳輸,確保數(shù)據(jù)的完整性和順序性。
錯誤檢測和糾正:TCP具備檢測和糾正傳輸中發(fā)生的錯誤的能力。
流量控制:TCP通過流量控制避免了接收方因來不及處理大量數(shù)據(jù)而導(dǎo)致的問題。
TCP的劣勢
較慢:因為TCP提供可靠傳輸,它需要進(jìn)行復(fù)雜的握手和確認(rèn)過程,這導(dǎo)致了相對較高的延遲。
處理負(fù)載:TCP的控制機(jī)制增加了系統(tǒng)的負(fù)載,對處理能力有一定要求。
UDP的優(yōu)勢
較快:UDP不需要進(jìn)行連接建立和握手,以及其他傳輸保障機(jī)制,因此傳輸速度相對較快。
簡單輕量:UDP的頭部開銷較小,資源占用較少。
UDP的劣勢
不可靠:UDP沒有提供可靠性保證,傳輸過程中可能丟包或亂序。
不具備流控制和擁塞控制:UDP不包含流控制和擁塞控制機(jī)制,可能導(dǎo)致數(shù)據(jù)的丟失和網(wǎng)絡(luò)擁塞。
審核編輯:湯梓紅
-
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
55文章
11321瀏覽量
108856 -
TCP
+關(guān)注
關(guān)注
8文章
1418瀏覽量
83018 -
UDP
+關(guān)注
關(guān)注
0文章
331瀏覽量
35215 -
傳輸協(xié)議
+關(guān)注
關(guān)注
0文章
80瀏覽量
11912 -
傳輸層
+關(guān)注
關(guān)注
0文章
31瀏覽量
11184
原文標(biāo)題:傳輸層兩大戰(zhàn)神(TCP/UDP)
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
STM32WB和STM32L4/L4+的區(qū)別和優(yōu)劣勢是什么?
電流檢測采用高端檢測和低端檢測有什么區(qū)別?有什么優(yōu)劣勢?
你如何看待LoRa技術(shù)的優(yōu)劣勢?
SPI協(xié)議的特性是什么?具有哪些優(yōu)劣勢?
六種室內(nèi)定位技術(shù)的優(yōu)劣勢分析

TCP/UDP簡介、特點及優(yōu)劣勢
評論