一毯欣、簡述osi七層模型和TCP/IP五層模型
1、OSI參考模型
(1) OSI的來源
OSI(Open System Interconnect)悉罕,即開放式系統(tǒng)互聯(lián)卦停。 一般都叫OSI參考模型,是ISO(國際標(biāo)準(zhǔn)化組織)組織在1985年研究的網(wǎng)絡(luò)互連模型羽氮。
ISO為了更好的使網(wǎng)絡(luò)應(yīng)用更為普及,推出了OSI參考模型。其含義就是推薦所有公司使用這個規(guī)范來控制網(wǎng)絡(luò)希俩。這樣所有公司都有相同的規(guī)范,就能互聯(lián)了纲辽。
(2)OSI七層模型的劃分及其解釋
(3)各層功能定義
<1> 應(yīng)用層
OSI參考模型中最靠近用戶的一層颜武,是為計算機用戶提供應(yīng)用接口,也為用戶直接提供各種網(wǎng)絡(luò)服務(wù)拖吼。我們常見應(yīng)用層的網(wǎng)絡(luò)服務(wù)協(xié)議有:HTTP鳞上,HTTPS,F(xiàn)TP吊档,POP3篙议、SMTP等。
<2> 表示層
表示層提供各種用于應(yīng)用層數(shù)據(jù)的編碼和轉(zhuǎn)換功能,確保一個系統(tǒng)的應(yīng)用層發(fā)送的數(shù)據(jù)能被另一個系統(tǒng)的應(yīng)用層識別怠硼。如果必要鬼贱,該層可提供一種標(biāo)準(zhǔn)表示形式,用于將計算機內(nèi)部的多種數(shù)據(jù)格式轉(zhuǎn)換成通信中采用的標(biāo)準(zhǔn)表示形式香璃。數(shù)據(jù)壓縮和加密也是表示層可提供的轉(zhuǎn)換功能之一这难。
<3> 會話層
會話層就是負(fù)責(zé)建立、管理和終止表示層實體之間的通信會話葡秒。該層的通信由不同設(shè)備中的應(yīng)用程序之間的服務(wù)請求和響應(yīng)組成姻乓。
<4> 傳輸層
傳輸層建立了主機端到端的鏈接,傳輸層的作用是為上層協(xié)議提供端到端的可靠和透明的數(shù)據(jù)傳輸服務(wù)眯牧,包括處理差錯控制和流量控制等問題糖权。該層向高層屏蔽了下層數(shù)據(jù)通信的細(xì)節(jié),使高層用戶看到的只是在兩個傳輸實體間的一條主機到主機的炸站、可由用戶控制和設(shè)定的星澳、可靠的數(shù)據(jù)通路。我們通常說的旱易,TCP UDP就是在這一層禁偎。端口號既是這里的“端”腿堤。
<5> 網(wǎng)絡(luò)層
本層通過IP尋址來建立兩個節(jié)點之間的連接,為源端的運輸層送來的分組如暖,選擇合適的路由和交換節(jié)點笆檀,正確無誤地按照地址傳送給目的端的運輸層。就是通常說的IP層盒至。這一層就是我們經(jīng)常說的IP協(xié)議層酗洒。IP協(xié)議是Internet的基礎(chǔ)。
<6> 數(shù)據(jù)鏈路層
將比特組合成字節(jié),再將字節(jié)組合成幀,使用鏈路層地址 (以太網(wǎng)使用MAC地址)來訪問介質(zhì),并進行差錯檢測枷遂。數(shù)據(jù)鏈路層又分為2個子層:邏輯鏈路控制子層(LLC)和媒體訪問控制子層(MAC)樱衷。MAC子層處理CSMA/CD算法、數(shù)據(jù)出錯校驗酒唉、成幀等矩桂;LLC子層定義了一些字段使上次協(xié)議能共享數(shù)據(jù)鏈路層。 在實際使用中痪伦,LLC子層并非必需的侄榴。
<7> 物理層
實際最終信號的傳輸是通過物理層實現(xiàn)的。通過物理介質(zhì)傳輸比特流网沾。規(guī)定了電平癞蚕、速度和電纜針腳。常用設(shè)備有(各種物理設(shè)備)集線器辉哥、中繼器涣达、調(diào)制解調(diào)器、網(wǎng)線证薇、雙絞線度苔、同軸電纜。這些都是物理層的傳輸介質(zhì)浑度。
2. TCP/IP五層模型
TCP/IP五層協(xié)議和OSI的七層協(xié)議對應(yīng)關(guān)系如下圖寇窑。
在每一層都工作著不同的設(shè)備,比如我們常用的交換機就工作在數(shù)據(jù)鏈路層的箩张,一般的路由器是工作在網(wǎng)絡(luò)層的甩骏。
在每一層實現(xiàn)的協(xié)議也各不同,即每一層的服務(wù)也不同.下圖列出了每層主要的協(xié)議先慷。
二饮笛、簡述iproute家族命令
靜態(tài)配置地址的方法有一下幾種方式:
(1)ifconfig (2)ip命令 (3)GUI工具 (4)TUI工具 (5)編輯配置文件
1.ifconfig
查看接口:ifconfig [interface]
-a:包括未激活狀態(tài)的所有接口
設(shè)定與修改接口
ifconfig interface {options}
常見選項與參數(shù):
interface:網(wǎng)絡(luò)卡接口代號,包括 eth0, eth1等
options :可以接的參數(shù)论熙,包括如下:
up, down :啟動 (up) 關(guān)閉 (down)
mtu:可以設(shè)定不同的 MTU 數(shù)值福青,例如 mtu 1500 (單位為 byte)
netmask :子網(wǎng)掩碼;
broadcast:廣播地址
-
注意:設(shè)置的地址會立即送往內(nèi)核,因此无午,會立即生效媒役,但不會永久有效
[root@wujunjie ~]# ifconfig** ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.32.128 netmask 255.255.255.0 broadcast 192.168.32.255 inet6 fe80::9df0:382c:4485:9d77 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:1a:6a:cc txqueuelen 1000 (Ethernet) RX packets 79 bytes 7830 (7.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 82 bytes 13262 (12.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 # ens33:網(wǎng)卡名稱 # inet:IPv4 的IP地址,后續(xù)的netmask,broadcast分別代表的是子網(wǎng)掩碼與廣播地址 # inet6:是IPv6的IP # prefixlen:IPv6的前綴長度 # ether:網(wǎng)卡的硬件地址宪迟,俗稱的MAC地址 # txqueuelen:傳輸數(shù)據(jù)的緩沖區(qū)的儲存長度 # MTU:網(wǎng)絡(luò)最大傳輸單元 # RX:那一行代表的是網(wǎng)絡(luò)由啟動到目前為止的封包接收情況,packets 代表封包數(shù)酣衷、errors代表封包發(fā)生錯誤的數(shù)量、dropped代表封包由于有問題而遭丟棄的數(shù)量 # TX:與 RX 相反,為網(wǎng)絡(luò)由啟動到目前為止的傳送情況次泽; # collisions:代表封包碰撞的情況,如果發(fā)生太多次,表明網(wǎng)絡(luò)狀況不太好
2.IP命令
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
選項:
-V:顯示指令版本信息
-s:輸出更詳細(xì)的信息
-f:強制使用指定的協(xié)議簇
-4:指定使用網(wǎng)絡(luò)協(xié)議是IPv4協(xié)議
-6:指定使用網(wǎng)絡(luò)協(xié)議是IPv6協(xié)議
-0:輸出信息每條記錄輸出一行穿仪,即使內(nèi)容多也不換行顯示
-r:顯示主機時,不使用IP地址意荤,而使用主機的域名
-
link: 鏈接接口
? ip link show
? ip link help
? ip link set { DEVICE | dev DEVICE | group DEVGROUP }
? [ { up | down } ] 啟用關(guān)閉
? [ multicast { on | off } ] 啟用或禁用多播功能
? [ name NEWNAME ] 重命名接口
? [ mtu MTU ] 設(shè)置MTU(默認(rèn)1500)
? [ netns { PID | NAME } ] 用于將接口移動到指定的網(wǎng)絡(luò)名稱空間
-
address: 管理接口上的地址
? ip address help
? ip address [ show [ dev IFNAME ] 顯示接口IP信息
? ip address del IFADDR dev IFNAME 刪除IP地址
? ip address flush dev IFNAME 清空所有的IP地址
? ip address add IFADDR dev IFNAME 添加地址
? [label NAME] 為額外添加的地址指明接口別名
? [broadcast ADDRESS] 廣播地址啊片;會根據(jù)IP和NETMASK自動計算得到
? [scope SCOPE_VALUE]
? global 全局可用
? link 接口可用
? host 僅本機可用
-
route:管理路由
? ip route help
? ip route show
? ip route add DESTINATION via GATEWAY [dev IFNAME] 添加路由
? ip route del DESTINATION 刪除路由
3.GUI方式:圖形用戶界面(Graphical User Interface,簡稱GUI,又稱圖形用戶界面)是指采用圖形方式顯示的計算機操作用戶界面
4.TUI方式:通過文本命令的方式執(zhí)行程序袭异,而不是通過圖形界面窗口的點擊按鈕方式。
5.通過修改對應(yīng)網(wǎng)卡的配置文件
每個網(wǎng)絡(luò)借口都有一個配置文件/etc/sysconfig/network-scripts/ifcfg-IFNAME,我們可以通過編輯這個配置文件來配置相應(yīng)的參數(shù)信息
字段 | 解釋含義 |
---|---|
DEVICE | 此配置文件所關(guān)聯(lián)到的設(shè)備 |
BOOTPROTO | 啟動此設(shè)備時使用的配置協(xié)議炬藤,(static,none,dhcp,bootp) |
HWADDR | 網(wǎng)卡的MAC地址 |
NM-CONTROLLED | NM即NetworkManager的簡寫 |
ONBOOT | 此設(shè)備是否隨OS啟動而激活 |
TYPE | 設(shè)備類型(Ethernet御铃,Bridge) |
UUID | 網(wǎng)卡設(shè)備的唯一識別碼 |
IPADDR | 此接口的ip地址 |
NETMASK | 子網(wǎng)掩碼 |
GATEWAY | 網(wǎng)關(guān) |
DNS1 | DNS服務(wù)器指向的主DNS服務(wù)器 |
DNS2 | 備用DNS服務(wù)器地址 |
IPV6INIT | 是初始化ipv6協(xié)議地址 |
USERCTL | 是否允許普通用戶管理此接口 |
PEERDNS | 當(dāng)BOOTPROTO的值為dhcp時,是否允許dhcp服務(wù)器提供的dns服務(wù)指向覆蓋本地配置的DNS服務(wù)器指向 |
-
注意:重啟網(wǎng)絡(luò)服務(wù)后方能生效沈矿。
三上真、詳細(xì)說明進行管理工具h(yuǎn)top、vmstat等相關(guān)命令羹膳,并舉例
linux上進程有5種狀態(tài):
? 1. 運行(正在運行或在運行隊列中等待)
? 2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
? 3. 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷發(fā)生)
? 4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調(diào)用wait4()系統(tǒng)調(diào)用后釋放)
? 5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號后停止運行)
ps工具標(biāo)識進程的5種狀態(tài)碼:
? D 不可中斷 uninterruptible sleep (usually IO)
? R 運行 runnable (on run queue)
? S 中斷 sleeping
? T 停止 traced or stopped
? Z 僵死 a defunct (”zombie”) process
1.ps:顯示系統(tǒng)當(dāng)前進程的運行情況
使用格式:ps [options] [--help]
常用選項與參數(shù):
-A 列出所有的行程
-w 顯示加寬可以顯示較多的資訊具體命令解釋
-u 與用戶相關(guān)的process
-x 通常與a這個參數(shù)一起使用睡互,可列出較完整信息
具體命令解釋:
? ps a 顯示現(xiàn)行終端機下的所有程序,包括其他用戶的程序陵像。
? ps -A 顯示所有進程就珠。
? ps c 列出程序時,顯示每個程序真正的指令名稱醒颖,而不包含路徑妻怎,參數(shù)或常駐服務(wù)的標(biāo)示。
? ps -e 此參數(shù)的效果和指定"A"參數(shù)相同泞歉。
? ps e 列出程序時逼侦,顯示每個程序所使用的環(huán)境變量。
? ps f 用ASCII字符顯示樹狀結(jié)構(gòu)腰耙,表達程序間的相互關(guān)系榛丢。
? ps -H 顯示樹狀結(jié)構(gòu),表示程序間的相互關(guān)系挺庞。
? ps -N 顯示所有的程序晰赞,除了執(zhí)行ps指令終端機下的程序之外。
? ps s 采用程序信號的格式顯示程序狀況。
? ps S 列出程序時宾肺,包括已中斷的子程序資料溯饵。
? ps -t<終端機編號> 指定終端機編號,并列出屬于該終端機的程序的狀況锨用。
? ps u 以用戶為主的格式來顯示程序狀況丰刊。
? ps x 顯示所有程序,不以終端機來區(qū)分增拥。
常用的組合方式:
1.ps -ef
2.ps -aux
3.ps -axo
-
ps -ef
[root@wujunjie ~]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 10:36 ? 00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 root 2 0 0 10:36 ? 00:00:00 [kthreadd] root 3 2 0 10:36 ? 00:00:00 [ksoftirqd/0] root 5 2 0 10:36 ? 00:00:00 [kworker/0:0H] root 7 2 0 10:36 ? 00:00:00 [migration/0] UID/PID/PPID分別代表進程的發(fā)起者啄巧;進程號;父進程號 C:CPU使用的資源百分比 STIME :系統(tǒng)啟動時間 TTY:登入者的終端機位置 TIME:使用掉的CPU時間掌栅。 CMD:所下達的是什么指令
-
ps -aux
[root@wujunjie ~]# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.6 128092 6704 ? Ss 10:36 0:02 /usr/lib/systemd/systemd --switched-root --system --des root 2 0.0 0.0 0 0 ? S 10:36 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 10:36 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< 10:36 0:00 [kworker/0:0H] USER: 進程擁有者 PID: pid %CPU: 占用的 CPU 使用率 %MEM: 占用的記憶體使用率 VSZ: 占用的虛擬記憶體大小 RSS: 占用的記憶體大小 TTY: 終端的次要裝置號碼 (minor device number of tty) STAT: 該行程的狀態(tài): START: 行程開始時間 TIME: 執(zhí)行的時間 COMMAND:所執(zhí)行的指令
2.htop命令
(1)簡介
相當(dāng)于監(jiān)控軟件TOP的增強版秩仆,htop有如下優(yōu)勢:
? 相對于top更簡單的操作
? 支持圖形界面和橫向縱向的滾動操作以及鼠標(biāo)操作
? 殺進程時可以不用輸入進程號
(2)htop界面所支持的一些交互式命令
u:選擇顯示指定用戶的進程
l:顯示光標(biāo)所在進程所打開的文件列表
s:顯示光標(biāo)所在進程執(zhí)行的系統(tǒng)調(diào)用
a:綁定進程到指定的CPU
#:快速定位光標(biāo)至PID為#的進程上
htop支持的一些選項:
-d:延遲時長
-u:USERNAME:僅顯示指定用戶的進程
-s COLUMN:根據(jù)指定的字段進行排序
(3)htop界面介紹
- 下面為其分區(qū)域解釋運行界面
? USER:運行此進程的用戶
? PRI:進程的優(yōu)先級
? NI:進程的NICE值,默認(rèn)的為0岳枷,范圍從-20到+19芒填,正值表示低優(yōu)先級,負(fù)值表示高優(yōu)先級空繁,可以進行調(diào)整
? VIRT:進程占用的虛擬內(nèi)存值
? RES:進程占用的物理內(nèi)存值
? SHR:進程占用的共享內(nèi)存值
? S:進程的運行狀況殿衰,R表示正在運行、S表示休眠盛泡,等待喚醒播玖、Z表示僵死狀態(tài)
? %CPU:該進程占用的CPU使用率
? %MEM:該進程占用的物理內(nèi)存相對于總內(nèi)存的百分比
? TIME+:該進程啟動后占用的總的CPU時間
? COMMAND:進程啟動的啟動命令名稱
? F2:htop 設(shè)定
? F3:搜索進程
? F4:增量進程過濾器
? F5:顯示樹形結(jié)構(gòu)
? F6:選擇排序方式
? F7:可減少nice值以提高對應(yīng)進程的優(yōu)先級
? F8:可增加nice值以降低對應(yīng)進程的優(yōu)先級
? F9:可對進程傳遞信號
? F10:結(jié)束htop
3.vmstat命令
vmstat主要用來動態(tài)顯示系統(tǒng)資源的使用情況,這些資源包括:內(nèi)存饭于、磁盤蜀踏、網(wǎng)絡(luò)、cpu等資源
格式用法
vmstat [options] [delay [count]]
-s:將一些事件導(dǎo)致的內(nèi)存變化情況列表說明
-S:后面可以接單位掰吕,如K,M取代bytes的容量
-d:列出磁盤的讀寫總量統(tǒng)計表
-
一般vmstat工具的使用是通過兩個數(shù)字參數(shù)來完成的果覆,第一個參數(shù)是采樣的時間間隔數(shù),單位是秒殖熟,第二個參數(shù)是采樣的次數(shù)
[root@wujunjie ~]# vmstat 2 1 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 8 124508 46492 566084 0 0 27 12 31 47 0 0 100 0 0 上述應(yīng)用實例中2表示每個兩秒采集一次主機的狀態(tài)局待,1表示只采集一次
4.glances
glances 可以為 Unix 和 Linux 性能專家提供監(jiān)視和分析性能數(shù)據(jù)的功能,其中包括:
? CPU 使用率
? 內(nèi)存使用情況
? 內(nèi)核統(tǒng)計信息和運行隊列信息
? 磁盤 I/O 速度、傳輸和讀/寫比率
? 文件系統(tǒng)中的可用空間
? 磁盤適配器
? 網(wǎng)絡(luò) I/O 速度钳榨、傳輸和讀/寫比率
? 頁面空間和頁面速度
? 消耗資源最多的進程
? 計算機信息和系統(tǒng)資源
glances的使用方法及常用的選項
-b:顯示網(wǎng)絡(luò)連接速度 Byte/ 秒
-B @IP|host :綁定服務(wù)器端 IP 地址或者主機名稱
-c @IP|host:連接 glances 服務(wù)器端
-C file:設(shè)置配置文件默認(rèn)是 /etc/glances/glances.conf
-d:關(guān)閉磁盤 I/O 模塊
-e:顯示傳感器溫度
-f file:設(shè)置輸出文件(格式是 HTML 或者 CSV)
-m:關(guān)閉掛載的磁盤模塊
-n:關(guān)閉網(wǎng)絡(luò)模塊
-p PORT:設(shè)置運行端口默認(rèn)是 61209
-P password:設(shè)置客戶端 / 服務(wù)器密碼
-s:設(shè)置 glances 運行模式為服務(wù)器
-t sec:設(shè)置屏幕刷新的時間間隔舰罚,單位為秒,默認(rèn)值為 2 秒薛耻,數(shù)值許可范圍:1~32767
-h : 顯示幫助信息
-v : 顯示版本信息
5.kill命令
命令功能
發(fā)送指定的信號到相應(yīng)進程营罢。不指定型號將發(fā)送SIGTERM(15)終止指定進程。如果任無法終止該程序可用“-KILL” 參數(shù)饼齿,其發(fā)送的信號為SIGKILL(9) 饲漾,將強制結(jié)束進程,使用ps命令或者jobs 命令可以查看進程號缕溉。root用戶將影響用戶的進程考传,非root用戶只能影響自己的進程。-
格式用法
kill [-SIGNAL] pid …
常見選項
-l 信號证鸥,若果不加信號的編號參數(shù)僚楞,則使用“-l”參數(shù)會列出全部的信號名稱
-a 當(dāng)處理當(dāng)前進程時,不限制命令名和進程號的對應(yīng)關(guān)系
-p 指定kill 命令只打印相關(guān)進程的進程號枉层,而不發(fā)送任何信號
-s 指定發(fā)送信號
-u 指定用戶
常用的信號有
HUP 1 終端斷線
INT 2 中斷(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 終止
KILL 9 強制終止
CONT 18 繼續(xù)(與STOP相反泉褐, fg/bg命令)
STOP 19 暫停(同 Ctrl + Z)
-
killall命令
killall [-SIGNAL] PROGRAM
注意:這里的PROGRAM為進程名稱,用于殺死指定進程名所有進程
常用選項
-i:交互式
-I:命令名稱忽略大小寫
四返干、使用until和while分別實現(xiàn)192.168.0.0/24網(wǎng)段內(nèi)兴枯,地址是否能夠ping通血淌,弱ping通則輸出"success!"矩欠,若ping不通則輸出"fail!"
-
while腳本
[root@wujunjie ~]# vim whileping.sh #!/bin/bash declare -i aa=1 while [ $aa -le 254 ];do if ping -c1 192.168.0.$aa &>/dev/null;then echo -e "\033[1;5;32mping 192.168.0.$aa is success! \033[0m" else echo -e "\033[1;5;31mping 192.168.0.$aa is fail! \033[0m" fi let aa++ done [root@wujunjie ~]# bash whileping.sh ping 192.168.0.1 is success! 高亮閃爍綠色 ping 192.168.0.2 is fail! 高亮閃爍紅色 ping 192.168.0.3 is success! 高亮閃爍綠色 ping 192.168.0.4 is fail! 高亮閃爍紅色
-
until腳本
[root@wujunjie ~]# vim untilping.sh #!/bin/bash declare -i aa=1 until [ $aa -gt 254 ];do if ping -c1 192.168.0.$aa &>/dev/null;then echo -e "\033[1;5;32mping 192.168.0.$aa is success! \033[0m" else echo -e "\033[1;5;31mping 192.168.0.$aa is fail! \033[0m" fi let aa++ done [root@wujunjie ~]# bash untilping.sh ping 192.168.0.1 is success! 高亮閃爍綠色 ping 192.168.0.2 is fail! 高亮閃爍紅色 ping 192.168.0.3 is success! 高亮閃爍綠色 ping 192.168.0.4 is fail! 高亮閃爍紅色