<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          大佬聊的四層代理和七層代理,都在聊什么?

          共 2461字,需瀏覽 5分鐘

           ·

          2022-01-22 15:12

          日常與大佬溝通或看文章,時(shí)不時(shí)總會(huì)遇到兩個(gè)概念“四層代理負(fù)載均衡”和“七層代理負(fù)載均衡”,那么,所謂的四層代理和七層代理分別指的是什么?又在什么場(chǎng)景下用到呢?這篇文章就帶大家聊聊這方面的知識(shí)點(diǎn)。

          OSI七層模型

          要聊幾層代理,需要先看一下網(wǎng)絡(luò)分層,在之前的文章中也提到,標(biāo)準(zhǔn)的七層網(wǎng)絡(luò)分層,也就是OSI七層模型。TCP/IP五層模型和TCP/IP四層模型是從OSI七層優(yōu)化而來(lái)。

          這里所談的四層代理和七層代理,便是基于OSI七層模型來(lái)劃分的。

          fe9dffcfb3f04e35c2df799ffde79129.webpOSI七層模型

          從下往上看,第四層為傳輸層、第七層為應(yīng)用層。再來(lái)看看每層對(duì)應(yīng)的常見(jiàn)協(xié)議:

          8880b00dcf87a9b4c10bff0dde363ddc.webpOSI及協(xié)議

          四層對(duì)應(yīng)的是TCP/UDP協(xié)議,也就常說(shuō)的IP+端口。七層已經(jīng)是非常具體的應(yīng)用層協(xié)議了。因此,所謂四層就是基于IP+端口的負(fù)載均衡;七層就是基于URL等應(yīng)用層信息的負(fù)載均衡;

          同理,還有基于MAC地址的二層負(fù)載均衡和基于IP地址的三層負(fù)載均衡。二層負(fù)載均衡通過(guò)一個(gè)虛擬MAC地址接收請(qǐng)求,然后再分配到真實(shí)的MAC地址;三層負(fù)載均衡通過(guò)一個(gè)虛擬IP地址接收請(qǐng)求,然后再分配到真實(shí)的IP地址。

          四層代理

          四層代理主要工作于OSI模型中的傳輸層,傳輸層主要處理消息的傳遞,而不管消息的內(nèi)容。TCP就是常見(jiàn)的四層協(xié)議。

          **四層負(fù)載均衡只針對(duì)由上游服務(wù)發(fā)送和接收的網(wǎng)絡(luò)包,而并不檢查包內(nèi)的具體內(nèi)容是什么。**四層負(fù)載均衡可以通過(guò)檢查T(mén)CP流中的前幾個(gè)包,從而決定是否限制路由。

          因此,四層負(fù)載均衡的核心就是IP+端口層面的負(fù)載均衡,不涉及具體的報(bào)文內(nèi)容。

          七層代理

          七層代理主要工作于OSI模型的應(yīng)用層,應(yīng)用層主要用來(lái)處理消息內(nèi)容的。比如,HTTP便是常見(jiàn)的七層協(xié)議。

          七層負(fù)載均衡服務(wù)器起到了反向代理的作用,Client端要先與七層負(fù)載均衡設(shè)備三次握手建立TCP連接,把要訪問(wèn)的報(bào)文信息發(fā)送給七層負(fù)載均衡。

          七層負(fù)載均衡器基于消息中內(nèi)容( 比如URL或者cookie中的信息 )來(lái)做出負(fù)載均衡的決定。之后,七層負(fù)載均衡器建立一個(gè)新的TCP連接來(lái)選擇上游服務(wù)并向這個(gè)服務(wù)發(fā)出請(qǐng)求。

          使用七層負(fù)載均衡的設(shè)備經(jīng)常被用于反向代理

          兩者區(qū)別

          先通過(guò)一張圖來(lái)看看四層代理和七層代理的區(qū)別:

          f5a6b1ee454be918b9a333d7dc687e3a.webp四層代理與七層代理

          上圖中最直觀的區(qū)別是四層代理只進(jìn)行了一次TCP請(qǐng)求,而七層代理進(jìn)行了兩次TCP請(qǐng)求。

          四層代理:四層代理拆解報(bào)文至傳輸層,根據(jù)請(qǐng)求的服務(wù)器IP+端口號(hào)進(jìn)行轉(zhuǎn)發(fā);四層代理是由后端服務(wù)器進(jìn)行處理,包括報(bào)文的封裝都是后端服務(wù)器進(jìn)行封裝;四層代理相當(dāng)于是一個(gè)路由器。

          七層代理:七層代理拆解報(bào)文至應(yīng)用層,分析用戶(hù)請(qǐng)求的資源,然后負(fù)載均衡器會(huì)代替用戶(hù)請(qǐng)求后端服務(wù)器的資源;后端服務(wù)器把資源返回給負(fù)載均衡器,負(fù)載均衡器對(duì)資源再次進(jìn)行封裝,然后返還給客戶(hù)端;在此過(guò)程中,需要建立兩次TCP連接,一次是客戶(hù)端,一次是后端的服務(wù)器。

          七層負(fù)載均衡的CPU密集程度比基于包的四層負(fù)載均衡更高。七層負(fù)載均衡能夠讓均衡器做更小粒度的負(fù)載均衡決定,并且會(huì)根據(jù)消息的內(nèi)容( 比如壓縮和加密 )利用最優(yōu)化方式做出改變。它運(yùn)用緩存的方式來(lái)卸載上游服務(wù)較慢的連接,并顯著地提高了性能。

          負(fù)載均衡器

          負(fù)載均衡器通常稱(chēng)為四層交換機(jī)或七層交換機(jī)。四層交換機(jī)主要分析IP層及TCP/UDP層,實(shí)現(xiàn)四層流量負(fù)載均衡。七層交換機(jī)除了支持四層負(fù)載均衡以外,還有分析應(yīng)用層的信息,如HTTP協(xié)議URI或Cookie信息。

          負(fù)載均衡分為L(zhǎng)4 switch(四層交換),即在OSI第4層工作,也就是TCP層。四層負(fù)載均衡器(如:LVS,F(xiàn)5)不關(guān)心應(yīng)用協(xié)議(如HTTP/FTP/MySQL等)。

          L7 switch(七層交換),OSI的最高層,應(yīng)用層。七層負(fù)載均衡器(如:HAProxy,MySQL Proxy)能理解應(yīng)用協(xié)議。

          Nginx、LVS、HAProxy是目前使用最廣泛的三種負(fù)載均衡軟件。

          應(yīng)用場(chǎng)景

          七層負(fù)載均衡器可以是使整個(gè)網(wǎng)絡(luò)更智能化,比如可以通過(guò)七層代理將圖片類(lèi)、靜態(tài)文件類(lèi)(JS、CSS)請(qǐng)求轉(zhuǎn)發(fā)到特定的服務(wù)器,利用緩存技術(shù)達(dá)到更好的性能。

          從技術(shù)原理上,可以對(duì)客戶(hù)端的請(qǐng)求和服務(wù)器的響應(yīng)進(jìn)行任意意義上的修改,極大地提升了應(yīng)用系統(tǒng)在網(wǎng)絡(luò)層的靈活性。例如Nginx或者Apache上部署的功能可以前移到負(fù)載均衡設(shè)備上,例如客戶(hù)請(qǐng)求中的Header重寫(xiě),服務(wù)器響應(yīng)中的關(guān)鍵字過(guò)濾或者內(nèi)容插入等功能。

          針對(duì)SYN Flood攻擊,四層模型下攻擊請(qǐng)求會(huì)被轉(zhuǎn)發(fā)到后端服務(wù)器上,而七層模式下則可在負(fù)載均衡器上進(jìn)行攔截,不影響后臺(tái)服務(wù)器正常運(yùn)營(yíng)。針對(duì)SQL注入等情況,也可以通過(guò)在七層代理設(shè)置策略進(jìn)行特定報(bào)文的過(guò)濾,從應(yīng)用層面進(jìn)一步提高系統(tǒng)整體安全。

          總之,七層負(fù)載均衡,主要著重于應(yīng)用HTTP協(xié)議,所以其應(yīng)用范圍主要是眾多的網(wǎng)站或者內(nèi)部信息平臺(tái)等基于B/S開(kāi)發(fā)的系統(tǒng)。四層負(fù)載均衡則對(duì)應(yīng)其他TCP應(yīng)用,例如基于C/S開(kāi)發(fā)的ERP等系統(tǒng)。

          雖然四層代理性能比七層高很多,但目前像Nginx這類(lèi)負(fù)載均衡器已經(jīng)可以滿(mǎn)足大多數(shù)場(chǎng)景的需求,應(yīng)用最多的也是像Nginx這類(lèi)七層負(fù)載均衡器。

          小結(jié)

          看似簡(jiǎn)單的四層代理和七層代理,其實(shí)涉及到很多基礎(chǔ)的知識(shí)點(diǎn),比如網(wǎng)絡(luò)分層、網(wǎng)絡(luò)通信協(xié)議、負(fù)載均衡器等,更進(jìn)一步像微服務(wù)架構(gòu),Service Mesh架構(gòu)以及前端系統(tǒng)性能優(yōu)化等方面都涉及該知識(shí)點(diǎn)。

          通過(guò)這篇文章,你學(xué)到嗎?更多實(shí)戰(zhàn)知識(shí)點(diǎn),持續(xù)關(guān)注吧。


          往期推薦

          Mysql的復(fù)合索引,生效了嗎?來(lái)篇總結(jié)文章

          Log4j一波未平,Logback 一波又起!再爆漏洞!!

          MySQL 性能優(yōu)化的 9 種姿勢(shì),面試再也不怕了!

          工作8年,我決定帶全家離開(kāi)上海

          HttpClient使用不當(dāng),服務(wù)掛了!是時(shí)候系統(tǒng)學(xué)習(xí)一下了

          親身經(jīng)歷,大齡程序員找工作,為什么這么難!



          如果你覺(jué)得這篇文章不錯(cuò),那么,下篇通常會(huì)更好。添加微信好友,可備注“加群”(微信號(hào):zhuan2quan)

          一篇文章就看透技術(shù)本質(zhì)的人,
          ? 和花一輩子都看不清的人,
          ? 注定是截然不同的搬磚生涯。5e7fe9447d5a6f3ac08b45b5ba33126b.webp5e7fe9447d5a6f3ac08b45b5ba33126b.webp5e7fe9447d5a6f3ac08b45b5ba33126b.webp▲?長(zhǎng)按關(guān)注”程序新視界“,洞察技術(shù)內(nèi)幕
          瀏覽 68
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色一级一级直播间 | 无码人妻免费视频 | 拍拍拍拍拍拍拍拍拍拍拍拍拍拍拍拍拍电影 | 欧美大屌免费看视频 | 四虎大香蕉 |