傳輸層協議:實現數據可靠傳輸的關鍵
傳輸層協議是網絡的重要組成部分,因為其提供了一種將數據包從一個網絡節點傳輸到另一個網絡節點的方法。傳輸協議有多種用途,例如流視頻、互聯網導航和執行交易。兩個核心協議是TCP和UDP。
什么是傳輸層協議?
TCP和UDP協議與OSI模型的傳輸層相關聯,并作為整個互聯網的基礎數據交換協議。簡而言之,傳輸層協議負責確保設備之間的端到端通信。其還執行錯誤檢測(僅限TCP)、數據分段和數據重組。
尤其是TCP,其負責從加載網頁到在線游戲中交換數據的所有事務。讓我們看看它是如何做到的。
什么是傳輸控制協議(TCP)?
傳輸控制協議(TCP)是互聯網協議(IP)套件的核心協議,負責確??煽?、容錯的數據從一個點發送到另一個點。TCP在確保所有信息無損傳輸方面取得了長足的進步。例如,TCP與UDP的區別之一是重傳丟失的數據。這是以一種特別聰明的方式完成的。
在TCP協議中,每個數據包都被賦予一個唯一的序列號。數據包發送者仔細跟蹤發送了哪些數據包。作為響應,接收系統發出一個ACK數據包(代表“確認”),其中包含確認收到的數據包的序列號。如果序列號不匹配或丟失,發送機器將重新發送數據包。這個過程會持續下去,直到匹配的ACK確認傳輸成功。
數據重傳并不是TCP可靠的唯一方式。其還使用三向握手來建立持久的連接。
在TCP中,三向握手是一種通信機制,以確保所有數據的發送和正確接收。簡而言之,這發生在三個部分:
1.初始化(SYN):SYN是想要建立通信的設備發出的初始數據包。該數據包包含同步標志(SYN)和接收者的IP地址。
2.確認啟動(SYN-ACK):接下來,接收者發回SYN-ACK數據包,假設它已準備好并愿意進行通信。
3.最終確認(ACK):一旦發送方收到SYN-ACK,就會發送最終ACK以確認有效連接。
一旦這三個“握手”完成,傳輸就開始了。三向握手通常被描述為TCP的“面向連接”通信標志。然而,錯誤檢測和流量控制等其他功能也成為TCP面向連接的本質的支柱。
由于TCP在現代IT通信中無處不在,因此不可能列出TCP的每一個用例。然而,這里有一些用例來說明其用處。
1.電子郵件:所有電子郵件均使用TCP發送。如果以UDP方式發送,則電子郵件到達時可能會有丟失一些信息,這會嚴重阻礙通信。
2.在線游戲:貨幣交易、登錄機制和任何關鍵通信都需要TCP。
3.互聯網瀏覽:無論使用HTTP還是HTTPS,第4層協議通常是TCP。當用戶導航到某個網址時,將使用TCP協議。該協議在用戶的網絡瀏覽器和網絡服務器之間建立并維護可靠的連接,確保網頁和相關資源準確無誤地傳輸。
雖然TCP以其可靠性而聞名,但也因其延遲和高開銷著稱。TCP確保每個數據包都被發送和記錄,但這可能不適合所有用例。例如,視頻流不需要每個數據包都能到達用戶——這就是UDP的用武之地。
什么是用戶數據報協議(UDP)?
UDP是TCP的無連接、輕量級版本。與TCP相反,UDP的主要目標是盡可能快地發送數據報,即數據包。
我們可以把UDP想象成一個人把乒乓球扔進桶里。投擲者是發送者,乒乓球是數據包,水桶是接收者。是否每一個乒乓球都能進桶并不重要,重要的是大多數都能進桶。扔球的人自然會丟幾個球——這沒關系。這就是為什么UDP通常被稱為“盡力而為的交付”。
盡力而為交付的最佳用例在于媒體傳輸領域。讓我們看幾個例子:
1.VoIP呼叫:VoIP呼叫通常使用UDP進行。這就是為什么時常會出現畫面輕微停頓、人聲跳躍或聽起來像機器人的原因。在語音流中,每個數據包是否完美到達并不重要。畢竟,人們善于把握語境,在交流中不需要那么嚴格。
2.在線游戲:在線游戲的某些方面也使用UDP。每當用戶移動一個字符時,這通常是一個UDP連接?;旧?,任何需要高響應時間的非關鍵數據都將使用UDP。
3.DNS:UDP用于DNS查詢和響應。這是因為DNS解析需要快速,且不需要持續的通信。
總結
以上我們介紹了端口到端口通信中使用哪些協議:TCP和UDP。請記住,TCP用于傳輸過程中不會丟失的關鍵數據。相比之下,UDP速度更快,適用于能夠承受一定量數據丟失的應用程序。