-
- 一、简述osi七层模型和TCP/IP五层模型
- 1、OSI七层模型
- (1)什么是OSI七层模型
- (2)OSI七层模型的划分
- (4)OSI七层模型各层定义
- 2、TCP/IP五层模型
- (1)什么是TCP/IP协议
- (2)TCP/IP五层各层定义
- 1、OSI七层模型
- 二、简述iproute家族命令
- 1、ip命令
- (1)ip link: 网络设备配置
- ( 2) ip addr :IP地址管理
- ( 3) ip route :路由管理
- 2、ss命令:
- 3、 netstat显示网络连接:
- 1、ip命令
- 三、详细说明进行管理工具htop、vmstat等相关命令,并举例
- 1、htop:
- htop的安装
- htop的交互界面
- htop的使用
- 1、htop:
- 2、vmstat命令:
- 四、使用until和while分别实现192.168.0.0/24** 网段内,地址是否能够ping通,弱ping通则输出”success!”,若ping不通则输出”fail!”
- 1、用while实现:
- 2、用until实现:
- 一、简述osi七层模型和TCP/IP五层模型
一、简述osi七层模型和TCP/IP五层模型
1、OSI七层模型
(1)什么是OSI七层模型
开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
(2)OSI七层模型的划分
OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关。
(4)OSI七层模型各层定义
- 1) 物理层 :提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性;有关的物理链路上传输非结构的位流以及故障检测指示。
- 2) 数据链路层:在网络层实体间提供数据发送和接收的功能和过程;提供数据链路的流控。
- 3) 网络层:控制分组传送系统的操作、路由选择、拥护控制、网络互连等功能,它的作用是将具体的物理传送对高层透明。
- 4) 传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。
- 5) 会话层:提供两进程之间建立、维护和结束会话连接的功能;提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式 。
- 6) 表示层:代表应用进程协商数据表示;完成数据转换、格式化和文本压缩。
- 7)应用层:提供OSI用户服务,例如事务处理程序、文件传送协议和网络管理等。
2、TCP/IP五层模型
(1)什么是TCP/IP协议
TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
(2)TCP/IP五层各层定义
- 1)物理层:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0
- 2)数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能(由底层网络定义协议)。并且将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
- <1>以广播的方式通讯
- <2>以太网协议:早期的时候各个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet
- <3>mac地址:head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
- 3)网络层:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址,进行逻辑地址寻址,实现不同网络之间的路径选择。
- <1>协议有:IP(IPV4 IPV6) ARP RARP ICMP IGMP
- <2>IP协议:规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示范围0.0.0.0-255.255.255.255
一个ip地址通常写成四段十进制数,例:192.168.10.1
- <3>IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络(配合子网掩码)。
- 4)传输层:定义传输数据的协议端口号,以及流控和差错校验。<1>协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层<2>封装的数据格式
- 5)应用层:规定应用程序的数据格式,网络服务与最终用户的一个接口。<1>协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
二、简述iproute家族命令
iproute家族:
1、ip命令
ip命令是显示/操作路由、设备、策略路由和隧道的命令。
- ip命令的格式 ip [ OPTIONS ] OBJECT { COMMAND | help }
- OBJECT := { link | addr | route | netns }
- 注意: OBJECT可简写,各OBJECT的子命令也可简写;
(1)ip link: 网络设备配置
- 1)ip link set [DEVICE] 设置接口属性
dev NAME (default):指明要管理的设备,dev关键字可省略;
up和down:打开或关闭接口
multicast on或multicast off:启用或禁用多播功能;
name NAME:重命名接口
NUMBER:设置MTU的大小,默认为1500;
netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
示例:[root@bogon ~]# ip link set up eth0 #开启et0网卡接口
- 2) ip link show [DEVICE] 显示网卡硬件信息
示例:[root@bogon ~]# ip link show eth0 #查询eth0网卡状态和信息2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:bb:fd:8e brd ff:ff:ff:ff:ff:ff
- 3) ip link help 显示简要使用帮助;
示例:[root@bogon ~]# ip link help
Usage: ip link add link DEV [ name ] NAME
( 2) ip addr :IP地址管理
- 1) ip addr add IFADDR dev IFACE 添加地址
示例:[root@bogon ~]# ip addr add 172.16.30.30/16 dev eth0 #添加ip地址到eth0
[root@bogon ~]# ip addr show eth0 #查询eth0的ip地址
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:bb:fd:8e brd ff:ff:ff:ff:ff:ff
inet 172.16.15.12/16 brd 172.16.255.255 scope global eth0
inet 172.16.30.30/16 scope global secondary eth0 #添加新ip成功
- 2) ip addr dele IFADDR dev IFACE 删除地址:
示例: [root@bogon ~]# ip addr del 172.16.30.30/16 dev eth0 #eth0删除ip地址
[root@bogon ~]# ip addr show eth0 #查询eth0的ip地址
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:bb:fd:8e brd ff:ff:ff:ff:ff:ff
inet 172.16.15.12/16 brd 172.16.255.255 scope global eth0
inet6 fe80::20c:29ff:febb:fd8e/64 scope link
- 3) ip addr list [IFACE] 显示接口的地址
- 4) ip addr flush dev IFACE 清除协议地址
( 3) ip route :路由管理
- 1) ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP] 添加新路由
示例:
[root@bogon ~]# ip route add 192.168.1.0/24 via 172.16.0.254 dev eth0 src 172.16.15.12 #添加192.168.1.0路由到当前ip
[root@bogon ~]# ip route add default via 172.16.0.254 #设置默认网关
[root@bogon ~]# ip route list #查询显示路由
192.168.1.0/24 via 172.16.0.254 dev eth0 src 172.16.15.12 #已添加192.168.1.0新路由
172.16.0.0/16 dev eth0 proto kernel scope link src 172.16.15.12 metric 1
default via 172.16.0.254 dev eth0 proto static
- 2) ip route del TYPE PRIFIX 删除路由
示例:
[root@bogon ~]# ip route del 192.168.1.0/24 #删除192.168.1.0路由
[root@bogon ~]# ip route show #查询显示路由
172.16.0.0/16 dev eth0 proto kernel scope link src 172.16.15.12 metric 1 #已删除192.168.1.0路由
default via 172.16.0.254 dev eth0 proto static
- 3) ip route flush TYPE PRIFIX 清除路由
示例:[root@bogon ~]# ip route flush 192.168.1.0/24
- 4) ip route get TYPE PRIFIX 设置单臂路由
2、ss命令:
- ss 命令可以用来获取socket 统计信息,它可以显示和netstat 类似的内容。但 ss 的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
- 格式:ss [options] [ FILTER ]
选项:
-t:TCP协议的相关连接
-u:UDP相关的连接
-w:raw socket相关的连接
-l:监听状态的连接
-a:所有状态的连接
-n:数字格式
-p:相关的程序及其PID
-e:扩展格式信息
-m:内存用量
-o:计时器信息
常用组合:-tnl -unl -tan -tunl -tnlp
示例: [root@bogon ~]# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:44068 *:*
3、 netstat显示网络连接:
- netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
- 格式:netstat [–tcp|-t] [–udp|-u] [–udplite|-U] [–sctp|-S] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p]
-t:TCP协议的相关连接,连接均有其状态;FSM(Finate State Machine);
-u:UDP相关的连接
-w:raw socket相关的连接
-l:处于监听状态的连接
-a:所有状态
-n:以数字格式显示IP和Port;
-e:扩展格式
-p:显示相关的进程及PID;
常用组合:
-tan, -uan, -tnl, -unl, -tunlp
示例:
[root@bogon ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:44068 0.0.0.0:* LISTEN 1647/rpc.statd
三、详细说明进行管理工具htop、vmstat等相关命令,并举例
1、htop:
htop是一款监控软件,功能和界面强于top
htop的安装
- 由于htop是epel的软件,所以要 首先配置epel网络yum源。
[root@bogon yum.repos.d]# vim epel.repo #创建epel仓库文件
[epel] #编辑epel仓库文件
name=EPEL-REPo
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
enabled=1
gpgcheck=1
gpgcheck=0
~
[root@bogon yum.repos.d]# yum -y install htop #安装htop软件
htop的交互界面
- 输入htop回车
界面内容分别为,cpu、内存、交换分区的使用情况,右边部分为:Tasks为进程总数,当前运行的进程数、Load average为系统1分钟,5分钟,10分钟的平均负载情况、Uptime为系统运行的时间。
以上各项分别为:
PID:进行的标识号
USER:运行此进程的用户
PRI:进程的优先级
NI:进程的优先级别值,默认的为0,可以进行调整
VIRT:进程占用的虚拟内存值
RES:进程占用的物理内存值
SHR:进程占用的共享内存值
S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态
%CPU:该进程占用的CPU使用率
%MEM:该进程占用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间
COMMAND:进程启动的启动命令名称F2 Htop设定
最下面一行是:
F1 帮助信息
F2 进入htop 设定的页面,
F3 搜索进程
F4:过滤器
F5:以树形方式显示
F6:排序方式
F7,F8:调整进程nice值
F9:杀死进程
F10:退出htop
htop的使用
使用命令:
-d #:指定延迟时间间隔;
-u UserName:仅显示指定用户的进程;
-s COLUME:以指定字段进行排序;
子命令:
l:显示选定的进程打开的文件列表;
s:跟踪选定的进程的系统调用;
t:以层级关系显示各进程状态;
a:将选定的进程绑定至某指定的CPU核心;
2、vmstat命令:
- 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,中断速率;
cs:context switch, 上下文 切换的速率;
cpu
us: user space
sy:system
id:idle
wa:wait
st: stolen选项:
-s:显示内存统计数据;示例:
[root@bogon yum.repos.d]# vmstat -s
999696 K total memory
309512 K used memory
388092 K active memory
234724 K inactive memory
147552 K free memory
172 K buffer memory
542460 K swap cache
2097148 K total swap
8 K used swap
2097140 K free swap
四、使用until和while分别实现192.168.0.0/24** 网段内,地址是否能够ping通,弱ping通则输出”success!”,若ping不通则输出”fail!”
1、用while实现:
#!/bin/bash
#pingtest of while
declare -i i=1 #声明一个数值 赋值为1
while [ $i -le 255 ] ; do #如果数值小于255为真,进入循环,为假退出循环
ping -c 1 -w 1 192.168.0.$i &>/dev/null #每1秒 ping一次 并把返回值丢弃
if [ $? -eq 0 ]; then #如果命令执行成功
echo “ping 192.168.0.$i sucess!” #则输出ping’成功‘
else #否则
echo “ping 192.168.0.$i fail!” #则输出ping’失败‘
fi #判断结束
let i++ #i自加1循环
done
执行bash
[root@bogon bash]# bash pingtest.sh
ping 192.168.0.1 fail!
ping 192.168.0.2 fail!
ping 192.168.0.3 fail!
ping 192.168.0.4 fail!
ping 192.168.0.5 fail!
ping 192.168.0.6 fail!
ping 192.168.0.7 sucess!
ping 192.168.0.8 fail!
2、用until实现:
#!/bin/bash
#pingtest of while
declare -i i=1 #声明一个数值 赋值为1
while [ $i -le 255 ] ; do # #如果数值大于255为假,进入循环,为真退出循环
ping -c 1 -w 1 192.168.0.$i &>/dev/null #每1秒 ping一次 并把返回值丢弃
if [ $? -eq 0 ]; then #如果命令执行成功
echo “ping 192.168.0.$i sucess!” #则输出ping’成功‘
else #否则
echo “ping 192.168.0.$i fail!” #则输出ping’失败‘
fi #判断结束
let i++ #i自加1循环
done
执行bash
[root@bogon bash]# bash pingtest.sh
ping 192.168.0.1 fail!
ping 192.168.0.2 fail!
ping 192.168.0.3 fail!
ping 192.168.0.4 fail!
ping 192.168.0.5 fail!
ping 192.168.0.6 fail!
ping 192.168.0.7 sucess!
ping 192.168.0.8 fail!
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96622
评论列表(1条)
写的很好,并且很细,不错。