原创 彙總一些網絡相關的基礎概念

TCP/IP參考模型: 四層,自下而上分別是:主機到網絡層->網絡互聯層->傳輸層->應用層。 對應OSI七層模型:(物理層、數據鏈路層)->網絡層->傳輸層->(會話層->表示層->應用層) 每一層的數據單元:(比特->幀)->包pac

原创 Eclipse啓動計時插件

  Eclipse版本如下: Eclipse Java EE IDE for Web Developers. Version: Kepler Se

原创 JVM學習:使用visualGC調優Eclipse啓動過程

  最近在學習JVM,瞭解了一些關於JVM的內存分配和垃圾回收的知識,其中有有一個實戰是優化Eclipse的啓動,從類加載時間、JIT編譯時間、垃圾收集時間三個方面做了優化,簡單、綜合性強,可以加深對JVM的理解,所以這裏對其進行驗證。

原创 關於buffer overflow detected 程序崩潰的思考

我是在使用別人源碼(DBT2 benchmark)的時候,編譯成功然後運行就出現了這個問題。本以爲像這種開源的軟件應該沒什麼太明顯的bug,但是後來細想,buffer overflow暗示着指針操作內存不當導致程序崩潰。。。遇到問題後,首

原创 將Vim改造爲強大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete

轉自 http://blog.csdn.net/u014401044/article/details/39033965 1、安裝Vim和Vim基本插件 首先安裝好Vim和Vim的基本插件。這些使用apt-get安裝即可: lingd@u

原创 深入淺出:進程、線程、協程、同步、異步、回調(轉載)

進程和線程究竟是什麼東西?傳統網絡服務模型是如何工作的?協程和線程的關係和區別有哪些?IO過程在什麼時間發生? 在剛剛結束的 PyCon2014 上海站,來自七牛雲存儲的 Python 高級工程師許智翔帶來了關於 Python 的分享

原创 UNIX網絡編程6 從tcpdump瞭解到的TCP/UDP發送限制和緩衝區問題

本節主要解決的問題:MTU和TCP/UDP一次發送的大小限制,read/write 或者 send/recv返回時機和數值,內核發送和接收緩衝區大小,未解決通告窗口win大小和發送包長length的關係,內核TCP再往下層的實現未關注。

原创 UNIX網絡編程8 從圖中瞭解TCP協議在Linux內核中的實現

Packet Reception 圖1展示了一個新的包從網線進入到用戶應用的路徑。Linux 內核使用一個sk buff數據結構來描述每個packet。當一個packet到達網卡NIC時,它調用DMA引擎將packet放進內核內存中通

原创 UNIX網絡編程2 理解select、poll、epoll原理

三者實現原理對比分析 select, poll, epoll都是IO多路複用的機制,上文中提到的多路複用主要是以select爲例,select和poll大同小異,因爲select和poll的實現有明顯的缺點,所以在Linux2.5.44中

原创 UNIX網絡編程7 利用tdpdump理解socket相關函數和數據包的時序

本次測試的主要原因是不瞭解connect() accept()和三次握手的先後順序。爲了能夠方便獲得時序關係,在程序關鍵點都插入了printTimeLog()打印出時間戳和日誌信息,並且在服務端listen()和accept()之間插入長

原创 UNIX網絡編程0 IP頭,TCP頭,UDP頭,MAC幀頭定義

轉自 http://www.cnblogs.com/li-hao/archive/2011/12/07/2279912.html 一、MAC幀頭定義 /*數據幀定義,頭14個字節,尾4個字節*/ typedef struct _MA

原创 爲你的Archlinux Chromium安裝flash插件

wiki.archlinux.org  Browser_plugins中說到,Chromium不再支持官方軟件倉庫中的flashplugin。需要到aur.archlinux.org/packages/chromium-pepper-fl

原创 字符串匹配——KMP算法

 字符串匹配的問題是:在主串中匹配模式串,並返回匹配到模式串的起始位置。 蠻力搜索O(m*n)的時間複雜度,重複匹配步驟太多。KMP算法的核心是發現模式串中的“前綴=後綴”,避免在模式串j位置發生匹配失敗

原创 求兩個字符串的最長連續公共子串

這個問題和求公共子序列LCS是類似的問題,相比之下,更加簡單,因爲要考慮連續性。 同樣的,我們也可以用動態規劃法求解,用一個數組C[m+1][n+1],C[i][j]代表字符串的前i個Mi和另一個字符串的前j個Nj的最長連續公共子串的長度

原创 C語言變量存儲區域 進程內存佈局

更加詳細的進程內存佈局可以查看 http://blog.csdn.net/yusiguyuan/article/details/45155035 一個進程的內存通常分爲幾個大區:共享存儲區、棧區、堆區、全局靜態區、文字常量區,此外還有程