實驗目標:
對資料報負載檔案進行分割,可以讓分割塊近似1000位元組。
背景:pack是一種基於接收端的位元組快取演算法。核心思想是利用當前的資料**下一步需要接收的資料。
但是資料塊不應該被分割的太小,這樣的話會耗費過多的記憶體和磁碟; 當然也不能分割的太大,
資料塊過大會導致**的命中率降低。具體的pack演算法中,我們需要找到前後兩個分割點,來確定
乙個資料塊,然後根據此資料塊來**下一次需要接收的資料。當分割點只受其內容影響的時候,
傳送資料的修改對資料的**影響有限。
預備知識:
rabin指紋通過資料內容計算,因此可以用於計算分割點。原理可以參考維基百科條目:
在統計學中,中位數(median)被定義為一系列資料的中點。在這一資料點所有資料的一半在其
之上而另一半在其之下。百分位點用於定義資料集或資料分布中等於或者小於乙個特定資料值的個體
百分數。對資料集排序後,我們可以將資料分成4等份,分別為:最小值,25百分位點,中位數,
75百分位點,最大值。標準差表示乙個資料集中變異性的平均值,實際含義是與均值的平均距離。
標準差越大,每乙個資料點與資料分布的均值的平均距離越大。
實驗步驟:
從pacp檔案讀取tcp的資料負載部分。
針對tcp的資料負載部分計算rabin指紋並記錄取樣點,取樣點將作為資料的分割點。
通過資料的分割點來計算分割區間的大小
使用r語言來分析分割區間的資料分布
實驗結果:
1.驗證pic.pcap資料
上圖為r語言分析的結果,通過上圖我們可以觀察出兩點:
中位數為962,均值為1126,中位數和均值接近說明資料集中的極大值或極小值的影響有限
75百分位點為1332說明整個資料集的四分之三的資料都是小於1332
在針對data資料集計算其標準差,那麼得出的標準差為:540.267410224。說明資料集中
所有資料到均值的平均距離就是大約540。
2.驗證wzhvod.pcap資料
通過上圖可以觀察資料大部分分布在1325以內。其標準差為:562.128433851。
3.對比實驗
使用python的random模組在【570, 2000】之間隨機生成樣本空間,觀察其資料特徵。
此資料集的標準差為:413.00726093
通過實驗1,2和3的標準差的對比,我覺得差距為100多應該可以接受。實驗1,2和實驗3的75百分位點
的差距也不是太大。
實驗結論:
1.採用rabin指紋的方法可以將資料按內容切分。
2.切分出的資料塊可能出現極大值,出現此問題的原因是:計算出的指紋沒有被取樣。
Nginx 日誌檔案切分
bin bash 切分nginx日誌 目錄base dir usr local nginx 檔名base file name access.log 原日誌目錄 home path base dir logs 備份日誌目錄 bak path base dir datalogs 原檔案 home fil...
Nginx 日誌檔案切分
bin bash 切分nginx日誌 目錄base dir usr local nginx 檔名base file name access.log 原日誌目錄 home path base dir logs 備份日誌目錄 bak path base dir datalogs 原檔案 home fil...
nginx日誌檔案切分
定義cut nginx log.sh日誌檔案指令碼如下 bin bash logs path為日誌存放路徑 logs path weblog nginx logs yesterday date d yesterday y m d keeptime date d 30 days y m d 切分日誌檔...