TCP和UDP的優缺點及區別

2021-09-04 08:03:04 字數 3011 閱讀 7092

tcp的優點: 可靠,穩定 tcp的可靠體現在tcp在傳遞資料之前,會有三次握手來建立連線,而且在資料傳遞時,有確認、視窗、重傳、擁塞控制機制,在資料傳完後,還會斷開連線用來節約系統資源。 tcp的缺點: 慢,效率低,占用系統資源高,易被攻擊 tcp在傳遞資料之前,要先建連線,這會消耗時間,而且在資料傳遞時,確認機制、重傳機制、擁塞控制機制等都會消耗大量的時間,而且要在每台裝置上維護所有的傳輸連線,事實上,每個連線都會占用系統的cpu、記憶體等硬體資源。 而且,因為tcp有確認機制、三次握手機制,這些也導致tcp容易被人利用,實現dos、ddos、cc等攻擊。

小結tcp與udp的區別:

1.基於連線與無連線;

2.對系統資源的要求(tcp較多,udp少);

3.udp程式結構較簡單;

4.流模式與資料報模式 ;

5.tcp保證資料正確性,udp可能丟包,tcp保證資料順序,udp不保證。

tcp協議和udp協議的差別

tcp udp

是否連線 面向連線 面向非連線

傳輸可靠性 可靠 不可靠

應用場合 少量資料 傳輸大量資料

速度 慢 快

tcp與udp區別總結:

1、tcp面向連線(如打**要先撥號建立連線);udp是無連線的,即傳送資料之前不需要建立連線

2、tcp提供可靠的服務。也就是說,通過tcp連線傳送的資料,無差錯,不丟失,不重複,且按序到達;udp盡最大努力交付,即不保證可靠交付

3、tcp面向位元組流,實際上是tcp把資料看成一連串無結構的位元組流;udp是面向報文的

4、每一條tcp連線只能是點到點的;udp支援一對一,一對多,多對一和多對多的互動通訊

5、tcp首部開銷20位元組;udp的首部開銷小,只有8個位元組

6、tcp的邏輯通訊通道是全雙工的可靠通道,udp則是不可靠通道

tcp udp

tcp與udp基本區別

1.基於連線與無連線

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

3.udp程式結構較簡單

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

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

6.tcp保證資料順序,udp不保證

udp應用場景:

1.面向資料報方式

2.網路資料大多為短訊息

3.擁有大量client

4.對資料安全性無特殊要求

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

具體程式設計時的區別

1.socket()的引數不同

2.udp server不需要呼叫listen和accept

3.udp收發資料用sendto/recvfrom函式

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

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

6.udp:shutdown函式無效

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

tcp:

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

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

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

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

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

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

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

7、關閉網路連線;

8、關閉監聽;

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

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

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

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

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

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

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

7、關閉網路連線;

udp:

與之對應的udp程式設計步驟要簡單許多,分別如下:

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

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

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

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

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

5、關閉網路連線;

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

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

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

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

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

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

6、關閉網路連線;

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

udp補充:

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

tcp補充:

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

TCP和UDP區別及優缺點

udp是乙個面向無連線的通訊協議,udp資料報括目的埠號和源埠號資訊 優點 速度快 操作簡單 要求系統資源較少 通訊不需要連線 可以實現廣播傳送。缺點 在傳遞資料前不與對方建立連線 接收資料不傳送確認訊號 傳送端不知道傳送的資料是否被正確接收 不重 送資料 不可靠。tcp是乙個面向連線的通訊協議,通...

TCP和UDP的優缺點及區別

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

TCP和UDP的優缺點及區別

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