Linux中网络配置应用以及进程管理

一、OSI七层模型和TCP/IP五层模型


OSI七层模型

    OSI模型包含7层,这7层从上而下分别为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。这些层分为2组,其中上三层定义了终端中的应用程序如何彼此通信以及如何与用户交流;而下4层定义了如何进行端到端的数据传输。下层为上层提供服务,上层为下层提供接口。
    1、各层的定义:
  • 应用层:实际应用程序之间的接口,是人机交互的场所,为计算机用户提供应用接口,也为用户直接提供各种网络服务。
  • 表示层: 向应用层提供数据,并数据的转换和编码,以及代码的格式化,使数据标准化,确保数据能够让另一系统的应用层所识别
  • 会话层:在表示层实体之间建立、管理和终止会话;将用户数据分离;对设备间的对话进行控制,协调和组织各应用程序之间的通信,具有单工、半双工和全双工三种模式。
  • 传输层:负责将数据进行分段并重组为数据流,建立主机端到端的链接,为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。对上层应用程序进行多路复用,建立会话以及拆除虚电路。
  • 网络层:管理设备编制、跟踪设备在网络中的位置并确定最佳的数据传输路径,负责在位于不同网络中的设备之间传输数据流。在互联网中提供路由选择和拥塞控制等服务
  • 数据链路层:提供数据的物理传输,并处理错误通知、网络拓扑和流量控制。将网络层传下的报文封装成帧,供物理层传输。
  • 物理层:定义了要在终端系统之间激活、维护和断开物理链路所需要满足的电气、机械、规程和功能需求,确定了数据终端设备与数据通信设备之间的接口。

    2、OSI模型哥层的功能:

应用层
  • 提供用户界面
  • 文件、打印、消息、数据库和应用程序服务
表示层
  • 数据的转换、压缩和加密服务
会话层
  • 对话控制
  • jia将不同yingyong应用程序的数据进行分离
传输层
  • 提供可靠或不可靠的端到端的传输
  • 重传前的纠错处理
网络层
  • 路由选择
数据链路层
  • 将数据封装成帧
  • 使用MAC地址ti提供介质访问
  • 执行错误检测,但不纠错
物理层
  • 建立数据终端设备与数据通信设备直接的接口

    3、通信模式:对等通信

           对等通信,为了使数据分组从源传送到目的地,源端OSI模型的每一层都必须与目的端的对等层进行通信,这种通信方式称为对等层通信。在每一层通信过程中,使用本层自己协议进行通信。
Linux中网络配置应用以及进程管理

TCP/IP五层模型

   TCP/IP模型分为五层,包括了应用层、传输层、网络层、数据链路层和物理层。
   OSI协议模型与TCP/IP协议模型的对应关系:

OSI结构模型

TCP/IP模型

应用层

应用层

表示层

会话层

传输层

传输层

网络层

网络成

数据链路层

数据链路层

物理层

物理层

1、物理层

对应OSI7层模型的物理层,为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成。一次完整的数据传输,包括激活(在通信的两个数据终端设备间连接起来,形成一条通路)物理连接,传送数据,终止物理连接。   

2、链路层

链路层,又称为数据链路层。通常包含着操作系统中的设备驱动程序和计算机中对应的网卡。链路层负责处理将数字信号转换为电信号并形成特定的数据帧,然后以广播的方式传输给相应的接收方。

3、网络层

网络层又称为互联网层,负责处理以太帧在网络中的活动,如发送、接收、选路等等。另外网络层上使用了Ip地址作为网络层传输的网络地址,其有别与链路层的物理地址,能使得操作系统进行跨网段的互访。网络层主要功能:定义网络地址、划分网段、MAC寻址、数据包路由等。

4、运输层

运输层主要为主机之间的通信提供端到端的通信,其主要功能包括:端口定义、标识应用身份、端口之间的通信等。网络层使用两个不同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。其中TCP为主机之间的通信提供了可靠的数据传输,使用三次握手的机制来建立相应的TCP连接,以确保双方通信的可靠性。而UDP则提供了一种简单的传输方式,而简单也意味着不可靠。

5、应用层

在前面三层的多个协议及功能的支持下,应用层负责处理应用程序的相关数据。应用层定义了各种各样的协议来规范数据格式,并且可以按照对应的格式来解读数据。

 
   各层的功能:

     

应用层
  • 定义了用于节点间应用程序通行的协议
  • 定义了用户界面规范
传输层
  • 指定了网络对分组进行逻辑传输相关的协议
  • 提供可靠地端对端通信和数据传输
网络层
  • 定义网络地址、划分网段、MAC寻址、数据包路由等
数据链路层
  • 处理将数字信号转换为电信号并形成特定的数据帧,然后以广播的方式传输给相应的接收方。
物理层
  • 为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成

二、iproute家族


ip命令

ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。
语法
ip [options] OBJECT {command | help}
选项参数
options:
  • -r:显示主机的时候,不使用ip地址,尝试使用主句的域名显示;
  • -s:显示更详细的信息
OBJECT:={link | address | route | netns}
 link:网络设备配置
  • ip link set :改变设备属性
    • DEVICE:指明要管理的设备,可省略
    • DEVICE {up | dowm}:启用或禁用接口
    • DEVICE promisc {on | off} :启用或禁用接口的混杂模式
    • DEVICE name NEWNAME:指定接口使用新的名称
  • ip link show [DEVICE]:显示设备属性
  • ip link list:显示设备的属性列表
address:协议地址管理
  • ip address add:添加新的IP地址
    • ip addr add IFADDR dev IFACE。可在统一接口上添加多个IP地址,同网段ip地址显示为secondary
    • [label NAME]:为额外添加的ip地址指明接口别名
    • [broadcast ADDRESS]:广播地址,会根据ip和netmask自动计算得到
    • [scope scope_value]:设定地址作用域
      • global:全局可用
      • site:
      • link:接口可用,不用于与其他主机通信
      • host:进本即可用
route:路由管理
  • ip route add:添加路由
    • dev NAME:设置路由从哪个接口出去
    • via ADDRESS:下一跳地址
    • src ADDRESS:一个接口有多个ip地址时,要指明源地址
    • ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
    • ip route add default via GW:添加默认路由
  • ip route show l list:显示路由表
  • ip route change:更改路由,使用格式与ip route add相同
  • ip route replace:替换路由,格式与ip route add相同
  • ip route del DESTINATION:删除路由条目
  • ip route flush TYPE PREFIX:清空路由表
  • ip route get TYPE  RPEFIX:获取指定的路由条目
netns:网络名称空间
  • ip netns add NETNAMESPACE_NAME:设定网络名称空间名
  • ip link set IFACE netns NETNAMESPACE_NAME:把指定接口移动到指定网络名称空间中
  • ip netns exec NETNAMESPACE_NAME COMMAND:在网络名称空间中执行命令
  • ip netns del NAME:删除指定的netns
  • ip netns list:列出所有的netns

示例


ss命令

ss命令用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。

语法

ss [options] [FILTER]

选项

  • -t:查看tcp协议相关链接
  • -u:查看udp相关的链接
  • -w:查看raw socket相关的链接
  • -l:查看监听状态的链接
  • -a:查看所有状态的链接
  • -n:以数字格式显示
  • -p:查看相关的进程及其PID
  • -e:查看扩展隔世信息
  • -m:显示内存用量
  • -o:查看计算器信息

FILTER:=[ state TCP-STATE ] [EXPRESSION]:TCP状态过滤功能

TCP的常见状态:

  • LISTEN:监听
  • ESTABLISHED:建立的连接
  • FIN_WAIT_1:发送断开后等待断开确认
  • FIN_WAIT_2:收到断开后确认断开
  • SYN_SENT:确认收到断开信号
  • SYN_RECV:确认
  • CLOSED:

EXPRESSION:

  • dport:目标端口
  • sport:源端口

示例


netstat命令

netstat命令用来打印Linux中网络系统的状态信息,包括路由表、实际的网络连接及每个网络接口设备的状态信息。

语法

netstat [options]

选项参数

  • -r:显示路由表;
  • -n:以数字格式显示,不解析Ip地址为主机名;
  • -t:显示tcp协议相关的套接字连接;
  • -u:显示udp协议的相关连接;
  • -l:显示处于监听状态的连接;
  • -a:显示所有连接;
  • -p:显示相关连接及其对应的进程的名字与PID;
常用选项组合:-rn,-tnl,-unl,-tunl,-tan,-tnlp

示例


route命令

route命令用来显示或设置Linux内核中的网络路由表,route命令设置的路由主要为静态路由。通过route命令添加的路由通常不会永久保存,当重启网络服务或系统后,路由就失效了;若想永久添加相应的路由,需在 /etc/sysconfig/network-scripts/route-INTERFACE下添加相应的路由条目,其支持的路由条目格式有两种:
  • TARGET via GW,这种格式一行是一个路由条目。
  • 每三行为一个路由条目,但是同一个配置文件中不能 与第一种方式混用;

语法

route [options] [OBJECT] [command]

选项参数

options:
  • -n:以数字格式显示地址
  • -A:设置地址类型
  • -C:打印Linux核心的路由缓存
OBJECT:
  • add:添加路由
    • route add [-net |  -host] TARGET gw GETEWAY [dev IFNAME]
      • -net :后面需要跟一个网络地址,表示网络路由
      • -host:后面需要跟一个主机地址,表示主机路由
  • del:删除路由
    • route del [-net | -host] TARGET gw GATEWAY [dev IFNAME]
示例


三、进程管理工具


ps命令

ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。

语法

ps [options]

选项参数

ps命令有三种风格:

  • UNIX选项格式:类似于-a
  • BSD选项格式:如aux
  • GNU长选项:如–help

常用选项:

  • -a:显示所有与终端相关的进程
  • -x:显示所有与终端无关的进程
  • -u:以用户为中心组织进程状态信息的显示
  • -A:显示所有进程信息
  • -e:显示所有进程
  • -f:显示完整格式的进程信息
  • -F:显示更完整格式的进程信
  • -H:以层级结构显示进程的相关信息
常用组合:  aux,-ef,-eFH,-eo或-axo
ps aux中某些列的含义:
  • VSZ:虚拟内存集
  • RSS:resident size常驻内存集
  • STAT:进程状态
    • R:running
    • S:可中断睡眠态
    • D:不可中断睡眠态
    • T:stopped停止态
    • Z:zomble僵死态
    • +:前台进程
    • l:多线程进程
    • N:低优先级进程
    • <:高优先级进程
    • s:session leader
  • C:cpu利用率
  • PSR:当前进程运行的CPU编号
  • START:进程的启动时间;
  • TIME:进程的运行时间;
  • COMMAND:进程名
ps -eo | -axo
  • o  field1······:定义显示进程信息

进程的启动方式:

  • 系统启动过程中自动启动:与终端无关的进程
  • 用户通过终端启动:与终端相关的进程

示例


top命令

top命令通常用于动态显示进程的变化信息,监控Linux系统状态。

语法

top [options]

选项

  • -b:bash,批次显示
  • -n #:显示的批次数量
  • -d #:指明延迟时长,单位为秒

top命令界面:

top命令显示的每一行的意义:

  • 第一行
    • 当前系统时间,即14:33:45
    • 系统启动到现在的运行时长:up 17 min
    • 当前一登录系统的用户数:,即2 users
    • 系统在1,5,15分钟的平均负载,值越小表示系统越空闲,高于1说明当前系统负载过高:即load average:0.00,0.01,0.05
  • 第二行:显示的是​目前进程的总量、进程的运行态、睡眠态、停止态、僵死态进程的数量。即Tasks:…..
  • 第三行:显示的是CPU的整体负载,若是多核心CPU,可按数字键1来切换成不同CPU的负载率
    • ​us:用户空间进程占用cpu百分比
    • sy:内核空间占用CPU百分比
    • ni:nice值调整后额外占用CPU的百分比
    • id:kongxian空闲百分比
    • wa:等待I/O完成占用的cpu百分比
    • hi:处理硬件终端占用CPU的百分比
    • si:处理软中断占用的CPU百分比
    • st:被虚拟机划走的CPU百分比
  • 第四行:表示物理内存和交换分区的使用情况
    • total:总空间
    • free:空闲孔家
    • used:已用空间
    • buff/cache:用于缓冲和缓存的孔家
  • 第五行:表示交换分区的使用情况
    • avail Mem:可用内存空间
  • 第六行:默认显示空白,当在top程序中输入命令时,显示状态的地方,可输入的命令有
    • P:已占据CPU百分比大小排序
    • M:已占据内存空间大小排序
    • T:CPU累计占用时间排序
    • l:是否显示系统负载行
    • t:是否显示进程再要信息即CPU负载状态
    • 1:此为数字1,平局或单独显示CPU的负载状态
    • m:是否显示内存相关状态信息
    • q:退出
    • s:修改延迟时间
    • k:终止指定进程
 
显示进程状态的字段说明:
  • PID:进程ID
  • USER:进程所属的使用者
  • PR:进程优先级
  • NI:nice值
  • VIRT:虚拟内存集
  • RES:进程当前使用的内存大小
  • SHR:共享内存空间大小
  • S:进程的状态
  • %CPU:CPU占用率
  • %MEM:内存占用率
  • TIME+:运行时长
示例

1、查看用户wxq的进程状态,top每5秒刷新一次,共刷新三次

 

htop命令

htop是top的增强版,默认情况下系统没有安装,需要使用epel源来安装。是一个交互式的进程查看器。此命令的显示结果中各行和各字段的含义与top命令相同。

htop命令显示界面:

语法

​htop [options]

选项

  • -d #:延迟时长
  • -u username:仅显示指定用户的进程
  • -s column:根据指定的字段进行排序

交互式子命令:

  • l:显示光标所在进程所打开的文件列表
  • s:显示光标所在进程执行的系统嗲欧总
  • a:绑定进程到指定的cpu
  • #:快速定位光表示PID为#的进程上
  • u:显示所有用户进程
  • H:显示/隐藏用户线程threads
  • K:显示/隐藏内核线程
  • F:使用光标选择进程
  • P M T:根据CPU%,MEM%,TIME排序
  • c:标记进程和子进程
  • Esc:返回主界面

示例


vmstat命令

vmstatmi命令用于报告虚拟内存的状态统计信息,包括进程、内存、磁盘IO等运行信息。

语法

​vmstat [options] [delay [count]]

delay:间隔显示

count:间隔多少秒

参数选项

  • -s:将一些事件导致的内存变化情况列表说明
  • -S:后面可以接单位,如K、M取代bytes的容量
  • -d:列出磁盘的读写总量统计表

显示结果每列表示的含义:

  • proc:进程段
    • r:处于等待运行的进程的个数。就是实时显示CPU上等待运行的任务的队列长度
    • b:处理不可中断睡眠状态的进程的个数,即IO阻塞队列长度
  • memory:内存段
    • swpd:交换内存使用量
    • free:空闲物理内存总量
    • buff:用于buffer缓冲的内存总量
    • cache:用于cache缓存的内存总量
  • swap:交换分区段
    • si:数据进入swap中的速率
    • so:数据离开swap中的速率
  • io:块级IO
    • bi:从块设备读入数据到系统的速率
    • bo:保存数据到块设备的速率
  • system:系统段
    • in:中断速率,每秒被中断的次数
    • cs:进程切换的速率
  • cpu:CPU段
    • us:用户空间占用CPU百分比
    • sy:用于运行内核占用的CPU百分比
    • id:空闲的CPU百分比
    • wa:等待IO花费的时间
    • st:被虚拟化技术划走的cpu百分比

示例

1、内存吧变化列表说明

2、列出磁盘的读写总量

 

 


四、练习


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

a、使用while循环实现:

b、使用until实现

原创文章,作者:N32_王先桥,如若转载,请注明出处:http://www.178linux.com/124371

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询

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

QR code