TCP/IP五层模型以及linux网络管理命令

2018-08-01  本文已影响28人  林家振_3cfd

第六周 "1、简述osi七层模型和TCP/IP五层模型

1.1 OSI七层模型

全称:open system Internetconnection(开放系统互联)

由ISO国际标准化组织定义

目的:规范网络环境,实现软硬件兼容

内容:共分为七层,自上而下分别为:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。

应用层:应用程序及接口

表示层:对数据进行转换,加密、压缩

会话层:维持不同应用程序的数据分离

传输层:提供可靠的端到端的报文传输和差错控制

网络层:将分组从源端到目的端,提供路由选择

数据链路层:将分组数据封装成帧,提供节点到节点的方式传输

物理层:在媒体上传输比特,提供电气和机械的规约

举例:小明和小红需要通过QQ传输一段视频

应用层:QQ这个软件

表示层:对传输的视频进行压缩加密

会话层:打开一个qq窗口

传输层:断点续传,保证数据端到端的传递

网络层:路由选择,传递数据和选路

数据链路层:交换机 节点到节点 MAC

特点:上层依赖于下层,下层为上层提供服务

1.2TCP/IP五层协议

TCP/IP的应用层相当于OSI七层协议的应用层、表示层、会话层,其他各层一一对应,在每一层工作者不同的设备,如网络层工作着路由器,数据链路层工作着交换机;每一层的协议也不通。

应用层:为应用软件提供接口,使应用程序能够使用网络服务

常见的应用层协议:

--http(80)、https(443)、dns(53)

-ftp(20/21) -smtp(25) -pop3(110)  -telnet

传输层(TCP/UDP)

2、简述iproute家族命令

静态配置地址的方法有一下几种方式:

(1)ifconfig (2)ip命令 (3)GUI工具 (4)TUI工具 (5)编辑配置文件

2.1ifconfig[Interface] -a:包括未激活状态的所有接口

启用或者禁用:ifconfig IFNAME up|down 也可以是启用:ifup IFNAME 禁用:ifdown IFNAME

设置IP地址:ifconfig IFNAME IP/Netmask [up]   或者:ifconfig IFNAME IP netmask Netmask

设定的地址会立即送往内核,因此,会立即生效,但不会永久生效。

2.2通过ip命令来配置网卡IP地址参数

ip [OPTIONS] OBJECT {COMMAND| help}

OBKECT:={link | addr | route}

link:连接接口,如eth0 

addr:管理接口上的地址

route:管理路由地址

link有如下子属性:

set:设定接口属性  ip link set DEVICE {up|down}:启用或者关闭接口

promisc{on|off}:是否支持混杂模式:

name NEWNAMW:设定接口使用新名字

show:显示接口状态,例如启用的特性,HWADDR等;

ip link  show [DEVICE],显示设备相关信息

addr:管理地址

add:添加地址

 del:删除地址

  ip addr {add | del} IFNAME dev STRING

show:显示该网卡的所有地址

flush:清除协议地址

route:管理路由

list|show:显示路由

add:添加路由 

ip route add DESTINETION via GATEWAY [dev IFNAME]

del:删除路由

ip route del:

2.3路由管理

主机想访问其他网络就必须有网关和相应的路由信息,路由管理主要通过route命令来管理。

2.3.1 查看本机内核路由表:route -n

-n:以数字格式显示地址 route -n

2.3.2 添加路由:新增路由条目,用户告诉本机至某目标网络或主机要经过的下一跳路由

route add [-net|-host] TARGET gw GATEWAY [dev IFNAME]

-net 后面需要跟一个网络地址,表示网络路由

-host后面跟一个主机地址,表示路由地址

2.3.3删除路由:

route del [-net|-host] TARGET gw GATEWAY [dev IFNAME]

注意:所有配置立即发往内核中的协议栈,所以会立即生效;不会永久生效,如果想永久生效就得修改对应的静态路由的配置文件,配置文件可以通过两种方式进行定义。(配置文件路径为 /etc/sysconfig/network-scripts/route-IFNAME)

2.3.4 网络状态探测工具:

netstat -r:显示路由表

-n:numeric,数字显示,不反解ip地址至主机名:

-t:tcp 协议的相关连接

-u:udp协议的相关连接

-l:显示所有处于监听状态(即等待别的进程连接访问)

-a:显示所有连接,对于tcp而言即处于各种状态;

-p:显示相关连接的关联到的进程的名字及PID;

常用组合:-tcp -udp

ss:-t:tcp协议相关连接

-n:数字格式

-u:udp相关的连接

-l:处于监听状态

常用组合:-tnl -unl -tan 

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

3.1  ps:显示系统当前进程的运行情况

选项与参数:-A:所有的进程均显示出来,与-e有同样的效果

                      -a:不与终端相关的进程

                       -u:与用户相关的进程

                         x:通常与a参数一起使用,列出较为完整的信息

输出格式:

                    l:较详细的将该pid的信息列出来

                    j:工作格式(job format)

                   -f:做一个较为完整的输出

常见的组合方式:

1、ps -ef  以完整的信息显示所有进程的信息

2、ps aux 

3、 ps axo

进程有以下几种状态:

R:running,运行状态;

S:interruptable sleeping,可中断睡眠

D:uninteruptable sleeping,不可中断睡眠

T:stopped

Z:zombie

自定义显示ps axo ,如:只显示pid,command,psr,pri,ni

我们有时还可能只显示指定的进程信息,此时就可以通过pgrep命令来检索,例如查找root用户的进程:pgrep -U root

显示指定命令所启动的进程ID:pidof

语法格式:pidof PROGRAM

3.2 top:动态的持续监控进程的状态

VIRT:进程需要的虚拟内存大小,而非使用的虚拟内存大小

RES:进程实际所占用的内存大小,不包括swap

TIME+:累计使用的CPU时间大小

3.3 uptime:更加简洁地命令,列出当前系统时间,登录时长,登录用户数,以及系统的平均负载

3.4htop:htop是top的增强版命令,系统默认没有安装,需要epel源来进行安装。

htop支持的一些选项:

-d #:延迟时长

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

-s COLUMN:根据指定的字段进行排序

3.5 vmstat:vmstat主要用来动态显示系统资源的使用情况,这些资源包括:磁盘,内存网络cpu等

用法:vmstat【OPTION】【delay【count】】

-s:将一些时间导致的内存变化列出来

-S:后面可以接单位,如K、M取代bytes的容量;

-d:列出磁盘的读写总量统计表

3.6 glances:glances是一款用于Linux、BSD的开源命令行系统监视工具,它使用Python语言开发,能够监视CPU、磁盘、内存、网络流量、文件系统、系统温度等等,功能非常强大。

glances的使用方法及常用选项:

             -b:以Byte/s为单位显示网卡设备数据交换速率

-d:关闭磁盘IO的功能模块

-f: /path/to/somefile:设置输出文件的位置及格式

-o{HTML|CSV}

-m:关闭mount功能模块

-n:关闭网络功能模块

-r:关闭进程列表功能模块

-t:指定延时时长,默认3秒

-l:单独显示每颗CPU的相关负载数据信息

glances支持远程模式,即可以在C/S模式工作

Server:以监听模式启动glances:glances -s -B IPADDR,此时的IPADDR表示用于指明监听的本地地址;

Client:以远程模式启动glances,远程连入指定服务器,启动:glances -c IPADDR

-c:用于连入的服务器地址

3.7dstat:dstat是可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat克服了命令的局限并增加了另外的功能,增加了监控项,变得更加灵活。dstat可以很方便的监控系统运行状态并用于基准测试和排除故障。

dstat可以让你实时看到系统的所有资源

--top-cpu:显示最占用CPU的进程

--top-io:显示最消耗io的进程

--top-mem:显示最消耗内存的进程

--tcp:显示tcp套接字相关的数据

3.8 kill:显示当前系统的可用信号,并对进程发送信号

kill -l:可显示当前系统的可用信号

信号可以用完整名称,简写名称和数字序号表示

向进程发送信号:kill [-SIGNAL]PID

killall [-SIGNAL]PROGRAM,这个使用的是进程名称

3.9作业管理

1、对于已经启动并处于运行的作业:使用Ctrl+z

2、对于尚未启动的作业:使用 COMMAND &

作业查看:jobs

作业控制命令:fg(将作业调回前台)bg(将作业调入后台)

kill【%job_num】:终止指定的作业

3.10 调整nice值的方法:

1、对于尚未启动的进程:nice -n N COMMAND:N表示nice。范围是-20~19

2、对于已经启动并在运行的进程:renice -n  N PID

注意:ps -l 可以查看进程的优先级及nice值

4、使用until和while分别实现192.168.0.0/24

网段内,地址是否能够ping通,若ping通则输出""success!"",若ping不通则输出""fail!""

4.1使while循环:

declare -i i=0

while [ $i -lt 255 ];do

    ping 192.168.0.$i >& /dev/null

    if [ $? -eq 0 ];then

      echo "192.168.0.$isuccess!"

else

  echo "192.168.0.$ifailed!"

fi

let i++

done

4.2使用until循环

declare -i i=0

until [ $i -ge 255 ];do

    ping 192.168.0.$i >& /dev/null

    if [ $? -eq 0 ];then

      echo "192.168.0.$isuccess!"

else

  echo "192.168.0.$ifailed!"

fi

let i++

done

上一篇 下一篇

猜你喜欢

热点阅读