目前我們用的大多數應用層的協議都是基於tcp的,例如:telent, ftp, http, https, smtp.很少有基於udpy協議的應用層的協議。
那麼udp協議到底有什麼作用呢?
首先我們比較下tcp與udp協議的差別
(1)連線與無連線
tcp是面向連線的,udp是面向無連線的。因此導致tcp更適合於訊息的多播發布可以向多個點傳送訊息(因為沒有繁瑣的握手機制與揮手機制)同時也導致udp適用於快速傳輸的協議,對資訊的時實性要求嚴格的協議。
(2)可靠性
tcp是可靠的傳輸協議,udp是不可靠的。
因此導致udp不適合金融支付這方面要求可靠性的專案。(因為udp沒有超時重傳的機制不能保證可靠性)。
(3)有序性
tcp協議可以保證有序性,udp協議不保證。
(訊息將會以從服務端發出的順序傳送給客戶端,儘管訊息可能到網路的另一端時是無順序的,tcp協議會為你排好序)但是即使udp不可靠,無序,但是我們可以將這些要求轉移給上層應用來實現,不僅降低了執行時間,而且使質量得到保證。(例如可以通過給udp協議使用序列號和重傳機制來改善它的這兩個缺點)。
(4)重量級與輕量級
tcp協議是重量級,udp協議是輕量級
因為tcp要保證可靠性和有序性,所以tcp資料報報頭的資訊量大,報頭大小是20個位元組,udp報頭的大小是8個位元組。所以tcp占用的系統的開銷大。
(5)擁塞和流量控制
tcp有流量控制,udp沒有。
tcp通常在傳送包之前會測試網路的快慢情況,就好比我們在linux中投的ping命令,通過往返的時間和丟包率來評估網路的狀況,來調動滑動視窗的大小。(這項機制增加了tcp的可靠性)。
(6)資料邊界
tcp協議沒有資料邊界,udp有
因此tcp容易發生粘包的現象。在udp中資料報是單獨傳送的,只有當他們到達時才會再次整合,包有明確的界限來判斷哪些包已經收到。
總結:
udp協議被廣泛用到對網路資料傳輸的實時性很高,對資料準確性不是非常高的場合,並且如今網路物理介質的高速提公升(光纖)降低了資料丟包的機率,並且當網路狀況很好的情況下,udp的缺點又可以很好的大程度上的被改善。因此udp協議發展前途無量。
ARP協議的用途
arp協議的用途 因為 ip 資料報是放在乙太網資料報裡傳送的,所以我們必須同時知道兩個位址,乙個是對方的 mac 位址,另乙個是對方的 ip 位址。通常情況下,對方的 ip 位址是已知的,但是我們不知道它的 mac 位址。所以,我們需要一種機制,能夠從 ip 位址得到 mac 位址。這裡又可以分成...
TCP協議 UDP協議
tcp是面向連線的傳輸層的協議,它在程序互動時,會建立乙個鏈結,然後在傳輸資料之後會取消連線,tcp的鏈結是虛連線。每一條tcp連線只能有兩個端點,只能是點對點的資料鏈結,不能進行廣播。tcp提供可靠的按時交付的 無差錯的 不重複的 按序到達的服務 可靠有序 不丟不重 tcp提供全雙工通訊 傳送快取...
UDP協議與UDP通訊
1 udp協議 udp是無連線通訊協議,即在資料傳輸時,資料的傳送端和接收端不建立邏輯連線。簡單來說,當一台計算機向另外一台計算機傳送資料時,傳送端不會確認接收端是否存在,就會發出資料,同樣接收端在收到資料時,也不會向傳送端反饋是否收到資料。但是在使用udp協議傳送資料時,由於udp的面向無連線性,...