原创 TCP/IP中MSL詳解

       MSL是Maximum Segment Lifetime的英文縮寫,可譯爲“最長報文段壽命”,它是任何報文在網絡上存在的最長的最長時間,超過這個時間報文將被丟棄。我們都知道IP頭部中有個TTL字段,TTL是time to li

原创 TCP有限狀態機

先看TCP狀態機圖:                          (謝希任 計算機網絡第六版)注:粗實線箭頭表示對客戶進程的正常變遷,粗虛線箭頭表示表示對服務器進程的正常變遷,細實線箭頭表示異常變遷我們先來說說圖中的各個狀態:CLOS

原创 keep-alive詳解

       我們都知道,HTTP協議採用“請求-應答”模式,當使用普通模式,即非Keep-alive模式時,每個請求/應答客戶和服務器都要新建一個連接,完成之後立即斷開連接(HTTP協議爲無連接的協議);當使用Keep-alive模式時(

原创 mysql之事務

我們先來說說什麼是事務:       事務就是邏輯上的一組操作,組成這組操作的各個單元,要不全都成功,要不全都失敗。一個事務是一個連續的一組數據庫操作,就好像它是一個單一的工作單元進行。換言之,永遠不會是完整的事務,除非該組內的每個單獨的操

原创 mysql之觸發器

       觸發器是一種 特殊的存儲過程,不同的是存儲過程要用CALL來調用,而觸發器不需要使用CALL也不需要手工啓動,只要當一個預定義的事件發生時,就會被MYSQL自動調用。它在插入,刪除或修改特定表中的數據時觸發執行,它比數據庫本身

原创 shell中的eval命令

       在shell的學習中,我們會遇到這兩種符號:反引號(` `)和$(),那麼它們之間有什麼區別和聯繫呢?       我們都知道在bash中,反引號和$()都是用來做命令替換的,命令替換就是用來重組命令行,先完成引號裏面的命令,

原创 shell字符串截取之cut

       cut命令是shell下一個比較強大的工具,它是以每一行爲一個處理對象的,可以對一行字符串進行多種模式匹配的剪切操作,也可以對一個排列整齊的文本進行操作,下面我們就來說說cut這個命令吧:       cut命令主要有3個定位

原创 dup和dup2函數

       我們都知道,一個進程在存在期間,會有一些文件被打開,從而會返回一些文件描述符,從shell中運行一個進程,默認會有3個文件描述符存在,即0,1,2.0與進程的標準輸入相關聯,1與進程的標準輸出相關聯,2與進程的標準輸出錯誤相關

原创 TCP/IP之socket編程

       socket編程在TCP/IP協議中“IP地址+端口號”就稱爲socket。首先我們來看看socket API,即TCP/IP協議的應用層編程接口。我們接下來編寫一個簡單的客戶端/服務器端通信的簡單的模型,要遵循以下的方法: 

原创 sed命令之練習集

       sed意爲流編輯器,在shell腳本和Makefile中作爲過濾器使用非常方便,也就是把前一個程序的輸出引入sed的輸入,經過一系列編輯命令轉換爲另一種格式輸出。它是一款輕量級流編輯器,它無需直接編輯資料,能夠將編輯工作自動化

原创 shell腳本練習之代碼

練習一:用shell腳本寫一個簡單的進度條代碼如下:運行結果如下:練習二:假如一個file文件裏面有3個數,求這三個數的最大值,最小值,這三個數的和和平均值。代碼如下:file文件裏面的內容:運行結果如下:練習三:求1到100的和 V1版本

原创 strace常用命令學習

       strace是一個非常簡單的工具,它可以跟蹤系統調用的執行。它常用來跟蹤進程執行時的系統調用和所接受的信號。在調試的時候,strace能幫助我們追蹤到一個程序所執行的而系統調用。當我們想知道程序和操作系統如何交互的時候,這時極

原创 poll---socket客戶/服務器端編程

       poll函數類似於select,但是程序接口有所不同。poll函數任何類型的文件描述符。在用poll函數編寫程序之前,我們先來看看poll函數的原型:       int poll(struct pollfd* fds,nfd

原创 網絡端口號的劃分

       我們都知道,任何時候多個進程可能同時使用TCP,UDP,SCTP這3種傳輸層協議中的任何一種,這3種協議都使用16位整數的端口號來區分這些進程。       當一個客戶想要跟一個服務器聯繫時,它必須標識想要與之通信的這個服務器

原创 epoll實現socket通信

 epoll是Linux特有的I/O複用函數,它在實現和使用上與select和poll有很大差異。epoll使用一組函數來完成任務,而不是單個函數。epoll把用戶關心的文件描述符上的事件放在內核的一個事件表中,無需像select和poll