閘道器 Gateway是通往異世界的入口

2021-10-07 01:24:14 字數 3189 閱讀 5360

閘道器解釋一

探索隊員:閘道器(gateway)有各種不同的種類呢。

探索隊長:是啊。

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

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

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

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

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

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

隊員:噢……

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

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

隊長:哪有。要不我們還是舉個例子吧。web伺服器有一種叫cgi(common gatewayinte***ce,通用閘道器介面)的功能,這又是什麼東西呢?

隊員: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技術實現高併發和高效能的限流方案。

SpringCloud閘道器gateway超時排查

如圖所示,運營人員反饋線上偶發性出現異常,然後我們獲取一筆單來看,發現閘道器超時。系統用的是springcloud閘道器gateway作為服務 出現超時的ip和專案部署伺服器的ip並不是同乙個ip,假設上面異常 10.10.10.11,而專案部署伺服器的ip 10.20.10.11,明顯不一致導致,...

gateway閘道器筆記

gateway在專案中充當閘道器的作用 使用可看spring官方文件 projects spring cloud learn spring cloud gateway reference doc.route 路由 predicate 斷言 filter 過濾器 配置方式 spring cloud g...

Gateway閘道器設計 一

閘道器gateway,它負責與客戶端建立連線,接收客戶端傳送過來的訊息,並對訊息進行驗證,等。1,閘道器的功能 1.1 與客戶端建立連線 這個應該是閘道器最基本的網功了,乙個服務做為閘道器,所有客戶端來的訊息都必須先到達這裡。客戶端與閘道器採用tcp長連線。1.2 訊息過濾 客戶端可能給伺服器傳送任...