一.簡述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?。骸ook 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核心
交互式命令(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.www58058.com/95377