四層應(yīng)用之UDP協(xié)議
在網(wǎng)絡(luò)應(yīng)用中,我們集中介紹第四層的介紹。那么針對大多數(shù)應(yīng)用來說,我們都會涉及到第四層的TCP和UDP協(xié)議。所以,針對這兩個協(xié)議的文章內(nèi)容也是比較多的。那么本文主要將誒少一下兩者的關(guān)系以及工作方式。
用戶數(shù)據(jù)報協(xié)議(UDP)
需要最小的網(wǎng)絡(luò)開銷且不需要對丟包或失序數(shù)據(jù)包進行檢測的應(yīng)用程序可以使用UDP。UDP也支持多播,在使用TCP時這是不可能的。大部分DNS查詢和流媒體使用UDP。使用UDP協(xié)議的應(yīng)用程序仍然可以處理重傳丟失的數(shù)據(jù)包或?qū)κ虻臄?shù)據(jù)包重新排序,但是必須由應(yīng)用程序自身對它們進行處理,應(yīng)用程序開發(fā)人員需要付出更多的努力進行開發(fā)。
![]() |
傳輸控制協(xié)議(TCP)
需要檢測和重新發(fā)送丟失或損壞數(shù)據(jù)包的應(yīng)用程序使用TCP。使用TCP要求應(yīng)用程序在可以傳輸數(shù)據(jù)前先建立一個連接。具體過程是客戶端先發(fā)送一個SYN數(shù)據(jù)包請求一個連接,服務(wù)器使用SYN/ACK數(shù)據(jù)包響應(yīng),然后客戶端通過ACK數(shù)據(jù)包確認連接。對于臨時(shortlived)連接,要求在發(fā)送應(yīng)用程序數(shù)據(jù)前進行這些數(shù)據(jù)包交換,會導(dǎo)致TCP比UDP協(xié)議慢。大部分應(yīng)用程序,包括電子郵件和Web瀏覽,都使用TCP。
一個服務(wù)器上通常會有多個不同的服務(wù)在監(jiān)聽入站連接。為了讓Windows能夠把入站通信轉(zhuǎn)發(fā)給正確的應(yīng)用程序,入站網(wǎng)絡(luò)請求中包含了一個端口號。例如,在默認情況下DNS請求使用的端口號是53。因此,當Windows收到帶有端口號53的數(shù)據(jù)包時,會將其傳送到DNS Server服務(wù)。