前言
雖然在大學(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é)議
還有課件分享
TCP/IP/IO網(wǎng)絡(luò)通信視頻和課件獲取,轉(zhuǎn)發(fā)關(guān)注小編舀武,看評論區(qū)即可拄养!
好了,今天就分享到這里了银舱,希望大家能夠好好學(xué)習(xí)瘪匿,把計(jì)算機(jī)網(wǎng)絡(luò)這一塊兒給提升上來,也希望本文能夠得到大家的喜歡Q傲蟆棋弥!