N31-6

網絡簡介及相關命令

1、簡述osi七層模型和TCP/IP五層模型
OSI(Open System Interconnect),即開放式系統互聯。 一般都叫OSI參考模型,是ISO(國際標準化組織)組織在1985年研究的網絡互聯模型。該體系結構標準定義了網絡互連的七層框架(物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層),即ISO開放系統互連參考模型。
OSI參考模型主要用于學習,參考使用,模型將網絡間的信息傳輸按層次結構劃分為7層,每層負責解決部分小問題,同時應用下層的服務,并向上層提供服務
TCP/IP是目前互聯網上實際使用的數據傳輸協議標準,也是層次結構,一般可以分為5層,有 物理層、數據鏈路層、網絡層、傳輸層、應用層,也可以說是4層,即將物理層和數據鏈路層合并在一起
兩個標準大部分功能都是一致的,底三層(物理層、數據鏈路層、網絡層)功能基本一樣,而OSI的傳輸層、會話層、表示層、應用層簡化成了TCP/IP的傳輸層和應用層

物理層:
該層主要負責鏈路的機械、電氣、功能和規程特性。
將實際傳輸的數據根據使用的傳輸介質,如光纖、銅纜、電磁波等,轉換成合適的信號,如光信號,電信號,聲波信號等
同時定義了傳輸時信號的編碼方式,同步方式,速率等信號傳輸之間的一系列規則

數據鏈路層:
任何數據的傳輸都是需要有源地址和目標地址的,為了相鄰設備之間的通信,也就是局域網內各個設備都是分配了物理地址,又稱MAC地址
數據鏈路層會在網絡層下來的數據前面和后面加上控制信息,包括MAC地址,數據及校驗碼等,也就是封裝成幀,然后送到物理層轉換0、1的信號發送出去
所有收到數據幀的設備會根據數據鏈路層封裝的控制信息,檢查MAC地址,如果目標MAC地址是本機就會接受、解封裝上交給網絡層

網絡層:
主要功能是為了跨網絡進行通信,數據鏈路層解決了局域網內的通信,而在互聯網上通信也就是不同的局域網內設備的通信是通過網絡層解決的
網絡層設置一個網絡地址,也就是IP地址,通過IP地址,數據可以在不同的局域網內跳轉,直到到達目的網絡上的目的主機
網絡層在傳輸層的數據前面加上頭部信息,包括IP地址,控制信息等,發送出去后接收到的用戶會根據IP地址進行路由選擇,最后到達目標IP地址

傳輸層:
根據下面三層提供的服務,數據已經可以在互聯網上的任意兩臺或多臺主機間進行傳輸,但數據到達主機后還需要程序進行處理,也就是需要交給對應的進程
為了區分主機上不同的進程,又添加了一個地址,也就是端口號,通過端口號實現了兩臺主機端到端的通信
傳輸層在上層的數據前面加上頭部信息,包括端口號,流量控制信息、差錯控制信息等,然后交給底三層最終到達目標主機的傳輸層后交給目標端口的進程

會話層:
主要功能是管理和協調不同主機上各種進程之間的通信,負責建立、管理和終止應用程序之間的會話。

表示層:
進程間數據的表示格式,即數據編碼等問題

應用層:
基于應用層的協議開發出程序,用戶通過應用層的程序進行操作,完成各種需求,如發送信息,文件傳輸等

2、簡述iproute家族命令
概述:
iproute家族命令主要都是對于網絡屬性相關的操作,比如網卡設備的查看、啟用、禁用,添加IP地址,路由條目等
主要包括ip命令和ss命令

ip命令簡要用法:
ip [options] OBJECT {COMMAND|help}

OBJECT:
link 管理網卡設備接口
addr 管理網卡接口的地址信息
route 管理網卡接口的路由信息

COMMAND:
ip link set:設置網卡接口屬性,必須指明網卡設備,指明設備時的dev可省略,之后需要跟上其他命令,如
ip link set DEVICE up啟用指定設備
ip link set DEVICE down禁用指定設備
ip link set DEVICE multicast on啟用指定設備的多播功能
ip link set DEVICE multicast off禁用指定設備的多播功能
ip link set DEVICE name NAME重命名網卡接口的名字
ip link set DEVICE mtu 1000設置MTU的大小,默認為1500
ip link set DEVICE netns {PID|NAME}將指定設備接口移動到指定PID的網絡名稱空間,進行統一管理

ip addr:管理地址,常用命令,如
ip addr add ADDRESS dev INTERFACE給指定的網卡接口指定IP地址
ip addr add label NAME dev INTERFACE給指定的網卡接口指定label名字
ip addr del ADDRESS dev INTERFACE刪除指定的IP地址
ip addr list顯示
ip addr flush dev INTERFACE將指定的接口地址清空

ip route:管理路由表,常用命令如
ip route add TARGET/NETMASK via GATEWAY [dev INTERFACE]添加一個目標地址的路由條目
ip route del TARGET/NETMASK刪除到目標地址的路由條目
ip route change TARGET/NETMASK via GATEWAY [dev INTERFACE]修改指定的路由條目
ip route list查看所有的路由條目
ip route get TARGET/NETMASK查看到指定目標地址的路由條目
ip route flush TARGET清空目標路由條目

ss命令:主要用于查看端口號信息
用法:ss [options] [FILTER]
options:
-t查看tcp連接
-u查看udp
-w查看裸套接字的連接
-l查看監聽狀態的連接
-a查看所有狀態的連接
-n以數字形式顯示查看結果
-p查看結果輸出相關程序和PID
-e以擴展模式查看結果
-m顯示常用的內存
-o查看計時器信息

舉例:
ip link set dev ens32 up
ip link set ens32 down
ip link set ens32 multicast on
ip link set ens32 name eth0
ip link show
ip link help
ip addr add 192.168.1.111/24 dev ens32
ip addr add label itfc1 dev ens32
ip addr del 192.168.1.111/24 dev ens32
ip addr flush dev ens32
ip route list
ip ruote add 10.0.1.1/16 via 192.168.2.1 dev ens32
ip route del 10.0.1.1/16
ss -tnl
ss -tnap
ss -unl
ss -utnl

3、詳細說明進程管理工具htop、vmstat等相關命令,并舉例
htop:top命令的加強版,一般在epel倉庫中,需要手動安裝

常用的選項:
-d #指定htop的刷新時間間隔
-u USERNAME顯示指定的用戶運行的進程信息
-s COLUME按照指定的字段進行排序
htop命令會打開一個可以使用鼠標直接操作的窗口界面,點擊上方的COLUME可以直接進行排序,在下方是F1-F10的快捷方式
可以直接輸入相關命令進行操作,如
P按照當前占用的CPU百分比進行排序
M按照占用的內存百分比進行排序
l顯示進程打開的文件里表
s跟蹤進程的系統調用
t以層級關系顯示各進程狀態
a將選定的進程綁定至指定的CPU核心
#可以跳轉至輸入的PID進程
htop命令顯示的常用參數含義:
PID:進程在內核中分配的數字標識
USER:進程的發起用戶,一般也是進程的屬組
PRI:進程的優先級
NI:進程的nice值
VIRT:進程占用的虛擬內存大小
RES:進程占用的實際物理內存的大小
SHR:進程使用的共享內存
S:進程的運行狀態
CPU:當前進程占用的CPU百分比
MEN:當前進程占用的內存百分比
TIME:進程累計占用的CPU時間
COMMAND:進程啟動時使用的命令

vmstat命令:顯示當前系統中的內存及相關的詳細信息
用法:vmstat [options]
options:
-s顯示內存的統計數據,非常詳細

直接輸入vmstat命令,會顯示出當前系統的部分運行信息,但是不會持續刷新,顯示的主要參數有:
procs:進程相關的數據
r 等待運行的進程個數,即CUP上的任務隊列長度
p 處理不可中斷睡眠狀態的進程數,也就是被阻塞的隊列長度

memory:內存
swpd 顯示啟用的swap大小
free 顯示空閑的物理內存大小
buff 內存中buff的大小
cache 緩存的大小

swap:交換分區的數據信息
si 數據進入swap分區的數據速率(kb/s)
so 從swap分區讀出數據的速率

io:塊設備的讀寫速率
bi 數據塊保存至塊設備的速率
bo 從塊設備中讀取數據塊的速率

system:系統運行的相關性能參數
in 中斷速率,每秒的中斷數量,interrupt
cs 系統上下文切換的速率,每秒進程的切換數量,context switch

cpu:當前系統中的cpu運行情況
us 用戶空間占用的百分比
sy 系統空間占用的CPU
id CPU的空閑百分比
wa 等待IO花費的百分比
st 被虛擬化偷走的CPU百分比

kill命令:向指定的進程發送信號,實現對進程的管理
用法:kill [-s SIGNAL|-SIGNAL] PID…

在不指定發送的信號時,默認是發送15)SIGTERM信號,終止運行中的進程,可以使用kill -l查看可用的信號
常用的信號:
1)SIGHUP 不關閉進程直接重讀配置文件
2)SIGINT 打斷正在運行的進程,相當于Ctrl+c
9)SIGKILL 殺死運行中的進程,強制進行
18)SIGCONT 喚醒進程繼續運行
19)SIGSTOP 暫停進程的運行

4、使用until和while分別實現192.168.0.0/24網段內,地址是否能夠ping通,ping通則輸出”success!”,若ping不通則輸出”fail!”
#!/bin/bash
#ping 192.168.0.0/24,true echo success,false echo fail
#2018-7-29
i=1
while [ $i -lt 255 ];do
ping -c 2 -w 1 -i 0.01 192.168.0.$i > /dev/null
if [ $? -eq 0 ];then
echo “192.168.0.$i success”
else
echo “192.168.0.$i fail”
fi
let i++
done

#!/bin/bash
#ping 192.168.0.0/24,true echo success,false echo fail
#2018-7-29
i=1
until [ $i -ge 255 ];do
ping -c 2 -w 1 -i 0.01 192.168.0.$i > /dev/null
if [ $? -eq 0 ];then
echo “192.168.0.$i success”
else
echo “192.168.0.$i fail”
fi
let i++
done

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/104145

(0)
貴上蔣貴上蔣
上一篇 2018-07-29
下一篇 2018-07-29

相關推薦

  • 使用ansible完成keepalived高可用Nginx的配置;

    編寫ansible role,完成keepalived高可用Nginx的配置;

    2018-07-12
  • sed命令

    sed命令 sed是一種流編輯器,用于對文本逐行讀取逐行處理,處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(patternspace),接著用sed命令處理緩沖區中的內容,處理完成后,把處理后結果輸出到標準輸出。接著處理下一行,這樣不斷重復,直到文件末尾。 命令語法 sed [OPTION]… {script-only-if-no-othe…

    Linux筆記 2018-06-12
  • 軟件包管理 rpm yum的使用

    軟件包管理 鏈接主要作用是吧各個模塊之間互相引用的部分處理好, 使得各個模塊之間能夠正確的鏈接,分為靜態和動態 靜態鏈接 ?以.a為后綴 ?把程序對應的依賴庫復制到包 ? ? ? ? ? 升級難 需重新編譯 ?占用空間多 遷移容易 動態鏈接 ?以.so為后綴 把依賴加做動態鏈接 ? ?占用空間少 ?升級方便 ? ? ? ? ? 若一個庫被刪,那么所有依賴此庫…

    Linux筆記 2018-04-22
  • selinux 和 awk的使用

    selinux 和 awk的使用

    Linux筆記 2018-05-15
  • Linux運維初步—第三周

    Linux運維初步—第三周總結與練習 標簽(空格分隔): linux入門 linux 運維 — 寫作:N27_loong 2017-7-27[TOC] 一、本周主要內容回顧: 用戶(組)管理: – 增加用戶或組,指定用戶權限、家目錄路徑、用戶屬組屬主的變更; – 用戶密碼和組密碼加密和驗證的設計和文件存儲位置;…

    Linux筆記 2018-07-27
  • 軟件包的管理課程

    軟件運行和編譯 ? ABI:Application Binary Interface Windows與Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 庫級別的虛擬化: Linux: WINE Windows: Cygwin ? API:Application Progr…

    2018-04-29
欧美性久久久久