TCP/UDP http ajax websocket 的區(qū)別關(guān)系以及使用場(chǎng)景

TCP/UDP http websocket ajax 的區(qū)別關(guān)系以及使用場(chǎng)景

TCP/IP協(xié)議棧主要分為四層:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層


floor.jpg

IP:

即 網(wǎng)絡(luò)層協(xié)議;(高速公路)

TCP:

即 傳輸層協(xié)議;(卡車(chē))

使用場(chǎng)景:

TCP一般用于文件傳輸(FTP HTTP 對(duì)數(shù)據(jù)準(zhǔn)確性要求高,速度可以相對(duì)慢),發(fā)送或接收郵件(POP IMAP SMTP 對(duì)數(shù)據(jù)準(zhǔn)確性要求高,非緊急應(yīng)用),遠(yuǎn)程登錄(TELNET SSH 對(duì)數(shù)據(jù)準(zhǔn)確性有一定要求,有連接的概念)等等;

UDP:

即 用戶數(shù)據(jù)報(bào)協(xié)議

使用場(chǎng)景:

UDP一般用于即時(shí)通信(QQ聊天 對(duì)數(shù)據(jù)準(zhǔn)確性和丟包要求比較低,但速度必須快),在線視頻(RTSP 速度一定要快,保證視頻連續(xù),但是偶爾花了一個(gè)圖像幀,人們還是能接受的),網(wǎng)絡(luò)語(yǔ)音電話(VoIP 語(yǔ)音數(shù)據(jù)包一般比較小,需要高速發(fā)送,偶爾斷音或串音也沒(méi)有問(wèn)題)等等。

HTTP:

即 應(yīng)用層協(xié)議;(貨物)。
HTTP(超文本傳輸協(xié)議)是利用TCP在兩臺(tái)電腦(通常是Web服務(wù)器和客戶端)之間傳輸信息的協(xié)議??蛻舳耸褂肳eb瀏覽器發(fā)起HTTP請(qǐng)求給Web服務(wù)器,Web服務(wù)器發(fā)送被請(qǐng)求的信息給客戶端。

使用場(chǎng)景:客戶端與服務(wù)端數(shù)據(jù)、資源請(qǐng)求

SOCKET:

socket只是一種連接模式,不是協(xié)議,socket是對(duì)TCP/IP協(xié)議的封裝,Socket本身并不是協(xié)議,而是一個(gè)調(diào)用接口(API),
通過(guò)Socket,我們才能使用TCP/IP協(xié)議
(港口碼頭/車(chē)站)Socket是應(yīng)用層與TCP/IP協(xié)議族通信的中間軟件抽象層,它是一組接口。

TCP/IP:

代表傳輸控制協(xié)議/網(wǎng)際協(xié)議,指的是一系列協(xié)議,TCP/IP 模型在 OSI 模型的基礎(chǔ)上進(jìn)行了簡(jiǎn)化,變成了四層,從下到上分別為:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。與 OSI 體系結(jié)構(gòu)對(duì)比如下:

4.jpeg

TCP/UDP區(qū)別:

兩種協(xié)議都是傳輸層協(xié)議,為應(yīng)用層提供信息載體。

  • TCP面向連接(如打電話要先撥號(hào)建立連接);UDP是無(wú)連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接
  • TCP提供可靠的服務(wù)。也就是說(shuō),通過(guò)TCP連接傳送的數(shù)據(jù),無(wú)差錯(cuò),不丟失,不重復(fù),且按序到達(dá);UDP盡最大努力交付,即不保證可靠交付
  • TCP面向字節(jié)流,實(shí)際上是TCP把數(shù)據(jù)看成一連串無(wú)結(jié)構(gòu)的字節(jié)流;UDP是面向報(bào)文的
    UDP沒(méi)有擁塞控制,因此網(wǎng)絡(luò)出現(xiàn)擁塞不會(huì)使源主機(jī)的發(fā)送速率降低(對(duì)實(shí)時(shí)應(yīng)用很有用,如IP電話,實(shí)時(shí)視頻會(huì)議等)
  • 每一條TCP連接只能是點(diǎn)到點(diǎn)的;UDP支持一對(duì)一,一對(duì)多,多對(duì)一和多對(duì)多的交互通信
  • TCP首部開(kāi)銷(xiāo)20字節(jié);UDP的首部開(kāi)銷(xiāo)小,只有8個(gè)字節(jié)
  • TCP的邏輯通信信道是全雙工的可靠信道

tcp三次握手建立連接:


tcp-ip-handshark.png

Websocket

Websocket協(xié)議解決了服務(wù)器與客戶端全雙工通信的問(wèn)題。

注:什么是單工、半雙工、全工通信?
信息只能單向傳送為單工;
信息能雙向傳送但不能同時(shí)雙向傳送稱為半雙工;
信息能夠同時(shí)雙向傳送則稱為全雙工。

  • 使用場(chǎng)景: 社交聊天、彈幕、多玩家游戲、協(xié)同編輯、股票基金實(shí)時(shí)報(bào)價(jià)、體育實(shí)況更新、視頻會(huì)議/聊天、基于位置的應(yīng)用、在線教育、智能家居等需要高實(shí)時(shí)的場(chǎng)景

Ajax(Asynchronous JavaScript and XML)

Js通過(guò)new XMLHttpRequest的實(shí)例向服務(wù)端發(fā)送的異步網(wǎng)絡(luò)請(qǐng)求。

  • 與http請(qǐng)求的區(qū)別:
  1. Jquery Ajax請(qǐng)求頭中 多了一個(gè)'X-Requested-With'屬性,值為XMLHttpRequest
  • 使用場(chǎng)景: 異步請(qǐng)求 頁(yè)面部分刷新
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容