千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > TCP和UDP的區(qū)別和優(yōu)缺點(diǎn)詳解?

TCP和UDP的區(qū)別和優(yōu)缺點(diǎn)詳解?

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-11 17:22:35 1697016155

一、TCP和UDP的區(qū)別和優(yōu)缺點(diǎn)

TCP與UDP區(qū)別總結(jié)

1、TCP面向連接(如打電話要先撥號(hào)建立連接);UDP是無(wú)連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接

2、TCP提供可靠的服務(wù)。也就是說(shuō),通過(guò)TCP連接傳送的數(shù)據(jù),無(wú)差錯(cuò),不丟失,不重復(fù),且按序到達(dá);UDP盡最大努力交付,即不保證可靠交付

Tcp通過(guò)校驗(yàn)和,重傳控制,序號(hào)標(biāo)識(shí),滑動(dòng)窗口、確認(rèn)應(yīng)答實(shí)現(xiàn)可靠傳輸。如丟包時(shí)的重發(fā)控制,還可以對(duì)次序亂掉的分包進(jìn)行順序控制。

3、UDP具有較好的實(shí)時(shí)性,工作效率比TCP高,適用于對(duì)高速傳輸和實(shí)時(shí)性有較高的通信或廣播通信。

4.每一條TCP連接只能是點(diǎn)到點(diǎn)的;UDP支持一對(duì)一,一對(duì)多,多對(duì)一和多對(duì)多的交互通信

5、TCP對(duì)系統(tǒng)資源要求較多,UDP對(duì)系統(tǒng)資源要求較少。

為什么UDP有時(shí)比TCP更有優(yōu)勢(shì)

UDP以其簡(jiǎn)單、傳輸快的優(yōu)勢(shì),在越來(lái)越多場(chǎng)景下取代了TCP,如實(shí)時(shí)游戲。

(1)網(wǎng)速的提升給UDP的穩(wěn)定性提供可靠網(wǎng)絡(luò)保障,丟包率很低,如果使用應(yīng)用層重傳,能夠確保傳輸?shù)目煽啃浴?/p>

(2)TCP為了實(shí)現(xiàn)網(wǎng)絡(luò)通信的可靠性,使用了復(fù)雜的擁塞控制算法,建立了繁瑣的握手過(guò)程,由于TCP內(nèi)置的系統(tǒng)協(xié)議棧中,極難對(duì)其進(jìn)行改進(jìn)。

采用TCP,一旦發(fā)生丟包,TCP會(huì)將后續(xù)的包緩存起來(lái),等前面的包重傳并接收到后再繼續(xù)發(fā)送,延時(shí)會(huì)越來(lái)越大,基于UDP對(duì)實(shí)時(shí)性要求較為嚴(yán)格的情況下,采用自定義重傳機(jī)制,能夠把丟包產(chǎn)生的延遲降到最低,盡量減少網(wǎng)絡(luò)問(wèn)題對(duì)游戲性造成影響。

延伸閱讀:

二、TCP編程的服務(wù)器端一般步驟

1、創(chuàng)建一個(gè)socket,用函數(shù)socket(); SOCKET SocketListen =socket(AF_INET,SOCK_STREAM, IPPROTO_TCP);

2、設(shè)置socket屬性,用函數(shù)setsockopt(); * 可選

3、綁定IP地址、端口等信息到socket上,用函數(shù)bind(); SOCKET_ERROR = bind(SocketListen,(const sockaddr*)&addr,sizeof(addr))

4、開(kāi)啟監(jiān)聽(tīng),用函數(shù)listen(); SOCKET_ERROR == listen(SocketListen,2)

5、接收客戶端上來(lái)的連接,用函數(shù)accept(); SOCKET SocketWaiter = accept(SocketListen,

_Out_ struct sockaddr *addr

_Inout_ int *addrlen);

6、收發(fā)數(shù)據(jù),用函數(shù)send()和recv(),或者read()和write();

7、關(guān)閉網(wǎng)絡(luò)連接; closesocket(SocketListen);closesocket(SocketWaiter);

8、關(guān)閉監(jiān)聽(tīng);

SOCK_STREAM這種的特點(diǎn)是面向連接的,即每次收發(fā)數(shù)據(jù)之前必須通過(guò)connect建立連接,而SOCK_DGRAM這種是User Datagram Protocol協(xié)議的網(wǎng)絡(luò)通訊,它是無(wú)連接的,不可靠的。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
Tkinter是什么?

一、Tkinter是什么Tkinter模塊(Tk 接口)是 Python的標(biāo)準(zhǔn)Tk GUI工具包的接口 .Tk 和 Tkinter可以在大多數(shù)的 Unix 平臺(tái)下使用,同樣可以應(yīng)用在 Win...詳情>>

2023-10-11 19:03:54
APP開(kāi)發(fā)時(shí)經(jīng)常會(huì)陷入哪些誤區(qū)?

一、APP開(kāi)發(fā)時(shí)經(jīng)常會(huì)陷入的誤區(qū)1、只關(guān)注價(jià)格便宜任何企業(yè)開(kāi)發(fā)APP應(yīng)用,都想少花一分是一分,這本是人之常情,但有些企業(yè)在節(jié)省預(yù)算的時(shí)候,卻...詳情>>

2023-10-11 18:57:24
怎么制作okr?

一、確定主題和周期在制作OKR前,需要確定主題和周期。主題可以是年度目標(biāo)、季度目標(biāo)、月度目標(biāo)等,周期可以是一年、半年、三個(gè)月等。主題和周...詳情>>

2023-10-11 18:51:29
python中complex是什么意思?

一、python中complexpython中complex是復(fù)數(shù)。復(fù)數(shù)(Complex)是 Python 的內(nèi)置類(lèi)型,直接書(shū)寫(xiě)即可。換句話說(shuō),Python 語(yǔ)言本身就支持復(fù)數(shù),而不...詳情>>

2023-10-11 18:43:39
大數(shù)據(jù)平臺(tái)和云平臺(tái)的區(qū)別?

在當(dāng)今數(shù)據(jù)驅(qū)動(dòng)的世界中,大數(shù)據(jù)平臺(tái)和云平臺(tái)發(fā)揮著至關(guān)重要的作用。它們都是現(xiàn)代企業(yè)中不可或缺的技術(shù)平臺(tái),但各有其特點(diǎn)和功能。理解這兩者之...詳情>>

2023-10-11 18:27:08