国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > TCP和UDP的區別和優缺點詳解?

TCP和UDP的區別和優缺點詳解?

來源:千鋒教育
發布人:xqq
時間: 2023-10-11 17:22:35 1697016155

一、TCP和UDP的區別和優缺點

TCP與UDP區別總結

1、TCP面向連接(如打電話要先撥號建立連接);UDP是無連接的,即發送數據之前不需要建立連接

2、TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重復,且按序到達;UDP盡最大努力交付,即不保證可靠交付

Tcp通過校驗和,重傳控制,序號標識,滑動窗口、確認應答實現可靠傳輸。如丟包時的重發控制,還可以對次序亂掉的分包進行順序控制。

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

4.每一條TCP連接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通信

5、TCP對系統資源要求較多,UDP對系統資源要求較少。

為什么UDP有時比TCP更有優勢

UDP以其簡單、傳輸快的優勢,在越來越多場景下取代了TCP,如實時游戲。

(1)網速的提升給UDP的穩定性提供可靠網絡保障,丟包率很低,如果使用應用層重傳,能夠確保傳輸的可靠性。

(2)TCP為了實現網絡通信的可靠性,使用了復雜的擁塞控制算法,建立了繁瑣的握手過程,由于TCP內置的系統協議棧中,極難對其進行改進。

采用TCP,一旦發生丟包,TCP會將后續的包緩存起來,等前面的包重傳并接收到后再繼續發送,延時會越來越大,基于UDP對實時性要求較為嚴格的情況下,采用自定義重傳機制,能夠把丟包產生的延遲降到最低,盡量減少網絡問題對游戲性造成影響。

延伸閱讀:

二、TCP編程的服務器端一般步驟

1、創建一個socket,用函數socket(); SOCKET SocketListen =socket(AF_INET,SOCK_STREAM, IPPROTO_TCP);

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

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

4、開啟監聽,用函數listen(); SOCKET_ERROR == listen(SocketListen,2)

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

_Out_ struct sockaddr *addr

_Inout_ int *addrlen);

6、收發數據,用函數send()和recv(),或者read()和write();

7、關閉網絡連接; closesocket(SocketListen);closesocket(SocketWaiter);

8、關閉監聽;

SOCK_STREAM這種的特點是面向連接的,即每次收發數據之前必須通過connect建立連接,而SOCK_DGRAM這種是User Datagram Protocol協議的網絡通訊,它是無連接的,不可靠的。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT