TCP與UDP的區別

2021-10-08 14:52:38 字數 2365 閱讀 3544

1、tcp與udp基本區別

基於連線與無連線;

tcp要求系統資源較多,udp較少;

udp程式結構較簡單 ;

流模式(tcp)與資料報模式(udp);

tcp保證資料正確性,udp可能丟包 ;

tcp保證資料順序,udp不保證 ;

2、udp應用場景

面向資料報方式

網路資料大多為短訊息

擁有大量client

對資料安全性無特殊要求

網路負擔非常重,但對響應速度要求高

3、具體程式設計時的區別

socket()的引數不同

udp server不需要呼叫listen和accept

udp收發資料用sendto/recvfrom函式

tcp:位址資訊在connect/accept時確定

udp:在sendto/recvfrom函式中每次均 需指定位址資訊

udp:shutdown函式無效

程式設計區別

sock_stream這種的特點是面向連線的,即每次收發資料之前必須通過connect建立連線,也是雙向的,即任何一方都可以收發資料,協議本身提供了一些保障機制保證它是可靠的、有序的,即每個包按照傳送的順序到達接收方。

基於上述不同,udp和tcp程式設計步驟也有些不同,如下:

tcp程式設計的伺服器端一般步驟是:

建立乙個socket,用函式socket();

設定socket屬性,用函式setsockopt(); * 可選

繫結ip位址、埠等資訊到socket上,用函式bind();

開啟監聽,用函式listen();

接收客戶端上來的連線,用函式accept();

收發資料,用函式send()和recv(),或者read()和write();

關閉網路連線;

關閉監聽;

tcp程式設計的客戶端一般步驟是:

建立乙個socket,用函式socket();

設定socket屬性,用函式setsocket();* 可選

繫結ip位址、埠等資訊到socket上,用函式bind();* 可選

設定要連線的對方的ip位址和埠等屬性;

連線伺服器,用函式connect();

收發資料,用函式send()和recv(),或者read()和write();

關閉網路連線;

udp程式設計的伺服器端一般步驟是:

建立乙個socket,用函式socket();

設定socket屬性,用函式setsockopt();* 可選

繫結ip位址、埠等資訊到socket上,用函式bind();

迴圈接收資料,用函式recvfrom();

關閉網路連線;

udp程式設計的客戶端一般步驟是:

建立乙個socket,用函式socket();

設定socket屬性,用函式setsockopt();* 可選

繫結ip位址、埠等資訊到socket上,用函式bind();* 可選

設定對方的ip位址和埠等屬性;

傳送資料,用函式sendto();

關閉網路連線;

tcp和udp是osi模型中的傳輸層中的協議。tcp提供可靠的通訊傳輸,而udp則常被用於讓廣播和細節控制交給應用的通訊傳輸。

udp補充:

udp不提供複雜的控制機制,利用ip提供面向無連線的通訊服務。並且它是將應用程式發來的資料在收到的那一刻,立刻按照原樣傳送到網路上的一種機制。即使是出現網路擁堵的情況下,udp也無法進行流量控制等避免網路擁塞的行為。此外,傳輸途中如果出現了丟包,udp也不負責重發。甚至當出現包的到達順序亂掉時也沒有糾正的功能。如果需要這些細節控制,那麼不得不交給由採用udp的應用程式去處理。換句話說,udp將部分控制轉移到應用程式去處理,自己卻只提供作為傳輸層協議的最基本功能。udp有點類似於使用者說什麼聽什麼的機制,但是需要使用者充分考慮好上層協議型別並製作相應的應用程式。

tcp補充:

tcp充分實現了資料傳輸時各種控制功能,可以進行丟包的重發控制,還可以對次序亂掉的分包進行順序控制。而這些在udp中都沒有。此外,tcp作為一種面向有連線的協議,只有在確認通訊對端存在時才會傳送資料,從而可以控制通訊流量的浪費。tcp通過檢驗和、序列號、確認應答、重發控制、連線管理以及視窗控制等機制實現可靠性傳輸。

tcp與udp區別總結:

(文章**:網路程式設計之(四)tcp與udp的區別及常見的網路協議**))

TCP與UDP的區別

面向連線的tcp 面向連線 就是在正式通訊前必須要與對方建立起連線。比如你給別人打 必須等線路接通了 對方拿起話筒才能相互通話。tcp協議能為應用程式提供可靠的通訊連線,使一台計算機發出的位元組流無差錯地發往網路上的其他計算機,對可靠性要求高的資料通訊系統往往使用tcp協議傳輸資料。面向非連線的ud...

tcp 與udp 的區別

tcp提供面向連線 可靠的位元組流服務。udp提供面向資料報的傳輸層協議。1.tcp 提供客戶與伺服器之間的連線。tcp客戶與某個伺服器建立乙個連線,再跨跨該連線與伺服器交換資料,最後終止連線。2.tcp提供可靠性。當tcp向對端傳送資料時,要求對端返回乙個確認。如果沒收到確認,tcp就自動重傳資料...

TCP與UDP的區別

tcp transmission control protocol,傳輸控制協議 是基於連線的協議,也就是說,在正式收發資料前,必須和對方建立可靠的連線。乙個tcp連線必須要經過三次 對話 才能建立起來,其中的過程非常複雜,我們這裡只做簡單 形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三...