osi七層模型和TCP/IP五層模型
應用層————————————–|——|
表示層————————————–|應用層|
會話層————————————–|——|
傳輸層————————————–傳輸層
網絡層————————————–網絡層
數據鏈路層———————————-數據鏈路層
物理層————————————–物理層
osi的七層參考模型中,應用層、表示層和會話層對應于TCP/IP模型中的應用層,其他層次都是一一對應,應用數據從源主機的應用層開始,從上往下層層封裝。達到目的端之后再從物理層開始層層解封裝,直到到達相關的應用層接口。
OSI參考模型和TCP/IP的對應關系和對應的網絡協議如圖所示:
應用層:直接面向各種應用和服務,向用戶提供一組常用的應用程序,比如電子郵件、文件傳輸訪問、遠程登錄等。遠程登錄TELNET使用TELNET協議提供在網絡其它主機上注冊的接口。TELNET會話提供了基于字符的虛擬終端。文件傳輸訪問FTP使用FTP協議來提供網絡內機器間的文件拷貝功能。
表示層:對數據進行格式化,進行代碼轉換,數據加密。
會話層:與其他對等層建立或解除連接。
傳輸層:提供端對端的接口,提供應用程序間的通信。其功能包括:一、格式化信息流;二、提供可靠傳輸。為實現后者,傳輸層協議規定接收端必須發回確認,并且假如分組丟失,必須重新發送。
網絡層:負責相鄰計算機之間的通信。其功能包括三方面。
一、處理來自傳輸層的分組發送請求,收到請求后,將分組裝入IP數據報,填充報頭,選擇去往信宿機的路徑,然后將數據報發往適當的網絡接口。
二、處理輸入數據報:首先檢查其合法性,然后進行尋徑–假如該數據報已到達信宿機,則去掉報頭,將剩下部分交給適當的傳輸協議;假如該數據報尚未到達信宿,則轉發該數據報。
三、處理路徑、流控、擁塞等問題。
數據鏈路層:提供主機之間的二層通訊,傳輸有地址的幀,對幀進行CRC校驗,并抽取其中的ip包發送給網絡層。
物理層:將物理的電信號轉化為bit流,并將bit流數據傳遞給二層。
iproute家族命令
iproute家族主要包括的命令有:ip,route,ifconfig,netstat,ss,ifup/ifdown,hostnamectl
ifconfig:用于接口地址查詢和管理,在centos7上已經被ip命令取代,不過仍然可以使用
語法結構:ifconfig [option] [interface]
常用選項:
-a:顯示所有的網絡接口信息,包括狀態是down的
-s:簡要地顯示網卡信息
-v:顯示網絡接口所接收到的數據包的錯誤信息
關閉/啟動網卡:
ifconfig INTERFACE up
ifconfig INTERFACE down(ssh登錄的慎用)
修改IP地址:
ifconfig? INTERFACE? IPADDRESS
ifconfig? INTERFACE? IPADDTESS netmask? NETMASK
ifconfig? INTERFACE? IPADDRESS netmask? NETMASK? broadcast BROADCAST
開啟/關閉ARP協議:
ifconfig INTERFACE arp(開啟)
ifconfig INTERFACE -arp(關閉)
設置最大傳輸單元(MTU):
ifconfig INTERFACE mtu MTU(不能小于1500)
route命令:
路由查看及管理
使用route命令之前需要先安裝net-tools命令:yum install net-tools
語法結構:route [option] [argument]
常用選項:
-A:設置地址類型
-C:打印并將linux的路由緩存
-v:顯示詳細消息
-n:不執行DNS反向查找,直接顯示數字形式的IP地址
-e:使用netstat格式顯示路由表
-net:顯示到一個網絡的路由表
-host:顯示到一個主機的路由
常用參數:
add:增加指定路由
del:刪除指定路由
target:目的網絡或目的主機
gw:設置默認網關
mss:set the MTU of the route to Mb
window W:set the TCP window size for connection over this route to W bytes
dev IF :force the route to accociated with the specified device
示例:
(1)添加網關
route add -net 192.168.99.0 netmask 255.255.255.0 dev ens33
//增加一條去往192.168.99.0/24網絡的路由
route add -net 192.168.99.0 netmask 255.255.255.0 reject
//屏蔽一條路由
(2)刪除路由
route del -net 192.168.99.0 netmask 255.255.255.0 dev ens33
//刪除去往192.168.99.0/24網絡的路由
route del -net 192.168.99.0 netmask 255.255.255.0 reject
//刪除這條屏蔽路由
route del default gw 192.168.99.1
route add default gw 192.168.99.1,添加的路由默認metric為零
netstat:
顯示網絡連接狀態,接口狀態,路由表信息
語法結構:netstat [option]… | [grep] [PATTERN]
常用選項:
-a:顯示所有選項,默認不顯示LISTEN相關
-t:僅顯示tcp相關選項
-u:僅顯示udp選項
-n:僅顯示數字類型的地址,而不顯示主機名和用戶名
-l:僅列出在listen狀態的服務
-p:顯示程序名
-r:顯示路由信息,路由表
-e:顯示擴展信息,-ee可以顯示最多的信息
-s:按協議來進行統計顯示
-c:每隔一個固定時間執行netstat命令
示例:
(1)顯示所有端口
netstat -a
(2)顯示所有TCP端口
netstat -at
(3)顯示每個協議的統計信息
netstat -s
(4)顯示pid和進程名稱
netstat -p
(5)持續輸出netstat信息
netstat -c
(6)顯示路由信息
netstat -r
(7)找出特定程序信息
netstat -ap | grep ssh
ss命令:
可以用來獲取socket的統計信息,類似于netstat,但能顯示更詳細的狀態信息,比netstat更快捷高效。
nmcli:是centos7的網絡管理命令工具
語法結構:nmcli [option] OBJECT {COMMAND | help}
示例:
(1)顯示所有連接
nmcli con show;nmcli connection show
(2)顯示所有活動連接
nmcli con show-active
(3)顯示網絡連接配置
nmcli con show “System ens33”
(4)顯示設備狀態
nmcli dev status
(5)顯示網絡接口屬性
nmcli dev show ens33
(6)創建連接(默認使用dhcp)
nmcli con add con-name default type Ethernet ifname ens34
(7)刪除連接
nmcli con del default,也可以直接刪除配置文件
(8)創建靜態連接(static)
nmcli con add con-name? static ifname ens34 autoconnect no type Ethernet ip4 192.168.99.103/24 gw4 192.168.99.254
dstat命令:
dstat是可以取代vmstat,iostat,netstat和ifstat的一個功能強大的多功能產品。
特性:
(1)結合了vmstat,iostat,ifstat,netstat以及更多的信息
(2)實時顯示統計信息
(3)啟用或對監控項進行排序
(4)模塊化設計
(5)使用python編寫,易于后續功能擴展
(6)包含許多擴展插件,更易于增加監控項目
(7)支持CSV格式報表,能夠導入到excel形成圖形
語法結構:dstat [option]
顯示字段含義:
total-cpu-usage:cpu的使用率
dsk/total:磁盤的讀寫總數
net/total:網絡設備接收和發送總數
paging:系統的分頁活動,數值越大代表系統使用了大量的交換空間,或者說明內存很分散,一般來說0,0是比較希望看到的數值
system:中斷(int)和上下文切換(csw),較大的數值代表系統有大量的進程擁塞。
常用選項:
-c:支持cpu性能指標相關的統計數據
-d:顯示disk相關的速率數據
-g:顯示page相關的速率數據
-i:顯示interrupt相關的速率數據
-l:顯示load avarge相關的速率數據
-m:顯示memory相關的速率數據
-n:顯示網絡收發數據的速率
-p:顯示進程相關的統計數據
-r:io請求速率
-s:顯示swap相關數據
-y:顯示系統相關的數據,包括中斷和進程切換
–top-cpu:顯示最占用cpu的進程
–top-io:顯示最消耗io的進程
–top-io:顯示最消耗block io的進程
–top-mem:顯示最消耗內存的進程
–ipc:顯示進程間通信相關的速率數據
–raw:顯示raw套接的相關的數據
–tcp:顯示tcp套接字相關的數據
–udp:顯示udp套接字相關的數據
–unix:顯示unix sock相關的統計數據
使用until和while分別實現192.168.0.0/24網段內,地址是否能夠ping通,弱ping通則輸出”success!”,若ping不通則輸出”fail!”
(1)使用until循環自動測試網絡
#!/bin/bash
network=192.169.0
declare -i option=1
until [ “$option” -gt 254 ]
do
ping -c 1 -w 1 ${network}.${option} &> /dev/null && result=0 || result=1
option=$option+1
if [ “$result” -eq 0 ]
then
echo -e “${network}.${option} is available”
else
echo -e “${network}.${option} is unavailable”
fi
done
(2)使用while循環自動測試網絡
#!/bin/bash
network=192.168.99
declare -i option=1
while [ “$option” -lt 254 ]
do
ping -c 1 -w 1 ${network}.${option} &> /dev/null && result=0 || result=1
if [ “$result” -eq 0 ]
then
echo -e “${network}.${option} is available”
else
echo -e “${network}.${option} is unavailable”
fi
option+=1
done
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95614