淺談TCP和UDP的區別

作爲運輸層中兩個主要的協議,TCP和UDP都能嚮應用層提供通信服務,然而它們提供的服務差別還是很大的。

1、
TCP協議是面向連接的。也就是說,應用程序在使用 TCP協議之前,必須先建立起一個 TCP連接,之後才能進行通信活動。因此,使用 TCP協議通訊就好像是打電話,通話前先要撥號,然後等對端拿起電話,建立好連接後才能開始通話,通話結束後將電話機扣上,此時相當於斷開連接。

而 UDP協議是無連接的。不需要建立和斷開連接,發送端可以在任何時候自由地發送數據,這就好像用手機發信息,它不需要號碼是正確的,全憑發送端意願進行發送,結果是什麼並不能保證。

2、
UDP協議支持一對一、一對多、多對一和多對多的交互通信。 而 TCP協議僅支持一對一的交互通信。

3、
UDP協議是面向報文的。發送方的 UDP對應用程序交付下來的報文,再添加了首部信息之後就向下交付給 IP層。這就是說,應用層交給 UDP多長的報文,UDP會照原樣發送,即一次發送一個報文。可以看出,應用程序必須控制報文的長度。

而 TCP協議是面向字節流的,就是說雖然應用程序交付給 TCP協議的是大小若干數據塊,但是 TCP協議把這些數據看成僅僅是一連串無結構的字節流,然後 TCP協議根據當前情況選擇性地將字節流分組併發送。

4、
UDP協議只是在 IP服務之上增加了很少的一點功能,因此 UDP和 IP協議一樣,都是盡最大努力交付,即不保證可靠交付。

而 TCP則是可靠交付的服務,TCP協議能保證傳送的數據無差錯、不丟失、不重複、有序到達。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章