1、简述osi七层模型和TCP/IP五层模型
OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。该体系结构标准定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层),即ISO开放系统互连参考模型。
OSI参考模型主要用于学习,参考使用,模型将网络间的信息传输按层次结构划分为7层,每层负责解决部分小问题,同时应用下层的服务,并向上层提供服务
TCP/IP是目前互联网上实际使用的数据传输协议标准,也是层次结构,一般可以分为5层,有 物理层、数据链路层、网络层、传输层、应用层,也可以说是4层,即将物理层和数据链路层合并在一起
两个标准大部分功能都是一致的,底三层(物理层、数据链路层、网络层)功能基本一样,而OSI的传输层、会话层、表示层、应用层简化成了TCP/IP的传输层和应用层
物理层:
该层主要负责链路的机械、电气、功能和规程特性。
将实际传输的数据根据使用的传输介质,如光纤、铜缆、电磁波等,转换成合适的信号,如光信号,电信号,声波信号等
同时定义了传输时信号的编码方式,同步方式,速率等信号传输之间的一系列规则
数据链路层:
任何数据的传输都是需要有源地址和目标地址的,为了相邻设备之间的通信,也就是局域网内各个设备都是分配了物理地址,又称MAC地址
数据链路层会在网络层下来的数据前面和后面加上控制信息,包括MAC地址,数据及校验码等,也就是封装成帧,然后送到物理层转换0、1的信号发送出去
所有收到数据帧的设备会根据数据链路层封装的控制信息,检查MAC地址,如果目标MAC地址是本机就会接受、解封装上交给网络层
网络层:
主要功能是为了跨网络进行通信,数据链路层解决了局域网内的通信,而在互联网上通信也就是不同的局域网内设备的通信是通过网络层解决的
网络层设置一个网络地址,也就是IP地址,通过IP地址,数据可以在不同的局域网内跳转,直到到达目的网络上的目的主机
网络层在传输层的数据前面加上头部信息,包括IP地址,控制信息等,发送出去后接收到的用户会根据IP地址进行路由选择,最后到达目标IP地址
传输层:
根据下面三层提供的服务,数据已经可以在互联网上的任意两台或多台主机间进行传输,但数据到达主机后还需要程序进行处理,也就是需要交给对应的进程
为了区分主机上不同的进程,又添加了一个地址,也就是端口号,通过端口号实现了两台主机端到端的通信
传输层在上层的数据前面加上头部信息,包括端口号,流量控制信息、差错控制信息等,然后交给底三层最终到达目标主机的传输层后交给目标端口的进程
会话层:
主要功能是管理和协调不同主机上各种进程之间的通信,负责建立、管理和终止应用程序之间的会话。
表示层:
进程间数据的表示格式,即数据编码等问题
应用层:
基于应用层的协议开发出程序,用户通过应用层的程序进行操作,完成各种需求,如发送信息,文件传输等
2、简述iproute家族命令
概述:
iproute家族命令主要都是对于网络属性相关的操作,比如网卡设备的查看、启用、禁用,添加IP地址,路由条目等
主要包括ip命令和ss命令
ip命令简要用法:
ip [options] OBJECT {COMMAND|help}
OBJECT:
link 管理网卡设备接口
addr 管理网卡接口的地址信息
route 管理网卡接口的路由信息
COMMAND:
ip link set:设置网卡接口属性,必须指明网卡设备,指明设备时的dev可省略,之后需要跟上其他命令,如
ip link set DEVICE up启用指定设备
ip link set DEVICE down禁用指定设备
ip link set DEVICE multicast on启用指定设备的多播功能
ip link set DEVICE multicast off禁用指定设备的多播功能
ip link set DEVICE name NAME重命名网卡接口的名字
ip link set DEVICE mtu 1000设置MTU的大小,默认为1500
ip link set DEVICE netns {PID|NAME}将指定设备接口移动到指定PID的网络名称空间,进行统一管理
ip addr:管理地址,常用命令,如
ip addr add ADDRESS dev INTERFACE给指定的网卡接口指定IP地址
ip addr add label NAME dev INTERFACE给指定的网卡接口指定label名字
ip addr del ADDRESS dev INTERFACE删除指定的IP地址
ip addr list显示
ip addr flush dev INTERFACE将指定的接口地址清空
ip route:管理路由表,常用命令如
ip route add TARGET/NETMASK via GATEWAY [dev INTERFACE]添加一个目标地址的路由条目
ip route del TARGET/NETMASK删除到目标地址的路由条目
ip route change TARGET/NETMASK via GATEWAY [dev INTERFACE]修改指定的路由条目
ip route list查看所有的路由条目
ip route get TARGET/NETMASK查看到指定目标地址的路由条目
ip route flush TARGET清空目标路由条目
ss命令:主要用于查看端口号信息
用法:ss [options] [FILTER]
options:
-t查看tcp连接
-u查看udp
-w查看裸套接字的连接
-l查看监听状态的连接
-a查看所有状态的连接
-n以数字形式显示查看结果
-p查看结果输出相关程序和PID
-e以扩展模式查看结果
-m显示常用的内存
-o查看计时器信息
举例:
ip link set dev ens32 up
ip link set ens32 down
ip link set ens32 multicast on
ip link set ens32 name eth0
ip link show
ip link help
ip addr add 192.168.1.111/24 dev ens32
ip addr add label itfc1 dev ens32
ip addr del 192.168.1.111/24 dev ens32
ip addr flush dev ens32
ip route list
ip ruote add 10.0.1.1/16 via 192.168.2.1 dev ens32
ip route del 10.0.1.1/16
ss -tnl
ss -tnap
ss -unl
ss -utnl
3、详细说明进程管理工具htop、vmstat等相关命令,并举例
htop:top命令的加强版,一般在epel仓库中,需要手动安装
常用的选项:
-d #指定htop的刷新时间间隔
-u USERNAME显示指定的用户运行的进程信息
-s COLUME按照指定的字段进行排序
htop命令会打开一个可以使用鼠标直接操作的窗口界面,点击上方的COLUME可以直接进行排序,在下方是F1-F10的快捷方式
可以直接输入相关命令进行操作,如
P按照当前占用的CPU百分比进行排序
M按照占用的内存百分比进行排序
l显示进程打开的文件里表
s跟踪进程的系统调用
t以层级关系显示各进程状态
a将选定的进程绑定至指定的CPU核心
#可以跳转至输入的PID进程
htop命令显示的常用参数含义:
PID:进程在内核中分配的数字标识
USER:进程的发起用户,一般也是进程的属组
PRI:进程的优先级
NI:进程的nice值
VIRT:进程占用的虚拟内存大小
RES:进程占用的实际物理内存的大小
SHR:进程使用的共享内存
S:进程的运行状态
CPU:当前进程占用的CPU百分比
MEN:当前进程占用的内存百分比
TIME:进程累计占用的CPU时间
COMMAND:进程启动时使用的命令
vmstat命令:显示当前系统中的内存及相关的详细信息
用法:vmstat [options]
options:
-s显示内存的统计数据,非常详细
直接输入vmstat命令,会显示出当前系统的部分运行信息,但是不会持续刷新,显示的主要参数有:
procs:进程相关的数据
r 等待运行的进程个数,即CUP上的任务队列长度
p 处理不可中断睡眠状态的进程数,也就是被阻塞的队列长度
memory:内存
swpd 显示启用的swap大小
free 显示空闲的物理内存大小
buff 内存中buff的大小
cache 缓存的大小
swap:交换分区的数据信息
si 数据进入swap分区的数据速率(kb/s)
so 从swap分区读出数据的速率
io:块设备的读写速率
bi 数据块保存至块设备的速率
bo 从块设备中读取数据块的速率
system:系统运行的相关性能参数
in 中断速率,每秒的中断数量,interrupt
cs 系统上下文切换的速率,每秒进程的切换数量,context switch
cpu:当前系统中的cpu运行情况
us 用户空间占用的百分比
sy 系统空间占用的CPU
id CPU的空闲百分比
wa 等待IO花费的百分比
st 被虚拟化偷走的CPU百分比
kill命令:向指定的进程发送信号,实现对进程的管理
用法:kill [-s SIGNAL|-SIGNAL] PID…
在不指定发送的信号时,默认是发送15)SIGTERM信号,终止运行中的进程,可以使用kill -l查看可用的信号
常用的信号:
1)SIGHUP 不关闭进程直接重读配置文件
2)SIGINT 打断正在运行的进程,相当于Ctrl+c
9)SIGKILL 杀死运行中的进程,强制进行
18)SIGCONT 唤醒进程继续运行
19)SIGSTOP 暂停进程的运行
4、使用until和while分别实现192.168.0.0/24网段内,地址是否能够ping通,ping通则输出”success!”,若ping不通则输出”fail!”
#!/bin/bash
#ping 192.168.0.0/24,true echo success,false echo fail
#2018-7-29
i=1
while [ $i -lt 255 ];do
ping -c 2 -w 1 -i 0.01 192.168.0.$i > /dev/null
if [ $? -eq 0 ];then
echo “192.168.0.$i success”
else
echo “192.168.0.$i fail”
fi
let i++
done
#!/bin/bash
#ping 192.168.0.0/24,true echo success,false echo fail
#2018-7-29
i=1
until [ $i -ge 255 ];do
ping -c 2 -w 1 -i 0.01 192.168.0.$i > /dev/null
if [ $? -eq 0 ];then
echo “192.168.0.$i success”
else
echo “192.168.0.$i fail”
fi
let i++
done
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/104145