摘要:動(dòng)態(tài)路由協(xié)議基于鏈路狀態(tài)路由算法的開(kāi)放式最短路徑優(yōu)先協(xié)議,廣泛應(yīng)用在數(shù)據(jù)中心的協(xié)議。基于距離矢量路由算法的針對(duì)網(wǎng)絡(luò)之間的路由協(xié)議,稱為外網(wǎng)路由協(xié)議,簡(jiǎn)稱每個(gè)數(shù)據(jù)中心都有自己的路由配置。
????前面例子中,我們都是在一個(gè)局域網(wǎng)內(nèi)折騰。今天就讓我們擴(kuò)大范圍,在多個(gè)局域網(wǎng)甚至到廣闊的互聯(lián)網(wǎng)世界中遨游,看看這中間會(huì)發(fā)生什么。
????這個(gè)過(guò)程中,跨網(wǎng)關(guān)訪問(wèn)是我們要了解的第一個(gè)內(nèi)容。
跨網(wǎng)關(guān)訪問(wèn)????當(dāng)我們要了解跨網(wǎng)關(guān)訪問(wèn)時(shí),就牽扯到 MAC 地址和 IP 地址的變化,因此,我們先來(lái)看下 MAC 頭和 IP 頭的細(xì)節(jié)。
MAC 頭和IP 頭的細(xì)節(jié)????如圖,在 MAC 頭里,先是目標(biāo) MAC 地址,然后是源 MAC 地址,最后是協(xié)議類型。
????在 IP 頭里,最重要的就是源 IP 地址和目標(biāo) IP 地址。除此之外,還有版本號(hào),也就是我們常說(shuō)的 IPv4 和 IPv6、服務(wù)類型 TOS(表示數(shù)據(jù)包優(yōu)先級(jí))、TTL(數(shù)據(jù)包生存周期)以及標(biāo)識(shí)協(xié)議(TCP 和 UDP)
????當(dāng)我們?cè)L問(wèn)博客園時(shí),經(jīng)過(guò)的第一個(gè)網(wǎng)關(guān)應(yīng)該就是我們配置的默認(rèn)網(wǎng)關(guān)。當(dāng)本機(jī)訪問(wèn)默認(rèn)網(wǎng)關(guān)時(shí),還是走局域網(wǎng)內(nèi)部訪問(wèn)的步驟:
將源地址和目標(biāo) IP 地址放入 IP 頭;
通過(guò) ARP 協(xié)議獲得網(wǎng)關(guān)的 MAC 地址;
將源 MAC 地址和網(wǎng)關(guān)的 MAC 地址放入 MAC 頭中,發(fā)送給網(wǎng)關(guān)。
????而我們的網(wǎng)關(guān),一般就是指家里的路由器,是一個(gè)三層轉(zhuǎn)發(fā)的設(shè)備。它會(huì)把 MAC 頭和 IP 頭都取下來(lái),然后根據(jù)里面的內(nèi)容,看看接下來(lái)把數(shù)據(jù)包轉(zhuǎn)發(fā)到哪里。
????很多情況下,人們把網(wǎng)關(guān)叫做路由器。其實(shí)并不準(zhǔn)備,用這個(gè)比喻應(yīng)該更為恰當(dāng)些:
路由器是一臺(tái)設(shè)備,它有五個(gè)網(wǎng)口或者網(wǎng)卡,相當(dāng)于有五只手,分別連著五個(gè)局域網(wǎng)。每只手的 IP 地址都和局域網(wǎng)的 IP 地址有著相同的網(wǎng)段,每只手都是它握住的那個(gè)局域網(wǎng)的網(wǎng)關(guān)。
????任何一個(gè)想發(fā)往其他局域網(wǎng)的包,都會(huì)到達(dá)其中一只手,被拿進(jìn)來(lái),拿下 MAC 頭和 IP 頭,然后根據(jù)自己的路由算法,選擇另一只手,加上 IP 頭和 MAC 頭,然后扔出去。
????注意,在上面這個(gè)過(guò)程中,有出現(xiàn)路由算法。接下來(lái),我們就來(lái)認(rèn)識(shí)下它。
路由算法????路由算法,又名選路算法,是提高路由協(xié)議功能,盡量減少路由時(shí)所帶來(lái)的開(kāi)銷的算法。
????路由算法可以根據(jù)多個(gè)特性來(lái)加以區(qū)分,找到到達(dá)目的地的最佳路由。
路由算法的區(qū)分點(diǎn)有很多,有
靜態(tài)與動(dòng)態(tài)
單路徑與多路徑
平坦與分層
主機(jī)智能與路由器智能
域內(nèi)與域間
鏈接狀態(tài)與距離向量
????這里主要介紹靜態(tài)與動(dòng)態(tài)路由算法。
靜態(tài)路由????靜態(tài)路由算法,實(shí)質(zhì)上是由網(wǎng)關(guān)配置好的映射表。
????我們家里的路由器,可能會(huì)有這樣的路由配置
訪問(wèn)博客園,從 2 號(hào)口出去,下一跳是 IP2;
訪問(wèn)百度,從 3 號(hào)口出去,下一跳是 IP3。
????類似上述這樣的規(guī)則就是靜態(tài)路由,按照一定的語(yǔ)法保存在路由器里。
????每當(dāng)要選擇從哪個(gè)口拋出去的時(shí)候,就一條一條的匹配規(guī)則,找到符合的規(guī)則,就按規(guī)則辦事,從指定口拋出去,找下一跳 IP。
過(guò)網(wǎng)關(guān)的“變”與“不變”????之前我們了解到,MAC 地址是一個(gè)局域網(wǎng)內(nèi)才有效的地址。因此,MAC 地址只要過(guò)網(wǎng)關(guān),就肯定會(huì)改變。而 IP 地址在過(guò)網(wǎng)關(guān)后 ,就不一定會(huì)改變了。
????經(jīng)過(guò)網(wǎng)關(guān) A 后,如果IP 地址沒(méi)有改變,那 A 就是轉(zhuǎn)發(fā)網(wǎng)關(guān),否則,就是NAT網(wǎng)關(guān)。
????如上圖,服務(wù)器 A 要訪問(wèn)服務(wù)器 B,要經(jīng)過(guò)過(guò)程:
1)服務(wù)器 A 到 網(wǎng)關(guān) A
檢查 B 的網(wǎng)段,發(fā)現(xiàn)不在同一個(gè)網(wǎng)段,因此發(fā)給網(wǎng)關(guān)
由于網(wǎng)關(guān)的 IP 地址是已經(jīng)配置好了,因此發(fā)送 ARP 獲取網(wǎng)關(guān)的 MAC 地址
發(fā)送包
而最后發(fā)送包的內(nèi)容主要有:
源 MAC:服務(wù)器 A 的 MAC
模板 MAC:192.168.1.1 網(wǎng)關(guān)的 MAC
源 IP:192.168.1.101
目標(biāo) IP:192.168.4.101
????數(shù)據(jù)包到達(dá) 192.168.1.1 這個(gè)網(wǎng)口后,網(wǎng)口發(fā)現(xiàn) MAC 地址是它的,就將包收進(jìn)來(lái),然后開(kāi)始“思考”往哪里轉(zhuǎn)發(fā)。
????這時(shí)候,路由器 A 中配置了規(guī)則 A1:
要訪問(wèn) 192.168.4.0/24,就從 192.168.56.1 這個(gè)網(wǎng)口出去,下一跳是 192.168.56.2
2)網(wǎng)關(guān) A 到 網(wǎng)關(guān) B
????于是,路由器 A 匹配了 A1,要從 192.168.56.1 這個(gè)口發(fā)出去,發(fā)給 192.168.56.2。于是,又開(kāi)始了這個(gè)過(guò)程:
檢查 B 的網(wǎng)段,發(fā)現(xiàn)在同一個(gè)網(wǎng)段, ARP 獲取 MAC 地址
發(fā)送包
數(shù)據(jù)包的內(nèi)容是:
源 MAC:192.168.56.1 的 MAC
模板 MAC:192.168.56.2 的 MAC
源 IP:192.168.1.101
目標(biāo) IP:192.168.4.101
????數(shù)據(jù)包到達(dá) 192 .168.56.2 網(wǎng)口,網(wǎng)口發(fā)現(xiàn) MAC 地址是它的,就將包收進(jìn)來(lái),然后去檢查路由規(guī)則。
????路由器 B 配置以下規(guī)則 B1:
想訪問(wèn) 192.168.4.0/24,就從 192.168.4.1
????而路由器 B 發(fā)現(xiàn),它的右網(wǎng)口就是目標(biāo)地址網(wǎng)段的,因此就沒(méi)有下一跳了。
3)網(wǎng)關(guān) B 到 服務(wù)器 B
路由器 B 匹配上 B1。從 192.168.4.1 出口,發(fā)給 192.168.4.101。數(shù)據(jù)包內(nèi)容:
源 MAC:192.168.4.1 的 MAC
模板 MAC:192.168.4.101 的 MAC
源 IP:192.168.1.101
目標(biāo) IP:192.168.4.101
????服務(wù)器 B 收到數(shù)據(jù)包,發(fā)現(xiàn) MAC 地址是它的,就把包收進(jìn)來(lái)。
????通過(guò)上面的過(guò)程可以看出,每到一個(gè)新的局域網(wǎng), MAC 地址都是要變的,而 IP 地址則都不變。在 IP 頭里面,不會(huì)保存任何網(wǎng)關(guān)的 IP 地址。
????而我們說(shuō)的下一跳,就是某個(gè) IP 要將這個(gè) IP 地址轉(zhuǎn)換為 MAC 放入 MAC 頭。
????NAT 網(wǎng)關(guān),也就是 Network Address Translation。
????由于各個(gè)局域網(wǎng)都有各自的網(wǎng)段,很容易出現(xiàn) IP 沖突的情況。如上圖,美國(guó)服務(wù)器 A 的 IP 地址和 法國(guó)服務(wù)器 B 的 IP 地址都是 192.168.1.101/24,從 IP 上看,好像是自己訪問(wèn)自己,但實(shí)際上從美國(guó)的 192.168.1.101 訪問(wèn)法國(guó)的 192.168.1.101。
????如何解決這個(gè)問(wèn)題呢?既然局域網(wǎng)之間沒(méi)有商量好 IP 分配,各管各的,那到國(guó)際上,也就是中間的局域網(wǎng)里面,就需要使用另外的地址,就像出國(guó)后,我們要改用護(hù)照一樣。
????首先,目標(biāo)服務(wù)器 B 在國(guó)際上要有一個(gè)國(guó)際的身份,我們給它一個(gè) 190.168.56.2.在網(wǎng)關(guān) B 上,我們記下來(lái),國(guó)際身份 192.168.56.2 對(duì)應(yīng)國(guó)內(nèi)身份 192.168.1.101.凡是要訪問(wèn) 192.168.56.2 的,網(wǎng)關(guān)都要轉(zhuǎn)成 192.168.1.101。
????于是,源服務(wù)器 A 要訪問(wèn)目標(biāo)服務(wù)器 B,目標(biāo)地址就變成國(guó)際 IP 地址 192.168.56.2。過(guò)程如下:
1)源服務(wù)器 A 發(fā)數(shù)據(jù)包到網(wǎng)關(guān) A
檢查服務(wù)器 B IP,不在同一網(wǎng)段
ARP 獲取網(wǎng)關(guān) MAC 地址
發(fā)送包
數(shù)據(jù)包的內(nèi)容是這樣的:
源 MAC:服務(wù)器 A 的 MAC
目標(biāo) MAC:192.168.1.1 這個(gè)網(wǎng)口的 MAC
源 IP:192.168.1.101
目標(biāo) IP:192.168.56.2
????路由器 A 中 192.168.1.1 這個(gè)網(wǎng)口收到數(shù)據(jù)包后,檢查 MAC 地址一致,將包收進(jìn)來(lái)。
????在路由器 A 中配置了規(guī)則:
想訪問(wèn) 192.168.56.2/24,就從 192.168.56.1 網(wǎng)口發(fā)出去,發(fā)給 192.168.56.2,沒(méi)有下一跳。
????由于路由器的右網(wǎng)口(192.168.56.1) IP 地址和目標(biāo) IP 地址在同一網(wǎng)段,因此沒(méi)有下一跳。
2)網(wǎng)關(guān) A 到網(wǎng)關(guān) B
當(dāng)網(wǎng)絡(luò)包發(fā)送到中間的局域網(wǎng)時(shí),服務(wù)器 A 也需要有個(gè)國(guó)際身份。因此,源 IP 地址 192.168.1.101 要改成 192.168.56.1,所以數(shù)據(jù)包的內(nèi)容是:
源 MAC:192.168.56.1 的 MAC
目標(biāo) MAC:192.168.56.2 的 MAC
源 IP:192.168.56.1
目標(biāo) IP:192.168.56.2
????包到達(dá) 192.168.56.2 這個(gè)網(wǎng)口后,發(fā)現(xiàn) MAC 一致,就將包收進(jìn)來(lái)。
????而路由器 B 是 NAT 網(wǎng)關(guān),它上面配置了,國(guó)際身份 192.168.56.2 對(duì)應(yīng)國(guó)內(nèi)的 192.168.1.101,于是目標(biāo)地址改為 192.168.1.101。
????同樣的,路由器 B 中配置了規(guī)則:
想訪問(wèn) 192.168.1.101,就從 192.168.1.1 網(wǎng)口出去,沒(méi)有下一跳。
????于是,數(shù)據(jù)包就從 192.168.1.1 這個(gè)網(wǎng)口發(fā)給 192.168.1.101。
3)網(wǎng)關(guān) B 到服務(wù)器 B
數(shù)據(jù)包從 192.168.1.1 網(wǎng)口發(fā)出后,同樣經(jīng)過(guò)這些步驟:
檢查服務(wù)器 B 的 IP,在同一網(wǎng)段
ARP 獲取服務(wù)器 B 的 MAC 地址
發(fā)送包
這時(shí)的數(shù)據(jù)包就變成了:
源 MAC:192.168.1.1 的 MAC
目標(biāo) MAC:192.168.1.101 的 MAC
源 IP:192.168.56.1
目標(biāo) IP:192.168.1.101
????服務(wù)器收到包后,檢查 MAC 地址一致,就將數(shù)據(jù)包收進(jìn)來(lái)。
????從服務(wù)器 B 接收的數(shù)據(jù)包可以看出,源 IP 為 服務(wù)器 A 的國(guó)際身份,因而發(fā)送返回包的時(shí)候,也發(fā)給這個(gè)國(guó)際身份,由路由器 A 做 NAT,轉(zhuǎn)換為國(guó)內(nèi)身份。
動(dòng)態(tài)路由1)基本思路
基于Bellman-Ford 算法。每個(gè)路由器都保存一個(gè)路由表,包含多行,每行對(duì)應(yīng)網(wǎng)絡(luò)中的一個(gè)路由器,每一行包含兩部分信息,一個(gè)是要到目標(biāo)路由器,從哪條線出去,另一個(gè)是到目標(biāo)路由器的距離
2)存在問(wèn)題
a. 好消息傳得塊,壞消息傳的慢。
新加入的路由器能夠很快的新路由器信息廣播出去。但是如果一個(gè)路由器掛了,掛的消息沒(méi)有廣播。每個(gè)經(jīng)過(guò)這個(gè)宕機(jī)節(jié)點(diǎn)的路由器,無(wú)法得知該節(jié)點(diǎn)一宕機(jī),而是試圖通過(guò)其他的路徑訪問(wèn),直到試過(guò)了所有的路徑,才發(fā)現(xiàn)這個(gè)路由器已經(jīng)宕機(jī)了。
示例:
b. 每次發(fā)送消息,要發(fā)送整個(gè)全局路由表
????上面的兩個(gè)問(wèn)題,限制了距離矢量路由的網(wǎng)絡(luò)規(guī)模,僅適用于小型網(wǎng)絡(luò)(小于 15 跳)。
1)基本思路
基于Dijkstra 算法。當(dāng)一個(gè)路由器加入網(wǎng)絡(luò)是,首先是發(fā)現(xiàn)鄰居,給鄰居說(shuō) hello,鄰居都回復(fù)。然后計(jì)算和鄰居的距離,發(fā)送一個(gè) echo,要求馬上返回,除以 2 就是距離。接著將自己和鄰居之間的鏈路狀態(tài)包廣播出去,發(fā)送到整個(gè)網(wǎng)絡(luò)的每個(gè)路由器。
????這種算法中,每個(gè)路由器都能在自己本地構(gòu)建一個(gè)完整的圖,然后針對(duì)這個(gè)圖使用 Dijkstra 算法,找到兩點(diǎn)之間的最短路徑。
????不像距離矢量路由協(xié)議那樣,更新時(shí)發(fā)送整個(gè)路由表。鏈路狀態(tài)路由協(xié)議只廣播更新的或改變的網(wǎng)絡(luò)拓?fù)?,這使得更新信息更小,節(jié)省了寬帶和 CPU 利用率。而且一旦一個(gè)路由器掛了,它的鄰居都會(huì)廣播這個(gè)消息,可以使得壞消息迅速收斂。
OSPF(Open Shortest Path First, 開(kāi)放式最短路徑優(yōu)先)協(xié)議,廣泛應(yīng)用在數(shù)據(jù)中心的協(xié)議。由于主要用在數(shù)據(jù)中心內(nèi)部,用于路由決策,因此稱為內(nèi)部網(wǎng)關(guān)協(xié)議(Interior Gateway Protocol,簡(jiǎn)稱 IGP)
????內(nèi)部網(wǎng)關(guān)協(xié)議的重點(diǎn)就是找到最短路徑。當(dāng)存在多個(gè)最短路徑時(shí),可以在這多個(gè)路徑中進(jìn)行負(fù)載均衡,這常常被稱為等價(jià)路由。
????等價(jià)路由不僅可以用來(lái)分?jǐn)偭髁?,還可以提高容錯(cuò)率,當(dāng)一條路徑不通時(shí),還可以通過(guò)另外一條路到達(dá)目的地。
針對(duì)網(wǎng)絡(luò)之間的路由協(xié)議,稱為外網(wǎng)路由協(xié)議(Border Gateway Protocol,簡(jiǎn)稱 BGP)
????每個(gè)數(shù)據(jù)中心都有自己的路由配置。例如,哪些外部 IP 可以讓內(nèi)部知曉,哪些內(nèi)部 IP 可以讓外部知曉,哪些可以通過(guò),哪些不能通過(guò)。
????因此,在各個(gè)數(shù)據(jù)中心進(jìn)行交互時(shí),需要一種協(xié)議,通過(guò)這種協(xié)議,可以知道相鄰數(shù)據(jù)中心的路由配置,從而找到數(shù)據(jù)中心之間最好的路由。
????BGP 協(xié)議就是這樣的協(xié)議。它不著眼于發(fā)現(xiàn)和計(jì)算路由,而在于控制路由的傳播和選擇最好的路由。
總結(jié)數(shù)據(jù)包要離開(kāi)本局域網(wǎng),就要經(jīng)過(guò)網(wǎng)關(guān),網(wǎng)關(guān)就是路由器的一個(gè)網(wǎng)口;
路由器是一個(gè)三層設(shè)備,理由有如何尋找下一跳的規(guī)則;
經(jīng)過(guò)路由器之后的 MAC 頭肯定會(huì)變。如果 IP 不變,就是 轉(zhuǎn)發(fā)網(wǎng)關(guān),否則就是 NAT網(wǎng)關(guān);
路由分靜態(tài)路由和動(dòng)態(tài)路由,動(dòng)態(tài)路由可以配置復(fù)雜的策略路由,控制轉(zhuǎn)發(fā)策略;
動(dòng)態(tài)路由主流算法有兩種,距離矢量算法和鏈路狀態(tài)算法?;趦煞N算法產(chǎn)生兩種協(xié)議,BGP 協(xié)議和 OSPF 協(xié)議。
參考:
百度百科
劉超-趣談網(wǎng)絡(luò)協(xié)議系列課;
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/108759.html
摘要:重要的是,分析人員已經(jīng)調(diào)查了該漏洞,他們發(fā)現(xiàn)互聯(lián)網(wǎng)上有超過(guò)個(gè)暴露和易受攻擊的服務(wù)器。數(shù)據(jù)顯示,的網(wǎng)絡(luò)攻擊事件都與漏洞利用相關(guān),由此可見(jiàn)安全漏洞在網(wǎng)絡(luò)攻擊中起到至關(guān)重要的作用。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;c...
摘要:前面層中的以類別無(wú)關(guān)的方式增強(qiáng)可共享的低層表示的質(zhì)量。通過(guò)調(diào)整網(wǎng)絡(luò)各層間的連接機(jī)制來(lái)提升深層網(wǎng)絡(luò)的學(xué)習(xí)和表示性能?;径际浅R?guī)處理和訓(xùn)練設(shè)置。根據(jù)輸入動(dòng)態(tài)調(diào)整各通道的特征,增強(qiáng)網(wǎng)絡(luò)的表示能力。 SENet Squeeze-and-Excitation NetworksJie Hu, Li Shen, Gang Sun 摘要 卷積神經(jīng)網(wǎng)絡(luò)顧名思義就是依賴卷積操作,使用局部感受區(qū)域(loc...
摘要:本報(bào)告面向的讀者是想要進(jìn)入機(jī)器學(xué)習(xí)領(lǐng)域的學(xué)生和正在尋找新框架的專家。其輸入需要重塑為包含個(gè)元素的一維向量以滿足神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)目前代表著用于圖像分類任務(wù)的較先進(jìn)算法,并構(gòu)成了深度學(xué)習(xí)中的主要架構(gòu)。 初學(xué)者在學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的時(shí)候往往會(huì)有不知道從何處入手的困難,甚至可能不知道選擇什么工具入手才合適。近日,來(lái)自意大利的四位研究者發(fā)布了一篇題為《神經(jīng)網(wǎng)絡(luò)初學(xué)者:在 MATLAB、Torch 和 ...
摘要:災(zāi)備服務(wù)支持本地災(zāi)備異地災(zāi)備公有云災(zāi)備兩地三中心等多種服務(wù)方式,可根據(jù)業(yè)務(wù)特點(diǎn)和需求,靈活選擇災(zāi)備方式,保證業(yè)務(wù)的和。公有云災(zāi)備架構(gòu)公有云災(zāi)備服務(wù)支持多種業(yè)務(wù)部署方式,為云平臺(tái)業(yè)務(wù)提供不同指標(biāo),控制云平臺(tái)業(yè)務(wù)災(zāi)備成本。UCloudStack 云平臺(tái)通過(guò)分布式存儲(chǔ)系統(tǒng)保證本地?cái)?shù)據(jù)的安全性,同時(shí)通過(guò)遠(yuǎn)程數(shù)據(jù)備份服務(wù),為用戶提供遠(yuǎn)程數(shù)據(jù)備份和容災(zāi)備服務(wù),可以將本地云端數(shù)據(jù)統(tǒng)一歸檔、備份至遠(yuǎn)程云...
摘要:上一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)數(shù)據(jù)爬取下一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)動(dòng)態(tài)渲染頁(yè)面抓取本節(jié)我們以今日頭條為例來(lái)嘗試通過(guò)分析請(qǐng)求來(lái)抓取網(wǎng)頁(yè)數(shù)據(jù)的方法,我們這次要抓取的目標(biāo)是今日頭條的街拍美圖,抓取完成之后將每組圖片分文件夾下載到本地保存下來(lái)。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---35、 Ajax數(shù)據(jù)爬取下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---37、動(dòng)態(tài)渲染頁(yè)面抓取:Selenium 本節(jié)我們...
閱讀 2073·2021-09-09 09:33
閱讀 1136·2019-08-30 15:43
閱讀 2693·2019-08-30 13:45
閱讀 3328·2019-08-29 11:00
閱讀 927·2019-08-26 14:01
閱讀 3591·2019-08-26 13:24
閱讀 507·2019-08-26 11:56
閱讀 2715·2019-08-26 10:27