網關:Gateway是通往異世界的入口

網關解釋一 

探索隊員:網關(gateway)有各種不同的種類呢。

探索隊長:是啊。

隊員:話說,gateway這個詞到底是什麼意思啊?

隊長:在問別人之前呢……

隊員:我知道,我現在就查字典。唔,字典上說是牆上的像門一樣的入口。

隊長:沒錯,入口的裏面是什麼呢?

隊員:裏面?是什麼呢?天堂?

隊長:天堂……怎麼說呢,不算對也不算錯吧,總之,入口的裏面是和外面不一樣的世界。

隊員:噢……

隊長:通往異世界的入口就是gateway啦。

隊員:怎麼感覺像問禪一樣的……

隊長:哪有。要不我們還是舉個例子吧。Web服務器有一種叫CGI(Common GatewayInterface,通用網關接口)的功能,這又是什麼東西呢?

隊員:Web服務器運行CGI程序,然後CGI程序處理用戶發來的數據對吧?

隊長:從Web服務器的角度來看確實如此,但如果從客戶端發送的消息的角度來看呢?

隊員:消息首先會到達Web服務器。

隊長:沒錯,然後呢?

隊員:然後……會進入Web服務器中,接着又會進入CGI程序中,是嗎?

隊長:沒錯。準確來說,CGI指的不是CGI程序本身,而是連接程序與Web服務器程序的接口規格。所以說,客戶端發送的消息是通過CGI這樣一個接口,從Web服務器程序進入CGI程序的。

隊員:原來如此。那麼這個接口就是通往CGI程序這個異世界的入口咯?

隊長:看來你總算是有點長進了。除了CGI之外,還有其他一些通往異世界的入口,這些都叫gateway。

隊員:那麼TCP/IP設置窗口中的默認網關也是一種gateway咯?

隊長:這裏的網關就是路由器的意思。

隊員:那麼爲什麼不叫默認路由器,而是叫默認網關呢?

隊長:因爲一開始並沒有路由器這個詞,那時候是管路由器叫網關的。從某種角度來說,路由器就是通向另一個網絡的入口,所以默認網關的叫法也是那時候遺留下來的。

隊員:這樣啊,那後來爲什麼又出來路由器這個詞了呢?

隊長:以前,對於相當於路由器這樣的東西,有很多不同的叫法。TCP/IP中叫網關,TCP/IP之外的路由器又有別的叫法。即便是現在,像交換機、集線器之類的叫法也不是很明確呢,是不是?

隊員:這樣下去可不行呢。

隊長:我覺得也是。所以說,後來就統一叫路由器了。

隊員:原來如此。那現在的交換機、集線器之類的名字能不能也統一一下呢?

隊長:跟我說也沒用啊。隊員:別這樣嘛,幫幫忙吧!

網關解釋二

1.前序
對於網關,從專業角度,一般運維和網絡管理員會比較瞭解一下。但作爲一個軟件開發人員,我覺得也是有必要了解一下。尤其是在某次面試過程當中,被面試官問起後,感覺回答的不是很好,導致面試扣分。所以今天,帶着學習和分享的想法,一起扒一扒網關的祕密。

2.網關
2.1 什麼是網關?
網關英文名稱爲Gateway,又稱網間連接器、協議轉換器網關在網絡層以上實現網絡互連,是最複雜的網絡互連設備,僅用於兩個高層協議不同的網絡互連。

網關既可以用於廣域網互連,也可以用於局域網互連。 網關是一種充當轉換重任的計算機系統或設備。使用在不同的通信協議、數據格式或語言,甚至體系結構完全不同的兩種系統之間,網關是一個翻譯器,與網橋只是簡單地傳達信息不同,網關對收到的信息要重新打包,以適應目的系統的需求。

通俗點形容,從一個房間走到另一個房間,必然要經過一扇門。同樣,從一個網絡向另一個網絡發送信息,也必須經過一道“關口”,這道關口就是網關。顧名思義,網關(Gateway)就是一個網絡連接到另一個網絡的“關口”。也就是網絡關卡。

2.2 網關的作用是什麼?
簡單來說,網關是設備與路由器之間的橋樑,由它將不同的網絡間進行訪問的控制,轉換,交接等等。

比如有網絡A和網絡B,網絡A的IP地址範圍爲“192.168.1.1~192. 168.1.254”,子網掩碼爲255.255.255.0;網絡B的IP地址範圍爲“192.168.2.1~192.168.2.254”,子網掩碼爲255.255.255.0。在沒有路由器的情況下,兩個網絡之間是不能進行TCP/IP通信的,即使是兩個網絡連接在同一臺交換機(或集線器)上,TCP/IP協議也會根據子網掩碼(255.255.255.0)判定兩個網絡中的主機處在不同的網絡裏。而要實現這兩個網絡之間的通信,則必須通過網關。如果網絡A中的主機發現數據包的目的主機不在本地網絡中,就把數據包轉發給它自己的網關,再由網關轉發給網絡B的網關,網絡B的網關再轉發給網絡B的某個主機(如附圖所示)。網絡B向網絡A轉發數據包的過程。

2.3 網關的工作流程
通俗解釋:

  假設你的名字叫小不點,你住在一個大院子裏,你的鄰居有很多小夥伴,在門口傳達室還有個看大門的李大爺,李大爺就是你的網關。當你想跟院子裏的某個小夥伴玩,只要你在院子裏大喊一聲他的名字,他聽到了就會迴應你,並且跑出來跟你玩。

  但是你不被允許走出大門,你想與外界發生的一切聯繫,都必須由門口的李大爺(網關)用電話幫助你聯繫。假如你想找你的同學小明聊天,小明家住在很遠的另外一個院子裏,他家的院子裏也有一個看門的王大爺(小明的網關)。但是你不知道小明家的電話號碼,不過你的班主任老師有一份你們班全體同學的名單和電話號碼對照表,你的老師就是你的DNS服務器。於是你在家裏撥通了門口李大爺的電話,有了下面的對話:

  小不點:李大爺,我想找班主任查一下小明的電話號碼行嗎?

  李大爺:好,你等着。(接着李大爺給你的班主任掛了一個電話,問清楚了小明的電話)問到了,他家的號碼是211.99.99.99

  小不點:太好了!李大爺,我想找小明,你再幫我聯繫一下小明吧。

  李大爺:沒問題。(接着李大爺向電話局發出了請求接通小明家電話的請求,最後一關當然是被轉接到了小明家那個院子的王大爺那裏,然後王大爺把電話給轉到小明家)

  就這樣你和小明取得了聯繫

2.4 軟件系統網關
系統與系統之間,服務的請求與返回也有網關,我們可以理解爲“系統網關”。與廣義上的網關,所指含義可能不同,但所要發揮的作用,卻如出一轍。

軟件系統網關作用:

內外網隔離,外網所有請求都只能通過網關訪問內網數據;防止網關單點,最好在不同大區配置多臺網關服務器。
驗證+鑑權,外網所有請求,通過網關指定過濾器對用戶訪問權限進行控制。可以整合OAuth2,token,jwt等提高架構安全性。
服務降級+限流+日誌+監控。限流算法如令牌桶、漏桶等,Spring Cloud Gateway使用Redis+Lua技術實現高併發和高性能的限流方案。

參考鏈接:https://blog.csdn.net/yy339452689/article/details/103913617

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章