TCP自動校準和UDP的區(qū)別是什么?
1、TCP自動校準與UDP區(qū)別:1、TCP面向連接(如打電話要先撥號建立連接);UDP是無連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接2、TCP提供可靠的服務(wù)。也就是說,通過TCP連接傳送的數(shù)據(jù),無差錯,不丟失,不重復(fù),且按序到達;UDP盡努力交付,即不保證可靠交付Tcp通過校驗和,重傳控制,序號標識,滑動窗口、確認應(yīng)答實現(xiàn)可靠傳輸。如丟包時的重發(fā)控制,還可以對次序亂掉的分包進行順序控制。3、UDP具有較好的實時性,工作效率比TCP高,適用于對高速傳輸和實時性有較高的通信或廣播通信。4.每一條TCP連接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通信5、TCP對系統(tǒng)資源要求較多,UDP對系統(tǒng)資源要求較少。
UDP和TCP編程步驟也有些不同,如下:TCP: TCP編程的服務(wù)器端一般步驟是: 1、創(chuàng)建一個socket,用函數(shù)socket(); SOCKET SocketListen =socke(AFI,SOCKSTREAM, IPPROTOTCP)。 2、設(shè)置socket屬性,用函數(shù)setsockopt(); * 可選 。 3、綁定IP地址等信息到socket上,用函數(shù)bind(); SOCKETERROR = bind(SocketListen,(const sockaddr*)&addr,sizeof(addr))?! ?、開啟函數(shù)listen(); SOCKEERROR == listen(SocketListen,2)。UDP:與之對應(yīng)的UDP編程步驟要簡單許多,分別如下: UDP編程的服務(wù)器端一般步驟是: 1、創(chuàng)建一個socket,用函數(shù)socket()。 2、設(shè)置socket屬性,用函數(shù)setsockopt();* 可選 。 3、綁定IP地址等信息到socket上,用函數(shù)bind()?! ?、循環(huán)接收數(shù)據(jù),用函數(shù)
TCP 的優(yōu)點:可靠,穩(wěn)定。TCP 的可靠體現(xiàn)在 TCP 在傳遞數(shù)據(jù)之前,會有三次握手來建立連接,而且在數(shù)據(jù)傳遞時,有確認、窗口、重傳、擁塞控制機制,在數(shù)據(jù)傳完后,還會斷開連接用來節(jié)約系統(tǒng)資源。UDP 的優(yōu)點:快,比 TCP 稍安全。UDP 沒有 TCP 的握手、確認、窗口、重傳、擁塞控制等機制,UDP 是一個無狀態(tài)的傳輸協(xié)議,所以它在傳遞數(shù)據(jù)時非???。沒有 TCP 的這些機制,UDP 較 TCP 被攻擊者利用的漏洞就要少一些。但 UDP 也是無法避免攻擊的,比如:UDP Flood 攻擊。