第六周

OSI七层模型

  • 应用层(Application Layer),定义如何实现真正的资源交换
  • 表示层(Presentation Layer),定义数据的表示格式,压缩,加密
  • 会话层(Session Layer),建立会话,完成通讯
  • 传输层(Transport Layer),定义端口,建立、管理和维护端到端的连接
  • 网络层(Network Layer),定义基于ip地址的通讯过程的实现
  • 数据链路层(Data Link Layer),定义mark通讯时数据报文的封装和响应方式
  • 物理层(Physical Layer),定义各设备的物理规范

此模型是ISO组织在1985年推出的网络互连模型,现在所有公司都使用这个规范来控制网络,所有公司都有相同的规范了,就能互连了。
OSI定义了网络互连的七层框架,每一层实现各自的功能和协议,并完成与相邻层的接口通信。

TCP/IP五层模型

  • 应用层(Application Layer),定义如何实现真正的资源交换
  • 传输层(Transport Layer),定义端口,建立、管理和维护端到端的连接
  • 网络层(Network Layer),定义基于ip地址的通讯过程的实现
  • 数据链路层(Data Link Layer),定义mark通讯时数据报文的封装和响应方式
  • 物理层(Physical Layer),定义各设备的物理规范

在实际工作中,我们为了简单去繁琐往往使用TCP/IP五层模型,TCP/IP五层模型和OSI七层模型基本是对应的关系

iproute2家族命令

iproute家族命令有:bridge,ip,ss,tc等等,这里介绍常用的两种命令ip和ss

ip命令:显示和管理路由,设备,策略路由及隧道等功能

语法:ip [ 选项 ] 执行对象 { 命令 | help }
选项:

addr:地址和掩码;
link:接口
route:路由

ip address:管理ip地址

#添加IP地址
[root@localhost ~]# ip addr add 192.168.3.15/24 dev ens33
[root@localhost ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:3b:9e:d2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.10/24 brd 192.168.3.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.3.15/24 scope global secondary ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe3b:9ed2/64 scope link 
       valid_lft forever preferred_lft forever
-------------------------分割线-------------------------
[root@localhost ~]# ip addr add 192.168.3.25/24 dev ens33 label ens33:0
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.3.10  netmask 255.255.255.0  broadcast 192.168.3.255
        inet6 fe80::20c:29ff:fe3b:9ed2  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:3b:9e:d2  txqueuelen 1000  (Ethernet)
        RX packets 8062  bytes 8074316 (7.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4353  bytes 410627 (401.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.3.25  netmask 255.255.255.0  broadcast 0.0.0.0
        ether 00:0c:29:3b:9e:d2  txqueuelen 1000  (Ethernet)
#删除IP地址
[root@localhost ~]# ip addr del 192.168.3.15 ens33
#显示IP地址
[root@localhost ~]# ip addr list ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:3b:9e:d2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.10/24 brd 192.168.3.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.3.15/24 scope global secondary ens33
       valid_lft forever preferred_lft forever
    inet 192.168.3.25/24 scope global secondary ens33:0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe3b:9ed2/64 scope link 
       valid_lft forever preferred_lft forever

ip link:ip的接口

#关闭网卡多播功能
[root@localhost ~]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:3b:9e:d2 brd ff:ff:ff:ff:ff:ff
    
[root@localhost ~]# ip link set multicast off dev ens33

[root@localhost ~]# ip link show ens33
2: ens33: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:3b:9e:d2 brd ff:ff:ff:ff:ff:ff

ip route:ip的路由管理

[root@localhost ~]# ip route list   #查看路由
default via 192.168.3.2 dev ens33 proto static metric 100 
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.10 metric 100 

[root@localhost ~]# ip route add 10.10.0.0/16 dev ens33 #添加路由
[root@localhost ~]# ip route list
default via 192.168.3.2 dev ens33 proto static metric 100 
10.10.0.0/16 dev ens33 scope link 
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.10 metric 100 

[root@localhost ~]# ip route del 10.10.0.0/16   #删除路由
[root@localhost ~]# ip route list
default via 192.168.3.2 dev ens33 proto static metric 100 
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.10 metric 100 

ss:状态及统计数据查看
ss是另一个用来显示sockets相关数据的工具,自带过滤器功能比netstat强大.

[root@localhost ~]# ss -s     #查看当前服务器的网络连接统计
Total: 560 (kernel 1071)
TCP:   5 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0

Transport Total     IP        IPv6
*      1071      -         -        
RAW   1         0         1        
UDP   2         1         1        
TCP   5         3         2        
INET      8         4         4        
FRAG      0         0         0       
-------------------------分割线-------------------------
[root@localhost ~]# ss -tnl     #查看端口
State       Recv-Q Send-Q              Local Address:Port                             Peer Address:Port              
LISTEN      0      128                             *:22                                          *:*                  
LISTEN      0      100                     127.0.0.1:25                                          *:*                  
LISTEN      0      128                            :::22                                         :::*                  
LISTEN      0      100                           ::1:25                                         :::*    

监控工具 Htop

htop是一个Linux下的交互式的进程浏览器,是top的增强版,可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。

1.安装Htop

]# yum install epel-release   #先安装epel仓库  
]# yum install htop -y        #再安装htop

2.Htop的界面

安装完成后,命令行中直接敲击htop命令,可进入htop的界面

01.jpg

左上方的数字 1、2、3、4 代表服务器有4个CPU核心,分别表示他们的百分比
Mem 表示物理内存的使用比率
Swp 表示交换内存的使用比率
右上方 Tasks 表示用户空间进程中的当前任务数量
thr 表示线程数量, running 表示运行数量
Load average 是平均负载 1分 5分 15分钟
Uptime 服务器运行时间

02.jpg

以上各项分别为:

PID:进程ID号
USER:运行此进程的用户
PRI:进程的优先级
NI:进程的优先级数值
VIRT:进程占用的虚拟内存值
RES:进程占用的物理内存值
SHR:进程占用的共享内存值
S:进程的运行状况,R表示正在运行、S表示睡眠,等待唤醒、Z表示僵死态
%CPU:该进程占用的CPU使用率
%MEM:该进程占用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间
COMMAND:进程启动的启动命令名称
   选项:
    -d #:指定延迟时间间隔;
    -u UserName:仅显示指定用户的进程;
    -s COLUME:以指定字段进行排序;

界面中快捷键说明

u: 只查看某个指定user的线程,敲入u会出现选项
H:要不要显示或隐藏用户线程数
K:显示内核线程
F:光标在哪个线程
PMT:排序方式,cpu占用,内存占用,和线程累积占用时间
F6 > :手动排序,选定以指定字段排序
c : 能标记出一个进程和他所有的子进程
a : 设置进程绑定在哪个cpu,或有限几个cpu
l : 能够显示一个选定的进程所打开的所有文件
s : 能够跟踪一个进程所发起的系统调用,进入后F4自动刷新
t : 以层级关系显示各进程状态
  • F1进入帮助


    03.jpg
  • F2进入界面配置


    04.jpg

监控工具 vmstat

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、IO读写、CPU活动等进行监视。

Report virtual memory statistics  
vmstat [options] [delay [count]]
 选项:
    -s:显示内存统计数据;
~]# vmstat 2 3
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 585372   2108 313296    0    0     1     1   13   11  0  0 100  0  0
 0  0      0 585372   2108 313328    0    0     0     0  122   93  0  0 100  0  0
 0  0      0 585372   2108 313328    0    0     0     0  114   89  0  0 100  0  0
  • procs进程
    r:等待运行的进程的个数;CPU上等待运行的任务的队列长度;
    b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度;

  • memory内存
    swpd:交换内存使用总量;
    free:空闲的物理内存总量;
    buffer:用于buffer的内存总量;缓冲
    cache:用于cache的内存总量;缓存

  • swap交换分区
    si:数据进入swap中的数据速率(kb/s),站在swap的角度是换进
    so:数据离开swap的速率(kb/s),换出

  • io块级别
    bi:从块设备读入数据到系统的速度(kb/s)
    bo:保存数据至块设备的速率(kb/s)

  • system中断和上下文切换
    in:interrupts,中断速率;
    cs:context switch, 上下文 切换的速率;

  • cpu各种占用或空闲的空间
    us: user space,用户空间占据cpu的百分比
    sy:system
    id:idle,空闲的
    wa:wait,等待io完成的
    st: stolen,被虚拟化技术偷走的

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

ping -c 2 -W 1 192.168.0.1
-c 2 : 每个ip只ping2次
-W 1 : 每次ping的超时等待为1

使用while编程

#!/bin/bash     #代码
declare -i i=1

while [ $i -lt 255 ];do
        ping -c 2 -W 1 192.168.0.$i
        if [ $? -eq 0 ];then
                echo "success!"
        else
                echo "fail!"
        fi
        let i++
        echo "##########"
done
-------------------------分割线-------------------------
[root@localhost ~]# bash a.sh   #执行代码
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=128 time=3.03 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=128 time=2.89 ms

--- 192.168.0.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 2.890/2.963/3.037/0.091 ms
success!
##########
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.

--- 192.168.0.2 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1000ms

fail!
##########
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.

--- 192.168.0.3 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1000ms

fail!
##########

使用until编程

#!/bin/bash
declare -i i=1

until [ $i -gt 255 ];do
        ping -c 2 -W 1 192.168.0.$i
        if [ $? -eq 0 ];then
                echo "success!"
        else
                echo "fail!"
        fi
        let i++
        echo "##########"
done
-------------------------分割线-------------------------
[root@localhost ~]# bash a.sh
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=128 time=2.63 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=128 time=2.35 ms

--- 192.168.0.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 2.352/2.493/2.635/0.150 ms
success!
##########
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.

--- 192.168.0.2 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms

fail!
##########
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.

--- 192.168.0.3 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms

fail!
##########
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容