TCP抬纸、UDP、HTTP耿戚、SOCKET湿故、WebSocket之間的區(qū)別和原理

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

每層都有相應(yīng)的協(xié)議,如下圖:


IP:

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

TCP和UDP:

傳輸層協(xié)議墅茉;(卡車)

HTTP:

應(yīng)用層協(xié)議;(貨物)呜呐。HTTP(超文本傳輸協(xié)議)是利用TCP在兩臺(tái)電腦(通常是Web服務(wù)器和客戶端)之間傳輸信息的協(xié)議就斤。客戶端使用Web瀏覽器發(fā)起HTTP請(qǐng)求給Web服務(wù)器蘑辑,Web服務(wù)器發(fā)送被請(qǐng)求的信息給客戶端洋机。

SOCKET:

套接字,TCP/IP網(wǎng)絡(luò)的API洋魂。(港口碼頭/車站)Socket是應(yīng)用層與TCP/IP協(xié)議族通信的中間軟件抽象層绷旗,它是一組接口喜鼓。socket是在應(yīng)用層和傳輸層之間的一個(gè)抽象層,它把TCP/IP層復(fù)雜的操作抽象為幾個(gè)簡(jiǎn)單的接口供應(yīng)用層調(diào)用已實(shí)現(xiàn)進(jìn)程在網(wǎng)絡(luò)中通信刁标。

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ì)比如下:?


TCP/UDP區(qū)別:

TCP

(傳輸控制協(xié)議胳赌,Transmission Control Protocol):(類似打電話)?

面向連接牢撼、傳輸可靠(保證數(shù)據(jù)正確性)、有序(保證數(shù)據(jù)順序)疑苫、傳輸大量數(shù)據(jù)(流模式)熏版、速度慢、對(duì)系統(tǒng)資源的要求多捍掺,程序結(jié)構(gòu)較復(fù)雜撼短,?

每一條TCP連接只能是點(diǎn)到點(diǎn)的,?

TCP首部開銷20字節(jié)挺勿。

UDP

(用戶數(shù)據(jù)報(bào)協(xié)議曲横,User Data Protocol):(類似發(fā)短信)?

面向非連接 、傳輸不可靠(可能丟包)不瓶、無序禾嫉、傳輸少量數(shù)據(jù)(數(shù)據(jù)報(bào)模式)、速度快蚊丐,對(duì)系統(tǒng)資源的要求少熙参,程序結(jié)構(gòu)較簡(jiǎn)單 ,?

UDP支持一對(duì)一吠撮,一對(duì)多尊惰,多對(duì)一和多對(duì)多的交互通信,?

UDP的首部開銷小泥兰,只有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)覆劈,完成三次握手保礼。?

握手過程中傳送的包里不包含數(shù)據(jù),三次握手完畢后责语,客戶端與服務(wù)器才正式開始傳送數(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)過三次“對(duì)話”之后何乎,主機(jī)A才向主機(jī)B正式發(fā)送數(shù)據(jù)。

Websocket

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

注:什么是單工支救、半雙工、全工通信拷淘??

信息只能單向傳送為單工各墨;?

信息能雙向傳送但不能同時(shí)雙向傳送稱為半雙工;?

信息能夠同時(shí)雙向傳送則稱為全雙工启涯。

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ù)的一種。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盖腕,一起剝皮案震驚了整個(gè)濱河市赫冬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌溃列,老刑警劉巖劲厌,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異听隐,居然都是意外死亡补鼻,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門雅任,熙熙樓的掌柜王于貴愁眉苦臉地迎上來风范,“玉大人,你說我怎么就攤上這事沪么∨鹦觯” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵禽车,是天一觀的道長(zhǎng)寇漫。 經(jīng)常有香客問我,道長(zhǎng)殉摔,這世上最難降的妖魔是什么州胳? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮钦勘,結(jié)果婚禮上陋葡,老公的妹妹穿的比我還像新娘。我一直安慰自己彻采,他們只是感情好腐缤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布捌归。 她就那樣靜靜地躺著,像睡著了一般岭粤。 火紅的嫁衣襯著肌膚如雪惜索。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天剃浇,我揣著相機(jī)與錄音巾兆,去河邊找鬼。 笑死虎囚,一個(gè)胖子當(dāng)著我的面吹牛角塑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播淘讥,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼圃伶,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了蒲列?” 一聲冷哼從身側(cè)響起窒朋,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蝗岖,沒想到半個(gè)月后侥猩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抵赢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年欺劳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铅鲤。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杰标,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出彩匕,到底是詐尸還是另有隱情,我是刑警寧澤媒区,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布驼仪,位于F島的核電站,受9級(jí)特大地震影響袜漩,放射性物質(zhì)發(fā)生泄漏绪爸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一宙攻、第九天 我趴在偏房一處隱蔽的房頂上張望奠货。 院中可真熱鬧,春花似錦座掘、人聲如沸递惋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萍虽。三九已至睛廊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間杉编,已是汗流浹背超全。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留邓馒,地道東北人嘶朱。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像光酣,于是被迫代替她去往敵國(guó)和親疏遏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容