一、100.0.0.16/28 對應網段的網關地址、廣播地址、可分配IP地址範圍nginx
二、使用man手冊學習tcpdump的使用web
三、詳細敘述殭屍進程產生的緣由以及危害算法
四、詳細說明vmstat輸出結果的含義express
一、100.0.0.16/28 對應網段的網關地址、廣播地址、可分配IP地址範圍網絡
28位掩碼,掩碼爲255.255.255.240,前28位表示網絡地址,後四位表示可分配的主機,因此可分配的IP地址範圍爲100.0.0.17到100.0.0.30,廣播地址爲100.0.0.31,網關爲100.0.0.16。tcp
二、使用man手冊學習tcpdump的使用ide
tcpdump是用來抓取網絡包內容描述信息的工具,在抓包結束後,會報告三個count數據:工具
captured:tcpdump接收並處理的包數量。post
received by filter:被filter expression匹配到的包數量。學習
dropped by kernel:緩衝區滿後,被內核丟棄的包數量(取決於系統會不會通知tcpdump)。
用法:tcpdump [options] [expression]
選項:
-A:以ASCII編碼顯示包內容,對於抓取web頁面很是友好。
-B cuffer_size:設置操做系統的緩衝區大小。
-c count:指定最多抓取多少個包,默認會一直抓取。
-C file_size:配置-w使用,文件超過file_size以後,自動滾動,原文件名加上數字前綴,從1開始。file_size單位是mb,是整數單位(1000 * 1000 bytes),不是計算機單位(1024 * 1024 bytes)。
-d:將可讀性強的抓包代碼轉換成標準格式。
-dd:將可讀性強的抓包代碼轉換成C語言風格的代碼段。
-D:列出當前系統可用於抓包的網絡接口和序號。
-e:顯示鏈路層的頭信息。
-E:使用spi@ipaddr algo:secret來解密IPsec ESP包。可用算法:des-cbc, 3des-cbc, blowfish-cbc, rc3-cbc, cast128-cbc, none,默認爲des-cbc。
-f:顯示外部ipv4地址時,使用數字格式,而不是使用名稱
-F file:從文件中讀取filter expression,忽略命令行中的filter expression。
-G rotate_seconds:滾動輸出文件的時間間隔,單位秒。每一次滾動的文件,會添加後綴,格式爲strftime(3)生成的格式。若是同時指定-C選項,文件名格式採起-C的格式。
-i:指定監聽的網絡接口(可用-D選項查看可用接口)。若是不指定,會默認選擇序號最小的非本地迴環接口。若是指定any接口,會攫取全部接口的包,但沒法開啓混雜模式。
-I:進入監視模式(只針對wifi設備)。使用-I後,指定的接口不能再與網絡通訊。
-j tstamp_type:修改時間戳格式。
-J:列出接口支持的時間戳格式。
--time-stamp-precision=tstamp_precision:指定時間戳的精度,具體精度依賴於平臺和硬件。可用單位爲micro和nano,默認是micro。
-K:不驗證IP、TCP、UDP的校驗和。
-l:將結果輸出到標準輸出(默認)。
-L:列出可用的數據連接層的類型。
m module:從module文件中加載SMI MIB module,可指定多個。
-M secret:若是tcp包中指定了TCP-MD5摘要,使用secret進行校驗。
-n:以數字方式顯示主機地址。
-nn:以數字方式顯示端口號。
-N:不顯示域名。
-O:不優化packet-matching。
-p:禁用混雜模式。
-Q/-P in|out|inout:指定捕捉哪一個流向的包。
-q:只輸出較少的協議信息。
-r file:從文件中讀取包,可用-指明從標準輸入中讀取。
-S:輸出TCP序號的絕對值。
-s:設置抓取包的長度,0表明默認值65536bytes。
-T type:使用指定的type解析包,可用的類型爲aodv、cnfp、rpc、rtp、rtcp、snmp、tftp、vat、wb。
-t:不輸出時間戳。
-tt:輸出未格式化的時間戳。
-ttt:輸出較上一行的相對時間戳。
-tttt:輸出默認格式的時間戳。
-ttttt:輸出較第一行的相對時間戳。
-u:輸出未加密的NFS句柄。
-U:配合w使用,寫入文件時,當即寫入,不使用緩衝區。
-v:輸出詳細信息。
-vv:更詳細。
-vvv:更更詳細。
-w file:將結果寫入文件,而不是打印到標準輸出。
-W filecount:指定滾動文件的最大數量,配合-C使用時,若是超過數量,將從頭開始命名文件,以前的文件會被覆蓋;配合-G使用時,若是超過數量,將退出。
-x:打印每一個包的頭部信息,並以16進制格式打印包數據。
-xx:在-x基礎上,以16進制打印鏈路層頭部。
-y dataliktype:設置datalinktype。
-z postrotate-command:配合-C或-G使用,對指定文件運行command,好比使用-z gzip會用gzip壓縮文件。
-Z user:使用指定用戶的身份運行。
expression filter:
type:指定捕獲什麼類型的網絡包。
host:指定主機,默認值;如host foo。
net:指定網段;如net 128.3。
port:指定端口;如port 22。
portrange:指定端口範圍;如portrange 6000-6008。
dir:指定捕獲哪一個流向的數據包。
src:捕獲從src流入的包;如src foo。
dst:捕獲流向dst的包;如dst net 128.3。
src or dst:捕獲從src流入或流向dst的包;如src or dst port ftp-data。
src and dst:捕獲從src流向dst的包。
proto:指定捕獲哪一種協議的包,不指定默認捕獲全部協議的包。
ether
fddi
tr
wlan
ip
ip6
arp
rarp
decnet
tcp
udp
and,or,not:條件組合。
示例:
抓取來自magedu的包:tcpdump host magedu.com。
三、詳細敘述殭屍進程產生的緣由以及危害
子進程退出後,尚未來得及被父進程清理,或父進程沒有調用wait或waitpid等待子進程結束,也沒有顯式忽略SIGCHLD信號,此子進程即成爲殭屍進程;若是父進程退出,僵局進程會被init進程接管,清理其進程信息後,殺死殭屍進程;但若是父進程一直不退出(好比服務進程,httpd,nginx等),殭屍進程就一直存在;
殭屍進程雖然不會被調度執行,但它依然佔據一個進程號,也在進程表中佔據一行資源,若是殭屍進程過多,會形成資源大量浪費,甚至形成系統崩潰。
四、詳細說明vmstat輸出結果的含義
procs:進程相關信息。
r:運行中或等待運行的進程量。
b:不可中斷眨眼的進程數量。
memory:內存相關信息。
swpd:虛擬內存使用量。
free:物理內存剩餘量。
buff:用於buffer的內存量。
cache:用於cache的內存量。
swap:交換分區信息。
si:從磁盤換進的量(kb/s)。
so:換出到磁盤的量(kb/s)。
io:io相關信息。
bi:從塊設備讀入的量(blocks/s)。
bo:寫入到塊設備的量(blocks/s)。
system:內核相關信息。
in:每秒產生的中斷數量
cs:每秒的上下文切換數量。
cpu:cpu時間相關信息。
us:用戶空間佔用cpu的時間百分比。
sy:內核空間佔用cpu的時間百分比。
id:空閒時間百分比(2.5.41以前,還包含等待io的時間)。
wa:等待io的時間百分比(2.5.41以前,被包含在id時間裏)。
st:被虛擬機偷走的時間(2.6.11以後纔有)