① 網路協議-- 底層網路知識詳解(從二層到三層)
網線
Hub 採取的是廣播的模式,如果每一台電腦發出的包,宿舍的每個電腦都能收到,那就麻煩了。這就需要解決幾個問題:
這幾個問題,都是第二層, 數據鏈路層 ,也即 MAC 層要解決的問題。 MAC 的全稱是 Medium Access Control ,即媒體訪問控制。控制什麼呢?其實就是控制在往媒體上發數據的時候,誰先發、誰後發的問題。防止發生混亂。這解決的是第二個問題。這個問題中的規則,學名叫 多路訪問 。
三種方式:
方式一:分多個車道。每個車一個車道,你走你的,我走我的。這在計算機網路里叫作 信道劃分 ;
方式二:今天單號出行,明天雙號出行,輪著來。這在計算機網路里叫作 輪流協議 ;
方式三:不管三七二十一,有事兒先出門,發現特堵,就回去。錯過高峰再出。我們叫作 隨機接入協議 。著名的乙太網,用的就是這個方式。
接下來要解決第一個問題:發給誰,誰接收?這里用到一個物理地址,叫作 鏈路層地址 。但是因為第二層主要解決媒體接入控制的問題,所以它常被稱為 MAC 地址 。
解決第一個問題就牽扯到第二層的網路包格式。
對於乙太網,第二層的最後面是 CRC,也就是循環冗餘檢測。通過 XOR 異或的演算法,來計算整個包是否在發送的過程中出現了錯誤,主要解決第三個問題。
這里還有一個沒有解決的問題,當源機器知道目標機器的時候,可以將目標地址放入包裡面,如果不知道呢?一個廣播的網路裡面接入了 N 台機器,我怎麼知道每個 MAC 地址是誰呢?這就是 ARP 協議 ,也就是已知 IP 地址,求 MAC 地址的協議。
ARP 是通過吼的方式(廣播)來尋找目標 MAC 地址的,吼完之後記住一段時間,這個叫作緩存。
誰能知道目標 MAC 地址是否就是連接某個口的電腦的 MAC 地址呢?這就需要一個能把 MAC 頭拿下來,檢查一下目標 MAC 地址,然後根據策略轉發的設備,這個設備顯然是個二層設備,我們稱為 交換機 。
交換機是有 MAC 地址學習能力的,學完了它就知道誰在哪兒了,不用廣播了。(剛開始不知道的時候,是需要廣播的)
當交換機的數目越來越多的時候,會遭遇環路問題,讓網路包迷路,這就需要使用 STP 協議,通過華山論劍比武的方式,將有環路的圖變成沒有環路的樹,從而解決環路問題。
在數據結構中,有一個方法叫做 最小生成樹 。有環的我們常稱為圖。將圖中的環破了,就生成了樹。在計算機網路中,生成樹的演算法叫作 STP ,全稱 Spanning Tree Protocol 。
STP 協議比較復雜,一開始很難看懂,但是其實這是一場血雨腥風的武林比武或者華山論劍,最終決出五嶽盟主的方式。
交換機數目多會面臨隔離問題,可以通過 VLAN 形成 虛擬區域網 ,從而解決廣播問題和安全問題。
對於支持 VLAN 的交換機,有一種口叫作 Trunk 口。它可以轉發屬於任何 VLAN 的口。交換機之間可以通過這種口相互連接。
ping 是基於 ICMP 協議工作的。
ICMP 全稱 Internet Control Message Protocol ,就是 互聯網控制報文協議 。
ICMP 報文是封裝在 IP 包裡面的。因為傳輸指令的時候,肯定需要源地址和目標地址。它本身非常簡單。因為作為偵查兵,要輕裝上陣,不能攜帶大量的包袱。
ICMP總結:
ICMP 相當於網路世界的偵察兵。我講了兩種類型的 ICMP 報文,一種是主動探查的查詢報文,一種異常報告的差錯報文;
ping 使用查詢報文,Traceroute 使用差錯報文。
在進行網卡配置的時候,除了 IP 地址,還需要配置一個Gateway 的東西,這個就是 網關 。
一旦配置了 IP 地址和網關,往往就能夠指定目標地址進行訪問了。由於在跨網關訪問的時候,牽扯到 MAC 地址和 IP 地址的變化,這里有必要詳細描述一下 MAC 頭和 IP 頭的細節。
路由器是一台設備,它有五個網口或者網卡,相當於有五隻手,分別連著五個區域網。每隻手的 IP 地址都和區域網的 IP 地址相同的網段,每隻手都是它握住的那個區域網的網關。
對於 IP 頭和 MAC 頭哪些變、哪些不變的問題,可以分兩種類型。我把它們稱為「歐洲十國游」型和「玄奘西行」型。
之前我說過, MAC 地址是一個區域網內才有效的地址。因而,MAC 地址只要過網關,就必定會改變,因為已經換了區域網 。
兩者主要的區別在於 IP 地址是否改變。不改變 IP 地址的網關,我們稱為 轉發網關 ;改變 IP 地址的網關,我們稱為 NAT 網關 。
網關總結:
路由分靜態路由和動態路由,靜態路由可以配置復雜的策略路由,控制轉發策略;
動態路由主流演算法有兩種, 距離矢量演算法 和 鏈路狀態演算法 。
距離矢量路由(distance vector routing)。它是基於 Bellman-Ford 演算法的。
這種演算法的基本思路是,每個路由器都保存一個路由表,包含多行,每行對應網路中的一個路由器,每一行包含兩部分信息,一個是要到目標路由器,從那條線出去,另一個是到目標路由器的距離。
由此可以看出,每個路由器都是知道全局信息的。那這個信息如何更新呢?每個路由器都知道自己和鄰居之間的距離,每過幾秒,每個路由器都將自己所知的到達所有的路由器的距離告知鄰居,每個路由器也能從鄰居那裡得到相似的信息。
每個路由器根據新收集的信息,計算和其他路由器的距離,比如自己的一個鄰居距離目標路由器的距離是 M,而自己距離鄰居是 x,則自己距離目標路由器是 x+M。
這種演算法存在的問題:
第一個問題:好消息傳得快,壞消息傳得慢。
第二個問題:每次發送的時候,要發送整個全局路由表。
所以上面的兩個問題,限制了距離矢量路由的網路規模。
鏈路狀態路由(link state routing),基於 Dijkstra 演算法。
這種演算法的基本思路是:當一個路由器啟動的時候,首先是發現鄰居,向鄰居 say hello,鄰居都回復。然後計算和鄰居的距離,發送一個 echo,要求馬上返回,除以二就是距離。然後將自己和鄰居之間的鏈路狀態包廣播出去,發送到整個網路的每個路由器。這樣每個路由器都能夠收到它和鄰居之間的關系的信息。因而,每個路由器都能在自己本地構建一個完整的圖,然後針對這個圖使用 Dijkstra 演算法,找到兩點之間的最短路徑。
不像距離距離矢量路由協議那樣,更新時發送整個路由表。鏈路狀態路由協議只廣播更新的或改變的網路拓撲,這使得更新信息更小,節省了帶寬和 CPU 利用率。而且一旦一個路由器掛了,它的鄰居都會廣播這個消息,可以使得壞消息迅速收斂。
基於兩種演算法產生兩種協議,BGP 協議和 OSPF 協議。
OSPF(Open Shortest Path First,開放式最短路徑優先) 就是這樣一個基於鏈路狀態路由協議,廣泛應用在數據中心中的協議。由於主要用在數據中心內部,用於路由決策,因而稱為 內部網關協議(Interior Gateway Protocol,簡稱 IGP) 。
內部網關協議的重點就是找到最短的路徑。在一個組織內部,路徑最短往往最優。當然有時候 OSPF 可以發現多個最短的路徑,可以在這多個路徑中進行負載均衡,這常常被稱為 等價路由 。
但是外網的路由協議,也即國家之間的,又有所不同。我們稱為 外網路由協議(Border Gateway Protocol,簡稱 BGP) 。
在網路世界,這一個個國家成為自治系統 AS(Autonomous System)。自治系統分幾種類型。
每個自治系統都有邊界路由器,通過它和外面的世界建立聯系。
BGP 又分為兩類, eBGP 和 iBGP 。自治系統間,邊界路由器之間使用 eBGP 廣播路由。內部網路也需要訪問其他的自治系統。邊界路由器如何將 BGP 學習到的路由導入到內部網路呢?就是通過運行 iBGP,使得內部的路由器能夠找到到達外網目的地的最好的邊界路由器。
BGP 協議使用的演算法是 路徑矢量路由協議 (path-vector protocol)。它是距離矢量路由協議的升級版。
前面說了距離矢量路由協議的缺點。其中一個是收斂慢。在 BGP 裡面,除了下一跳 hop 之外,還包括了自治系統 AS 的路徑,從而可以避免壞消息傳得慢的問題,也即上面所描述的,B 知道 C 原來能夠到達 A,是因為通過自己,一旦自己都到達不了 A 了,就不用假設 C 還能到達 A 了。
另外,在路徑中將一個自治系統看成一個整體,不區分自治系統內部的路由器,這樣自治系統的數目是非常有限的。就像大家都能記住出去玩,從中國出發先到韓國然後到日本,只要不計算細到具體哪一站,就算是發送全局信息,也是沒有問題的。
參考:
極客時間-趣談網路協議
極客時間-趣談網路協議
極客時間-趣談網路協議
極客時間-趣談網路協議-網關
② 生成樹協議IEEE802.1D的簡介
網路環路的發生有多種原因,最常見的一種是有意生成的冗餘 - 萬一一個鏈路或交換機失敗,會有另一個鏈路或交換機替代。
STP 允許網橋之間相互通信以發現網路物理環路。該協議定義了一種演算法,網橋能夠使用它創建無環路(loop-free)的邏輯拓樸結構。換句話說,STP 創建了一個由無環路樹葉和樹枝構成的樹結構,其跨越了整個第二層網路。
生成樹協議操作對終端站透明,也就是說,終端站並不知道它們自己是否連接在單個區域網段或多網段中。當有兩個網橋同時連接相同的計算機網段時,生成樹協議可以允許兩網橋之間相互交換信息,這樣只需要其中一個網橋處理兩台計算機之間發送的信息。
網橋之間通過橋接協議數據單元(Bridge Protocol Data Unit - BPDU)交換各自狀態信息。生成樹協議通過發送 BPDU 信息選出網路中根交換機和根節點埠,並為每個網段(switched segment)選出根節點埠和指定埠。
網橋中的程序能夠決定如何使用生成樹協議,這稱為生成樹演算法,該演算法能夠避免網橋環路,並確保在多路徑情形下網橋能夠選擇一條最有效的路徑。如果最佳路徑失敗,可以使用該演算法重新計算網路路徑並找出下一條最佳路徑。 利用生成樹演算法可以決定網路(哪台計算機主機在哪個區段),並通過 BPDU 信息交換以上數據。該過程主要分為以下兩個步驟:
步驟1:通過評估它所接收到的所有配置信息和選擇最優選項,來決定一個網橋可發送的最佳信息。
步驟2:一旦選定某網橋發送的信息,網橋將該信息與來自無根(non-root)連接的可能配置信息相比較。如果步驟1中選擇的最佳選項並不優於可能配置信息,便刪除該埠。
③ 計算機網路 STP
STP (Spanning Tree Protocol)是生成樹協議的英文縮寫。
生成樹協議 運行生成樹演算法(STA). 生成樹 演算法很復雜,但是其過程可以歸納為以下3個步驟:
(1)選擇根網橋
(2)選擇根埠
(3)選擇指定埠
First:BID(Bridge ID,網橋ID),因為根交換機的選舉是基於BID的,BID由三部分組成——優先順序、發送交換機的MAC地址、Extended System ID(擴展系統ID,可選項)
BID = 網橋ID=網橋優先順序+網橋MAC地址組成的
First:(PID)=埠ID等於優先順序加上埠編號,默認埠優先順序是128。
P:每個非根交換機有且只有一個根埠。
選舉根埠依照下面的順序:
首先,最低花費的埠將成為根埠;在花費相同的情況下比較發送者的BID,BID小的將成為根埠。--->
即:到根網橋最低的根路徑成本→發送BPDU的網橋ID(BID)較小→埠ID(PID)較小的。埠ID由埠優先順序與埠編號組成。
請看下面這張拓撲圖:
特殊的: 如果 發送者的BID相同,則比較發送者的PID:
關於選擇指定埠:每個網段上選擇一個指定埠。
P:每個網段有且只有一個指派埠
選擇順序為:根路徑成本較低(花費較低)→發送BPDU的網橋ID值較小→本埠的PID值較小。
根網橋的介面皆為指定埠,因為根網橋上埠的根路徑成本為0 。
第一種情況:假設路徑花費不同的情況下 :
既不是根埠也不是指派埠的埠將被阻塞。看上圖
④ 交換機如何快速生成樹配置
交換機快速生成樹配置是怎麼回事呢,那麼交換機快速生成樹配置又有什麼作用呢?下面是我收集整理的交換機如何快速生成樹配置,希望對大家有幫助~~
交換機快速生成樹配置的方法
測試:
PC0
⑤ 生成樹協議的結構思路
生成樹協議拓撲結構的思路是: 不論網橋(交換機)之間採用怎樣物理聯接,網橋(交換機)能夠自動發現一個沒有環路的拓撲結構的網路,這個邏輯拓撲結構的網路必須是樹型的。生成樹協議還能夠確定有足夠的連接通向整個網路的每一個部分。所有網路節點要麼進入轉發狀態,要麼進入阻塞狀態,這樣就建立了整個區域網的生成樹。當首次連接網橋或者網路結構發生變化時,網橋都將進行生成樹拓撲的重新計算。為穩定的生成樹拓撲結構選擇一個根橋, 從一點傳輸數據到另一點, 出現兩條以上條路徑時只能選擇一條距離根橋最短的活動路徑。生成樹協議這樣的控制機制可以協調多個網橋(交換機)共同工作, 使計算機網路可以避免因為一個接點的失敗導致整個網路聯接功能的丟失, 而且冗餘設計的網路環路不會出現廣播風暴。
例如,網路中,A點到C點,有兩條路可以走,當ABC的路徑不通的時候,可以走ADC。C點到A點也是,路徑CDA不通的時候可以走CBA。
如果某一時刻的網路,使能生成樹協議,阻塞了B到C的埠,那麼網路拓撲就會變成下圖。如果有廣播包,一定會終結於B點或者C點,不會循環轉發。
⑥ 計算機網路關於STP的知識能詳細介紹一下嗎 (根橋選舉,指派埠,根埠,非指派埠)
生成樹協議運行生成樹演算法(STA).生成樹演算法很復雜,但是其過程可以歸納為以下3個步驟:
(1)選擇根網橋
(2)選擇根埠
(3)選擇指定埠
關於選擇根網橋:選擇根網橋的依據是網橋ID,網橋ID由網橋優先順序和網橋MAC地址組成。網橋的默認優先順序是32768.使用show
mac-address-table時,顯示在最前面的MAC地址就是計算時所使用的MAC地址。網橋ID值小的為根網橋,當優先順序相同時,MAC地址小的為根網橋。
關於選擇根埠:每個非根交換機選擇一個根埠。選擇順序為:到根網橋最低的根路徑成本→發送BPDU的網橋ID較小→埠ID較小的。埠ID由埠優先順序與埠編號組成。默認的埠優先順序為128。
關於選擇指定埠:每個網段上選擇一個指定埠。選擇順序為:根路徑成本較低→發送BPDU的交換機的網橋ID值較小→本埠的ID值較小。另外,根網橋的介面皆為指定埠,因為根網橋上埠的根路徑成本為0
⑦ 計算機網路 生成樹
選擇根網橋、根埠、指定埠的判斷依據:
一、 選擇根網橋的依據:交換機之間選擇網橋ID值最小的交換機作為網路中的根網橋。
交換機優先順序(預設32768)和MAC地址構成網橋ID。
二、選擇根埠的依據是:
1>根路徑成本最低 (根據鏈路帶寬大小來定的,鏈路帶寬越大成本越低)
2>直連的網橋ID最小
3>埠ID最小 (每個交換機的埠都有一個埠ID :0、1、2、3、4、5....)
我只是略懂。。。。。只能答這個樣子
⑧ STP的工作原理和作用
STP的基本原理是通過在交換機之間傳遞一種特殊的協議報文,網橋協議數據單元(簡稱BPDU),來確定網路的拓撲結構。BPDU有兩種,配置BPDU(和TCNBPDU。前者是用於計算無環的生成樹的,後者則是用於在二層網路拓撲發生變化時產生用來縮短MAC表項的刷新時間的。
STP的作用:可應用於計算機網路中樹形拓撲結構建立,主要作用是防止網橋網路中的冗餘鏈路形成環路工作,即能解決了核心層網路需要冗餘鏈路的網路健壯性要求,又能解決因為冗餘鏈路形成的物理環路導致「廣播風暴」問題。
(8)計算機網路生成樹計算擴展閱讀:
STP的潛在故障
1、生成樹演算法不穩定
STP協議工作在第二層,在交換機埠之間傳遞網路協議單元獲取網路拓撲,並通過STA演算法阻斷環路形成樹形邏輯網路拓撲。但如果網路拓撲過於復雜,STA演算法有時會存在失效的情況,這時根橋、根埠和指定埠的選舉失敗,導致環路的產生,使網路癱瘓。
2、埠工作方式導致埠工作模式不匹配
工作在全雙工模式下的埠在發送數據前不載波偵聽鏈路是否處於空閑狀態,直接發送數據,而工作在半雙工模式下的埠在發送數據前先執行載波偵聽且當鏈路處於空閑狀態時才發送數據,此時,全雙工埠持續性的有大量數據需要發送,那麼半雙工狀態的埠將不會有數據傳送給對端。
3、單向鏈路故障
在採用光纖為通信介質的網路中,往往採用兩組光纖收發鏈路來保證網路的可靠性和穩定性。單鏈路故障影響了STP的網橋協議單元的發送,致使STA計算出現錯誤碼,將本應處於阻斷狀態的埠轉變為轉發狀態,從而導致環路的產生。