原创 L2:數據鏈路層, 構建冗餘鏈路 : STP(2)

在之前 STP 的文章中,介紹了 CST (公共生成樹協議)。其標準是 802.1d. 可是隨着網絡規模的擴大,以前的 STP 協議不再適用,陸續又出現了很多新版本的 STP 協議。 如果將生成樹分類的話,通常分爲兩類,公有生成樹協議和私

原创 BGP - 不同 AS 間運行的協議

在之前介紹的網絡場景中,ERGRP,OPSF,RIP 等都是運行在單獨一個 AS(自治系統之間)。這些協議統稱爲 IGP - 內部網關協議 ,目的主要是爲自治系統內發現鄰居和計算路由,從而找到合適的路徑。 而 BGP 這樣的協議,運行在不同

原创 Django ORM 引發的數據庫 N+1 性能問題

背景描述 最近在使用 Django 時,發現當調用 api 後,在數據庫同一個進程下的事務中,出現了大量的數據庫查詢語句。調查後發現,是由於 Django ORM 的機制所引起。 Django Object-Relational Mappe

原创 ES 入門 - 基於詞項的查詢

準備 首先先聲明下,我這裏使用的 ES 版本 5.2.0. 爲了便於理解,這裏以如下 index 爲格式,該格式是通過 PMACCT 抓取的 netflow 流量信息, 文中所涉及的到的例子,全基於此 index. 本篇涉及的內容可以理解爲

原创 動態路由 - OSPF 一文詳解

動態路由 在之前的文章中,介紹了基於距離矢量的路由協議。而在今天這這一部分中會主要講解鏈路狀態的路由協議,對於動態的路由協議來說,需要具備如下的能力: 發現遠端網絡 路由器可以直接獲得直連路由,這是由路由器的接口 IP 地址得到。動態路由能

原创 明明已經刪除了數據,可是表文件大小依然沒變

對於運行很長時間的數據庫來說,往往會出現表佔用存儲空間過大的問題,可是將許多沒用的表刪除之後,表文件的大小並沒有改變,想解決這個問題,就需要了解 InnoDB 如何回收表空間的。 對於一張表來說,佔用空間重要分爲兩部分,表結構和表數據。通常

原创 MySQL 偶爾抽風,性能突然下降

有時會碰到這樣的情況,一條 SQL 在平時執行沒問題,很快。但是突然某個時間執行的就會很慢,而且這種場景並不能復現,只能隨機發送的。 SQL 執行突然變慢的原因 在之前講解 MySQL Redo log 時,說到了 WAL 機制,爲了保證

原创 SSH 端口轉發 - 你不讓我看,我也能看

在之前 GRE 的文章中,我們知道隧道技術可以解決異種網絡的通信問題。在今天這篇文章中,將認識隧道技術的另一應用 - SSH 端口轉發。 首先我們對 SSH 並不陌生,是非常普遍的加密協議,用於在不安全的網絡中提供安全的傳輸環境,常見的用途

原创 NAT - 網絡地址轉換

NAT 我們知道,一般在公司內部都使用私有地址進行通信。但由於私有地址只能在局域網中傳輸,如果想要外網上傳輸就需要公有地址。通常來說採用如下的架構,在出口路由器上配置一個公有 IP 和 ISP 的入口相連。 如果公司內部的設備想要和外網進

原创 IPV6 - 基礎介紹

IPV6 出現的背景 考慮到 IPV4 的地址已經不能滿足當前網絡的需要,出現了不夠用的情況。爲此做出瞭如下的努力: 無類的路由 - CIDR,可攜帶子網掩碼進行傳輸 可變長子網 - VLSM,向主機位借爲成爲網絡位 使用 NAT, 使用

原创 動態路由 - EIGRP

EIGRP 特性 EIGRP(增強內部網關路由協議)是思科的私有協議,屬於距離矢量路由協議,但又具有鏈路狀態的特性。並且支持 VLSM(可變長子網和無類路由協議)。但在本質上說還是傳送路由條目。 具有如下的特性: EIGRP 收斂速度快,

原创 WAN - 數據在廣域網中的傳輸 - Ponit-to-Point 協議

廣域網,也就是大家俗稱的外網,公網。一般是連接不同區域的局域網或者城域網的進行通信的網絡。通過跨越了很大的物理範圍,有時甚至跨越幾個洲進行通信。通常廣域網由 ISP 提供。 但在 ISP 內部 TCP/IP 協議棧並不在適合,但由於 TCP

原创 IOS - ACL (訪問控制列表)

ACL 介紹 ACL 是一款 IOS 軟件工具,而不是某種協議。從名字上來看,ACL 的主要功能是控制對網絡資源的訪問。事實上這是 ACL 最早的用途。現在 ACL 除了能夠限制訪問外,更多時候,我們用它來標識流量(識別某種流量的特徵)。

原创 在不同網段使用 VLAN 通信 - SVI,單臂路由

在 VLAN 這篇文章 中知道,設置 VLAN 目的是隔離大型的廣播域,將其分成很小的廣播域,從而更好的管理。但也就帶來了一些問題:如流量不能在不同的 VLAN 間通信。 而爲了解決這個問題,可以採用如下技術: 添加路由器(單臂路由)

原创 數據鏈路層 - 構建冗餘鏈路

冗餘鏈路出現的背景 由於公司對網絡的可靠性的要求,大部分公司都會增加額外的交換機,防止在某臺交換機出現故障時造成網絡的無法使用的情況,例如形成如下圖的拓撲的結構。 假設 W 和 X 交換中的一臺出現故障後,流量依然可以通過 Y 和 Z 到達