傳輸層UDP協(xié)議分析
網(wǎng)絡(luò)構(gòu)架是一個復雜的結(jié)構(gòu)。多種協(xié)議的相互配合使用才能完成復雜的工作。那么在傳輸層當中,我們主要介紹的是TCP協(xié)議和UDP協(xié)議的相關(guān)內(nèi)容。盡管,兩個協(xié)議的使用總是有交互,但是,本質(zhì)上這兩個協(xié)議卻有著不可替代和明確的不同的定義。
傳輸層協(xié)議TCP和UDP
通過網(wǎng)絡(luò)提供的每種服務(wù)都有應(yīng)用層協(xié)議,這些協(xié)議是在服務(wù)器和客戶端軟件中實現(xiàn)的。除應(yīng)用層協(xié)議外,所有常見Internet服務(wù)都使用IP地址在源主機和目標主機路由消息。
IP層指定了分組的結(jié)構(gòu)、地址和路由選擇,而沒有指定傳輸分組的方式。傳輸層協(xié)議指定了如何在主機之間傳輸消息,最常用的兩種傳輸層協(xié)議是傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報協(xié)議(UDP)。IP使用這些傳輸協(xié)議,讓主機能夠進行通信和傳輸數(shù)據(jù)。IP是Internet的基礎(chǔ)協(xié)議,其他所有協(xié)議都依賴于它。傳輸層協(xié)議TCP和UDP運行在IP之上,而HTTP和FTP等應(yīng)用層協(xié)議運行在TCP或UDP協(xié)議之上。IP是Internet的本機網(wǎng)絡(luò)協(xié)議。
1.使用TCP
當應(yīng)用程序需要確認消息已收到時,它將使用TCP。這類似于通過郵政系統(tǒng)郵寄掛號信,收信人必須通過簽名來確認收到了信件。
TCP將消息分割成小塊,這些小塊被稱為數(shù)據(jù)段。數(shù)據(jù)段按順序編號,并傳遞給IP以組裝為分組。TCP跟蹤從特定應(yīng)用程序發(fā)送到特定主機的數(shù)據(jù)段數(shù)量,它還發(fā)送確認以確保分組已收到。如果發(fā)送方在規(guī)定時間內(nèi)未收到確認,它將認為數(shù)據(jù)段已丟失并重傳它們。只重傳丟失消息部分,而不是整條消息。
在接收主機上,TCP負責重組消息的數(shù)據(jù)段并將它們傳遞給應(yīng)用程序。
FTP和HTTP使用TCP來確保數(shù)據(jù)得以傳送。用戶使用FTP客戶端軟件將一個文件發(fā)送給FTP服務(wù)器,該客戶端軟件使用TCP來保證傳輸。
2.使用UDP協(xié)議
在有些情況下,并不需要TCP確認協(xié)議,且該協(xié)議將降低信息的傳輸速度。在這些情況下,UDP可能是更適合的傳輸協(xié)議。
UDP是一種盡力而為的傳輸系統(tǒng),不需要確認數(shù)據(jù)已收到。這類似于通過郵政系統(tǒng)郵寄平信,雖然不能擔保信件肯定能收到,但收到的可能性極大。
UDP是流式音頻、視頻流和IP語音(VoIP)等應(yīng)用程序的首選。確認機制將降低傳輸速度,且在這些情況下沒有必要重傳。
一種使用UDP協(xié)議的應(yīng)用程序是Internet廣播,它使用流式音頻技術(shù)。如果消息在網(wǎng)絡(luò)傳輸過程中丟失,將不會重傳它。丟失少量分組時,聽眾將聽到輕微的聲音中斷。如果使用TCP,將重傳丟失的分組,這將暫停原來的傳輸,導致的中斷更明顯。