華為18級工程師三年心血終成趣談網(wǎng)絡(luò)協(xié)議文檔(附大牛講解)

前言

雖然在大學(xué)的時候大家都學(xué)過網(wǎng)絡(luò)協(xié)議 ,但是肯定感覺網(wǎng)絡(luò)協(xié)議的知識點(diǎn)非常多 壮池,非常復(fù)雜。學(xué)的時候就渾渾噩噩伦意,真正到了實(shí)踐中更是糊里糊涂火窒,一旦工作中遇到了網(wǎng)絡(luò)問題,除了會簡單地 ping 幾下 驮肉,基本沒有什么解決問題的思路熏矿。 然而當(dāng)拿起書來學(xué)習(xí),或者看一些官方文檔的時候离钝,各種生僻的專業(yè)詞匯馬上撲面而來票编,每了解其中的一個詞匯 ,都要看多 篇文章卵渴,讀多本書慧域,導(dǎo)致一篇即使很短的有關(guān)網(wǎng)絡(luò)技術(shù)的文章也要幾個星期才能看完。

這嚴(yán)重打擊著大家的自信心浪读,并且很容易讓人在技術(shù)的海洋中迷失自我昔榴,從而產(chǎn)生“從人門到放棄”的沖動辛藻!

網(wǎng)絡(luò)協(xié)議和變化萬千的前沿技術(shù)不同,它的變化比較小互订,一旦掌握到一定程度吱肌,就會一直受益 技術(shù)變 很快,這 幾年OpenStack仰禽、docker氮墨、Mesos、kubernetes吐葵、微服務(wù)规揪、serverless、AIops等技術(shù)層出不窮温峭,讓大多數(shù)技術(shù)人員應(yīng)接不暇猛铅,但是掌握了基礎(chǔ)知識 后,反而發(fā)現(xiàn)很多技術(shù)看起來“轟轟烈烈”诚镰, 脫下外衣奕坟,其實(shí)本質(zhì)還是操作系計(jì)算機(jī)網(wǎng)絡(luò)、算法與數(shù)據(jù)結(jié)構(gòu)清笨、編譯原理 月杉、計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu) 。

如果基礎(chǔ)打好了抠艾,最大的收益就是苛萎,在最新的技術(shù)出來以后,只要經(jīng)過短時間的學(xué)習(xí)检号,就很容易上手腌歉,就能在新技術(shù)的滾滾浪潮中保持快速學(xué)習(xí)的能力。

既然網(wǎng)絡(luò)協(xié)議既是基礎(chǔ)齐苛,又繞不過去翘盖,還這么難,但是趟過去之后又不怎么變凹蜂,收益越來越大馍驯,那為什么不寫一文檔,給大家一點(diǎn)可借鑒的經(jīng)驗(yàn)玛痊,幫助大家盡快掌握網(wǎng)絡(luò)協(xié)議呢汰瘫?

那么,今天咱們就從目錄擂煞、主要包括的內(nèi)容和總結(jié)三部分給大家進(jìn)行網(wǎng)絡(luò)協(xié)議的拓展學(xué)習(xí)混弥,希望大家能夠喜歡!对省!

目錄

主要內(nèi)容

主要把本文內(nèi)容分為九章來給大家介紹:

第1章通信協(xié)議概述.

1.1為什么要學(xué)習(xí)網(wǎng)絡(luò)協(xié)議

1.2網(wǎng)絡(luò)分層的真實(shí)含義蝗拿,總結(jié)一下本節(jié)的內(nèi)容晾捏,理解網(wǎng)絡(luò)協(xié)議的工作模式,有以下兩個小竅門哀托。

始終想象自己是一個處理網(wǎng)絡(luò)包的程序:如何拿到網(wǎng)絡(luò)包粟瞬,如何根據(jù)規(guī)則進(jìn)行處理,如何發(fā)出去萤捆。

始終牢記一個原則:只要是在網(wǎng)絡(luò)上跑的包,都是完整的俗批∷谆颍可以有下層沒上層,絕對不可能有上層沒下層岁忘。

1.3 ifconfig:熟悉又陌生的命令行辛慰,通過本節(jié)的學(xué)習(xí)希望你能記住以下的知識點(diǎn),后面都能用得上:

I地址有定位功能干像,MAC地址類似身份證號帅腌,無定位功能。

CIDR可以用來判斷是不是本地地址麻汰。

IP地址分公網(wǎng)IP地址和私網(wǎng)IP地址速客。后面的章節(jié)中會談到“出國門”,就與此有關(guān)五鲫。

1.4 DHCP與PXE:IP地址是怎么來的溺职,又是怎么沒的,本節(jié)內(nèi)容總結(jié)如下:

DHCP主要租給客戶端IP地址位喂,這個過程和租房很像浪耘,要商談、簽約塑崖、續(xù)租七冲,廣播還不能“搶單”。

DHCP會給客戶端推薦“裝修隊(duì)”PXE來安裝操作系統(tǒng)规婆,這在云計(jì)算領(lǐng)域大有用處澜躺。

第2章從二層到三層.

2.1從物理層到MAC層:如何在宿舍里自己組網(wǎng)玩聯(lián)機(jī)游戲,本節(jié)有3個重點(diǎn)需要記住:

MAC層是用來解決多路訪問的“堵車”問題的聋呢。

ARP是通過“吼”的方式來尋找目標(biāo)MAC地址的苗踪,“吼”完之后會記住一段時間,這個叫作緩存削锰。

交換機(jī)是有MAC地址學(xué)習(xí)能力的通铲,學(xué)會了它就能知道誰在哪里,不用廣播了器贩。

2.2交換機(jī)與VLAN:辦公室太復(fù)雜颅夺,我要回學(xué)校朋截,本節(jié)總結(jié)如下:

·當(dāng)交換機(jī)的數(shù)目越來越多時,會遭遇環(huán)路問題吧黄,讓廣播包迷路部服。這時就需要使用STP通過“比武論劍”的方式,將有環(huán)路的圖變成沒有環(huán)路的樹拗慨,從而解決環(huán)路問題廓八。

·交換機(jī)數(shù)目過多會導(dǎo)致隔離問題≌郧溃可以通過VLAN形成虛擬局域網(wǎng)剧蹂,從而解決廣播問題和安全問題。

2.3ICMP與ping:投石問路的偵察兵烦却,本節(jié)內(nèi)容總結(jié)如下:

·ICMP 相當(dāng)于網(wǎng)絡(luò)世界的偵察兵宠叼。本節(jié)講解了兩種類型的ICMP報(bào)文,一種是主動探查的查詢報(bào)文其爵,一種異常報(bào)告的差錯報(bào)文冒冬。

ping使用查詢報(bào)文,Traceroute使用差錯報(bào)文摩渺。

2.4世界這么大简烤,我想出網(wǎng)關(guān):歐洲十國游與玄奘西行,本節(jié)總結(jié)如下:

·如果離開局域網(wǎng)摇幻,就需要經(jīng)過網(wǎng)關(guān)乐埠。

·路由器是一個三層設(shè)備,里面有如何尋找下一跳的規(guī)則囚企。

·經(jīng)過路由器之后MAC頭要變丈咐,如果I地址不變,相當(dāng)于不換護(hù)照的“歐洲十國游”龙宏,如果IP地址改變棵逊,相當(dāng)于換護(hù)照的“玄奘西行”。

2.5路由協(xié)議:“西出網(wǎng)關(guān)無故人""敢問路在何方”银酗,本節(jié)總結(jié)如下:

路由分靜態(tài)路由和動態(tài)路由辆影,靜態(tài)路由可以配置復(fù)雜的策略路由,控制轉(zhuǎn)發(fā)策略黍特。

動態(tài)路由有兩種主流協(xié)議蛙讥,距離矢量路由協(xié)議和鏈路狀態(tài)路由協(xié)議。分別對應(yīng)BGP和OSPF 這兩個實(shí)現(xiàn)灭衷。

第3章重要的傳輸層.

3.1 UDP:雖然簡單但是可以定制化次慢,本節(jié)總結(jié)如下:

如果將TCP比作成熟的社會人,UDP則是頭腦簡單的小朋友。TCP復(fù)雜迫像,UDP簡單劈愚。TCP維護(hù)連接扭仁,UDP誰都相信讥此。TCP知進(jìn)退锉桑,UDP愣頭青一個乏奥,勇往直前。

·UDP雖然簡單屡限,但它有簡單的用法谓厘。它可以用在環(huán)境簡單询一、需要多播均唉、應(yīng)用層自己控制傳輸?shù)牡胤矫ズ洌鏒HCP、VXLAN浸卦、QUIC等。

3.2 TCP(上):雖然復(fù)雜案糙,使用起來卻輕松限嫌,本節(jié)總結(jié)如下:

· TCP頭很復(fù)雜,但是主要關(guān)注五個方面:順序問題时捌、丟包問題怒医、連接維護(hù)、流量控制奢讨,以及擁塞控制稚叹。

連接的建立要經(jīng)過三次握手,斷開要經(jīng)過四次揮手拿诸。

3.3 TCP (下):西行必定多妖孽扒袖,恒心智慧消磨難,總結(jié)如下:

順序問題亩码、丟包問題季率、流量控制都是通過滑動窗口來解決的,滑動窗口其實(shí)就相當(dāng)于領(lǐng)導(dǎo)和下屬的工作備忘錄描沟,布置過的工作要有編號飒泻,干完了有反饋,活兒不能派太多吏廉,也不能太少泞遗。

擁塞控制是通過擁塞窗口來解決的,相當(dāng)于往管道里面倒水席覆,快了容易溢出史辙,慢了浪費(fèi)帶寬,要摸著石頭過河,找到最優(yōu)值髓霞。

3.4 socket: Talk is cheap, show me the code 卦睹,本節(jié)總結(jié)如下:

你需要記住在基于TCP和UDP的socket程序的函數(shù)調(diào)用過程中,客戶端和服務(wù)端都需要調(diào)用哪些函數(shù)方库。

寫一個能夠支撐大量連接的高并發(fā)的服務(wù)端不容易结序,需要多進(jìn)程、多線程纵潦,而 epoll能解決C10K問題徐鹤。

第4章常用的應(yīng)用層.

4.1 HTTP:看個新聞原來這么麻煩,本節(jié)總結(jié)如下:

HTTP很常用邀层,也很復(fù)雜返敬,重點(diǎn)記住GET、POST寥院、PUT劲赠、DELETE這幾個方法,以及重要的首部字段秸谢。

HTTP2.0通過頭壓縮凛澎、分幀、二進(jìn)制編碼估蹄、多路復(fù)用等技術(shù)提升性能塑煎。

QUIC協(xié)議通過基于UDP自定義的連接、重傳臭蚁、多路復(fù)用最铁、流量控制等機(jī)制進(jìn)一步提升性能。

4.2 HTTPS:點(diǎn)外賣的過程原來這么復(fù)雜垮兑,本節(jié)總結(jié)如下:

加密分對稱加密和非對稱加密冷尉。對稱加密效率高,但是解決不了密鑰傳輸問題;非對稱加密可以解決這個問題系枪,但是效率低网严。

非對稱加密需要通過證書和權(quán)威機(jī)構(gòu)來驗(yàn)證公鑰的合法性。

HTTPS是綜合了對稱加密和非對稱加密的HTTP嗤无。既保證傳輸安全震束,也保證傳輸效率。

4.3流媒體協(xié)議:如何在直播里看到帥哥美女当犯,本節(jié)總結(jié)如下:

編碼兩大流派達(dá)成了一致垢村,都是通過關(guān)于時間、空間的各種算法來壓縮數(shù)據(jù)的嚎卫。

壓縮好的數(shù)據(jù)嘉栓,為了方便傳輸會組成一系列NALU宏榕,按照幀和片依次排列。

排列好的NALU在網(wǎng)絡(luò)傳輸時侵佃,要按照RTMP包的格式進(jìn)行包裝麻昼,RTMP包會拆分成塊進(jìn)行傳輸。

推送到流媒體服務(wù)器的視頻流經(jīng)過轉(zhuǎn)碼和分發(fā)馋辈,可以被客戶端通過RTMP拉取抚芦,然后組合為NALU,解碼成視頻格式進(jìn)行播放迈螟。

4.4 P2P協(xié)議:下載電影叉抡,分布式協(xié)議速度快,本節(jié)總結(jié)如下:

下載一個文件可以使用HTTP或FTP答毫,這兩種協(xié)議都使用集中下載的方式褥民,而P2P則換了一種思路,采取去中心化下載的方式洗搂。

P2P也有兩種下載方式消返,一種是依賴于tracker服務(wù)器,即元數(shù)據(jù)集中耘拇,文件數(shù)據(jù)分散;另一種基于分布式哈希算法撵颊,元數(shù)據(jù)和文件數(shù)據(jù)全部分散。

第5章陌生的數(shù)據(jù)中心.

5.1 DNS:網(wǎng)絡(luò)世界的地址簿驼鞭,本節(jié)總結(jié)如下:

DNS是網(wǎng)絡(luò)世界的地址簿,可以通過域名查詢地址尺碰,由于DNS服務(wù)器是按照樹狀結(jié)構(gòu)組織的挣棕,因而域名查找使用的是遞歸的方法,并通過緩存的方式增強(qiáng)性能亲桥。

域名和IP地址相互映射的過程給了應(yīng)用基于域名做負(fù)載均衡的機(jī)會,可以實(shí)現(xiàn)簡單的負(fù)載均衡洛心,也可以根據(jù)地址和運(yùn)營商實(shí)現(xiàn)全局負(fù)載均衡。

5.2 HTTPDNS:網(wǎng)絡(luò)世界的地址簿也會指錯路题篷,本節(jié)需要記住以下兩個重點(diǎn):

·傳統(tǒng)的DNS服務(wù)器有很多問題词身,例如解析慢、更新不及時番枚。因?yàn)榫彺娣ㄑ稀⑥D(zhuǎn)發(fā)NAT問題導(dǎo)致客戶端誤會自己所在的位置和所屬的運(yùn)營商,從而影響流量的調(diào)度葫笼。

·HTTPDNS服務(wù)器通過客戶端SDK深啤,服務(wù)端通過HTTP直接調(diào)用解析DNS服務(wù)器的方式,繞過了傳統(tǒng)DNS服務(wù)器的缺點(diǎn)路星,實(shí)現(xiàn)了智能調(diào)度溯街。

5.3 CDN:你去小賣部取過快遞嗎,本節(jié)需記住以下兩個重點(diǎn):

CDN和電商系統(tǒng)的分布式倉儲系統(tǒng)-樣,分為中心節(jié)點(diǎn)呈昔、區(qū)域節(jié)點(diǎn)挥等、邊緣節(jié)點(diǎn),將數(shù)據(jù)緩存在離用戶最近的位置堤尾。

CDN最擅長的是緩存靜態(tài)數(shù)據(jù),除此之外還可以緩存流媒體數(shù)據(jù),這時要注意使用防盜鏈肝劲。CDN也支持動態(tài)數(shù)據(jù)緩存,可用模式有兩種:一種是邊緣計(jì)算的生鮮超市模式哀峻,另一種 是鏈路優(yōu)化的冷鏈運(yùn)輸模式涡相。

5.4數(shù)據(jù)中心:我是開發(fā)商,自己拿地蓋別墅剩蟀,本節(jié)需要記住以下3個重點(diǎn):

數(shù)據(jù)中心分為三層催蝗。服務(wù)器連接到接入層,然后是匯聚層育特,接著是核心層丙号,最外面是邊界路由器和安全設(shè)備。

數(shù)據(jù)中心的所有鏈路都要高可用缰冤。服務(wù)器可以綁定網(wǎng)卡犬缨,交換機(jī)可以堆疊,三層設(shè)備可以通過等價(jià)路由棉浸,二層設(shè)備可以通過TRILL協(xié)議實(shí)現(xiàn)高可用怀薛。

隨著云和大數(shù)據(jù)的發(fā)展,東西流量相較于南北流量更加重要,因而演進(jìn)出葉脊網(wǎng)絡(luò)結(jié)構(gòu)。

5.5 VPN:朝中有人好做官迷郑,本節(jié)總結(jié)如下:

VPN可以將一個機(jī)構(gòu)的多個數(shù)據(jù)中心通過隧道連接起來,讓機(jī)構(gòu)感覺在一個數(shù)據(jù)中心里面一樣枝恋,如同自駕游通過瓊州海峽。

完全基于軟件的IPsec VPN可以保證私密性嗡害、完整性焚碌、真實(shí)性,簡單便宜霸妹,但是性能稍微差一些十电。

MPLS-VPN綜合了I轉(zhuǎn)發(fā)模式和ATM標(biāo)簽轉(zhuǎn)發(fā)模式的優(yōu)勢,性能較好叹螟,但是需要從運(yùn)營商處購買鹃骂。

5.6移動網(wǎng)絡(luò):去巴塞羅那,手機(jī)也上不了“臉書”罢绽,本節(jié)總結(jié)如下:

移動網(wǎng)絡(luò)的發(fā)展歷程從2G到3G偎漫,再到4G,功能逐漸從以打電話為主轉(zhuǎn)變?yōu)橐陨暇W(wǎng)為主有缆。

請記住4G網(wǎng)絡(luò)的結(jié)構(gòu)象踊,有eNodeB温亲、MME、SGW杯矩、PGW等栈虚,分控制面協(xié)議和數(shù)據(jù)面協(xié)議,你可以對照這個結(jié)構(gòu)史隆,試著說出手機(jī)上網(wǎng)的流程魂务。

即便你在國外運(yùn)營商的范圍內(nèi)上網(wǎng),也要由國內(nèi)運(yùn)營商控制泌射,因而也上不了“臉書”粘姜。

第6章云計(jì)算中的網(wǎng)絡(luò).

6.1云中網(wǎng)絡(luò):自己拿地成本高,購買公寓更靈活熔酷,本節(jié)總結(jié)如下:

云計(jì)算的關(guān)鍵技術(shù)是虛擬化孤紧,這里我們重點(diǎn)關(guān)注的是虛擬網(wǎng)卡通過打開TUN/TAP字符設(shè)備的方式,將虛擬機(jī)內(nèi)外連接起來拒秘。

云中的網(wǎng)絡(luò)重點(diǎn)關(guān)注四個方面:共享号显、隔離、互通躺酒、靈活押蚤。其中共享和互通有兩種常用的方式,分別是橋接和NAT羹应,隔離可以通過VLAN的方式來進(jìn)行揽碘。

6.2軟件定義網(wǎng)絡(luò):共享基礎(chǔ)設(shè)施的小區(qū)物業(yè)管理辦法,本節(jié)總結(jié)如下:

用SDN 控制整個云里面的網(wǎng)絡(luò)园匹,就像小區(qū)保安從總控室管理整個物業(yè)是一樣的雳刺,將控制面和數(shù)據(jù)面進(jìn)行了分離。

Open vSwitch是一種開源的虛擬交換機(jī)的實(shí)現(xiàn)偎肃,它能對經(jīng)過自己的網(wǎng)絡(luò)包做任意修改煞烫,從而使得云對網(wǎng)絡(luò)的控制十分靈活浑此。

將Open vSwitch引入云之后累颂,可以使配置簡單而靈活,并且可以解耦物理網(wǎng)絡(luò)和虛擬網(wǎng)絡(luò)凛俱。

6.3云中網(wǎng)絡(luò)之安全:雖然不是土豪紊馏,也需要基本保障,本節(jié)總結(jié)如下:

云中的安全策略的常用方式是使用iptables的規(guī)則,請記住它的5個鏈:PREROUTING蒲犬、INPUT朱监、FORWARD、OUTPUT原叮、POSTROUTING赫编。

iptables 的表分為4種: raw巡蘸、mangle、nat擂送、filter悦荒。其中安全策略主要在filter表中實(shí)現(xiàn),而虛擬網(wǎng)絡(luò)和物理網(wǎng)絡(luò)地址的轉(zhuǎn)換主要在nat表中實(shí)現(xiàn)嘹吨。

6.4云中網(wǎng)絡(luò)之QoS:室友瘋狂下電影搬味,我該怎么辦,本節(jié)總結(jié)如下:

云中的流量控制主要是通過隊(duì)列進(jìn)行的蟀拷,排隊(duì)規(guī)則分為兩大類:無類別排隊(duì)規(guī)則和基于類別的排隊(duì)規(guī)則碰纬。

在云中網(wǎng)絡(luò)Open vSwitch中,主要使用HTB將總的帶寬在一棵樹上按照配置的比例進(jìn)行分配问芬,并且在一個分支不使用流量時悦析,借給另外的分支,從而增強(qiáng)帶寬利用率愈诚。

6.5云中網(wǎng)絡(luò)之隔離GRE她按、VXLAN:雖然住一個小區(qū),也要保護(hù)隱私炕柔,本節(jié)總結(jié)如下:

要對不同用戶的網(wǎng)絡(luò)進(jìn)行隔離,解決VLAN數(shù)目有限的問題,需要通過Overlay的方式酌泰,常使用的是GRE和VXLAN。

GRE是一種點(diǎn)對點(diǎn)的隧道模式匕累,VXLAN是支撐組播的隧道模式陵刹,它們都要在某個隧道端口進(jìn)行封裝和解封裝,實(shí)現(xiàn)跨物理機(jī)的互通欢嘿。

Open vSwitch可以作為隧道端口衰琐,通過設(shè)置流表規(guī)則在虛擬機(jī)網(wǎng)絡(luò)和物理機(jī)網(wǎng)絡(luò)之間進(jìn)行轉(zhuǎn)換。

第7章容器技術(shù)中的網(wǎng)絡(luò).

7.1容器網(wǎng)絡(luò):來去自由的日子炼蹦,不買公寓去合租羡宙,本節(jié)總結(jié)如下:

容器是一種比虛擬機(jī)更加輕量級的隔離方式,主要通過namespace和 cgroup技術(shù)進(jìn)行資源的隔離掐隐,namespace負(fù)責(zé)“看起來”隔離狗热,cgroup負(fù)責(zé)“用起來”隔離。

容器網(wǎng)絡(luò)連接到物理網(wǎng)絡(luò)的方式和虛擬機(jī)很像虑省,通過橋接的方式可以實(shí)現(xiàn)一臺物理機(jī)上容器的相互訪問匿刮,如果要訪問外網(wǎng),最簡單的方式還是通過NAT探颈。

7.2容器網(wǎng)絡(luò)之Flannel:每人一畝三分地.熟丸,本節(jié)總結(jié)如下:

基于NAT的容器網(wǎng)絡(luò)模型在微服務(wù)架構(gòu)下有兩個問題,一個是IP地址重疊伪节,另一個是端口沖突光羞,需要通過Overlay 網(wǎng)絡(luò)保持跨節(jié)點(diǎn)的連通性绩鸣。

Flannel是跨節(jié)點(diǎn)容器網(wǎng)絡(luò)方案之一,它提供的Overlay方案主要有兩種方式纱兑,一種是UDP在用戶態(tài)封裝全闷,另一種是VXLAN在內(nèi)核態(tài)封裝,而VXLAN的性能更好一些萍启。

7.3容器網(wǎng)絡(luò)之Calico:為了高效說出善意的謊言总珠,本節(jié)總結(jié)如下:

Calico推薦使用物理機(jī)作為路由器,這種模式?jīng)]有虛擬化開銷勘纯,性能比較高局服。

Calico的主要組件包括路由、iptables 的配置組件Felix驳遵、路由廣播組件BGP Speaker淫奔,以及大規(guī)模場景下的BGP路由反射器。

為解決跨網(wǎng)段的問題堤结,Calico還有一種IPIP模式唆迁,即在兩臺機(jī)器之間打一個隧道,兩臺機(jī)器分別位于隧道兩端竞穷,這樣本來不是鄰居的兩臺機(jī)器唐责,因?yàn)樗淼雷兂闪讼噜彽臋C(jī)器。

7.4 RPC概述:遠(yuǎn)在天邊瘾带,近在眼前鼠哥,本節(jié)總結(jié)如下:

遠(yuǎn)程調(diào)用看起來用socket編程就可以了,其實(shí)是很復(fù)雜的看政,要解決協(xié)議約定問題朴恳、傳輸協(xié)議問題和服務(wù)發(fā)現(xiàn)問題。

Bruce Jay Nelson的論文允蚣、早期ONC RPC框架于颖,以及NFS的實(shí)現(xiàn),給出了解決這三大問題的示范性實(shí)現(xiàn)嚷兔,即協(xié)議約定要公用協(xié)議描述文件并通過這個文件生成Stub程序森渐,RPC的傳輸一般需要一個狀態(tài)機(jī),同時需要另外一個進(jìn)程專門做服務(wù)發(fā)現(xiàn)谴垫。

第8章微服務(wù)相關(guān)協(xié)議.

8.1基于XML的SOAP:不要說NBA章母,請說美國職業(yè)籃球聯(lián)賽母蛛,本節(jié)總結(jié)如下:

原來的二進(jìn)制RPC有很多缺點(diǎn):格式要求嚴(yán)格翩剪、修改過于復(fù)雜、不面向?qū)ο蟛式肌S谑钱a(chǎn)生了基于文本的調(diào)用方式——基于XML的SOAP前弯。

SOAP的三大要素:協(xié)議約定用WSDL蚪缀、傳輸協(xié)議用HTTP、服務(wù)發(fā)現(xiàn)用UDDL恕出。

8.2基于JSON的RESTful接口協(xié)議:我不關(guān)心過程询枚,請給我結(jié)果,本節(jié)總結(jié)如下浙巫。

SOAP過于復(fù)雜金蜀,而且設(shè)計(jì)是面向動作的,因而往往因?yàn)榧軜?gòu)問題導(dǎo)致并發(fā)量上不去的畴。

RESTful不僅僅是一個API渊抄,還是一種架構(gòu)模式,主要面向資源提供無狀態(tài)服務(wù)丧裁,有利于橫向擴(kuò)展應(yīng)對高并發(fā)护桦。

8.3二進(jìn)制類RPC協(xié)議:還是叫NBA吧,總說全稱多費(fèi)勁煎娇,本節(jié)總結(jié)如下:

RESTful API對于接入層和Controller層之外的調(diào)用二庵,已基本形成事實(shí)標(biāo)準(zhǔn),但隨著內(nèi)部

服務(wù)之間的調(diào)用越來越多,性能也越來越重要缓呛,于是Dubbo的RPC框架有了用武之地催享。

Dubbo通過注冊中心解決服務(wù)發(fā)現(xiàn)問題,通過Hessian2序列化解決協(xié)議約定的問題哟绊,通過Netty解決網(wǎng)絡(luò)傳輸?shù)膯栴}睡陪。

在更加復(fù)雜的微服務(wù)場景下,Spring Cloud的RESTful方式在內(nèi)部調(diào)用時也會被考慮匿情,重要的是JAR包的依賴和管理問題兰迫。

8.4跨語言類RPC協(xié)議:交流之前,雙方先交換一下專業(yè)術(shù)語表炬称,本節(jié)總結(jié)如下:

gRPC是一種二進(jìn)制汁果、性能好、跨語言玲躯、更靈活据德,同時可以進(jìn)行服務(wù)治理的多快好省的

gRPC框架,唯一的不足就是要寫協(xié)議文件跷车。

gRPC 在序列化時使用Protocol Buffers棘利,網(wǎng)絡(luò)傳輸時使用HTTP 2.0,服務(wù)治理時可以使用基于Envoy的Service Mesh朽缴。

第9章網(wǎng)絡(luò)協(xié)議知識串講.

9.1 知識串講:用"雙*"的故事串起網(wǎng)絡(luò)協(xié)議的碎片知識(上)善玫,

9.2 知識串講:用"雙*"的故事串起網(wǎng)絡(luò)協(xié)議的碎片知識(中),

9.3 知識串講:用"雙*“的故事串起網(wǎng)絡(luò)協(xié)議的碎片知識(下)密强,

9.4 搭建—個網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境:授人以魚不如授人以漁茅郎,

這份【趣談網(wǎng)絡(luò)協(xié)議】文檔共有435頁蜗元,需要完整版的朋友,可以轉(zhuǎn)發(fā)此文關(guān)注小編系冗,看評論區(qū)即可奕扣!

當(dāng)然,單單有文檔看是遠(yuǎn)遠(yuǎn)不夠的掌敬,還有視頻和相匹配的課件進(jìn)行學(xué)習(xí)提升惯豆,努力把計(jì)算機(jī)網(wǎng)絡(luò)這一塊兒給搞明白,相信一定會有不凡的人生1己Α循帐!

TCP/IP/網(wǎng)絡(luò)IO學(xué)習(xí)視頻

TCP/IP網(wǎng)絡(luò)協(xié)議

網(wǎng)絡(luò)IO

還有課件分享

IO課件


TCP/IP課件

TCP/IP/IO網(wǎng)絡(luò)通信視頻和課件獲取,轉(zhuǎn)發(fā)關(guān)注小編舀武,看評論區(qū)即可拄养!

好了,今天就分享到這里了银舱,希望大家能夠好好學(xué)習(xí)瘪匿,把計(jì)算機(jī)網(wǎng)絡(luò)這一塊兒給提升上來,也希望本文能夠得到大家的喜歡Q傲蟆棋弥!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市诚欠,隨后出現(xiàn)的幾起案子顽染,更是在濱河造成了極大的恐慌,老刑警劉巖轰绵,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粉寞,死亡現(xiàn)場離奇詭異,居然都是意外死亡左腔,警方通過查閱死者的電腦和手機(jī)唧垦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來液样,“玉大人振亮,你說我怎么就攤上這事”廾В” “怎么了坊秸?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長澎怒。 經(jīng)常有香客問我褒搔,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任站超,我火速辦了婚禮,結(jié)果婚禮上乖酬,老公的妹妹穿的比我還像新娘死相。我一直安慰自己,他們只是感情好咬像,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布算撮。 她就那樣靜靜地躺著,像睡著了一般县昂。 火紅的嫁衣襯著肌膚如雪肮柜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天倒彰,我揣著相機(jī)與錄音审洞,去河邊找鬼。 笑死待讳,一個胖子當(dāng)著我的面吹牛芒澜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播创淡,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼痴晦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了琳彩?” 一聲冷哼從身側(cè)響起誊酌,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎露乏,沒想到半個月后碧浊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瘟仿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年辉词,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猾骡。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡瑞躺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出兴想,到底是詐尸還是另有隱情幢哨,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布嫂便,位于F島的核電站捞镰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜岸售,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一践樱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凸丸,春花似錦拷邢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至腻惠,卻和暖如春环肘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背集灌。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工悔雹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人欣喧。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓荠商,卻偏偏與公主長得像,于是被迫代替她去往敵國和親续誉。 傳聞我的和親對象是個殘疾皇子莱没,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355