TCP自動(dòng)校準(zhǔn)和UDP的區(qū)別是什么?
1、TCP自動(dòng)校準(zhǔn)與UDP區(qū)別:1、TCP面向連接(如打電話要先撥號(hào)建立連接);UDP是無(wú)連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接2、TCP提供可靠的服務(wù)。也就是說,通過TCP連接傳送的數(shù)據(jù),無(wú)差錯(cuò),不丟失,不重復(fù),且按序到達(dá);UDP盡努力交付,即不保證可靠交付Tcp通過校驗(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和TCP編程步驟也有些不同,如下:TCP: TCP編程的服務(wù)器端一般步驟是: 1、創(chuàng)建一個(gè)socket,用函數(shù)socket(); SOCKET SocketListen =socke(AFI,SOCKSTREAM, IPPROTOTCP)?! ?、設(shè)置socket屬性,用函數(shù)setsockopt(); * 可選 ?! ?、綁定IP地址等信息到socket上,用函數(shù)bind(); SOCKETERROR = bind(SocketListen,(const sockaddr*)&addr,sizeof(addr))?! ?、開啟函數(shù)listen(); SOCKEERROR == listen(SocketListen,2)。UDP:與之對(duì)應(yīng)的UDP編程步驟要簡(jiǎn)單許多,分別如下: UDP編程的服務(wù)器端一般步驟是: 1、創(chuàng)建一個(gè)socket,用函數(shù)socket()。 2、設(shè)置socket屬性,用函數(shù)setsockopt();* 可選 。 3、綁定IP地址等信息到socket上,用函數(shù)bind()?! ?、循環(huán)接收數(shù)據(jù),用函數(shù)
TCP 的優(yōu)點(diǎn):可靠,穩(wěn)定。TCP 的可靠體現(xiàn)在 TCP 在傳遞數(shù)據(jù)之前,會(huì)有三次握手來(lái)建立連接,而且在數(shù)據(jù)傳遞時(shí),有確認(rèn)、窗口、重傳、擁塞控制機(jī)制,在數(shù)據(jù)傳完后,還會(huì)斷開連接用來(lái)節(jié)約系統(tǒng)資源。UDP 的優(yōu)點(diǎn):快,比 TCP 稍安全。UDP 沒有 TCP 的握手、確認(rèn)、窗口、重傳、擁塞控制等機(jī)制,UDP 是一個(gè)無(wú)狀態(tài)的傳輸協(xié)議,所以它在傳遞數(shù)據(jù)時(shí)非???。沒有 TCP 的這些機(jī)制,UDP 較 TCP 被攻擊者利用的漏洞就要少一些。但 UDP 也是無(wú)法避免攻擊的,比如:UDP Flood 攻擊。