TCP和UDP通訊之間比較

2021-07-04 19:01:07 字數 1566 閱讀 3461

在tcp客戶和伺服器可以彼此通訊之前,每一端都要指定連線的套接字對:本地ip位址、本地埠、外地ip位址、外地埠。下圖為從客戶的角度來看待tcp客戶和伺服器

從客戶的角度來理解tcp客戶和伺服器

下面從伺服器的角度來看tcp客戶/伺服器。本地埠(伺服器眾所周知的埠)用bind來繫結。bind呼叫中伺服器指定的本地ip位址通常是通配的ip位址。如果伺服器在乙個多宿主機上繫結通配ip位址,那麼它可以在連線建立後通過呼叫getsocketname來確定本地ip位址,兩個外地值有accpet呼叫返回給伺服器。如果另一外乙個程式由呼叫accept的伺服器通過exec來執行,那麼這個新程式可以再必要時使用getpeername來確定客戶的ip位址和埠號。

以圓點的形式給出了在客戶傳送udp資料時必須指定或選擇的4個值,客戶必須給sendto呼叫指定伺服器的ip位址和埠號。一般來說,客戶的ip位址和埠號都有核心自動選擇,儘管我們提到過,客戶也可以呼叫bind指定他們。在客戶的這兩個值有核心選擇的情況下,客戶的臨時埠在第一次sendto時一次性選定,不能改變;然而客戶的ip位址卻可以隨客戶傳送的每個udp資料報而變動(假定客戶沒有繫結乙個具體的ip位址到其套接字上)。如果客戶機是多宿的,客戶有可能在兩個目的地之間交替選擇,其中乙個有左邊的資料鏈路外出,另乙個有右邊的資料鏈路外出。在最壞的情況下,有核心基於外出資料鏈路選擇的客戶ip位址將隨每個資料報而改變。

如果客戶繫結乙個ip位址到套接字上,但是核心決定外出資料報必須從另乙個資料鏈路發出,那麼將會發生什麼?這種情形下,ip資料報包含乙個不同外出鏈路ip位址的源ip位址。

下圖為從客戶的角度看udp客戶和伺服器

由於udp是無連線的,就udp伺服器而言,目的ip位址可隨傳送到伺服器的每個資料報而改變。udp伺服器也可以接收目的位址為伺服器主機的某個廣播位址或多播位址的資料報。

下圖為從伺服器的角度看udp客戶和伺服器

TCP和UDP的比較

1,tcp是面向連線 connection oriented 的協議,udp是無連線 connection less 協議 2,tcp無界,udp有界 3,tcp可靠,udp不可靠 4,tcp有序,udp無序 5,tcp有流量控制 擁塞控制 udp沒有 6,tcp的頭部比udp大 1,tcp是面向連...

TCP和UDP的比較

可靠,穩定。tcp的可靠體現在tcp在傳遞資料之前,會有三次握手來建立連線,而且在資料傳遞時,有確認 視窗 重傳 擁塞控制機制,在資料傳完後,還會斷開連線用來節約系統資源。慢,效率低,占用系統資源高,易被攻擊。tcp在傳遞資料之前,要先建連線,這會消耗時間,而且在資料傳遞時,確認機制 重傳機制 擁塞...

TCP和UDP之間的關係

tcp是控制傳輸協議,提供的是面向連線 可靠的位元組流服務,當客戶和伺服器彼此交換資料前,必須現在雙方之間建立乙個tcp連線,之後才能傳輸資料。tcp提供超時重發 丟棄重複資料 檢驗資料 流量控制等功能,保證資料能夠從一端傳輸到另一端。udp是使用者資料報協議,是乙個簡單的面向資料報的運輸層協議。u...