1、簡述osi七層模型和TCP/IP五層模型
1、 osi七層模型
1、應用層:OSI 參考模型中最靠近用戶的一層,為計算機用戶提供應用接口,也為用戶直接提供各種網絡服務。我們常見應用層的網絡服務協議有:HTTP,HTTPS,FTP,POP3、SMTP等。
2、表示層:提供各種用于應用層數據的編碼和轉換功能,確保一個主機的應用層發送的數據能被另一個主機的應用層識別。如果有必要,該層可以提供一種標準的表示形式,用于將計算機內部的多種數據格式轉換成通信中采用的標準表示形式。
3、會話層:負責建立、管理和終止表示層實體之間的通信會話。
4、傳輸層:建立了主機之間的端到端的連接。傳輸層的作用,是為上層協議提供端到端的可靠的透明的數據傳輸服務,包括差錯控制和流量控制等問題。我們通常說的TCP、UDP就是在這一層。端口號即是這里的“ 端 ”。TCP 協議。UDP 協議。
5、網絡層:網絡層通過 IP 尋址來建立兩個網絡節點之間的連接,為源主機的傳輸層送來的分組,選擇合適的路由和交換節點,正確無誤的按照 IP 地址傳送給目的主機的傳輸層。就是通常說的 IP 層,使用 IP協議和路由器的路由選擇信息。數據傳輸單位是分組。IP 地址。路由器。IP 協議。
6、數據鏈路層:將比特組合成字節,再將字節組合成幀,使用數據鏈路層地址 (以太網使用的是 MAC 地址)來訪問介質,并進行差錯檢測。在物理層提供的服務基礎之上,負責在通信的實體之間建立數據鏈路。傳輸以幀為單位的數據包。
7、物理層:實際的最終信號的傳輸是通過物理層實現的。通過物理介質傳輸0-1 比特流。常用的設備有(各種物理設備)集線器、中繼器、調制解調器、網線、雙絞線、同軸電纜。這些都是物理層的傳輸介質。 傳輸的單位是比特。
2、 TCP/IP 五層模型
1、應用層:對應osi七層模型中的應用層,表示層,會話層;
2、傳輸層 :
3、網絡層 :
4、數據鏈路層 :
5、物理層 :
3、 對應關系圖解
1、簡述iproute家族命令
IP命令
語法:ip [ OPTIONS ] OBJECT { COMMAND | help }
常用OBJECT := { link | addr |route |netns }
OBJECT可簡寫,各OBJECT的子命令也可簡寫;
1、ip link
功能:網絡設備配置
格式:
#ip link set 修改設備屬性,
dev NAME :指明dev
up and down :打開或者關閉
name NAME:重命名接口
mtu number :MTU大小
netns PID :ns為namespace,用于將接口移動到指定的網絡名稱空間
#ip link show :顯示網卡信息
eg:ip link show dev ens111
注意:僅顯示處于激活狀態的接口
2、ip address
功能:ip地址的刪除或者添加
格式:
#ip address add - add new protocol address
ip addr add ADDR dev IFCAE
label NAME :為額外添加的地址指明接口別名;
broadcast ADDRESS :廣播地址,會根據IP和掩碼自動計算
scope SCOPE_VALUE :
global:全局可用
link :僅鏈接可用
host :本機可用
#ip address delete - delete protocol address
用法與add相同
#ip address show - look at protocol addresses
[dev NAME]
[label NAME]
3、ip route
routing table management
#ip route add - add new route
#ip route change - change route
#ip route replace - change or add new one
ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
示例:
ip route add 192.168.2.5/24 via 192.168.2.1 dev eth1 src 200.200.200.200
#p route delete - delete route
ip route delete
示例:ip route delete xxx.xxx.xxx.xxx/xx
#ip route show - list routes
#ip route flush
ip route flush TYPE PRIFIX
#ip route get - get a single route
ip route get TYPE PRIFIX
示例: ip route get xxx.xxx.xxx.xxx/xx
4、ip netns
manage network namespaces
#ip netns list:列出所有的netns
#ip netns add NAME :創建指定的netns
#ip netns del NAME :刪除指定的netns
#ip netns exec NAME COMMAND :在指定的netns中運行命令
3、詳細說明進行管理工具htop、vmstat等相關命令,并舉例
1、htop
上面左上角顯示CPU、內存、交換區的使用情況,右邊顯示任務、負載、開機時間,下面就是進程實時狀況。
下面是 F1~F10 的功能和對應的字母快捷鍵。
Shortcut?Key | Function?Key | 中文說明 |
h,?? | F1 | 查看htop使用說明 |
S | F2 | htop?設定 |
/ | F3 | 搜索進程 |
\ | F4 | 增量進程過濾器 |
t | F5 | 顯示樹形結構 |
<,?> | F6 | 選擇排序方式 |
[ | F7 | 可減少nice值,這樣就可以提高對應進程的優先級 |
] | F8 | 可增加nice值,這樣就可以降低對應進程的優先級 |
k | F9 | 可對進程傳遞信號 |
q | F10 | 結束htop |
命令行選項:
-C --no-color 使用一個單色的配色方案
-d --delay=DELAY 設置延遲更新時間,單位秒
-h --help 顯示htop 命令幫助信息
-u --user=USERNAME 只顯示一個給定的用戶的過程
-p --pid=PID,PID… 只顯示給定的PIDs
-s --sort-key COLUMN 依此列來排序
-v –version 顯示版本信息
交互式命令:
上下鍵或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,光標將移動到相應的進程上
2、vmstat
vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、IO讀寫、CPU活動等進行監視。它是對系統的整體情況進行統計,不足之處是無法對某個進程進行深入分析。
vmstat [options] [delay [count]]
delay:刷新時間間隔。如果不指定,只顯示一條結果。
count:刷新次數。如果不指定刷新次數,但指定了刷新時間間隔,這時刷新次數為無窮。
options:
-a :開啟顯示active/inactive memory
-m :顯示slabinfo信息
-s :顯示各種事件計數器表和內存統計信息,這顯示不重復
-V :查看vmstat命令的版本
-w :可以擴大字段長度,當內存較大時,默認長度不夠完全展示內存。
[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 464188 740 397020 0 0 1 0 8 10 0 0 100 0 0
輸出字段意義:
procs :
r :等待運行的進程數。如果等待運行的進程數越多,意味著CPU非常繁忙。另外,如果該參數長期大于和等于邏輯cpu個數,則CPU資源可能存在較大的瓶頸;
b :處在非中斷睡眠狀態的進程數。意味著進程被阻塞。主要是指被資源阻塞的進程對列數(比如IO資源、頁面調度等),當這個值較大時,需要根據應用程序來進行分析,比如數據庫產品,中間件應用等;
memory :
swpd :已使用的虛擬內存大小。如果虛擬內存使用較多,可能系統的物理內存比較吃緊,需要采取合適的方式來減少物理內存的使用。swapd不為0,并不意味物理內存吃緊,如果swapd沒變化,si、so的值長期為0,這也是沒有問題的;
free :空閑的物理內存的大小;
buff :用來做buffer(緩存,主要用于塊設備緩存)的內存數,單位:KB;
cache :用來做cache(緩存,主要用于緩存文件)的內存,單位:KB;
Swap :
si :從磁盤交換到內存的交換頁數量,單位:KB/秒;
so :從內存交換到磁盤的交換頁數量,單位:KB/秒;
IO :
bi :每秒從塊設備接收到的塊數,單位:塊/秒 也就是讀塊設備;
bo :每秒發送到塊設備的塊數,單位:塊/秒 也就是寫塊設備;
System :
in :每秒的中斷數,包括時鐘中斷
cs :每秒的環境(上下文)切換次數。比如我們調用系統函數,就要進行上下文切換,而過多的上下文切換會浪費較多的cpu資源,這個數值應該越小越好。
Cpu :
us :用戶CPU時間(非內核進程占用時間)(單位為百分比)。 us的值比較高時,說明用戶進程消耗的CPU時間多
sy :系統使用的CPU時間(單位為百分比)
id :空閑的CPU的時間(百分比)
wa :等待IO的CPU時間
示例:[root@localhost ~]# vmstat -s
1004172 K total memory
142020 K used memory
256064 K active memory
144468 K inactive memory
464572 K free memory
740 K buffer memory
396840 K swap cache
2097148 K total swap
0 K used swap
2097148 K free swap
5452 non-nice user cpu ticks
66 nice user cpu ticks
25984 system cpu ticks
34480821 idle cpu ticks
2079 IO-wait cpu ticks
11608 IRQ cpu ticks
0 softirq cpu ticks
0 stolen cpu ticks
273952 pages paged in
143466 pages paged out
0 pages swapped in
0 pages swapped out
2789873 interrupts
3386536 CPU context switches
1528419771 boot time
9070 forks
4、使用until和while分別實現192.168.0.0/24 網段內,地址是否能夠ping通,弱ping通則輸出”success!”,若ping不通則輸出”fail!”
1、while
#!/bin/bash
#
declare -i i=1
while [ $i -le 254 ] ; do
ping -w 1 -c 1 192.168.0.$i &> /dev/null
if [ $? -eq 0 ];then
echo "192.168.0.$i is success"
else
echo "192.168.0.$i is fail "
fi
let i++
done
2、until
#!/bin/bash
#
declare -i i=1
until [ $i -gt 255 ] ;do
ping -w 1 -c 1 192.168.0.$i &> /dev/null
if [ $? -eq 0 ];then
echo "192.168.0.$i is success"
else
echo "192.168.0.$i is fail"
fi
let i++
done
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/101953