stp中優先順序為什麼是4096的倍數?

2021-09-19 14:47:17 字數 734 閱讀 1872

複習stp知識點時,對優先順序有了疑問,為什麼它的步長為4096,接下來用報文分析。

首先來看stp中的bpdu報文:

注意看看圖中標紅部分,接下來抓包來看下:

兩張圖對比,root bridge priority(橋優先順序)和root bridege system id extension(其實就是vlan id)

可以看出來優先順序是包含在這2位元組中的,這兩個引數屬於同一字段,接下來我們回憶vlan id的範圍0-4096,是不是豁然開朗了,

2位元組=16bit 

vlan使用12bit:  2*12=4096 

橋優先順序使用剩下4個bit ,則其使用的優先順序步長為4096。

*在使用extended system id的情況下,每個vlan的mac位址可以相同,bid被要求包含vlan id資訊,解決的辦法是從優先順序域的16個bit中拿出低位的12個bit,稱為擴充套件的system id,用來唯一標識每個vlan號,剩下的4個bit用來表示交換機的優先順序,這種情況下優先順序的取值只有24=16個,是4096的倍數。

什麼是優先順序佇列(priority queue)?

有時候我們需要在某個元素集合中找到最小值和最大值 優先順序佇列抽象資料 priority queue adt 模型是我們能夠使用的方法之一,這是一種支援插入和刪除最小值 deletemin 或者最大值 deletemax 的資料結構。這兩個操作和佇列中的進隊 enqueue 和出隊 dequeue ...

為什麼使用服務與程序的優先順序

服務 長期後台執行的沒有介面的元件 android應用 什麼地方需要用到服務?天氣預報 後台的連線伺服器的邏輯,每隔一段時間 獲取最新的天氣資訊 顯示 後台的連線伺服器的邏輯,每隔一段時間 獲取最新的 資訊 new thread start 子執行緒沒有介面,也是長期後台執行的。android系統程...

lk中預設只能支援32個優先順序,為什麼呢?

明白原理有就可以support 無限個優先順序了。因為在lk中 用於表示優先順序的bitmap static uint32 t run queue bitmap 是uint32 t也就是只有32個bit 可以使用 我們一般在新建thread 後,將thread 插入到run queue中時,會設定這...