第六周博客作业

一、简述osi七层模型和TCP/IP五层模型
二、简述iproute家族命令
三、详细说明进行管理工具htop、vmstat等相关命令,并举例
四、使用until和while

    • 一、简述osi七层模型和TCP/IP五层模型
      • 1、OSI七层模型
        • (1)什么是OSI七层模型
        • (2)OSI七层模型的划分
        • (4)OSI七层模型各层定义
      • 2、TCP/IP五层模型
        • (1)什么是TCP/IP协议
        • (2)TCP/IP五层各层定义
    • 二、简述iproute家族命令
      • 1、ip命令
        • (1)ip link: 网络设备配置
        • ( 2) ip addr :IP地址管理
        • ( 3) ip route :路由管理
      • 2、ss命令:
      • 3、 netstat显示网络连接:
    • 三、详细说明进行管理工具htop、vmstat等相关命令,并举例
      • 1、htop:
        • htop的安装
        • htop的交互界面
        • htop的使用
    • 2、vmstat命令:
    • 四、使用until和while分别实现192.168.0.0/24** 网段内,地址是否能够ping通,弱ping通则输出”success!”,若ping不通则输出”fail!”
      • 1、用while实现:
      • 2、用until实现:

一、简述osi七层模型和TCP/IP五层模型

1、OSI七层模型

(1)什么是OSI七层模型

开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

ois七层

(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 DHCPip

二、简述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回车
  • htop

htop1界面内容分别为,cpu、内存、交换分区的使用情况,右边部分为:Tasks为进程总数,当前运行的进程数、Load average为系统1分钟,5分钟,10分钟的平均负载情况、Uptime为系统运行的时间。

htop2以上各项分别为:

PID:进行的标识号
USER:运行此进程的用户
PRI:进程的优先级
NI:进程的优先级别值,默认的为0,可以进行调整
VIRT:进程占用的虚拟内存值
RES:进程占用的物理内存值
SHR:进程占用的共享内存值
S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态
%CPU:该进程占用的CPU使用率
%MEM:该进程占用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间
COMMAND:进程启动的启动命令名称F2 Htop设定

htop6

最下面一行是:
F1 帮助信息
F2 进入htop 设定的页面,
F3 搜索进程
F4:过滤器
F5:以树形方式显示
F6:排序方式
F7,F8:调整进程nice值
F9:杀死进程
F10:退出htop

htop的使用

使用命令:
-d #:指定延迟时间间隔;
-u UserName:仅显示指定用户的进程;

htop4
-s COLUME:以指定字段进行排序;
子命令:
l:显示选定的进程打开的文件列表;

htopl
s:跟踪选定的进程的系统调用;

htopt
t:以层级关系显示各进程状态;

htops
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

评论列表(0条)

  • 马哥教育
    马哥教育 2018-04-26 19:27

    写的很好,并且很细,不错。

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code