Linux网络属性配置、常用进程管理工具介绍以及shell循环机制实例

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


OSI七层模型


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

 

   物理层是OSI的第一层,它虽然处于最底层,却是整个开放系统的基础。物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境

   链路层是为网络层提供数据传送服务的,这种服务要依靠本层具备的功能来实现。链路层应具备如下功能:

       链路连接的建立、拆除和分离;

       帧定界和帧同步。

       顺序控制,指对帧的收发顺序的控制;

       差错检测和恢复

       链路标识,流量控制等等


    网络层为建立网络连接和为上层提供服务,应具备以下主要功能:

        1.路由选择和中继;

        2.激活,终止网络连接;

        3.在一条数据链路上复用多条网络连接,多采取分时复用技术;

        4.检测与恢复;

        5.排序,流量控制;

        6.服务选择;

        7.网络管理。

     传输层主要功能是端开放系统之间数据的收妥确认。同时,还用于弥补各种通信网路的质量差异,对经过下三层之后仍然存在的传输差错进行恢复,进一步提高可靠性。另外,还通过复用、分段和组合、连接和分离、分流和合流等技术措施,提高吞吐量和服务质量。


      会话层是会话单位的控制层,其主要功能是按照在应用进程之间约定的原则,按照正确的顺序收、发数据,进行各种形态的对话。会话层规定了会话服务用户间会话连接的建立和拆除规程以及数据传送规程

      表示层为数据表示形式的控制层,其主要功能是把应用层提供的信息变换为能够共同理解的形式,提供字符代码、数据格式、控制信息格式、加密等的统一表示

      应用层是OSI参考模型的最高层。其功能是实现应用进程(如用户程序、终端操作员等)之间的信息交换。同时,还具有一系列业务处理所需要的服务功能



TCP/IP五层模型:


  TCP/IP五层模型为应用层、传输层、网络层、数据链路层、物理层,其中物理层主要为物理设备,如中继器、集线器、双绞线等;传输层主要设备为四层交换机,同时也又工作在四层的路由器;网络层主要为路由器、三层交换机等设备;数据链路层包含网桥、以太网交换机(二层交换机)、网卡(一半工作在物理层,一半工作在数据链路层);而应用层则是终端用户程序的界面。






2、简述iproute2家族命令


    iproute2是linux下管理控制TCP/IP网络和流量控制的新一代工具包,旨在替代老派的工具链net-tools,即大家比较熟悉的ifconfig,arp,route,netstat等命令;而两者之前的区别就在于net-tools是通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink套接字接口与内核通讯。



IProute家族常见命令:

      ip OBJECT:

        addr:地址和掩码

        link:接口

        route:路由

      ss:状态及统计数据查看



IP命令是IProute家族的核心命令:


     ip命令:显示/操作路由、设备、策略路由和隧道


         常见用法:

            ip [OPTIONS] OBJECT { COMMAND | help }


                  OBJECT:= { link | address | route | netns }

 

              注意:OBJECT可简写,各OBJECT的子命令也可简写



         ip OBJECT:


                ip link:网络设备配置

                   

                  常见用法:

                     ip link set-change device attrlbutes

                         dev NAME(default):指明要管理的设备,dev关键字可省略

                         up和down:启动和禁用

                         multicast on 或multicast off:启用或禁用多播功能

                         name NAME:重命名接口

                         mtu NUMBER:设置MIU的大小,默认为1500

                         netns PID:ns为namespace,用于将接口移动到指定的网络名称空间


                     ip link show:显示网络接口属性


                     ip link help:显示简要使用帮助


            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中运行命令



            ip-address - (协议地址管理)protocol address management



                      常见用法:

                         ip address add - add new protocol address

                              ip address add IFADDR dev IFACE

                                     [label NAME]:为额外添加的地址指明接口别名

                                     [broadcast ADDRESS]:广播地址,会根据IP和NETMASK自动计算得到

                                     [scope SCOPE_VALUE]:作用域

                                             global:全局可用

                                             link:接口可用

                                             host:仅本机可用

                           示例:~]# ip addr add 192.168.73.200/24 label ens33:0 dev ens33



                        ip address delete - delete protocol address

                               ip address delete IFADDR dev IFACE


                           示例:~]# ip addr delete 192.168.73.200/24 dev ens33:0




                        ip address show - look at protocol addresses

                              ip address list [IFACE]:显示接口地址


                           示例:~]# ip address list ens33




                        ip address flush - flush protocol addresses

                             ip address flush dev IFACE


                          示例:~]# ip address flush ens33:0

                    

                                ~]#systemctl restart network.service





            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.10.1/24 via 10.0.0.1 dev eth0 src 10.0.20.100

                                        #ip route add default via GW

    


                                ip route delete - (删除路由表)delete route

                                        ip route del TYPE PREFIX


                                    示例:

                                         #ip route del 192.168.10.1/24




                                ip route show - (显示路由表)list routes

                                        ip route list TYPE PREFIX


                                    示例:

                                        #ip route list 192.168.10.1/24



                                ip route flush - (刷新路由表)flush routing tables

                                        ip route flush TYPE PREFIX


                                    示例:

                                       #ip route flush 192.168.10.1/24



                                ip route get - (获得单一路由信息)get a single route

                                        ip route get TYPE PREFIX


                                    示例:

                                        #ip route get 192.168.10.1/24




      ss命令:

             ss [options] [FILTER]

                 

                 选项:

                    -t:TCP协议的相关连接

                    -u:UDP协议的相关连接

                    -w:raw socke(原始套接字)相关的连接 

                    -l:监听状态的连接

                    -a:所有状态的连接

                    -n:数字格式

                    -p:相关的程序及其PID

                    -e:拓展格式信息

                    -m:内存用量

                    -o:计时器信息



                 FILTER:=[state TCP-STATE] [EXPRESSION]


                     TCP的常见状态

                        LISTEN:监听

                        ESTABLISEHD:建立的连接

                        FIN_WAIT1

                        FIN_WAIT2

                        SYN_SENT

                        SYN_RECV

                        CLOSED


                    EXPRESSION:

                        dport=

                        sport=

                             示例:'(dport = :22 sport = :22)'

                                 ~]#ss -tan '(dport = :22 or sport = :22)'

                                 ~]#ss -tan state ESTABLISEHD


                常用组合:

                      -tan,-uan,-tnl,-unl,-tunlp






3、详细说明进行管理工具htop、vmstat等相关命令,并举例 



      htop命令:


            选项:

               -d #:指定延迟时间间隔

               -u UserName:仅显示指定用户的进程

               -s COLUME:以指定字段进行排序


            子命令:

                l:显示选定的进程打开的文件列表

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

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

                a:将选定的进程绑定至某指定的CPU核心




     vmstat命令:


         vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。


             vmstat [options] [delay [count]]

             

              字段说明:

                 procs(进程):

                    r:等待运行的进程的个数,CPU上等待运行的任务的队列长度

                    b:处于不可中断睡眠态的进程个数,被阻塞的任务队列的长度


                 memory(内存):

                    swpd:交换内存使用总量

                    free:空闲的物流内存总量

                    buffer:用于缓冲的内存总量

                    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 time)

                    sy:内核系统进程执行时间百分比(system time)

                    id:空闲时间百分比

                    wa:IO等待时间百分比

                    st:stolen


            选项:

                -s:显示详细格式的信息;

                -a:显示活动内页;

                -f:显示启动后创建的进程总数;

                -m:显示slab信息;

                -n:头信息仅显示一次;

                -s:以表格方式显示事件计数器和内存状态;

                -d:报告磁盘状态;

                -p:显示指定的硬盘分区状态;




4、使用until和while分别实现192.168.0.0/24网段内,地址是否能够ping通,弱ping通则输出"success!",若ping不通则输出"fail!"



until语句:


#!/bin/bash

#


declare -i i=1


until [ $i -gt 254 ]; do


    if ping -w 1 -c 1 192.168.0.$i &> /dev/null;then

            echo "success." 

    else

            echo "fail."

    fi

    let i++


done



while语句:



#!/bin/bash

#


declare -i i=1

 

 while [ $i -le 254 ];do

      if ping -W 1 -c 1 192.168.0.$i &> /dev/null;then


           echo "success."

      else

           echo "fail."

      fi


      let i++


done




  注:部分内容来源于马哥视频记录笔记




猜你喜欢

转载自blog.51cto.com/12068974/2176443