1、100.0.0.16/28 对应网段的网关地址、广播地址、可分配IP地址范围
网络号:100.0.0.16
掩码:255.255.255.240
网段:100.0.0.16-100.0.0.31
可分配IP地址范围:100.0.0.17-100.0.0.30
网关地址在可分配IP地址范围中选一个
广播地址: 100.0.0.31计算:
32-28=4 2^4=16
网段:100.0.0.0-100.0.0.15
100.0.0.16-100.0.0.31
2、使用man手册学习tcpdump的使用
tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名] [ -s snaplen ] [ -T 类型 ] [ -w 文件名 ] [表达式 ]
-a 将网络地址和广播地址转变成名字;
-d 将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd 将匹配信息包的代码以c语言程序段的格式给出;
-ddd 将匹配信息包的代码以十进制的形式给出;
-e 在输出行打印出数据链路层的头部信息,包括源mac和目的mac,以及网络层的协议;
-f 将外部的Internet地址以数字的形式打印出来;
-l 使标准输出变为缓冲行形式;
-n 指定将每个监听到数据包中的域名转换成IP地址后显示,不把网络地址转换成名字;
-nn: 指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示
-t 在输出的每一行不打印时间戳;
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
-vv 输出详细的报文信息;
-c 在收到指定的包的数目后,tcpdump就会停止;
-F 从指定的文件中读取表达式,忽略其它的表达式;
-i 指定监听的网络接口;
-p 将网卡设置为非混杂模式,不能与host或broadcast一起使用
-r 从指定的文件中读取包(这些包一般通过-w选项产生);
-w 直接将包写入文件中,并不分析和打印出来;
-s snaplen snaplen表示从一个包中截取的字节数。0表示包不截断,抓完整的数据包。默认的话 tcpdump 只显示部分数据包,默认68字节。
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议;)
-X 告诉tcpdump命令,需要把协议头和包内容都原原本本的显示出来(tcpdump会以16进制和ASCII的形式显示),这在进行协议分析时是绝对的利器。tcpdump的输出结果
第一行:tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 提示使用选项-v和-vv,可以看到更全的输出内容。
第二行:listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes监听的是通过ens33这个NIC设备的网络包,且它的链路层是基于以太网的,要抓的包大小限制是262144字节。包大小限制值可以通过-s选项来设置。
第三行04:32:56.462536 IP 10.10.1.111.22 > 10.10.1.121.54063: Flags [P.], seq 2918245247:2918245435, ack 4017468812, win 252, length 188
04:32:56.462536 分别对应着这个包被抓到的“时”、“分”、“秒”、“微妙”.
IP 10.10.1.111.22 > 10.10.1.121.54063 这个包的源IP为 10.10.1.111,源端口为22,’>’表示数据包的传输方向,这个数据包的目的端ip为 10.10.1.121,目的端口为54063,Flags [P.]表明是推标志。该标志置位时,接收端不将该数据进行队列处理,而是尽可能快地将数据转由应用处理。 seq2918245247:2918245435
为 序号。 win 252窗口大小为252字节.
过滤语句
1.类型的关键字,主要包括host,net,port
2.传输方向的关键字,主要包括src , dst ,dst or src, dst and src
3.协议的关键字,主要包括 ether,ip,ip6,arp,rarp,tcp,udp等类型。这几个的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的
proto [ expr : size] expr用来指定数据报字节单位的偏移量
4.其他重要的关键字,gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算是'or' ,'||'
3、详细叙述僵尸进程产生的原因以及危害
僵尸进程产生的原因
僵尸进程:是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源
原因:1.子进程被直接杀死;2.子进程无法正常关闭
危害
在进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等。但是仍然为其保留一定的信息(包括进程号 PID,退出状态 the termination status of the process,运行时间 the amount of CPU time taken by the process 等)。直到父进程通过 wait / waitpid 来取时才释放。
如果进程不调用 wait / waitpid 的话, 那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵死进程,将因为没有可用的进程号而导致系统不能产生新的进程。
4、详细说明vmstat输出结果的含义
vmstat [options][delay[count]]
[options]
-a:显示活跃和非活跃内存
-f:显示从系统启动至今的fork数量 。
-m:显示slabinfo
-n:只在开始时显示一次各字段名称。
-s:显示内存相关统计信息及多种系统活动数量。
delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
-d:显示磁盘相关统计信息。
-p:显示指定磁盘分区统计信息
-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
-V:显示vmstat版本信息。
procs
r:在运行队列中等待的进程数 。
b:在等待io的进程数 。
memory
swpd:现时可用的交换内存(单位KB)。
free:空闲的内存(单位KB)。
buff: 缓冲去中的内存数(单位:KB)。
cache:被用来做为高速缓存的内存数(单位:KB)。
swap交换页面
si: 从磁盘交换到内存的交换页数量,单位:KB/秒。
so: 从内存交换到磁盘的交换页数量,单位:KB/秒。
io块设备
bi: 发送到块设备的块数,单位:块/秒。
bo: 从块设备接收到的块数,单位:块/秒。
system系统
in: 每秒的中断数,包括时钟中断。
cs: 每秒的环境(上下文)切换次数。
cpu中央处理器
cs:用户进程使用的时间 。以百分比表示。
sy:系统进程使用的时间。 以百分比表示。
id:中央处理器的空闲时间 。以百分比表示。