简述osi七层模型和TCP/IP五层模型
应用层——Application(Layer 7)
各种应用程序协议,如HTTP、FTP、SMTP、POP3等
表示层——Presentation(Layer 6)
信息的语法语义以及它们的关联,如加密解密、转换翻译、压缩解压缩
会话层——Session(Layer 5)
不同机器上的用户之间建立及管理会话
传输层—— Transport(Layer 4)
接受上一层的数据,在必要的时候对数据进行切割,并把数据交给网络层,且保证数据段有效到达对端
网络层——Network(Layer 3)
控制子网的运行,如逻辑编址、分组传输、路由选择
数据链路层——Data Link(Layer 2)
物理寻址,同时将原始比特流转变为罗技传输线路
物理层——Physical(Layer 1)
机械、电子、定时接口通信信道上的原始比特流传输
简述iproute家族命令
ip命令:
show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addre| route | netns }
ip OBJECT:
ip link: network device configuration
ip link set: 修改设备属性
dev NAME(default): 指名要管理的设备,dev关键字可省略
up 和 down:
multicast on或off: 启用或禁用多播功能
name NAME: 重命名接口
mtu NUMBER: 设置MTU的大小,默认为1500;
netns PID: ns为namespace,用于将接口移动到指定的网络名称空间;
ip link show: 显示设备属性
ip link help: 显示简要帮助信息
ip netns: process network namespace management
ip netns list: 列出所有的netns
ip netns add NAME: 创建指定的netns
ip netns del NAME: 删除指定的netns
ip netns exec NAME COMMAND: 在指定的netns中运行命令
ip addr add IFADDR dev IFACE(基本用法)
[label NAME]: 为额外添加的地址指名接口别名;
[broadcast ADDRESS]: 广播地址;会根据IP和NETMASK计算得到,一般都无需配置;
[scope SCOPE_VALUE]:
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: 清空接口上所有的地址
详细说明进行管理工具htop、vmstat等相关命令,并举例
htop命令:
- 选项:
- -d #:指定延迟时间间隔
- -u USERNAME: 仅显示指定用户的进程
- -s COLUME: 以指定字段进行排序
- 子命令:
- l: 显示选定的进程打开的文件列表;
- s: 跟踪选定的进程的系统调用;
- t: 以层级关系显示各进程状态;
- a: 将选定的进程绑定至某指定的cpu核心;
vmstat命令:
vmstat - Report virtual memory statistics
vmstat [options] [delay [count]]
- proc:
- 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,中断速率
- cs: context switch,上下文切换的速率
- cpu:
- us: user space
- sy: system
- id: idle
- wa: wait
- st: stolen
- 选项:
- -s: 显示内存统计数据;
使用until和while分别实现192.168.0.0/24 网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
#!/bin/bash
#
declare -i i=1
while [ $i -le 254 ]; do
if ping -c 1 -w 1 -W 1 192.168.0.$i &> /dev/null; then
echo "Ping 192.168.0.$i success!"
else
echo "Ping 192.168.0.$i fail!"
fi
let i++
done
#!/bin/bash
#
declare -i i=1
until [ $i -gt 254 ]; do
if ping -c 1 -w 1 -W 1 192.168.0.$i &> /dev/null; then
echo "Ping 192.168.0.$i success!"
else
echo "Ping 192.168.0.$i fail!"
fi
let i++
done