第六周作业

1100.0.0.16/28 对应网段的网关地址、广播地址、可分配IP地址范围

    十进制28位子网掩码对应二进制子网掩码 255.255.255.240

    广播地址:100.0.0.31/28

    可分配ip地址范围:100.0.0.16 -- 100.0.0.31

    可分配16个子网

    网关地址:在学路由交换的时候一般都会将有效ip地址范围最后一个地址设置为网关地址,即100.0.0.30

 100.0.0.16为主机地址,100.0.0.31为广播地址,所以有效的ip地址范围为 100.0.0.17-100.0.0.30



2、使用man手册学习tcpdump的使用

(1)概述

tcpdump是用来抓取网络包内容描述信息的工具,根据使用者的定义对网络上的数据包进行截获的包分析工具,tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

(2)实用命令实例

默认启动

# tcpdump

普通情况下,直接启动tcpdump将监视第一个网络接口上所流过的数据包。


监视指定网络接口的数据包

# tcpdump -i eth1

如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0


监视指定主机的数据包

打印所有进入或离开HOSTNAME的数据包

# tcpdump host HOSTNAME

也可以指定ip,例如截获所有172.16.10.10的主机收到的和发出的所有的数据包

# tcpdump host 172.16.10.10

截获主机172.16.10.10和主机172.16.10.6或172.16.10.100的通信

# tcpdump host 172.16.10.10 and \( 172.16.10.6 or 172.16.100 \)

打印centos与xingxinchao或者redhat之间通信的数据包

# tcpdump host centos and \( xingxinchao or redhat \)

打印ace与任何其它主机之间通信的ip数据包,但不包括helios之间的数据包

# tcpdump ip host ace and not helios

监视所有送到主机hostname的数据包

# tcpdump -i eth0 dst host hostname

监视指定主机和端口的数据包

如果想要获取主机210.27.48.1接受或发出的telnet包,使用如下命令

# tcpdump tcp port 23 and host 210.27.48.1

对本机的udp 123端口进行监视 123位ntp的服务端口

# tcpdump udp port 23


常用选项:

(1)tcp:ip、icmp、arp、rarp、tcp、udp这些选项等都要放到第一个参数的位置,用来过滤数据的类型

(2)-i eth0:只抓指定的接口eth0的数据包

(3)-t:不显示时间戳

(4)-s 0:抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包

(5)-c 100:只抓取指定的100个数据包

(6)dst port ! 22:不抓取目标端口是22的数据包

(7)src net 192.168.1.0/24:数据包的源网络地址为192.168.1.0/24

(8)-w ./target.cap:保存成cap文件,方便用wireshark分析


3、详细叙述僵尸进程产生的原因以及危害

(1)什么是僵尸进程

当子进程(child process)先于父进程(parent process)退出,但是父进程没有调用wait/waitpid回收子进程的资源,则子进程变成僵尸进程。但是如果该进程的父进程已经结束,那该进程就不会变成僵尸进程,因为每个进程结束的时候,系统会扫描所有运行中的进程,看看有没有哪个进程是刚刚结束的子进程,如果有就由init来接管它,成为它的父进程。

(2)危害

如果父进程不调用wait/waitpid,则子进程的保留信息不回被释放,造成内核资源的无法回收,同时进程号会一直被占用,系统所能使用的进程号是有限的,大量的产生僵尸进程将会导致系统不能产生新的进程。

(3)怎么避免僵尸进程

防止的办法是当父进程fork一个子进程后,必须通过wait/waitpid等函数等待子进程结束,但这会导致父进程挂起,所以通常的做法使用signal函数为SIGCHLD安装handler,在handler函数中调用wait/waitpid函数进行回收


4、详细说明vmstat输出结果的含义

[root@localhost ~]# vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r  b  swpd  free  buff  cache  si  so    bi    bo  in  cs us sy id wa st

1  0      0 3533764  2084 172880    0    0    3    0  18  16  0  0 100  0  0


(1)procs:(进程相关信息)

        r:运行和等待运行的进程个数,cpu上等待运行的任务的队列长度

        b:处于不可中断睡眠状态的进程个数;被阻塞的任务队列长度


(2)memory:(内存相关信息)

        swad:虚拟内存使用量

        free:物理内存使用量

        buffer:用于buffer的内存总量

        cache:用于cache的内存总量

        

 (3)swap:(交换分区信息)

            si:数据进入swap中的数据速率(KB/s)

            so:数据离开swap的速率(KB/s)

    (4)io:io相关信息

            bi:从块设备读入数据到系统的速率(KB/s)

            bo:保存数据至块设备的速率(KB/s)

    (5)system:(内核相关信息)

            in:每秒产生的中断数量

            cs:context switch,每秒上下文切换速率(数量)

       (6)cpu:cpu时间相关信息

            us:user space,用户空间占用CPU的时间百分比

            sy:system,内核空间占用cpu的时间百分比

            id:空闲时间百分比*(2.5.41之前,还包含等待io的时间)

            wa:等待io的时间百分比(2.5.41之前,被包含在id时间里)

            st:被虚拟机偷走的时间(2.6.11之后才有)

    


你可能感兴趣的:(第六周作业)