防火牆 and Proxy 部屬模式
防火牆定義
過濾封包的安全裝置,根據不同的防禦可以分成
- L3/L4 網路層防火牆,在 TCP/IP 運作,分為
- Stateless 防火牆,沒有狀態,僅僅是根據
- Stateful 防火牆,根據自己的狀態表來做防禦
- L7 應用層防火牆,對 L7 協議做防禦
防火牆架設
下面不同架設方式適用上面三種不同類型的防火牆。
過濾封包的安全裝置,根據不同的防禦可以分成
下面不同架設方式適用上面三種不同類型的防火牆。
網卡 (network card) 通常會有一個網路線孔 (port),不常見的也有 Dual-port network card,目標是增加頻寬或節省 PCI 插槽 - 英特爾發表雙埠伺服器網路卡,節省伺服器PCI插槽 - iThome。
Site 定義: 協定(Protocol)+ 主要網域(Main Domain,即 eTLD+1)。
舉例來說,https://a.com:4444 和 https://b.a.com 是不同的 Origin,但在 Site Isolation 的邏輯下,它們被視為同一個 Site(主網域都是 a.com),在正常情況下,瀏覽器會為了節省資源,把這兩個網頁放在同一個 OS 行程中處理 。
最早 net-tools 起源於 BSD(在 1980 年代,BSD 開發了現代網際網路的雛形——BSD TCP/IP 堆疊。為了管理這個堆疊,開發者編寫了一系列工具),他提供了自己的一些 command 包含:
根據維基百科,他是一個跨平台工具,可以為任何網路產生標準化的效能測量結果。
最早來自 ttcp,他是最古老的網路效能測試工具之一,起源於 1980 年代的 BRL(美國陸軍彈道研究實驗室),並在 BSD 系統中發揚光大。
可以看程式碼,大概可以看出 Executor 在初始化會做什麼事情。
Expect<std::unique_ptr<Runtime::Instance::ModuleInstance>> Executor::instantiate(Runtime::StoreManager &StoreMgr, const AST::Module &Mod, std::optional<std::string_view> Name)參數原型如上,可以看到有參數
Runtime::StoreManager &StoreMgr: 提供導入(Import)時所需的外部實例尋找,並在實例化成功後負責「註冊」該模組。它維護了整個運行時的狀態空間const AST::Module &Mod: 靜態藍圖,這是由載入器(Loader)解析並驗證後的抽象語法樹(AST)。包含了 WebAssembly 檔案的所有原始資訊(如指令、段數據、類型定義)。它是唯讀的(const)std::optional<std::string_view> Name: 定此模組是否為「具名模組」。若有值,該實例會以該名稱註冊進 StoreMgr,供其他模組後續引用;若無值(std::nullopt),則視為匿名模組回傳值則是使用 Expect 處理錯誤,並且使用 unique_ptr 保證只有一個獨占此指標,最後回傳一個 Runtime::Instance::ModuleInstance 要,這是最終產物。它包含了所有運行時需要的數據結構:跳轉表、動態分配的記憶體快、初始化的全域變數值,以及指向具體執行代碼的指針。