快速生成樹之時間資訊

2021-05-22 02:01:29 字數 2325 閱讀 9001

1 原始碼

rstplib.1.1.02/times.c,times.h

2 功能

定義了涉及埠、網橋、訊息等元素的時間資訊結構體,提供了基本操作介面。

3 **簡析

/*乙個訊息從根網橋發出後,它的訊息年齡的初值是0,其它網橋埠收到乙個優越的配置

* 訊息後,如果訊息年齡超過最大年齡,那麼丟棄該訊息,否則將訊息年齡加上乙個量,再

* 傳播出去,因此訊息傳播的網橋數是有限的*/

typedef struct timevalues_t timevalues_t;

對應bpdus傳遞的時間引數:

typedef struct bpdu_body_t bpdu_body_t;

/* bpdu -> timevalues_t */

void stp_get_times (in bpdu_body_t *b, out timevalues_t *v);

/* timevalues_t -> bpdu */

void stp_set_times (in timevalues_t *v, out bpdu_body_t *b);

/* 比較兩個timevalues_t 變數,按欄位定義優先順序依次比較 */

int stp_compare_times (in timevalues_t *t1, in timevalues_t *t2);

4 用途

有如下變數用到了此時間結構:porttimes、msgtimes、bridgetime、roottimes、designatedtimes。

4.1 porttimes

埠時間,包含埠的時間引數(message age, max age, forward delay, and hello time),用在本埠傳送的bpdus中。

例程:static void build_config_bpdu (port_t* port, bool set_topo_ack_flag)

4.2 msgtimes

訊息時間,包括bpdus傳遞的時間引數(message age, max age, forward delay, and hello time)。

例程:rcvbpdu( )函式中,下面三個條件同時滿足才返回repeateddesignatemsg:

(1) 訊息是從指定埠發出:(該bpdu是rst bpdu && bpdu的port role==designated)

(2) msgpriority==portpriority – 訊息優先順序與埠優先順序相同

(3) msgtimes==porttimes – 訊息時間與埠時間相同

情形 - 訊息來自父網橋指定埠,並且它的優先順序向量和時間資訊都沒有任何變化。

static rcvd_msg_t rcvbpdu (state_mach_t* this)

} …

} 4.3 bridgetime

網橋時間,有4個成員:bridge forward delay、bridge hello time、bridge max age、message age=0,前3個引數只能通過管理進行配置,updtrolesbridge()用來計算roottimes變數。

static void updtrolesbridge (state_mach_t* this)

4.4 roottimes

根時間資訊,包含網橋的時間引數:message age, max age, forward delay, and hello time:

1) 如果根優先順序向量是網橋優先順序向量,即本網橋是根網橋,則根時間 = bridgetimes

2) 否則,根時間來自根埠(根路徑優先順序向量最好的那個埠)的porttimes()

max age, forward delay, and hello time = 根埠的porttimes的相應成員

message age = message age +╔ max(1,1/16 max age)╗

4.5 designatedtimes

指定時間,包含時間引數(message age, max age,forward delay, and hello time),當updtinfo==true時用來更新埠時間porttimes,designatedtimes的值由updtrolesbridge()從roottimes拷貝而來。

4.5 時間傳遞路線

(1) msgtimes ->

porttimes ->

bpdus ->

msgtimes;

(2) 管理員 ->

bridgetimes -> roottimes ->

designatedtimes。

快速生成樹配置

stp spanning tree protocol 是生成樹協議的英文縮寫。stp的目的是通過協商一條到根交換機的無環路徑來避免和消除網路中的環路。它通過一定的演算法,判斷網路中是否存在環路並阻塞冗餘鏈路,將環型網路修剪成無環路的樹型網路,從而避免了資料幀在環路網路中的增生和無窮迴圈。stp在網路...

STP 生成樹協議 RSTP 快速生成樹

stp spanning tree protocol 是生成樹協議的英文縮寫 該協議可應用於在網路中建立樹形拓撲,消除網路中的環路,並且可以通過一定的方法實現路徑冗餘,但不是一定可以實現路徑冗餘。生成樹協議適合所有廠商的網路裝置,在配置上和體現功能強度上有所差別,但是在原理和應用效果是一致的。stp...

RSTP(快速生成樹協議)

相比於stp,rstp的改進之處在以下幾個方面 1 埠狀態從5個變為3個。discording,learing,forwarding 2 埠角色由三個變為4個。給根埠做備份的althernate,給指定埠做備份的backup。以及原有的根埠和指定埠。3 bpdu的處理 a bpdu的型別變為type...