1、简述osi七层模型和TCP/IP五层模型
1、 osi七层模型
1、应用层:OSI 参考模型中最靠近用户的一层,为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。
2、表示层:提供各种用于应用层数据的编码和转换功能,确保一个主机的应用层发送的数据能被另一个主机的应用层识别。如果有必要,该层可以提供一种标准的表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。
3、会话层:负责建立、管理和终止表示层实体之间的通信会话。
4、传输层:建立了主机之间的端到端的连接。传输层的作用,是为上层协议提供端到端的可靠的透明的数据传输服务,包括差错控制和流量控制等问题。我们通常说的TCP、UDP就是在这一层。端口号即是这里的“ 端 ”。TCP 协议。UDP 协议。
5、网络层:网络层通过 IP 寻址来建立两个网络节点之间的连接,为源主机的传输层送来的分组,选择合适的路由和交换节点,正确无误的按照 IP 地址传送给目的主机的传输层。就是通常说的 IP 层,使用 IP协议和路由器的路由选择信息。数据传输单位是分组。IP 地址。路由器。IP 协议。
6、数据链路层:将比特组合成字节,再将字节组合成帧,使用数据链路层地址 (以太网使用的是 MAC 地址)来访问介质,并进行差错检测。在物理层提供的服务基础之上,负责在通信的实体之间建立数据链路。传输以帧为单位的数据包。
7、物理层:实际的最终信号的传输是通过物理层实现的。通过物理介质传输0-1 比特流。常用的设备有(各种物理设备)集线器、中继器、调制解调器、网线、双绞线、同轴电缆。这些都是物理层的传输介质。 传输的单位是比特。
2、 TCP/IP 五层模型
1、应用层:对应osi七层模型中的应用层,表示层,会话层;
2、传输层 :
3、网络层 :
4、数据链路层 :
5、物理层 :
3、 对应关系图解
1、简述iproute家族命令
IP命令
语法:ip [ OPTIONS ] OBJECT { COMMAND | help }
常用OBJECT := { link | addr |route |netns }
OBJECT可简写,各OBJECT的子命令也可简写;
1、ip link
功能:网络设备配置
格式:
#ip link set 修改设备属性,
dev NAME :指明dev
up and down :打开或者关闭
name NAME:重命名接口
mtu number :MTU大小
netns PID :ns为namespace,用于将接口移动到指定的网络名称空间
#ip link show :显示网卡信息
eg:ip link show dev ens111
注意:仅显示处于激活状态的接口
2、ip address
功能:ip地址的删除或者添加
格式:
#ip address add - add new protocol address
ip addr add ADDR dev IFCAE
label NAME :为额外添加的地址指明接口别名;
broadcast ADDRESS :广播地址,会根据IP和掩码自动计算
scope SCOPE_VALUE :
global:全局可用
link :仅链接可用
host :本机可用
#ip address delete - delete protocol address
用法与add相同
#ip address show - look at protocol addresses
[dev NAME]
[label NAME]
3、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]
示例:
ip route add 192.168.2.5/24 via 192.168.2.1 dev eth1 src 200.200.200.200
#p route delete - delete route
ip route delete
示例:ip route delete xxx.xxx.xxx.xxx/xx
#ip route show - list routes
#ip route flush
ip route flush TYPE PRIFIX
#ip route get - get a single route
ip route get TYPE PRIFIX
示例: ip route get xxx.xxx.xxx.xxx/xx
4、ip netns
manage network namespaces
#ip netns list:列出所有的netns
#ip netns add NAME :创建指定的netns
#ip netns del NAME :删除指定的netns
#ip netns exec NAME COMMAND :在指定的netns中运行命令
3、详细说明进行管理工具htop、vmstat等相关命令,并举例
1、htop
上面左上角显示CPU、内存、交换区的使用情况,右边显示任务、负载、开机时间,下面就是进程实时状况。
下面是 F1~F10 的功能和对应的字母快捷键。
Shortcut Key | Function Key | 中文说明 |
h, ? | F1 | 查看htop使用说明 |
S | F2 | htop 设定 |
/ | F3 | 搜索进程 |
\ | F4 | 增量进程过滤器 |
t | F5 | 显示树形结构 |
<, > | F6 | 选择排序方式 |
[ | F7 | 可减少nice值,这样就可以提高对应进程的优先级 |
] | F8 | 可增加nice值,这样就可以降低对应进程的优先级 |
k | F9 | 可对进程传递信号 |
q | F10 | 结束htop |
命令行选项:
-C --no-color 使用一个单色的配色方案
-d --delay=DELAY 设置延迟更新时间,单位秒
-h --help 显示htop 命令帮助信息
-u --user=USERNAME 只显示一个给定的用户的过程
-p --pid=PID,PID… 只显示给定的PIDs
-s --sort-key COLUMN 依此列来排序
-v –version 显示版本信息
交互式命令:
上下键或PgUP, PgDn 选定想要的进程,左右键或Home, End 移动字段,当然也可以直接用鼠标选定进程;
Space 标记/取消标记一个进程。命令可以作用于多个进程,例如 “kill”,将应用于所有已标记的进程
U 取消标记所有进程
s 选择某一进程,按s:用strace追踪进程的系统调用
l 显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件
I 倒转排序顺序,如果排序是正序的,则反转成倒序的,反之亦然
+, – When in tree view mode, expand or collapse subtree. When a subtree is collapsed a “+” sign shows to the left of the process name.
a (在有多处理器的机器上) 设置 CPU affinity: 标记一个进程允许使用哪些CPU
u 显示特定用户进程
M 按Memory 使用排序
P 按CPU 使用排序
T 按Time+ 使用排序
F 跟踪进程: 如果排序顺序引起选定的进程在列表上到处移动,让选定条跟随该进程。这对监视一个进程非常有用:通过这种方式,你可以让一个进程在屏幕上一直可见。使用方向键会停止该功能。
K 显示/隐藏内核线程
H 显示/隐藏用户线程
Ctrl-L 刷新
Numbers PID 查找: 输入PID,光标将移动到相应的进程上
2、vmstat
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、IO读写、CPU活动等进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
vmstat [options] [delay [count]]
delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
options:
-a :开启显示active/inactive memory
-m :显示slabinfo信息
-s :显示各种事件计数器表和内存统计信息,这显示不重复
-V :查看vmstat命令的版本
-w :可以扩大字段长度,当内存较大时,默认长度不够完全展示内存。
[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 464188 740 397020 0 0 1 0 8 10 0 0 100 0 0
输出字段意义:
procs :
r :等待运行的进程数。如果等待运行的进程数越多,意味着CPU非常繁忙。另外,如果该参数长期大于和等于逻辑cpu个数,则CPU资源可能存在较大的瓶颈;
b :处在非中断睡眠状态的进程数。意味着进程被阻塞。主要是指被资源阻塞的进程对列数(比如IO资源、页面调度等),当这个值较大时,需要根据应用程序来进行分析,比如数据库产品,中间件应用等;
memory :
swpd :已使用的虚拟内存大小。如果虚拟内存使用较多,可能系统的物理内存比较吃紧,需要采取合适的方式来减少物理内存的使用。swapd不为0,并不意味物理内存吃紧,如果swapd没变化,si、so的值长期为0,这也是没有问题的;
free :空闲的物理内存的大小;
buff :用来做buffer(缓存,主要用于块设备缓存)的内存数,单位:KB;
cache :用来做cache(缓存,主要用于缓存文件)的内存,单位:KB;
Swap :
si :从磁盘交换到内存的交换页数量,单位:KB/秒;
so :从内存交换到磁盘的交换页数量,单位:KB/秒;
IO :
bi :每秒从块设备接收到的块数,单位:块/秒 也就是读块设备;
bo :每秒发送到块设备的块数,单位:块/秒 也就是写块设备;
System :
in :每秒的中断数,包括时钟中断
cs :每秒的环境(上下文)切换次数。比如我们调用系统函数,就要进行上下文切换,而过多的上下文切换会浪费较多的cpu资源,这个数值应该越小越好。
Cpu :
us :用户CPU时间(非内核进程占用时间)(单位为百分比)。 us的值比较高时,说明用户进程消耗的CPU时间多
sy :系统使用的CPU时间(单位为百分比)
id :空闲的CPU的时间(百分比)
wa :等待IO的CPU时间
示例:[root@localhost ~]# vmstat -s
1004172 K total memory
142020 K used memory
256064 K active memory
144468 K inactive memory
464572 K free memory
740 K buffer memory
396840 K swap cache
2097148 K total swap
0 K used swap
2097148 K free swap
5452 non-nice user cpu ticks
66 nice user cpu ticks
25984 system cpu ticks
34480821 idle cpu ticks
2079 IO-wait cpu ticks
11608 IRQ cpu ticks
0 softirq cpu ticks
0 stolen cpu ticks
273952 pages paged in
143466 pages paged out
0 pages swapped in
0 pages swapped out
2789873 interrupts
3386536 CPU context switches
1528419771 boot time
9070 forks
4、使用until和while分别实现192.168.0.0/24 网段内,地址是否能够ping通,弱ping通则输出”success!”,若ping不通则输出”fail!”
1、while
#!/bin/bash
#
declare -i i=1
while [ $i -le 254 ] ; do
ping -w 1 -c 1 192.168.0.$i &> /dev/null
if [ $? -eq 0 ];then
echo "192.168.0.$i is success"
else
echo "192.168.0.$i is fail "
fi
let i++
done
2、until
#!/bin/bash
#
declare -i i=1
until [ $i -gt 255 ] ;do
ping -w 1 -c 1 192.168.0.$i &> /dev/null
if [ $? -eq 0 ];then
echo "192.168.0.$i is success"
else
echo "192.168.0.$i is fail"
fi
let i++
done
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/104079
评论列表(1条)
很不错的博文,例子使用markdown格式化,清晰美观。继续加油