|
導讀網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立... 網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。 本篇文章給大家帶來的內容是關于網絡協議之路由協議的詳細介紹(示例講解),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。前面例子中,我們都是在一個局域網內折騰。今天就讓我們擴大范圍,在多個局域網甚至到廣闊的互聯網世界中遨游,看看這中間會發生什么。 這個過程中,跨網關訪問是我們要了解的第一個內容。 跨網關訪問當我們要了解跨網關訪問時,就牽扯到 MAC 地址和 IP 地址的變化,因此,我們先來看下 MAC 頭和 IP 頭的細節。 MAC 頭和IP 頭的細節
如圖,在 MAC 頭里,先是目標 MAC 地址,然后是源 MAC 地址,最后是協議類型。 在 IP 頭里,最重要的就是源 IP 地址和目標 IP 地址。除此之外,還有版本號,也就是我們常說的 IPv4 和 IPv6、服務類型 TOS(表示數據包優先級)、TTL(數據包生存周期)以及標識協議(TCP 和 UDP) 當我們訪問博客園時,經過的第一個網關應該就是我們配置的默認網關。當本機訪問默認網關時,還是走局域網內部訪問的步驟:
而我們的網關,一般就是指家里的路由器,是一個三層轉發的設備。它會把 MAC 頭和 IP 頭都取下來,然后根據里面的內容,看看接下來把數據包轉發到哪里。 很多情況下,人們把網關叫做路由器。其實并不準備,用這個比喻應該更為恰當些: 路由器是一臺設備,它有五個網口或者網卡,相當于有五只手,分別連著五個局域網。每只手的 IP 地址都和局域網的 IP 地址有著相同的網段,每只手都是它握住的那個局域網的網關。 任何一個想發往其他局域網的包,都會到達其中一只手,被拿進來,拿下 MAC 頭和 IP 頭,然后根據自己的路由算法,選擇另一只手,加上 IP 頭和 MAC 頭,然后扔出去。 注意,在上面這個過程中,有出現路由算法。接下來,我們就來認識下它。 路由算法路由算法,又名選路算法,是提高路由協議功能,盡量減少路由時所帶來的開銷的算法。 路由算法可以根據多個特性來加以區分,找到到達目的地的最佳路由。 路由算法的區分點有很多,有
????這里主要介紹靜態與動態路由算法。 靜態路由????靜態路由算法,實質上是由網關配置好的映射表。 ????我們家里的路由器,可能會有這樣的路由配置 訪問博客園,從 2 號口出去,下一跳是 IP2; ????類似上述這樣的規則就是靜態路由,按照一定的語法保存在路由器里。 ????每當要選擇從哪個口拋出去的時候,就一條一條的匹配規則,找到符合的規則,就按規則辦事,從指定口拋出去,找下一跳 IP。 過網關的“變”與“不變”????之前我們了解到,MAC 地址是一個局域網內才有效的地址。因此,MAC 地址只要過網關,就肯定會改變。而 IP 地址在過網關后 ,就不一定會改變了。 ????經過網關 A 后,如果IP 地址沒有改變,那 A 就是轉發網關,否則,就是NAT網關。 轉發網關
????如上圖,服務器 A 要訪問服務器 B,要經過過程: 1)服務器 A 到 網關 A
而最后發送包的內容主要有:
????數據包到達 192.168.1.1 這個網口后,網口發現 MAC 地址是它的,就將包收進來,然后開始“思考”往哪里轉發。 ????這時候,路由器 A 中配置了規則 A1: 要訪問 192.168.4.0/24,就從 192.168.56.1 這個網口出去,下一跳是 192.168.56.2 2)網關 A 到 網關 B ????于是,路由器 A 匹配了 A1,要從 192.168.56.1 這個口發出去,發給 192.168.56.2。于是,又開始了這個過程:
數據包的內容是:
????數據包到達 192 .168.56.2 網口,網口發現 MAC 地址是它的,就將包收進來,然后去檢查路由規則。 ????路由器 B 配置以下規則 B1: 想訪問 192.168.4.0/24,就從 192.168.4.1 ????而路由器 B 發現,它的右網口就是目標地址網段的,因此就沒有下一跳了。 3)網關 B 到 服務器 B 路由器 B 匹配上 B1。從 192.168.4.1 出口,發給 192.168.4.101。數據包內容:
????服務器 B 收到數據包,發現 MAC 地址是它的,就把包收進來。 ????通過上面的過程可以看出,每到一個新的局域網, MAC 地址都是要變的,而 IP 地址則都不變。在 IP 頭里面,不會保存任何網關的 IP 地址。 ????而我們說的下一跳,就是某個 IP 要將這個 IP 地址轉換為 MAC 放入 MAC 頭。 NAT 網關????NAT 網關,也就是 Network Address Translation。
????由于各個局域網都有各自的網段,很容易出現 IP 沖突的情況。如上圖,美國服務器 A 的 IP 地址和 法國服務器 B 的 IP 地址都是 192.168.1.101/24,從 IP 上看,好像是自己訪問自己,但實際上從美國的 192.168.1.101 訪問法國的 192.168.1.101。 ????如何解決這個問題呢?既然局域網之間沒有商量好 IP 分配,各管各的,那到國際上,也就是中間的局域網里面,就需要使用另外的地址,就像出國后,我們要改用護照一樣。 ????首先,目標服務器 B 在國際上要有一個國際的身份,我們給它一個 190.168.56.2.在網關 B 上,我們記下來,國際身份 192.168.56.2 對應國內身份 192.168.1.101.凡是要訪問 192.168.56.2 的,網關都要轉成 192.168.1.101。 ????于是,源服務器 A 要訪問目標服務器 B,目標地址就變成國際 IP 地址 192.168.56.2。過程如下: 1)源服務器 A 發數據包到網關 A
數據包的內容是這樣的:
????路由器 A 中 192.168.1.1 這個網口收到數據包后,檢查 MAC 地址一致,將包收進來。 ????在路由器 A 中配置了規則: 想訪問 192.168.56.2/24,就從 192.168.56.1 網口發出去,發給 192.168.56.2,沒有下一跳。 ????由于路由器的右網口(192.168.56.1) IP 地址和目標 IP 地址在同一網段,因此沒有下一跳。 2)網關 A 到網關 B
????包到達 192.168.56.2 這個網口后,發現 MAC 一致,就將包收進來。 ????而路由器 B 是 NAT 網關,它上面配置了,國際身份 192.168.56.2 對應國內的 192.168.1.101,于是目標地址改為 192.168.1.101。 ????同樣的,路由器 B 中配置了規則: 想訪問 192.168.1.101,就從 192.168.1.1 網口出去,沒有下一跳。 ????于是,數據包就從 192.168.1.1 這個網口發給 192.168.1.101。 3)網關 B 到服務器 B
這時的數據包就變成了:
????服務器收到包后,檢查 MAC 地址一致,就將數據包收進來。 ????從服務器 B 接收的數據包可以看出,源 IP 為 服務器 A 的國際身份,因而發送返回包的時候,也發給這個國際身份,由路由器 A 做 NAT,轉換為國內身份。 動態路由動態路由算法距離矢量路由算法1)基本思路 基于Bellman-Ford 算法。每個路由器都保存一個路由表,包含多行,每行對應網絡中的一個路由器,每一行包含兩部分信息,一個是要到目標路由器,從哪條線出去,另一個是到目標路由器的距離 2)存在問題 a. 好消息傳得塊,壞消息傳的慢。 新加入的路由器能夠很快的新路由器信息廣播出去。但是如果一個路由器掛了,掛的消息沒有廣播。每個經過這個宕機節點的路由器,無法得知該節點一宕機,而是試圖通過其他的路徑訪問,直到試過了所有的路徑,才發現這個路由器已經宕機了。 示例: b. 每次發送消息,要發送整個全局路由表 ????上面的兩個問題,限制了距離矢量路由的網絡規模,僅適用于小型網絡(小于 15 跳)。 鏈路狀態路由算法1)基本思路 基于Dijkstra 算法。當一個路由器加入網絡是,首先是發現鄰居,給鄰居說 hello,鄰居都回復。然后計算和鄰居的距離,發送一個 echo,要求馬上返回,除以 2 就是距離。接著將自己和鄰居之間的鏈路狀態包廣播出去,發送到整個網絡的每個路由器。 ????這種算法中,每個路由器都能在自己本地構建一個完整的圖,然后針對這個圖使用 Dijkstra 算法,找到兩點之間的最短路徑。 ????不像距離矢量路由協議那樣,更新時發送整個路由表。鏈路狀態路由協議只廣播更新的或改變的網絡拓撲,這使得更新信息更小,節省了寬帶和 CPU 利用率。而且一旦一個路由器掛了,它的鄰居都會廣播這個消息,可以使得壞消息迅速收斂。 動態路由協議基于鏈路狀態路由算法的 OSPFOSPF(Open Shortest Path First, 開放式最短路徑優先)協議,廣泛應用在數據中心的協議。由于主要用在數據中心內部,用于路由決策,因此稱為內部網關協議(Interior Gateway Protocol,簡稱 IGP) ????內部網關協議的重點就是找到最短路徑。當存在多個最短路徑時,可以在這多個路徑中進行負載均衡,這常常被稱為等價路由。 ????等價路由不僅可以用來分攤流量,還可以提高容錯率,當一條路徑不通時,還可以通過另外一條路到達目的地。 基于距離矢量路由算法的 BGP針對網絡之間的路由協議,稱為外網路由協議(Border Gateway Protocol,簡稱 BGP) ????每個數據中心都有自己的路由配置。例如,哪些外部 IP 可以讓內部知曉,哪些內部 IP 可以讓外部知曉,哪些可以通過,哪些不能通過。 ????因此,在各個數據中心進行交互時,需要一種協議,通過這種協議,可以知道相鄰數據中心的路由配置,從而找到數據中心之間最好的路由。 ????BGP 協議就是這樣的協議。它不著眼于發現和計算路由,而在于控制路由的傳播和選擇最好的路由。 總結
以上就是網絡協議之路由協議的詳細介紹(示例講解)的詳細內容,更多請關注php中文網其它相關文章! 網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!