TCP/UDP區(qū)別:
TCP
(傳輸控制協(xié)議,Transmission Control Protocol):(類(lèi)似打電話)
面向連接燃观、傳輸可靠(保證數(shù)據(jù)正確性)褒脯、有序(保證數(shù)據(jù)順序)、傳輸大量數(shù)據(jù)(流模式)缆毁、速度慢番川、對(duì)系統(tǒng)資源的要求多,程序結(jié)構(gòu)較復(fù)雜脊框,
每一條TCP連接只能是點(diǎn)到點(diǎn)的颁督,
TCP首部開(kāi)銷(xiāo)20字節(jié)。
UDP
(用戶數(shù)據(jù)報(bào)協(xié)議缚陷,User Data Protocol):(類(lèi)似發(fā)短信)
面向非連接 适篙、傳輸不可靠(可能丟包)、無(wú)序箫爷、傳輸少量數(shù)據(jù)(數(shù)據(jù)報(bào)模式)、速度快,對(duì)系統(tǒng)資源的要求少虎锚,程序結(jié)構(gòu)較簡(jiǎn)單 硫痰,
UDP支持一對(duì)一,一對(duì)多窜护,多對(duì)一和多對(duì)多的交互通信效斑,
UDP的首部開(kāi)銷(xiāo)小,只有8個(gè)字節(jié)柱徙。
tcp三次握手建立連接:
第一次握手:客戶端發(fā)送syn包(seq=x)到服務(wù)器缓屠,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn)护侮;
第二次握手:服務(wù)器收到syn包敌完,必須確認(rèn)客戶的SYN(ack=x+1),同時(shí)自己也發(fā)送一個(gè)SYN包(seq=y)羊初,即SYN+ACK包滨溉,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);
第三次握手:客戶端收到服務(wù)器的SYN+ACK包长赞,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=y+1)晦攒,此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài)得哆,完成三次握手脯颜。
握手過(guò)程中傳送的包里不包含數(shù)據(jù),三次握手完畢后贩据,客戶端與服務(wù)器才正式開(kāi)始傳送數(shù)據(jù)栋操。理想狀態(tài)下,TCP連接一旦建立乐设,在通信雙方中的任何一方主動(dòng)關(guān)閉連接之前讼庇,TCP 連接都將被一直保持下去。
主機(jī)A向主機(jī)B發(fā)出連接請(qǐng)求數(shù)據(jù)包:“我想給你發(fā)數(shù)據(jù)近尚,可以嗎蠕啄?”,這是第一次對(duì)話戈锻;
主機(jī)B向主機(jī)A發(fā)送同意連接和要求同步(同步就是兩臺(tái)主機(jī)一個(gè)在發(fā)送歼跟,一個(gè)在接收,協(xié)調(diào)工作)的數(shù)據(jù)包:“可以格遭,你什么時(shí)候發(fā)哈街?”,這是第二次對(duì)話拒迅;
主機(jī)A再發(fā)出一個(gè)數(shù)據(jù)包確認(rèn)主機(jī)B的要求同步:“我現(xiàn)在就發(fā)骚秦,你接著吧她倘!”,這是第三次對(duì)話作箍。
三次“對(duì)話”的目的是使數(shù)據(jù)包的發(fā)送和接收同步硬梁,經(jīng)過(guò)三次“對(duì)話”之后,主機(jī)A才向主機(jī)B正式發(fā)送數(shù)據(jù)胞得。
Websocket
Websocket協(xié)議解決了服務(wù)器與客戶端全雙工通信的問(wèn)題荧止。
注:什么是單工、半雙工阶剑、全工通信跃巡?
信息只能單向傳送為單工;
信息能雙向傳送但不能同時(shí)雙向傳送稱(chēng)為半雙工牧愁;
信息能夠同時(shí)雙向傳送則稱(chēng)為全雙工素邪。
websocket協(xié)議解析
wensocket協(xié)議包含兩部分:一部分是“握手”序目,一部分是“數(shù)據(jù)傳輸”挺份。
WebSocket和Socket區(qū)別
可以把WebSocket想象成HTTP(應(yīng)用層),HTTP和Socket什么關(guān)系荤傲,WebSocket和Socket就是什么關(guān)系办龄。
HTTP 協(xié)議有一個(gè)缺陷:通信只能由客戶端發(fā)起烘绽,做不到服務(wù)器主動(dòng)向客戶端推送信息。
WebSocket 協(xié)議在2008年誕生俐填,2011年成為國(guó)際標(biāo)準(zhǔn)安接。所有瀏覽器都已經(jīng)支持了。
它的最大特點(diǎn)就是英融,服務(wù)器可以主動(dòng)向客戶端推送信息盏檐,客戶端也可以主動(dòng)向服務(wù)器發(fā)送信息,是真正的雙向平等對(duì)話驶悟,屬于服務(wù)器推送技術(shù)的一種胡野。
