Linux网络基础

Linux网络基础

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

OSI七层模型

OSI 是 Open System Interconnection的缩写,是开放式系统互联的意思。由国际标准化组织制定了OSI模型,该模型定义了不通计算机互联的标准,是设计和描述计算机网络通信的基本框架。OSI模型把网络通信的工作分为7层,层底层向上一次为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

  • 物理层(Physical Layer):OSI分层结构中最底层,建立在传输媒介基础上,实现设备之间的物理接口。物理层的数据格式是传输比特流(bit)。典型设备为:光纤、同轴电缆、双绞线、网卡、中继器、集线器等;
  • 数据链路层(Data Link Layer):在物理层提供比特流服务的基础上,将比特信息封装成数据帧Frame,起到在物理层上建立、撤销、标识逻辑链接和链路复用以及差错校验等功能。通过使用接收系统的硬件地址或物理地址来寻址。建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,同时为其上面的网络层提供有效的服务。数据的单位为帧(Frame),典型设备为:网桥、交换机等;
  • 网络层(Network Layer):网络层也称通信子网层,是高层协议之间的界面层,用于控制通信子网的操作,是通信子网与资源子网的接口。在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点,确保数据及时传送。网络层将解封装数据链路层收到的帧,提取数据包,包中封装有网络层包头,其中含有逻辑地址信息源站点和目的站点地址的网络地址。网络层的协议代表有:IP、ipx、OSPF等;
  • 传输层(Transport Layer):传输层建立在网络层和会话层之间,实质上它是网络体系结构中高低层之间衔接的一个接口层。用一个寻址机制来标识一个特定的应用程序(端口号)。传输层不仅是一个单独的结构层,它还是整个分层体系协议的核心,没有传输层整个分层协议就没有意义。传输层的协议代表为:TCP、UDP等;
  • 会话层(Session Layer):这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。
  • 表示层(Presentation Layer):表示层向上对应用层提供服务,向下接收来自会话层的服务。表示层是为在应用过程之间传送的信息提供表示方法的服务,它关心的只是发出信息的语法与语义。表示层要完成某些特定的功能,主要有不同数据编码格式的转换,提供数据压缩、解压缩服务,对数据进行加密、解密。例如图像格式的显示,就是由位于表示层的协议来支持。
  • 应用层(Application Layer):网络应用层是通信用户之间的窗口,为用户提供网络管理、文件传输、事务处理等服务。其中包含了若干个独立的、用户通用的服务协议模块。网络应用层是OSI的最高层,为网络用户之间的通信提供专用的程序。应用层的内容主要取决于用户的各自需要,这一层设计的主要问题是分布数据库、分布计算技术、网络操作系统和分布操作系统、远程文件传输、电子邮件、终端电话及远程作业登录与控制等。应用层的协议代表有:telnet、ftp、http、snmp、dns等等。

TCP/IP五层模型

Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

  • 物理层和数据链路层:类似于OSI七层模型中的物理层与数据链路层;
  • 网络层:对应OSI7层模型的网络层,主要解决主机到主机的通讯问题,所包含的协议设计数据包在整个网络上的逻辑传输包括:路由选择和中继.激活,终止网络连接.差错检测与恢复. 排序,流量控制.服务选择. 网络管理有3个主要协议:网际协议(IP),互联网组管协议(IGMP),互联网控制报文协议(ICMP)。
  • 传输层:对应OSI7层模型的传输层,为应用层实体提供端到端的通信功能,保证数据包的顺序传送及数据的完整性。有2个主要的协议:传输控制协议(TCP)和用户数据包协议(UDP)。
  • 应用层:对应OSI7层模型的应用层,表示层和会话层,为用户提供各种服务,如:FTP,DNS,SMTP等。

二、简述iproute家族命令

Linux iproute家族中命令包括:ip命令、ss命令、nmcli命令、nmtui命令等,以下主要介绍ip命令、ss命令这两个常用命令。

  • IP命令:显示或控制路由设备、策略路由和隧道

格式:ip [OPTION] OBJECT {COMMAND | help}

常用object有:link,addr,route,netns;OBJECT可简写,各OBJECT的子命令也可简写,接上OBJECT之后可以在后面再接上具体的OBJECT 支持的选项。

  • ip addr:
    功能:ip地址的删除或者添加
    格式:
        # ip addr {add | del} IFADDR dev STRING
    

STRING:

[label LABEL] : 添加地址时指明网卡别名

[scope {global | link |shost}] :作用域

global :全局可用

link:仅链接可用

host :本机可用

[broadcast ADDRESS] :指明广播地址

         # ip address show : look at protocol addresses

[dev DEVICE]

[label PATTERN]

[primary and secondary]

        # ip address flush : flush protocal address
  • ip route:

    1、添加新路由 : ip route add

# ip route add TARGET via GW dev IFACE src SOURCE_IP

TARGET src

说明:

当为主机路由时:ip

当为网络路由时 :ip/mask,要加子网掩码

src:只有当网卡ip地址被设置多个时才使用这个

eg:

# 指定设备为eth0添加一个路由192.168.1.3,网关为172.16.0.1,这是一个主机路由。网络路由和默认路由参考ifcfg里面的route命令

2.改变路由 :ip route change

格式:# ip route del TYPE PRIEFIX

3.替换或添加一个新路由 :ip route replace

4.删除路由 :ip route delete

格式:# ip route del TARGET

5.查看路由 :ip route show

6.清空路由 :ip route flush

格式:# ip route flush [dev IFACE] [VIA PREFIX]

[dev IFACE] :仅清空和某个接口相关联的路由,若省略,则表示所有的

[via PREFIX] :只清空或者显示与指定网关相关的

  • ip link:

功能:网络设备配置(网络接口) 格式:

# ip link set dev IFACE

网络接口的设置(dev表示设备),IFCAE后可接一些属性,dev可以省略                  # ip link show:显示网卡信息

[dev IFACE] :指定接口

eg:ip link show dev ens33

[up] :仅显示处于激活状态的接口

# ip link name NAME :为网络接口重命名

SS命令:

功能:网络状态查看工具 格式: ss [OPTION]…[FILTER]

选项:

-t :tcp协议相关 -u :udp协议相关 -w :裸套接字相关 -x :unix sock相关 -l :listen状态的连接 -a :所有 -n :数字格式 -p :相关的程序及PID -e :扩展的信息 -m:内存用量 -o:计时器信息

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

常用组合:

-tan,-tanl,-tanlp,-uan

说明:FILTER是过滤器

格式:

[ state STATE-FILTER ] :显示特定状态的连接

[ EXPRESSION ] :自己给定表达式     即( dport = :ssh or sport = :ssh )’

sport、deport表示仅显示源端口或者目标端口

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

1.htop命令:

htop 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses。与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。

htop [-dChusv] 
    常用选项: 
        -d #:指定延迟时间间隔 
        -u UserName:仅显示指定用户的进程 
        -s COLUME:以指定字段进行排序 
        -C:不用颜色显示 
        -h:显示帮助 
        -v:显示版本信息 子命令: 
        l:显示选定的进程打开的文件列表 
        s:跟踪选定的进程的系统调用 
        t:以层级关系显示各进程状态 
        a:将选定的进程绑定至某指定的CPU核心

Linux网络基础

交互式命令(INTERACTIVE COMMANDS)

上下键或PgUP, PgDn 选定想要的进程,左右键或Home, End 移动字段,当然也可以直接用鼠标选定进程;

Space 标记/取消标记一个进程。命令可以作用于多个进程,例如 “kill”,将应用于所有已标记的进程

U 取消标记所有进程

s 选择某一进程,按s:用strace追踪进程的系统调用

l 显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件

I 倒转排序顺序,如果排序是正序的,则反转成倒序的,反之亦然

+, – When in tree view mode, expand or collapse subtree. When a subtree is collapsed a “+” sign shows to the left of the process name.

a (在有多处理器的机器上) 设置 CPU affinity: 标记一个进程允许使用哪些CPU

u 显示特定用户进程

M 按Memory 使用排序

P 按CPU 使用排序

T 按Time+ 使用排序

F 跟踪进程: 如果排序顺序引起选定的进程在列表上到处移动,让选定条跟随该进程。这对监视一个进程非常有用:通过这种方式,你可以让一个进程在屏幕上一直可见。使用方向键会停止该功能。

K 显示/隐藏内核线程

H 显示/隐藏用户线程

Ctrl-L 刷新

Numbers PID 查找: 输入PID,光标将移动到相应的进程上。

vmstat命令:

vmstat命令:虚拟内存统计数据 vmstat显示系统进程,cup,IO块,物理内存等等相关信息

vmstat  [options]  [delay [count]]
    选项:
        -s:显示内存统计数据

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

– 使用until方法实现:

#!/bin/bash 
declare -i i=1 
while [ $i -lt 255 ]; do 
    ping -c 5 -i 1 192.168.0.$i 
    let i++ 
    if [ $? -eq 0 ];then 
        echo "success!" 
    else 
        echo "fail!" 
    fi 
    done

– 使用while方法实现:

#!/bin/bash 
declare -i i=1 
until [ $i -gt 255 ];do 
    ping -c 5 -i 1 192.168.0.$i 
    let i++ 
    if [ $? -eq 0 ];then 
        echo "success!" 
    else 
        echo "fail!" 
    fi 
    done

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95377

(0)
gw章gw章
上一篇 2018-04-08
下一篇 2018-04-08

相关推荐

  • MySQL之事务及并发控制

    事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务

    2018-06-12
  • 出来马哥教育

    18年到马哥教育学校Linux

    Linux笔记 2018-07-19
  • ansible的简介和用法

    Ansible  (底层是基于ssh连接的,每次操作其他主机需要输入密码 ,所以首先要实现基于key的公钥验证) 使用ansible: ansible "192.168.60.3" -m shell -a 'ls /root' -k (单个用户在实现基于key的验证前) 安装ansible: yum包的安装:…

    2018-05-28
  • VMware workstations中的虚拟机无法正常开机

    VMware workstations 无法连接MKS vmware上的显示一直黑屏

    2018-03-31
  • 笔记整理-软件包管理

      管理包工具: rpm  集包与工具于一身的管理器 获取途径: https://www.centos.org/download/ http://mirrors.aliyun.com http://mirrors.sohu.com http://mirrors.163.com   常见包的文件名组成: zlib -3.0-11.e17.x…

    Linux笔记 2018-04-22
  • 数组,字符串切片,高级变量

    数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合 数组名和索引 索引:编号从0开始,属于数值索引 注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引 bash4.0版本之后开始支持 bash –version   查看bash版本 bash的数组支持稀疏格式(索引不连续) 声明数组: de…

    Linux笔记 2018-05-13