題外話
??本文實(shí)非大佬們的科普著作,而是犬余學(xué)習(xí)過程中的筆記略作潤色,內(nèi)容如有錯(cuò)誤或不當(dāng)之處,歡迎指正。
??再此也小推一下本人的公眾號(hào),記錄一下學(xué)習(xí)過程,立個(gè)flag:堅(jiān)持學(xué)習(xí),每周一更,歡迎監(jiān)督~
引言:
??在計(jì)算機(jī)網(wǎng)絡(luò)中,數(shù)據(jù)傳輸?shù)母咝院头€(wěn)定性是至關(guān)重要的。為了實(shí)現(xiàn)這一目標(biāo),我們需要依賴一些特定的網(wǎng)絡(luò)設(shè)備,如交換機(jī)和路由器。這兩種設(shè)備在網(wǎng)絡(luò)傳輸中起著不可或缺的作用,但它們之間有何區(qū)別?這便是今天要探討的內(nèi)容。
先說結(jié)論:
-
交換機(jī)工作在數(shù)據(jù)鏈路層,通過MAC地址進(jìn)行尋址,而路由器則工作在網(wǎng)絡(luò)層,通過IP地址進(jìn)行尋址;
-
交換機(jī)主要用于局域網(wǎng)內(nèi)部的數(shù)據(jù)傳輸,無法實(shí)現(xiàn)跨網(wǎng)絡(luò)的數(shù)據(jù)傳輸。相比之下,路由器則可以在不同的網(wǎng)絡(luò)之間進(jìn)行數(shù)據(jù)傳輸;
-
路由器和交換機(jī)都能實(shí)現(xiàn)局域網(wǎng)的搭建,但交換機(jī)效率更高,更簡單,相對(duì)來說也更便宜;
-
交換機(jī)還具有通過VLAN技術(shù)實(shí)現(xiàn)虛擬局域網(wǎng)劃分的能力。雖然部分路由器也能實(shí)現(xiàn)這一功能,但在操作簡便性上,交換機(jī)通常更具優(yōu)勢(shì)。
再看細(xì)節(jié):
??要理清楚路由器和交換機(jī)的區(qū)別,需要先從網(wǎng)絡(luò)模型的結(jié)構(gòu)入手,計(jì)算機(jī)網(wǎng)絡(luò)結(jié)構(gòu)有三種劃分方式:OSI七層模型、TCP/IP四層模型、以及折中的TCP/IP五層模型
? ?這三種模型的細(xì)節(jié)這里不做深究,這里以五層模型為例,我們需要略作了解的是五層模型中的網(wǎng)絡(luò)層以及數(shù)據(jù)鏈路層:
??網(wǎng)絡(luò)層主要負(fù)責(zé)連接多個(gè)計(jì)算機(jī)網(wǎng)絡(luò),根據(jù)IP協(xié)議將上層交付的數(shù)據(jù)封裝成IP報(bào)文,然后通過一定的算法進(jìn)行路由的選擇,將報(bào)文分組轉(zhuǎn)發(fā)出去,達(dá)成在不同網(wǎng)絡(luò)之間傳輸數(shù)據(jù)的目的;
??而數(shù)據(jù)鏈路層主要是提供具體的數(shù)據(jù)傳輸服務(wù)的,根據(jù)HDLC協(xié)議或PPP協(xié)議等其他數(shù)據(jù)鏈路層協(xié)議,將網(wǎng)絡(luò)層傳輸過來的數(shù)據(jù)報(bào)文封裝成數(shù)據(jù)幀,按照MAC地址將數(shù)據(jù)幀發(fā)送給具體的設(shè)備。
??簡單了解了網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層的功能之后,路由器和交換機(jī)的區(qū)別就很好理解了:
??路由器工作在五層網(wǎng)絡(luò)模型中的網(wǎng)絡(luò)層,是一種較復(fù)雜的網(wǎng)絡(luò)設(shè)備, 作為網(wǎng)絡(luò)層的中繼系統(tǒng),它不僅實(shí)現(xiàn)了網(wǎng)絡(luò)層需要的全部功能,由于強(qiáng)大的功能和復(fù)雜的處理過程,其性能通常也比交換機(jī)更強(qiáng),但相應(yīng)的,一般情況下路由器的價(jià)格相對(duì)也會(huì)比交換機(jī)更貴一些;
??交換機(jī)則工作在上述的數(shù)據(jù)鏈路層,除了根據(jù)各種數(shù)據(jù)鏈路層協(xié)議和數(shù)據(jù)幀中的MAC地址在局域網(wǎng)內(nèi)尋址轉(zhuǎn)發(fā)數(shù)據(jù)之外,交換機(jī)還可以通過VLAN技術(shù)實(shí)現(xiàn)對(duì)虛擬局域網(wǎng)的劃分。并且由于交換機(jī)只需處理MAC地址,其處理速度通常比路由器更快。
??總的來講,交換機(jī)和路由器在網(wǎng)絡(luò)設(shè)備中各有其獨(dú)特的作用和優(yōu)勢(shì)。交換機(jī)主要用于提供高效的數(shù)據(jù)傳輸,而路由器則用于實(shí)現(xiàn)不同網(wǎng)絡(luò)之間的通信。
繼續(xù)擴(kuò)展:
交換機(jī)如何根據(jù)MAC地址將數(shù)據(jù)幀轉(zhuǎn)發(fā)給特定的機(jī)器:
? ? 交換機(jī)內(nèi)部維護(hù)著一張幀交換表,這張表記錄了MAC地址與對(duì)應(yīng)的交換機(jī)接口。例如,當(dāng)交換機(jī)收到目的地址為A的數(shù)據(jù)幀時(shí),它會(huì)在幀交換表中找到對(duì)應(yīng)的接口1,并通過此接口發(fā)送數(shù)據(jù)幀,從而完成基礎(chǔ)的數(shù)據(jù)發(fā)送過程。那么,這張幀交換表是如何維護(hù)的呢?交換機(jī)又是如何知道A地址連接的是1端口呢?這就涉及到交換機(jī)的自學(xué)習(xí)功能:
??如圖,有四臺(tái)設(shè)備ABCD分別連接交換機(jī)的1234四個(gè)接口,且交換機(jī)內(nèi)部的幀交換表為空。此時(shí),設(shè)備A要將數(shù)據(jù)幀發(fā)送給設(shè)備B。交換機(jī)收到的數(shù)據(jù)幀的來源MAC為A,目的MAC為B。交換機(jī)會(huì)將收到數(shù)據(jù)的1接口和來源MAC關(guān)聯(lián)存儲(chǔ)到幀交換表中(A->1)。由于幀交換表內(nèi)沒有記錄B對(duì)應(yīng)哪個(gè)接口,交換機(jī)會(huì)將數(shù)據(jù)幀廣播給所有接口。設(shè)備C和設(shè)備D收到數(shù)據(jù)后,由于目的MAC地址不是自己的MAC地址,所以不會(huì)處理收到的數(shù)據(jù)。設(shè)備B收到數(shù)據(jù)后,確認(rèn)數(shù)據(jù)是發(fā)給自己的,若B此時(shí)對(duì)A做出了響應(yīng),即B又向A發(fā)送了數(shù)據(jù)幀,此時(shí)響應(yīng)幀的來源MAC地址為B,目的MAC地址為A。交換機(jī)收到響應(yīng)幀后,就會(huì)將(B->2)記錄到幀交換表中。而由于響應(yīng)幀的目的MAC地址A已經(jīng)存在于幀交換表中(A->1),交換機(jī)直接將響應(yīng)幀發(fā)送到1接口。經(jīng)過一輪數(shù)據(jù)的發(fā)送,交換機(jī)內(nèi)部的幀交換表便記錄下了A和B的MAC地址以及其對(duì)應(yīng)的接口1和2。
?? 需要注意的是,每臺(tái)設(shè)備的MAC地址與交換機(jī)接口的關(guān)系并不是永久的(每個(gè)接口連接的設(shè)備都有可能被更換),因此幀交換表中的每條記錄都有自己的有效時(shí)間,到期后記錄會(huì)自動(dòng)刪除。文章來源:http://www.zghlxwxcb.cn/news/detail-830637.html
路由器如何根據(jù)IP地址將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給特定的網(wǎng)絡(luò):
??在網(wǎng)絡(luò)通信中,主機(jī)之間的數(shù)據(jù)傳輸需要遵循特定的規(guī)則和流程。以兩臺(tái)主機(jī)A和B為例,我們來探討它們?nèi)绾芜M(jìn)行數(shù)據(jù)交換。
??首先,主機(jī)A的IP地址為192.168.0.84,子網(wǎng)掩碼為255.255.255.0。主機(jī)B的IP地址為192.168.2.54,子網(wǎng)掩碼同樣為255.255.255.0。當(dāng)主機(jī)A想要發(fā)送數(shù)據(jù)給主機(jī)B時(shí),它首先需要確定目標(biāo)主機(jī)是否位于同一網(wǎng)絡(luò)中。
??通過對(duì)IP地址和子網(wǎng)掩碼進(jìn)行按位與(AND)運(yùn)算,主機(jī)A得到自己的網(wǎng)絡(luò)地址為192.168.0.0,而對(duì)主機(jī)B的IP地址進(jìn)行同樣的運(yùn)算后得到的網(wǎng)絡(luò)地址為192.168.2.0。由于這兩個(gè)網(wǎng)絡(luò)地址不相同,我們可以判斷出A和B不處于同一網(wǎng)絡(luò)。在這種情況下,主機(jī)A無法直接將數(shù)據(jù)發(fā)送給B。它需要通過默認(rèn)網(wǎng)關(guān)來轉(zhuǎn)發(fā)數(shù)據(jù)。主機(jī)A會(huì)將數(shù)據(jù)包發(fā)送給路由器R,路由器R在收到數(shù)據(jù)包后,會(huì)首先檢查數(shù)據(jù)包首部是否有錯(cuò)誤。如果發(fā)現(xiàn)錯(cuò)誤,路由器將丟棄該數(shù)據(jù)包并通知源主機(jī)A。如果數(shù)據(jù)包首部沒有錯(cuò)誤,路由器則會(huì)根據(jù)數(shù)據(jù)包中的目的IP地址,在其路由表中查找匹配的路由記錄。若找到匹配路由,則轉(zhuǎn)發(fā)給對(duì)應(yīng)路由的下一跳地址,若找不到,則直接丟棄該數(shù)據(jù)報(bào)并通知源主機(jī)。
??路由表是路由器用來決定數(shù)據(jù)包如何傳輸?shù)侥康牡氐年P(guān)鍵信息集合。在Linux系統(tǒng)中,我們可以通過route -n命令查看主機(jī)維護(hù)的路由表:
??這里我們主要關(guān)注的是第一列目的網(wǎng)絡(luò)地址,第二列網(wǎng)關(guān)以及第三列子網(wǎng)掩碼;
??例如當(dāng)我們需要向IP地址為192.168.122.25的主機(jī)發(fā)送數(shù)據(jù)時(shí),系統(tǒng)會(huì)將這個(gè)IP地址與路由表中每條記錄的子網(wǎng)掩碼進(jìn)行按位與運(yùn)算。通過比較運(yùn)算結(jié)果和記錄中的網(wǎng)絡(luò)地址,命中網(wǎng)絡(luò)地址為192.168.122.0的記錄,數(shù)據(jù)就會(huì)被發(fā)送到該記錄對(duì)應(yīng)的網(wǎng)關(guān)。值得注意的是,如上圖該記錄的網(wǎng)關(guān)地址為0.0.0.0,這表示目的地址與當(dāng)前主機(jī)的virbr0網(wǎng)卡(上圖的最后一列)處于同一網(wǎng)絡(luò),因此數(shù)據(jù)包可以直接在內(nèi)部網(wǎng)絡(luò)中傳輸,無需經(jīng)過其他網(wǎng)絡(luò):
??此外,路由表中還存在一條特殊的記錄,即目的網(wǎng)絡(luò)地址為0.0.0.0的記錄:
??這條記錄被稱為默認(rèn)路由。當(dāng)所有其他記錄都無法與目標(biāo)IP地址匹配時(shí),數(shù)據(jù)包會(huì)與默認(rèn)路由匹配。由于任何IP地址與子網(wǎng)掩碼0.0.0.0進(jìn)行按位與運(yùn)算后都會(huì)得到0.0.0.0,這就確保了數(shù)據(jù)包能夠匹配到默認(rèn)路由。在這種情況下,數(shù)據(jù)包會(huì)被發(fā)送到默認(rèn)路由指定的網(wǎng)關(guān),例如192.168.153.2,這個(gè)網(wǎng)關(guān)地址就是我們的默認(rèn)網(wǎng)關(guān)。
??通過上述流程,主機(jī)A和B即使不在同一網(wǎng)絡(luò)中,也能夠通過路由器R和路由表中的信息實(shí)現(xiàn)數(shù)據(jù)的有效傳輸。文章來源地址http://www.zghlxwxcb.cn/news/detail-830637.html
到了這里,關(guān)于計(jì)算機(jī)網(wǎng)絡(luò)|交換機(jī)與路由器的差異的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!