原创 【小菜學網絡】MTU

不同的以太網接入設備,一幀能傳輸的數據量是有差異的。 普通的以太網卡,一幀最多能夠傳輸 1500 字節的數據;而某些虛擬設備,傳輸能力要打些折扣。此外,鏈路層除了以太網還有其他協議,這些協議中數據幀傳輸能力也有差異。 最大傳輸單元 如果待發

原创 【小菜學網絡】觀察集線器與交換機

集線器和交換機是兩種典型的網絡設備,集線器 位於 物理層,而 交換機 位於於 數據鏈路層 ,行爲明顯不同。本節準備了兩個簡單實驗,旨在通過實踐加深對理論知識的理解,逐步掌握 Linux 主機網絡操作。 實驗一:觀察以太網集線器 本實驗將 3

原创 【小菜學網絡】交換機與MAC地址學習

上一小節介紹了 集線器 ,一種工作於物理層的簡單網絡設備。由於集線器採用廣播的方式中繼、轉發物理信號,傳輸效率受到極大制約。 精準轉發 爲了解決集線器工作效率低下的尷尬,我們需要設計一種更高級的網絡設備。新設備根據以太網幀的目的 MAC 地

原创 【小菜學網絡】集線器

採用以太網進行通信的主機,需要通過網線之類的介質連接到一起。那麼,如何將多根網線連接在一起呢? 最簡單的方式是將所有網線接到一個 集線器 ( hub )上,如下圖: 集線器構造 集線器內部構造很簡單,可以理解成只是把所有網線連接起來而已。

原创 【小菜學網絡】MAC地址詳解

上一小節介紹了以太網幀的結構,以及幀中各個字段的作用。參與以太網通訊的實體,由以太網地址唯一標識。以太網地址也叫做 MAC 地址,我們對它仍知之甚少。 以太網地址在不同場景,稱謂也不一樣,常用叫法包括這些: 以太網地址 MAC 地址 硬

原创 【小菜學網絡】以太網幀結構

上一小節,我們通過一個虛構的協議,初步認識了數據鏈路層的工作原理。數據鏈路層主要解決由若干主機組成的本地網絡的通訊問題,尋址 和 複用分用 思想在其中發揮着關鍵作用。 數據鏈路層有一個非常重要的協議—— 以太網協議 。接下來,我們一起來揭開

原创 【小菜學網絡】物理層概述

通訊模型 假設,計算機網絡現在還沒有被髮明出來,作爲計算機科學家的你,想在兩臺主機間傳輸數據,該怎麼辦? 這時,你可能會想到,用一根電纜將兩臺主機連接起來: 物理課大家都學過,電壓可以分爲 低電平 和 高電平 。因此,我們可以通過控制電

原创 【小菜學網絡】數據鏈路層概述

上一小節,我們以兩臺主機爲例,討論了一個理想化的物理層模型。 現在,我們將問題進一步延伸:多臺主機如何實現兩兩通訊呢?我們以三臺主機爲例進行討論: 如上圖,有 3 臺主機,名字分別是: ant 、 bee 以及 cicada 。 爲了實現

原创 圖解內存池內部結構,看它是如何克服內存碎片化的?

內存是軟件系統必不可少的物理資源,精湛的內存管理技術是確保內存使用效率的關鍵,也是進階高級研發的必備技巧。爲提高內存分配效率,Python 內部做了很多殫心竭慮的優化,從中我們可以獲得一些啓發。 開始研究 Python 內存池之前,我們先大

原创 Linux 內核參數管理

Linux 內核有很多可以定製化的參數 —— 內核參數 ( kernel parameters ), 斟酌設置內核參數對 系統調優 意義重大。 內核參數 涵蓋內核的方方面面,包括 網絡 ( net )、 文件系統 ( fs )等等。 原文

原创 用 Python 生成 HTML 表格

在 郵件報表 之類的開發任務中,需要生成 HTML 表格。 使用 Python 生成 HTML 表格基本沒啥難度, for 循環遍歷一遍數據並輸出標籤即可。 如果需要實現合併單元格,或者按需調整表格樣式,就比較麻煩了。 這時,可以試試本文的

原创 QUIC,快速UDP網絡連接協議

QUIC,快速UDP網絡連接協議 QUIC ,即 快速UDP網絡連接 ( Quick UDP Internet Connections ), 是由 Google 提出的實驗性網絡傳輸協議 ,位於 OSI 模型傳輸層。 QUIC 旨

原创 小菜成長之路,警惕淪爲 API 調用俠

小菜(化名)在某互聯網公司擔任運維工程師,負責公司後臺業務的運維保障工作。由於自己編程經驗不多,平時有不少工作需要開發協助。 聽說 Python 很火,能快速開發一些運維腳本,小菜也加入 Python 大軍學起來。 Python 語言確實簡

原创 【Python源碼剖析】對象模型概述

Python 是一門 面向對象 語言,實現了一個完整的面向對象體系,簡潔而優雅。 與其他面向對象編程語言相比, Python 有自己獨特的一面。 這讓很多開發人員在學習 Python 時,多少有些無所適從。 那麼,Python 對象模型都有

原创 淺談對稱加密與非對稱加密

作爲信息安全領域的基石,數據加密算法你或多或少應該用過。可你知道數據加密分成 對稱加密 ( symmetric encryption ) 和 非對稱加密 ( asymmetric encryption ) 兩種嗎?對稱加密與非對稱加密有什麼