了解OSI模型可以更清晰掌握數(shù)據(jù)在網(wǎng)絡(luò)互聯(lián)的各個(gè)層次的傳輸過(guò)程
OSI七層模型也是面試熱點(diǎn)問(wèn)題风科,從中可以引申出大量的相關(guān)知識(shí)
另外斯议,各層次的代表協(xié)議和硬件产捞、TCP四層模型你是否都掌握了解呢?
Github issues:https://github.com/littlejoyo/Blog/issues/
1.什么是OSI七層模型哼御?
維基百科介紹OSI模型:
開(kāi)放式系統(tǒng)互聯(lián)模型(英語(yǔ):Open System Interconnection Model坯临,縮寫:OSI焊唬;簡(jiǎn)稱為OSI模型)是一種概念模型,由國(guó)際標(biāo)準(zhǔn)化組織提出看靠,一個(gè)試圖使各種計(jì)算機(jī)在世界范圍內(nèi)互連為網(wǎng)絡(luò)的標(biāo)準(zhǔn)框架赶促。定義于ISO/IEC 7498-1。
概念不重要衷笋,最重要是理解好各層次的含義和對(duì)應(yīng)的典型協(xié)議應(yīng)用芳杏。
OSI七層協(xié)議自上而下分為:
應(yīng)用層
表示層
會(huì)話層
傳輸層
網(wǎng)絡(luò)層
數(shù)據(jù)鏈路層
物理層
2.OSI模型各層介紹
物理層
物理層通過(guò)媒介傳輸比特,確定機(jī)械及電氣規(guī)范,如集線器辟宗;
作用:為上層協(xié)議提供了一個(gè)傳輸數(shù)據(jù)的物理媒體
協(xié)議數(shù)據(jù)單元(PDU):比特Bit
硬件代表:網(wǎng)卡爵赵,網(wǎng)線,集線器泊脐,中繼器空幻,調(diào)制解調(diào)器
數(shù)據(jù)鏈路層
數(shù)據(jù)鏈路層在不可靠的物理介質(zhì)上提供可靠的傳輸。
該層的作用包括:物理地址尋址容客、數(shù)據(jù)的成幀秕铛、流量控制、數(shù)據(jù)的檢錯(cuò)缩挑、重發(fā)等
協(xié)議數(shù)據(jù)單元(PDU):幀F(xiàn)rame
硬件代表:網(wǎng)橋但两,交換機(jī)
網(wǎng)絡(luò)層
這層對(duì)端到端的包傳輸進(jìn)行定義,定義了能夠標(biāo)識(shí)所有結(jié)點(diǎn)的邏輯地址供置,還定義了路由實(shí)現(xiàn)的方式和學(xué)習(xí)的方式谨湘。
為了適應(yīng)最大傳輸單元長(zhǎng)度小于包長(zhǎng)度的傳輸介質(zhì),網(wǎng)絡(luò)層還定義了如何將一個(gè)包分解成更小的包的分段方法芥丧。
作用:網(wǎng)絡(luò)層負(fù)責(zé)對(duì)子網(wǎng)間的數(shù)據(jù)包進(jìn)行路由選擇紧阔。還可以實(shí)現(xiàn)擁塞控制、網(wǎng)際互連等功能续担。
協(xié)議數(shù)據(jù)單元(PDU):數(shù)據(jù)包packet
硬件代表:路由器
網(wǎng)絡(luò)層通過(guò)尋址(尋址地址)來(lái)建立兩個(gè)節(jié)點(diǎn)之間的連接擅耽,我們的電腦連接上網(wǎng)絡(luò)后都會(huì)有一個(gè)IP地址,我們可以通過(guò)IP地址來(lái)確定不同的計(jì)算機(jī)是否在同一個(gè)子網(wǎng)路。當(dāng)我們的電腦連接上網(wǎng)絡(luò)后就有兩種地址:物理地址(MAC)和網(wǎng)絡(luò)地址(IP地址)始衅,網(wǎng)絡(luò)上的計(jì)算機(jī)要通信艺骂,必須要知道通信的計(jì)算機(jī)“在哪里”, 首先通過(guò)網(wǎng)絡(luò)地址來(lái)判斷是否處于同一個(gè)子網(wǎng)絡(luò),然后再對(duì)物理地址(MAC)地址進(jìn)行處理,從而來(lái)確定要通信計(jì)算機(jī)的位置。
傳輸層
通過(guò)網(wǎng)絡(luò)層讓我們建立主機(jī)與主機(jī)的通信,而傳輸層的功能就是建立端口到端口的通信通道,這樣就可以實(shí)現(xiàn)程序之間的數(shù)據(jù)通信煮仇。
作用:提供可靠和盡力而為的傳輸夹姥;
協(xié)議數(shù)據(jù)單元(PDU):段Fragment
代表:網(wǎng)關(guān)
通過(guò)MAC和IP地址,幫助我們找到互聯(lián)網(wǎng)上任意兩臺(tái)主機(jī)來(lái)建立通信较店。然而這里有一個(gè)問(wèn)題官卡,找到主機(jī)后灰粮,主機(jī)上有很多程序都需要用到網(wǎng)絡(luò),比如說(shuō)你在一邊聽(tīng)歌和使用QQ聊天, 當(dāng)網(wǎng)絡(luò)上發(fā)送來(lái)一個(gè)數(shù)據(jù)包時(shí), 該怎么知道它是表示聊天的內(nèi)容還是歌曲的內(nèi)容的抚官, 這時(shí)候就需要一個(gè)參數(shù)來(lái)表示這個(gè)數(shù)據(jù)包是發(fā)送給那個(gè)程序(進(jìn)程)來(lái)使用的,這個(gè)參數(shù)我們就叫做端口號(hào)卒煞,主機(jī)上用端口號(hào)來(lái)標(biāo)識(shí)不同的程序(進(jìn)程),端口是0到65535之間的一個(gè)整數(shù),0到1023的端口被系統(tǒng)占用占键,用戶只能選擇大于1023的端口牲距。
會(huì)話層
會(huì)話層定義了如何開(kāi)始难述、控制和結(jié)束一個(gè)會(huì)話攀芯,以便在只完成連續(xù)消息的一部分時(shí)可以通知應(yīng)用紧武,從而使表示層看到的數(shù)據(jù)是連續(xù)的滥酥,在某些情況下,如果表示層收到了所有的數(shù)據(jù)印颤,則用數(shù)據(jù)代表表示層。示例:RPC衣迷,SQL等。
作用:控制會(huì)話壶谒,建立管理終止應(yīng)用程序會(huì)話云矫;
協(xié)議數(shù)據(jù)單元(PDU):會(huì)話協(xié)議數(shù)據(jù)單元SPDU
代表:SSH、RPC(遠(yuǎn)程過(guò)程調(diào)用)汗菜、SQL让禀、RTCP(實(shí)時(shí)傳輸控制協(xié)議)
表示層
表示層定義了數(shù)據(jù)格式及加密。例如陨界,F(xiàn)TP允許你選擇以二進(jìn)制或ASII格式傳輸巡揍。如果選擇二進(jìn)制,那么發(fā)送方和接收方不改變文件的內(nèi)容菌瘪。如果選擇ASII格式腮敌,發(fā)送方將把文本從發(fā)送方的字符集轉(zhuǎn)換成標(biāo)準(zhǔn)的ASII后發(fā)送數(shù)據(jù)。在接收方將標(biāo)準(zhǔn)的ASII轉(zhuǎn)換成接收方計(jì)算機(jī)的字符集。
作用:對(duì)數(shù)據(jù)提供加密糜工、壓縮弊添、格式轉(zhuǎn)換服務(wù)
協(xié)議數(shù)據(jù)單元(PDU):表示協(xié)議數(shù)據(jù)單元PPDU
代表:ASCII, JPEG. PNG, MP3, WAV, AVI
應(yīng)用層
應(yīng)用層是模型中的最頂層,是用戶與網(wǎng)絡(luò)的接口捌木,該層通過(guò)應(yīng)用程序來(lái)完成網(wǎng)絡(luò)用戶的應(yīng)用需求油坝。該層的數(shù)據(jù)放在TCP數(shù)據(jù)包的數(shù)據(jù)部分,該層定義了一個(gè)很重要的協(xié)議——Http協(xié)議钮莲,一般的Web開(kāi)發(fā)都是基于應(yīng)用層的開(kāi)發(fā)免钻。
作用:控制應(yīng)用程序,為應(yīng)用程序提供網(wǎng)絡(luò)服務(wù)崔拥。
協(xié)議數(shù)據(jù)單元(PDU):應(yīng)用協(xié)議數(shù)據(jù)單元APDU
代表:Telnet, HTTP, FTP, SMTP
3.TCP/IP四層模型
TCP/IP協(xié)議簇是一個(gè)四層協(xié)議系統(tǒng)极舔,可以說(shuō)是OSI模型的簡(jiǎn)化,結(jié)構(gòu)如下圖:
應(yīng)用層:
應(yīng)用程序間溝通的層链瓦,如簡(jiǎn)單電子郵件傳輸(SMTP)拆魏、文件傳輸協(xié)議(FTP)、網(wǎng)絡(luò)遠(yuǎn)程訪問(wèn)協(xié)議(Telnet)等慈俯。
傳輸層:
提供了節(jié)點(diǎn)間的數(shù)據(jù)傳送服務(wù)渤刃,如傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報(bào)協(xié)議(UDP)等贴膘,TCP和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又新糇樱@一層負(fù)責(zé)傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達(dá)并接收刑峡。
網(wǎng)絡(luò)層:
負(fù)責(zé)提供基本的數(shù)據(jù)封包傳送功能洋闽,讓每一塊數(shù)據(jù)包都能夠到達(dá)目的主機(jī)(但不檢查是否被正確接收),如網(wǎng)際協(xié)議(IP)突梦。
網(wǎng)絡(luò)接口層:
對(duì)實(shí)際的網(wǎng)絡(luò)媒體的管理诫舅,定義如何使用實(shí)際網(wǎng)絡(luò)(如Ethernet、Serial Line等)來(lái)傳送數(shù)據(jù)宫患。
數(shù)據(jù)解包和裝包
4.OSI七層模型各層代表協(xié)議
物理層:RJ45刊懈、CLOCK、IEEE802.3
數(shù)據(jù)鏈路:PPP娃闲、FR虚汛、HDLC、VLAN皇帮、MAC
網(wǎng)絡(luò)層:IP泽疆、ICMP、ARP玲献、RARP、OSPF、IPX捌年、RIP瓢娜、IGRP
傳輸層:TCP、UDP礼预、SPX
會(huì)話層:NFS眠砾、SQL、NETBIOS托酸、RPC
表示層:JPEG褒颈、MPEG、ASII励堡、MP4
應(yīng)用層:FTP谷丸、DNS、Telnet应结、SMTP刨疼、HTTP、WWW鹅龄、NFS
5.TCP/IP協(xié)議介紹
TCP揩慕、UDP、IP協(xié)議在此不介紹扮休,另起文章細(xì)究迎卤。
ICMP協(xié)議
ICMP協(xié)議,即因特網(wǎng)控制報(bào)文協(xié)議。
它是TCP/IP協(xié)議族的一個(gè)子協(xié)議玷坠,用于在IP主機(jī)蜗搔、路由器之間傳遞控制消息。
屬于網(wǎng)絡(luò)層協(xié)議侨糟,ping命令就是ICMP協(xié)議的應(yīng)用碍扔。
ping程序是用來(lái)探測(cè)主機(jī)到主機(jī)之間是否可通信,如果不能ping到某臺(tái)主機(jī)秕重,表明不能和這臺(tái)主機(jī)建立連接不同。ping使用的是ICMP協(xié)議,它發(fā)送icmp回送請(qǐng)求消息給目的主機(jī)溶耘。ICMP協(xié)議規(guī)定:目的主機(jī)必須返回ICMP回送應(yīng)答消息給源主機(jī)二拐。如果源主機(jī)在一定時(shí)間內(nèi)收到應(yīng)答,則認(rèn)為主機(jī)可達(dá)凳兵。
NAT協(xié)議
網(wǎng)絡(luò)地址轉(zhuǎn)換屬接入廣域網(wǎng)(WAN)技術(shù)百新,是一種將私有(保留)地址轉(zhuǎn)化為合法IP地址的轉(zhuǎn)換技術(shù)。
NAT將私有IP地址通過(guò)邊界路由轉(zhuǎn)換成外網(wǎng)IP地址庐扫,在邊界路由的NAT地址轉(zhuǎn)換表記錄下這個(gè)轉(zhuǎn)換映射記錄饭望,當(dāng)外部數(shù)據(jù)返回時(shí)仗哨,路由使用NAT技術(shù)查詢NAT轉(zhuǎn)換表,再將目標(biāo)地址替換成內(nèi)網(wǎng)用戶IP地址铅辞。
NAT協(xié)議屬于網(wǎng)絡(luò)層協(xié)議厌漂。
基于IPv4的IP地址只有32位,最多只有42.9億個(gè)地址斟珊,還要去掉保留地址苇倡、組播地址,能用的地址只有36億左右囤踩,但是當(dāng)下有數(shù)以萬(wàn)億的主機(jī)旨椒,沒(méi)有這么多IP地址可以對(duì)應(yīng),雖然現(xiàn)在有了IPv6堵漱,但是當(dāng)下IPv4還是主流综慎,利用IPv4怎么滿足這么多主機(jī)的IP地址呢?答案就是NAT怔锌,NAT技術(shù)使公司寥粹、機(jī)構(gòu)以及個(gè)人產(chǎn)生以及局域網(wǎng),然后在各個(gè)局域網(wǎng)的邊界WAN端口使用一個(gè)或多個(gè)公網(wǎng)的IPv4進(jìn)行一對(duì)多轉(zhuǎn)換
DHCP協(xié)議
動(dòng)態(tài)主機(jī)配置協(xié)議埃元,DHCP(Dynamic Host Configuration Protcol)
一種讓系統(tǒng)得以連接到網(wǎng)絡(luò)上涝涤,并獲取所需要的配置參數(shù)手段,基于UDP協(xié)議工作岛杀。
具體用途:給內(nèi)部網(wǎng)絡(luò)或網(wǎng)絡(luò)服務(wù)供應(yīng)商自動(dòng)分配IP地址阔拳,給用戶或者內(nèi)部網(wǎng)絡(luò)管理員作為對(duì)所有計(jì)算機(jī)作中央管理的手段。
DHCP協(xié)議屬于網(wǎng)絡(luò)層協(xié)議类嗤。
一個(gè)主機(jī)如何獲取IP地址糊肠?有兩種獲取方法,一種是靜態(tài)配置遗锣,就是從網(wǎng)絡(luò)管理員獲取一個(gè)給定的IP地址货裹,也叫硬編碼,屬于靜態(tài)IP精偿,還有一種就是動(dòng)態(tài)配置IP地址弧圆,也就四基于DHCP協(xié)議進(jìn)行動(dòng)態(tài)IP配置。
ARP協(xié)議
- 地址解析協(xié)議笔咽,即ARP(Address Resolution Protocol)搔预,是根據(jù)IP地址獲取物理地址的一個(gè)TCP/IP協(xié)議。
工作流程:
通過(guò)DNS域名解析到主機(jī)的IP地址叶组,應(yīng)用程序發(fā)送請(qǐng)求通過(guò)TCP或者UDP使用得到的IP建立連接拯田。
當(dāng)主機(jī)知道IP地址,并把數(shù)據(jù)報(bào)發(fā)過(guò)去的過(guò)程之前甩十,主機(jī)在鏈路層實(shí)際上是要知道目標(biāo)主機(jī)的物理地址的船庇,每臺(tái)主機(jī)的物理地址又稱MAC地址是全球唯一的吭产。在這一步,就需要我們的ARP協(xié)議鸭轮。
首先垮刹,每個(gè)主機(jī)都會(huì)在自己的ARP緩沖區(qū)中建立一個(gè)ARP列表,以表示IP地址和MAC地址之間的對(duì)應(yīng)關(guān)系张弛。
當(dāng)源主機(jī)要發(fā)送數(shù)據(jù)時(shí),首先檢查ARP列表中是否有對(duì)應(yīng)IP地址的目的主機(jī)的MAC地址酪劫,如果有吞鸭,則直接發(fā)送數(shù)據(jù),如果沒(méi)有覆糟,就向本網(wǎng)段的所有主機(jī)發(fā)送ARP數(shù)據(jù)包刻剥,該數(shù)據(jù)包包括的內(nèi)容有:源主機(jī) IP地址,源主機(jī)MAC地址滩字,目的主機(jī)的IP 地址造虏。
當(dāng)本網(wǎng)絡(luò)的所有主機(jī)收到該ARP數(shù)據(jù)包時(shí),首先檢查數(shù)據(jù)包中的IP地址是否是自己的IP地址麦箍,如果不是漓藕,則忽略該數(shù)據(jù)包,如果是挟裂,則首先從數(shù)據(jù)包中取出源主機(jī)的IP和MAC地址寫入到ARP列表中享钞,如果已經(jīng)存在,則覆蓋,然后將自己的MAC地址寫入ARP響應(yīng)包中,告訴源主機(jī)自己是它想要找的MAC地址车遂。
源主機(jī)收到ARP響應(yīng)包后锦爵。將目的主機(jī)的IP和MAC地址寫入ARP列表,并利用此信息發(fā)送數(shù)據(jù)舱呻。如果源主機(jī)一直沒(méi)有收到ARP響應(yīng)數(shù)據(jù)包,表示ARP查詢失敗。
廣播發(fā)送ARP請(qǐng)求份名,單播發(fā)送ARP響應(yīng)。得到了目的主機(jī)的硬件地址后架专,就包含著IP數(shù)據(jù)報(bào)的以太網(wǎng)數(shù)據(jù)幀就可以正常發(fā)送了同窘。
RARP協(xié)議
RARP協(xié)議是逆地址解析協(xié)議,作用是完成硬件地址到IP地址的映射部脚,
主要用于無(wú)盤工作站(沒(méi)有磁盤驅(qū)動(dòng)器的系統(tǒng))想邦,因?yàn)榻o無(wú)盤工作站配置的IP地址不能保存。
工作流程:
在網(wǎng)絡(luò)中配置一臺(tái)RARP服務(wù)器委刘,里面保存著IP地址和MAC地址的映射關(guān)系
當(dāng)無(wú)盤工作站啟動(dòng)后丧没,就封裝一個(gè)RARP數(shù)據(jù)包鹰椒,里面有其MAC地址,然后廣播到網(wǎng)絡(luò)上去
當(dāng)服務(wù)器收到請(qǐng)求包后呕童,就查找對(duì)應(yīng)的MAC地址的IP地址裝入響應(yīng)報(bào)文中發(fā)回給請(qǐng)求者漆际。
因?yàn)樾枰獜V播請(qǐng)求報(bào)文,因此RARP只能用于具有廣播能力的網(wǎng)絡(luò)夺饲。
FTP協(xié)議
文件傳輸協(xié)議(File Transfer Protocol奸汇,F(xiàn)TP)是一種提供網(wǎng)絡(luò)之間共享文件的協(xié)議,它可以在計(jì)算機(jī)之間可靠往声、高效地傳送文件擂找。在傳輸時(shí),傳輸雙方的操作系統(tǒng)浩销、磁盤文件系統(tǒng)類型可以不同贯涎。
FTP 協(xié)議允許 TCP/IP 網(wǎng)絡(luò)上的兩臺(tái)計(jì)算機(jī)之間進(jìn)行文件傳輸。而 FTP 服務(wù)是基于 FTP 協(xié)議的文件傳輸服務(wù)慢洋。
工作時(shí)塘雳,一臺(tái)計(jì)算機(jī)上運(yùn)行 FTP 客戶端應(yīng)用程序,另一臺(tái)計(jì)算機(jī)上需要運(yùn)行 FTP 服務(wù)器端程序普筹。只有擁有了 FTP 服務(wù)败明,客戶端才能進(jìn)行文件傳輸。
TFTP協(xié)議
TFTP協(xié)議斑芜,即簡(jiǎn)單文件傳輸協(xié)議(Trivial File Transfer Protocol肩刃,TFTP)
該協(xié)議是TCP/IP協(xié)議族中的一個(gè)用來(lái)在客戶機(jī)與服務(wù)器之間進(jìn)行簡(jiǎn)單文件傳輸?shù)膮f(xié)議
與 FTP 協(xié)議不同的是,TFTP 傳輸文件時(shí)不需要用戶進(jìn)行登錄杏头。提供不復(fù)雜盈包、開(kāi)銷不大的文件傳輸服務(wù),它只能從文件服務(wù)器上下載或上傳文件醇王,不能列出目錄呢燥。
屬于應(yīng)用層的協(xié)議, TFTP 基于 UDP 協(xié)議進(jìn)行文件傳輸寓娩。
HTTP協(xié)議
超文本傳輸協(xié)議叛氨,是一個(gè)屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議,由于其簡(jiǎn)捷棘伴、快速的方式寞埠,適用于分布式超媒體信息系統(tǒng)。
屬于應(yīng)用層的協(xié)議焊夸,基于TCP/IP協(xié)議實(shí)現(xiàn)仁连,后面另起文章進(jìn)行細(xì)究介紹
DNS協(xié)議
DNS(Domain Name System)服務(wù)是和 HTTP 協(xié)議一樣位于應(yīng)用層的協(xié)議。它提供域名到 IP 地址之間的解析服務(wù)阱穗。
計(jì)算機(jī)既可以被賦予 IP 地址饭冬,也可以被賦予主機(jī)名和域名使鹅。用戶通常使用主機(jī)名或域名來(lái)訪問(wèn)對(duì)方的計(jì)算機(jī),而不是直接通過(guò) IP地址訪問(wèn)昌抠。因?yàn)榕c IP 地址的一組純數(shù)字相比患朱,用字母配合數(shù)字的表示形式來(lái)指定計(jì)算機(jī)名更符合人類的記憶習(xí)慣。
為了解決上述的問(wèn)題炊苫,DNS 服務(wù)應(yīng)運(yùn)而生裁厅。DNS 協(xié)議提供通過(guò)域名查找 IP 地址,或逆向從 IP 地址反查域名的服務(wù)侨艾。
Telnet 協(xié)議
Telnet 協(xié)議是 Internet 遠(yuǎn)程登錄服務(wù)的標(biāo)準(zhǔn)協(xié)議和主要方式姐直,它為用戶提供了在本地計(jì)算機(jī)上遠(yuǎn)程管理主機(jī)的能力。
使用者在自己的電腦上使用 Telnet 程序連接到服務(wù)器蒋畜,然后在 Telnet 程序中輸入命令,這些命令將會(huì)在服務(wù)器上運(yùn)行撞叽,就像直接在服務(wù)器的控制臺(tái)上輸入一樣姻成。
其中,工作流程分為 6 個(gè)步驟愿棋,每個(gè)步驟含義如下:
Telnet 客戶端通過(guò) TCP 協(xié)議的三次握手與 Telnet 服務(wù)器建立連接科展。
建立連接后,需要通過(guò)用戶名和密碼才能遠(yuǎn)程登錄到服務(wù)器糠雨。因此才睹,服務(wù)器要求客戶端提供用戶名和密碼。
Telnet 客戶端輸入用戶名和密碼甘邀,嘗試登錄服務(wù)器琅攘。
成功登錄后客戶端向服務(wù)器發(fā)送要執(zhí)行的命令。
服務(wù)器收到客戶端發(fā)來(lái)的執(zhí)行命令松邪,開(kāi)始執(zhí)行命令坞琴,并將結(jié)果返回給客戶端。
客戶端不再需要遠(yuǎn)程執(zhí)行命令逗抑,將向服務(wù)器發(fā)送 TCP 斷開(kāi)數(shù)據(jù)包剧辐,用于撤銷連接。
SNMP 協(xié)議
簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol邮府,SNMP)是由互聯(lián)網(wǎng)工程任務(wù)組定義的一套網(wǎng)絡(luò)管理協(xié)議荧关。該協(xié)議是基于簡(jiǎn)單網(wǎng)關(guān)監(jiān)視協(xié)議(Simple Gateway Monitor Protocol,SGMP)制定的褂傀。
Telnet 協(xié)議可以用于連接遠(yuǎn)程計(jì)算機(jī)忍啤,并進(jìn)行管理與控制,如遠(yuǎn)程執(zhí)行命令紊服。這種情況下檀轨,執(zhí)行的命令有一定的局限性胸竞,如只能執(zhí)行遠(yuǎn)程主機(jī)上支持的命令。由于網(wǎng)絡(luò)設(shè)備越來(lái)越多参萄,網(wǎng)絡(luò)規(guī)模越來(lái)越大卫枝,管理這些設(shè)備也越來(lái)越重要。遠(yuǎn)程管理網(wǎng)絡(luò)的需求日益迫切讹挎,SNMP 應(yīng)運(yùn)而生校赤。
SNMP 協(xié)議能夠幫助網(wǎng)絡(luò)管理員提高網(wǎng)絡(luò)管理效率,及時(shí)發(fā)現(xiàn)和解決網(wǎng)絡(luò)問(wèn)題筒溃,對(duì)網(wǎng)絡(luò)增長(zhǎng)做好規(guī)劃马篮。網(wǎng)絡(luò)管理員還可以通過(guò) SNMP 協(xié)議,接收網(wǎng)絡(luò)節(jié)點(diǎn)的通知消息和警告事件報(bào)告等怜奖,從而獲知網(wǎng)絡(luò)出現(xiàn)的問(wèn)題浑测。
工作流程如圖所示:
上圖中展現(xiàn)了管理員通過(guò) NMS 獲取網(wǎng)關(guān)監(jiān)控?cái)?shù)據(jù)的工作流程,其中涉及了一些 SNMP 協(xié)議的關(guān)鍵信息歪玲。
為了方便理解迁央,下面先介紹這些信息的作用及含義。
MIB(管理信息庫(kù)):
任何一個(gè)被管理的設(shè)備都表示成一個(gè)對(duì)象滥崩,并稱為被管理的對(duì)象岖圈。而 MIB 就是被管理對(duì)象的集合。它定義了被管理對(duì)象的一系列屬性钙皮,如對(duì)象的名稱蜂科、對(duì)象的訪問(wèn)權(quán)限和對(duì)象的數(shù)據(jù)類型等。每個(gè)設(shè)備都有自己的 MIB短条。MIB 是一種樹(shù)狀數(shù)據(jù)庫(kù)导匣,MIB 管理的對(duì)象,就是樹(shù)的端節(jié)點(diǎn)茸时,每個(gè)節(jié)點(diǎn)都有唯一位置和唯一名字逐抑。
SNMP 代理:
是一種嵌入在被管理設(shè)備中的網(wǎng)絡(luò)管理軟件模塊,主要用來(lái)控制本地機(jī)器的管理信息屹蚊。它還負(fù)責(zé)將管理信息轉(zhuǎn)換成 SNMP 兼容的格式厕氨,傳遞給 NMS。
上圖所示的工作流程分為以下 4 個(gè)步驟:
當(dāng)管理員查詢被管理設(shè)備中的對(duì)象的相關(guān)值時(shí)汹粤,首先通過(guò)網(wǎng)絡(luò)管理站 NMS 中的 MIB 找到相關(guān)對(duì)象命斧。
網(wǎng)絡(luò)管理站 NMS 向 SNMP 代理申請(qǐng) MIB 中定義對(duì)象的相關(guān)值。
SNMP 代理在自己的 MIB 庫(kù)中進(jìn)行查找嘱兼。
SNMP 代理將找到的對(duì)象相關(guān)值返回給網(wǎng)絡(luò)管理站 NMS国葬。
6.硬件介紹
中繼器
中繼器是局域網(wǎng)環(huán)境下用來(lái)延長(zhǎng)網(wǎng)絡(luò)距離的最簡(jiǎn)單最廉價(jià)的網(wǎng)絡(luò)互聯(lián)設(shè)備
操作在OSI的物理層,中繼器對(duì)在線路上的信號(hào)具有放大再生的功能,用于擴(kuò)展局域網(wǎng)網(wǎng)段的長(zhǎng)度(僅用于連接相同的局域網(wǎng)網(wǎng)段)汇四。
中繼器是連接網(wǎng)絡(luò)線路的一種裝置接奈,常用于兩個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)之間物理信號(hào)的雙向轉(zhuǎn)發(fā)工作。
中繼器主要完成物理層的功能通孽,負(fù)責(zé)在兩個(gè)節(jié)點(diǎn)的物理層上按位傳遞信息序宦,完成信號(hào)的復(fù)制、調(diào)整和放大功能背苦,以此來(lái)延長(zhǎng)網(wǎng)絡(luò)的長(zhǎng)度互捌。也就說(shuō)類似生活中變電的變壓器功能。
網(wǎng)橋
網(wǎng)橋不是真實(shí)的物質(zhì)東西行剂,而是一個(gè)作用域的代名詞秕噪,網(wǎng)橋(Bridge)像一個(gè)聰明的中繼器。
中繼器從一個(gè)網(wǎng)絡(luò)電纜里接收信號(hào)厚宰, 放大它們腌巾,將其送入下一個(gè)電纜,然而網(wǎng)橋?qū)⒕W(wǎng)絡(luò)的多個(gè)網(wǎng)段在數(shù)據(jù)鏈路層連接起來(lái)铲觉。
相比較而言壤躲,網(wǎng)橋?qū)年P(guān)卡上傳下來(lái)的信息更敏銳一些。網(wǎng)橋是一種對(duì)幀進(jìn)行轉(zhuǎn)發(fā)的技術(shù)备燃,根據(jù)MAC分區(qū)塊,可隔離碰撞凌唬。
網(wǎng)橋也叫橋接器并齐,是連接兩個(gè)局域網(wǎng)的一種存儲(chǔ)/轉(zhuǎn)發(fā)設(shè)備,它能將一個(gè)大的LAN分割為多個(gè)網(wǎng)段客税,或?qū)蓚€(gè)以上的LAN互聯(lián)為一個(gè)邏輯LAN况褪,使LAN上的所有用戶都可訪問(wèn)服務(wù)器。
交換機(jī)
在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中更耻,交換機(jī)是針對(duì)共享工作模式的弱點(diǎn)而推出的测垛。
交換機(jī)擁有一條高帶寬的背部總線和內(nèi)部交換矩陣。交換機(jī)的所有的端口都掛接在這條背部總線上秧均,當(dāng)控制電路收到數(shù)據(jù)包以后食侮,處理端口會(huì)查找內(nèi)存中的地址對(duì)照表以確定目的MAC(網(wǎng)卡的硬件地址)的NIC(網(wǎng)卡)掛接在哪個(gè)端口上,通過(guò)內(nèi)部 交換矩陣迅速將數(shù)據(jù)包傳送到目的端口目胡。
目的MAC若不存在锯七,交換機(jī)才廣播到所有的端口,接收端口回應(yīng)后交換機(jī)會(huì)“學(xué)習(xí)”新的地址誉己,并把它添加入內(nèi)部地址表中眉尸。
交換機(jī)工作于OSI參考模型的第二層,即數(shù)據(jù)鏈路層。交換機(jī)內(nèi)部的CPU會(huì)在每個(gè)端口成功連接時(shí)噪猾,通過(guò)ARP協(xié)議學(xué)習(xí)它的MAC地址霉祸,保存成一張 ARP表。在今后的通訊中袱蜡,發(fā)往該MAC地址的數(shù)據(jù)包將僅送往其對(duì)應(yīng)的端口丝蹭,而不是所有的端口。因此戒劫,交換機(jī)可用于劃分?jǐn)?shù)據(jù)鏈路層廣播半夷,即沖突域;但它不 能劃分網(wǎng)絡(luò)層廣播迅细,即廣播域巫橄。
交換機(jī)被廣泛應(yīng)用于二層網(wǎng)絡(luò)交換,俗稱“二層交換機(jī)”茵典。交換機(jī)的種類有:二層交換機(jī)湘换、三層交換機(jī)、四層交換機(jī)统阿、七層交換機(jī)分別工作在OSI七層模型中的第二層彩倚、第三層、第四層盒第七層扶平,并因此而得名帆离。
路由器
路由器用來(lái)連通不同的網(wǎng)絡(luò),另一個(gè)作用是選擇信息和分發(fā)傳送的線路功能结澄。
選擇通暢快捷的近路哥谷,能大大提高通信速度,減輕網(wǎng)絡(luò)系統(tǒng)通信負(fù)荷麻献,節(jié)約網(wǎng)絡(luò)系統(tǒng)資源们妥,提高網(wǎng)絡(luò)系統(tǒng)暢通率。
具有多個(gè)接口勉吻,用于連接多個(gè)IP子網(wǎng)及多種鏈路监婶,并實(shí)現(xiàn)其互聯(lián)互通的網(wǎng)絡(luò)設(shè)備。
工作在OSI網(wǎng)絡(luò)層齿桃,其主要工作任務(wù)是在網(wǎng)絡(luò)中轉(zhuǎn)發(fā)IP數(shù)據(jù)包
路由表
又稱全局路由表惑惶,存儲(chǔ)在路由器的內(nèi)存中,用于指示路由器發(fā)送IP數(shù)據(jù)包轉(zhuǎn)發(fā)至正確目的地的信息表短纵。
例如集惋,生活中我們?nèi)コ嘶疖嚕覀冎魂P(guān)心目的城市踩娘,從上車之前我們并不知道其最近路線
路由表里面就保存著我們下一站的信息刮刑,火車每到一個(gè)站喉祭,都要經(jīng)過(guò)鐵路公司的統(tǒng)一安排開(kāi)始進(jìn)入對(duì)應(yīng)的股道
路由器可以理解為是鐵路中的小樞紐站一樣,路由表就是班車的到站信息雷绢。
區(qū)分交換機(jī)和路由器
利用現(xiàn)實(shí)例子了解路由器和交換機(jī)的區(qū)別:
路由器相當(dāng)于郵局泛烙,把信投遞到收件人地址,它的任務(wù)就完成了翘紊。但是信郵到了你們宿舍樓蔽氨,而這個(gè)地址不是你一個(gè)人專享的
所以樓管王大爺還要負(fù)責(zé)把信給到你手里,他不會(huì)關(guān)心收件人地址帆疟,只看收件人姓名鹉究,然后打個(gè)內(nèi)線電話叫你來(lái)取信。
如果沒(méi)有郵局踪宠,你沒(méi)法向世界各地的漂亮妹子們發(fā)信自赔,也沒(méi)法從樓外的漂亮妹子那里收信。
但是因?yàn)闃枪芡醮鬆數(shù)拇嬖诹粒闳匀豢梢酝ㄟ^(guò)他與同宿舍樓的好基友書信往來(lái)绍妨。
所有郵局構(gòu)成的系統(tǒng),就是“廣域網(wǎng)”柬脸,而你的宿舍樓他去,就是“局域網(wǎng)”,構(gòu)建局域網(wǎng)是不需要路由器的倒堕。
扮演角色:
樓管王大爺:交換機(jī)(只負(fù)責(zé)局域網(wǎng)分配不同的IP)
郵局:路由器灾测,可以把一個(gè)IP分配給很多個(gè)主機(jī)使用,這些主機(jī)對(duì)外只表現(xiàn)出一個(gè)IP垦巴,也就是只把信送到宿舍樓下媳搪,共用一個(gè)郵箱(IP)
7.典型面試題
請(qǐng)介紹在瀏覽器中輸入 www.baidu.com 后執(zhí)行的全部過(guò)程。
客戶端瀏覽器首先獲取本地host文件獲取IP魂那,如果獲取不到再通過(guò)DNS解析到www.baidu.com 的IP地址220.181.27.48,通過(guò)這個(gè)IP地址找到客戶端到服務(wù)器的路徑稠项。
客戶端瀏覽器發(fā)起一個(gè)HTTP會(huì)話到220.181.27.48涯雅,通過(guò)TCP握手建立連接,然后通過(guò)TCP進(jìn)行封裝數(shù)據(jù)包展运,輸入到網(wǎng)絡(luò)層活逆。
在客戶端的傳輸層,把HTTP會(huì)話請(qǐng)求分成報(bào)文段拗胜,添加源和目的端口蔗候,如服務(wù)器使用80端口監(jiān)聽(tīng)客戶端的請(qǐng)求,客戶端由系統(tǒng)隨機(jī)選擇一個(gè)端口如5000埂软,與服務(wù)器進(jìn)行交換锈遥,服務(wù)器把相應(yīng)的請(qǐng)求返回給客戶端的5000端口。
然后使用IP層的IP地址查找目的端∷模客戶端的網(wǎng)絡(luò)層不用關(guān)心應(yīng)用層或者傳輸層的東西丽惶,主要做的是通過(guò)查找路由表確定如何到達(dá)服務(wù)器。
期間可能經(jīng)過(guò)多個(gè)路由器爬立,這些都是由路由器來(lái)完成的工作钾唬,無(wú)非就是通過(guò)查找路由表決定通過(guò)那個(gè)路徑到達(dá)服務(wù)器。
客戶端的鏈路層侠驯,包通過(guò)鏈路層發(fā)送到路由器抡秆,通過(guò)鄰居協(xié)議查找給定IP地址的MAC地址。
然后發(fā)送ARP請(qǐng)求查找目的地址吟策,如果得到回應(yīng)后就可以使用ARP的請(qǐng)求應(yīng)答交換的IP數(shù)據(jù)包現(xiàn)在就可以傳輸了儒士,然后發(fā)送IP數(shù)據(jù)包到達(dá)服務(wù)器的地址。
服務(wù)器處理請(qǐng)求后響應(yīng)首頁(yè)數(shù)據(jù)反向傳輸踊挠,傳輸?shù)娇蛻舳撕笳Ч穑琓CP連接釋放,瀏覽器將首頁(yè)文件進(jìn)行解析效床,并將Web頁(yè)顯示給用戶睹酌。
微信公眾號(hào)
掃一掃關(guān)注Joyo說(shuō)公眾號(hào),共同學(xué)習(xí)和研究開(kāi)發(fā)技術(shù)剩檀。