1、简述osi七层模型和TCP/IP五层模型
(一)、OSI七层模型
在去探索OSI有哪七层之前首先我觉得我们应该了解的是为什么要建立OSI七层模型,他的功用是什么?
在20世纪70年代,那时候基本的网络结构已经形成,但是各个厂家结构都不一样,比如IBM的SNA标准,Digital的DNA,美国国防部的TCP/IP,各个厂家的产品内部自己使用没有任何问题,但是如果不同厂家的网络想要合并使用,那就会因为标准不一致而无法兼容。于是国际标准化组织在1977年成立了统一委员会推出了OSI七层模型。
它就像一家公司一样由各个不同的部门组成,各个部门完成自己的工作不会产生干扰,必要的时候为其他部门提供服务,各谦所职,缺一不可。下面就让我们来看一下它到底由哪些”部门“组成吧。
①、应用层:工作在OSI七层模型的最上层,最接近用户的一层 定义了许多的网络服务协议SMTP,POP3,FTP,SSH等,同时还为应用程序提供接口,使得应用程序能够使用这些数据。
②、表示层:定义了数据如何表示,以及加密解密和压缩解压缩。简单来说就是定义了把下层传过来的数据以何种的方式传给上层
③、会话层:为两台主机建立一个连接同时为连接提供管理功能
④、传输层:将上一层的数据进行分割,然后把数据传给网络层,工作在这一层的协议有TCP确保数据一定能到达,安全性高但效率相对不高,UDP只管发送数据,不管对方有没有接受到。数据单位是报文
⑤、网络层:定义了ip地址等,提供了路由功能,根据ip地址在网络中搜寻对方主机的位置。IP协议工作在这一层,数据单位是数据包。
⑥、数据链路层:协商两端的协议,流量控制,在到达对方网络内的物理寻址。arp,stp协议都工作在这一层。数据单位是帧
⑦、物理层:主要功能是定义了网络通讯接口及介质的标准,同时将上层的数据转换为bit在网络中传输,MAC地址就由这一层定义数据单位是bit
PDU:协议数据单元,数据在产生发送的过程中经过每一层处理的时候都会在数据的最前部封装本层相对应的数据。
(二)、TCP/IP五层模型
原先是美国军方内部的网络标准,现在慢慢被广泛接受,逐渐取代OSI七层模型
1. 应用层:对应于OSI参考模型的高三层。
2. 传输层:对应于OSI参考模型的传输层。
3. 网际互联层:对应于OSI参考模型的网络层。
4. 网络接入层与OSI参考模型中的物理层和数据链路层相对应。
2、简述iproute家族命令
ip命令:
show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route | netns }
注意: OBJECT可简写,各OBJECT的子命令也可简写;
ip OBJECT:
ip link | l: 主要是查看网络数据链路层相关信息。可以查看到网络是up还是down,ip a 无法查询到
dev NAME (default):指明要管理的设备,dev关键字可省略;不写则查看全部设备
up和down:接口是禁用还是启用
multicast on或multicast off:启用或禁用多播功能;
name NAME:重命名接口
mtu NUMBER:设置MTU的大小,默认为1500;
ip link help - 显示简要使用帮助;
ip netns: - manage network namespaces.
netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
ip netns list:列出所有的netns
ip netns add NAME:创建指定的netns
ip netns del NAME:删除指定的netns
ip netns exec NAME COMMAND:在指定的netns中运行命令
ip address | a :ip地址管理
ip address add - add new protocol address:可以临时给网卡增加一个地址
global:全局可用;
link:接口可用;
host:仅本机可用;
ip address delete - delete protocol address
ip addr delete IFADDR dev IFACE
ip address show - look at protocol addresses
ip addr list [IFACE]:显示接口的地址;
ip address flush - flush protocol addresses
ip addr flush dev IFACE
ip route - routing table management
ip route add - add new route
ip route change - change route
ip route replace - change or add new one
ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
示列:
3、详细说明进程管理工具htop、vmstat等相关命令,并举例
(一)、htop工具
htop命令:更加高级的top,有的系统可能没下载需要自己yum,甚至支持在字符界面进行可视化操作
帮助:
选项:
-d #:指定延迟时间间隔;
-u UserName:仅显示指定用户的进程;
-s COLUME:以指定字段进行排序;
子命令:
l:显示选定的进程打开的文件列表;
s:跟踪选定的进程的系统调用;
t:以层级关系显示各进程状态;
a:将选定的进程绑定至某指定的CPU核心;
vmstat工具:
vmstat [options] [delay [count]]
procs:
r:等待运行的进程的个数;CPU上等待运行的任务的队列长度;
b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度;
memory:
swpd:交换内存使用总量;
free:空闲的物理内存总量;
buffer:用于buffer的内存总量;
cache:用于cache的内存总量;
swap:
si:数据进入swap中的数据速率(kb/s)
so:数据离开swap的速率(kb/s)
io:
bi:从块设备读入数据到系统的速度(kb/s)
bo:保存数据至块设备的速率(kb/s)
system:
in:interrupts,中断速率;
敲击键盘相当于一次中断,中断cpu当前的任务,去进行其他任务,许多io设备需要不断完成交换
cs:context switch, 上下文 切换的速率;
cpu:
us: 用户进程使用的百分比
sy:系统进程使用的百分比
ni: 用户进程空间内改变过优先级的进程占用CPU百分比
id:空闲百分比
wa:等待状态百分比
hi :硬件中断
si :软件中断
st: stolen:被虚拟机偷走的时间
选项:
-s:显示内存统计数据;
pmap命令:
- report memory map of a process
pmap [options] pid [...]
-x:显示详细格式的信息;
另一种查看方式:cat /proc/PID/maps
glances命令:可以管理远程主机
常用选项:
-b:以Byte为单位显示网上数据速率;
-d:关闭磁盘I/O模块;
-m:关闭mount模块;
-n:关闭network模块;
-t #:刷新时间间隔;
-1:每个cpu的相关数据单独显示;
-o {HTML|CSV}:输出格式;
-f /PATH/TO/SOMEDIR:设定输出文件的位置;
示范:glances -f /tmp/ -o HTML
C/S模式下运行glances命令:
服务模式:
glances -s -B IPADDR
IPADDR:本机的某地址,用于监听;
客户端模式:
glances -c IPADDR
IPADDR:是远程服务器的地址;
dstat命令:
dstat [-afv] [options..] [delay [count]]
常用选项:
-c, --cpu:显示cpu相关信息;
-C #,#,...,total
-d, --disk:显示磁盘的相关信息
-D sda,sdb,...,tobal
-g:显示page相关的速率数据;
-m:Memory的相关统计数据
-n:Interface的相关统计数据;
-p:显示process的相关统计数据;
-r:显示io请求的相关的统计数据;
-s:显示swapped的相关统计数据;
--tcp
--udp
--raw
--socket
--ipc
--top-cpu:显示最占用CPU的进程;
--top-io:最占用io的进程;
--top-mem:最占用内存的进程;
--top-lantency:延迟最大的进程;
kill命令:
用于向进程发送信号,以实现对进程的管理;
显示当前系统可用信号:
kill -l [signal]
每个信号的标识方法有三种:
1) 信号的数字标识;
2) 信号的完整名称;
3) 信号的简写名称;
向进程发信号:
kill [-s signal|-SIGNAL] pid...
常用信号:
1) SIGHUP:无须关闭进程而让其重读配置文件;
2)SIGINT:终止正在运行的进程,打断,相当于Ctrl+c
9)SIGKILL:杀死运行中的进程;强制直接杀死
15)SIGTERM:终止运行中的进程;把数据交还等
18)SIGCONT:
19)SIGSTOP:
killall命令:
- kill processes by name
killall [-SIGNAL] program:通过进程名来管理,更方便适用于一组进程的情况
4、使用until和while分别实现192.168.0.0/24 网段内,地址是
否能够ping通,弱ping通则输出"success!",若ping不通则输出"fail!"
while的实现方式
until的实现方式