原创 TCP的輸入

    TCP發送方將段發送出去之後,會跟蹤它們,直到得到接收方的確認爲止。因此,當接收方收到一個段後,會根據情況將其添加到sk_receive_queue或prequeue,又或者sk_backlog後備隊列中。     在啓用tcp_

原创 路由表學習筆記

  路由子系統的核心是轉發信息庫(Forwarding Information Base,FIB),即路由表。路由表是用來存儲這樣一些信息的:一是用以確定輸入數據是應該上傳給本機的上層協議還是繼續轉發的信息;二是如果需要轉發,爲轉發數據報

原创 TCP連接的建立(二)

被動打開 SYN cookies TCP協議開闢了一個比較大的內存空間請求連接隊列來存儲連接請求塊,當SYN請求不斷增加,請求連接數目到達上限時,會致使系統丟棄SYN連接請求。SYN cookies技術就可以使服務器在半連接隊列已滿的情況

原创 Linux中_ALIGN宏背後的原理

原文出處:http://www.linuxdiyf.com/viewarticle.php?id=43461 1. 引子int a; int size = 8;如果讓a爲(size =8)的整數倍表示成二進制應是什麼樣子呢?那就是讓這個數

原创 mlock家族:鎖定物理內存

轉載自http://blog.sina.com.cn/s/blog_515b90d00100ot61.html 鎖住內存是爲了防止這段內存被操作系統swap掉。並且由於此操作風險高,僅超級用戶可以執行。 看家族成員:       

原创 Linux策略路由使用場景及驗證

實驗環境:CentOS7 + OVS2.4.0 原理圖 拓撲圖 1、如拓撲,各個端口組、虛擬機配置對應的IP 2、qos_pri和policy_bridge兩個網橋使用patch_port連接起來        ovs-vsctla

原创 Neutron Server及其Agent代碼入口

所有Neutron服務進程的啓動代碼都在neutron/neutron/cmd/eventlet目錄下 Server 進程名 代碼入口 neutron

原创 基於OVSDB協議在SDN控制器ONOS開發配置管理OVS API

基於OVSDB協議在SDN控制器ONOS開發配置管理OVS API 介紹 準備工作 開發步驟 問題排查 介紹 目前protocol 中ovsdb協議層面已經實現,但是基於ovsdb protocol的上層接口

原创 QOS相關原理介紹

最近接觸到幾個小工程用了不少QOS知識,主要是限速之類的,用到了CIR_CBS_EBS    理解CIR_CBS_EBS三者之間的關係,更好的應用QOS。平均速率:向桶中放置令牌的速率,即允許的流的平均速度。通常設置爲 CIR(Commi

原创 Linux本地套接字

LINUX和UNIX都擁有一個非常實用的工具--UNIX套接字,或稱爲本地套接字,它可以被用在進程間通訊(IPC)當中。UNIX套接字的運轉機制和Internet套接字類似,主要的區別UNIX套接字只能用在一臺計算機中,而Internet

原创 網絡虛擬化技術(一): Linux網絡虛擬化

轉載:https://blog.kghost.info/2013/03/01/linux-network-emulator/ 筆者現在在做雲計算的網絡設計,涉及到上百臺服務器與交換機,在實測前必須進行原型測試,但是我只有一個工作用開

原创 網絡虛擬化技術(二): TUN/TAP MACVLAN MACVTAP

轉載https://blog.kghost.info/2014/11/19/openvswitch-internal/ TUN 設備 TUN 設備是一種虛擬網絡設備,通過此設備,程序可以方便得模擬網絡行爲。先來看看物理設備是如何工作的

原创 多線程與多進程

轉載:http://www.cnblogs.com/eavn/archive/2010/08/28/1811381.html 在Unix上編程採用多線程還是多進程的爭執由來已久,這種爭執最常見到在C/S通訊中服務端併發技術 的選型上,比如

原创 理解 chroot

通過編寫 chroot 來認識 chroot 發揮的作用和它帶來的好處 chroot 在 Linux 系統中發揮了根目錄的切換工作,同時帶來了系統的安全性等好處。本文通過編寫 chroot 來理解 chroot 的作用和好處,這不僅有助於

原创 Linux 線程模型的比較:LinuxThreads 和 NPTL

轉載:http://www.ibm.com/developerworks/cn/linux/l-threading.html         LinuxThreads 項目最初將多線程的概念引入了 Linux®,但是 LinuxTh