原创 LwIP協議棧(2):網絡接口

  在LwIP中,物理網絡硬件接口結構保存在一個全局鏈表中,它們通過結構體中的 next 指針連接。 struct netif { /// pointer to next in linked list */ struct

原创 圖算法(2):Bellman-Ford算法

  Bellman-Ford算法是由理查德•貝爾曼(Richard Bellman) 和 萊斯特•福特 創立的,求解單源最短路徑問題的一種算法。有時候這種算法也被稱爲 Moore-Bellman-Ford 算法,因爲 Edward

原创 設計模式(2): 生成器模式

  生成器模式(英:Builder Pattern)是一種設計模式,又名:建造模式,是一種對象構建模式。它可以將複雜對象的建造過程抽象出來(抽象類別),使這個抽象過程的不同實現方法可以構造出不同表現(屬性)的對象。   前面一篇

原创 TCP詳解(2):三次握手與四次揮手

  TCP(Transmission Control Protocol,傳輸控制協議)是基於連接的協議,也就是說,在正式收發數據前,必須和對方建立可靠的連接,就好像你給別人打電話,必須等線路接通了、對方拿起話筒建立了連接才能相互通

原创 拓撲排序

  在圖論中,由一個有向無環圖的頂點組成的序列,當且僅當滿足下列條件時,稱爲該圖的一個拓撲排序(Topological sorting)。   1)每個頂點出現且只出現一次;   2)若A在序列中排在B的前面,則在圖中不存在從

原创 圖算法(3):Floyd-Warshall算法

  Floyd-Warshall算法(英語:Floyd-Warshall algorithm),中文亦稱弗洛伊德算法,是解決任意兩點間的最短路徑的一種算法,即全源最短路徑問題(All-Pairs Shortest Paths Pr

原创 大型網站技術架構筆錄(2):模式

大型網站架構模式 既然是模式,就是經驗之道,可重用的東西。 1)分層 想想7層或4層網絡模型,每層負責相對單一的功能,上下層調用。 網站一般分爲三個層次:應用層、服務層和數據層。具體實現,還可以繼續細化分層。 應用層:具體

原创 設計模式(3): 單例模式

  單例模式,也叫單子模式,是一種常用的軟件設計模式。在應用這個模式時,單例對象的類必須保證只有一個實例存在。許多時候整個系統只需要擁有一個的全局對象,這樣有利於我們協調系統整體的行爲。比如在某個服務器程序中,該服務器的配置信息存

原创 POJ 3320: Jessicas Reading Problem

Jessica’s Reading Problem ( POJ No.3320)   爲了準備考試, Jessica 開始讀一本很厚的課本。要想通過考試,必須把課本中所有的知識點都掌握。這本書總共有 P 頁,第 i 頁恰好有一個

原创 生產者消費者模式(1)

  生產者消費者問題(Producer-consumer problem)是一個多線程同步問題的經典案例。該問題描述了兩個共享固定大小緩衝區的線程——即所謂的“生產者”和“消費者”——在實際運行時會發生的問題。生產者的主要作用是生

原创 TCP詳解(3):重傳、流量控制、擁塞控制……

數據傳輸   在TCP的數據傳送狀態,很多重要的機制保證了TCP的可靠性和強壯性。它們包括:使用序號,對收到的TCP報文段進行排序以及檢測重複的數據;使用校驗和來檢測報文段的錯誤;使用確認和計時器來檢測和糾正丟包或延時。   在

原创 TCP詳解(1):簡介與數據包

簡介:   傳輸控制協議(英語:Transmission Control Protocol, TCP)是一種面向連接的、可靠的、基於字節流的傳輸層通信協議,由IETF的RFC 793定義。在簡化的計算機網絡OSI模型中,它完成第

原创 設計模式(4): 觀察者模式

  觀察者模式(有時又被稱爲發佈/訂閱模式)是軟件設計模式的一種。在此種模式中,一個目標對象管理所有相依於它的觀察者對象,並且在它本身的狀態改變時主動發出通知。這通常透過呼叫各觀察者所提供的方法來實現。此種模式通常被用來實作事件處

原创 一致哈希

  一致哈希是一種特殊的哈希算法。在使用一致哈希算法後,哈希表槽位數(大小)的改變平均只需要對K/n個關鍵字重新映射,其中K是關鍵字的數量,n是槽位數量。然而在傳統的哈希表中,添加或刪除一個槽位的幾乎需要對所有關鍵字進行重新映射。

原创 LwIP協議棧(1):簡介與pbuf

概述   Lwip是瑞典計算機科學院(SICS)的Adam Dunkels 開發的一個小型開源的TCP/IP協議棧。   LwIP是Light Weight (輕型)IP協議,有無操作系統的支持都可以運行。LwIP實現的重點是