電腦網路與連結技術第十七章 Token-Bus 與 Token Ring 網路 上一頁    下一頁

17-3 Token-Bus 邏輯環 運作程序

內容:

17-3-1 Token-Bus 邏輯環

為了使邏輯環的維護比較容易,在正常的運作下,Token 是依照工作站的識別碼,由大到小的順序傳遞。如圖 17-1 中所示,符記的傳遞是依 60 50 40 30 10 60 的順序。在邏輯環上每一部工作站都有以下的資料:

(1) TSThis Station記錄本工作站的識別碼,一般皆用 MAC 位址。

(2) NSNext Station記錄邏輯環中下一個工作站的識別碼。

(3) PSPrevious Station記錄邏輯環中上一個工作站的識別碼。

為了避免 Token 被獨占使用,而影響整個網路的傳輸效率,因此工作站上都設有一個『符記保留時限』(Token Holding Timer, THT,以限制其擁有 Token 的時間,而時限的值是在網路系統建立時就設定的。當資料傳遞完畢或 THT 逾時後,擁有 Token 者就必須將 Token 傳遞給下一個工作站。而當工作站收到 Token 時,也必須在一個反應時窗(一個時槽)內作出下列反應:

(1) 傳送資料:當有資料要傳送時。

(2) Token 傳遞給下一個工作站當沒有資料要傳送時。

工作站收到 Token 後不可以沒有反應,否則前工作站會認為 Token 已流失或工作站損壞,然後做一些異常狀況的處理程序,造成網路混亂。

邏輯環是否正常運作,直接影響到網路的傳輸效率。工作站取得 Token 時,它就是網路的管理者,必須負責下列正常管理程序:

(1) 新工作站加入程序

(2) 工作站退出程序

17-3-2 新工作站加入邏輯環

工作站啟動時,並未加入邏輯環內,也無法參與網路的運作,因此,需要一個新工作站加入程序,讓新的工作站加入邏輯環中的適當位置(邏輯環有按識別碼大小順序排列)。持有 Token 者必須負責詢問是否有新工作站欲加入,當它欲將 Token 傳遞出去之前,會先在網路上廣播一個『邀請後工作站 – 1』(SS1的控制訊框,邀請新的工作站加入,並以一個反應時窗的時間等待新工作站回應。該 SSI 上的控制訊息為:

DA = NS(如,20

SA = TS(如,40

DATA = NULL

所有欲加入邏輯環者比較自己的識別碼(如,30)是否介於 DA SA 之間(符合邏輯環大小順序,203040),如果是,就可以在反應時窗內送出一個『設定後工作者』(S的控制訊息,以表明欲加入邏輯環內。該 S 訊框的訊息為:

DA = 原符記持有者的識別碼(發送 SS1 者)(如,40

SA = TS(如,30

DATA = TS(如,30

發送 SS1 的管理者會根據在一個反應時窗中所得到的不同反應而採取適當的動作。它可能有下列三種反應:沒有反應、唯一反應或多重反應,以下分別敘述之:

(A) 沒有反應

表示沒有介於 DA SA 之間的工作站欲加入邏輯環。因此可以將符記傳給下一個工作站。

(B) 唯一反應

表示有一個工作站想加入,而且它的識別碼介於 SA DA 之間。我們以圖 17-4 來說明其運作程序。原來邏輯環上有四個工作站,其符記傳遞是依照 20D 60A 50B 40C 20D 60 的順序。而另一個識別碼為 30 的工作站欲加入邏輯環,其加入程序如下:

(1) 當工作站 40 取得符記並傳送完資料後,它有責任詢問是否有其他工作站想要加入邏輯環。於是它發送『邀請 後工作者』(SS1訊框,其中 DA = 20NS)、SA = 40TS)。

(2) 這時候工作站 30 在網路上收到 SS1 控制訊框,而且比較自己的識別碼介於 NS TS 之間(20 < 30 <40),於是發送出『設定 後工作站』(S訊框,其中 DA = 40SA = 30DATA = 30。由於 S SS1 訊框都適用廣播方式(在匯流排上廣播),所以網路上所有工作站都收到這兩個訊框。

(3) 工作站 40 就將本身記錄的 NS 改為 30NS = 30),並將 Token 傳遞給工作站 30

(4) 同時工作站 20 也知道工作站 30 已加入邏輯環,而且是自己的前站,因此將 PS 改為 30PS = 30)。

(5) 工作站 30 就將 NS 設定為 20 、同時把 PS 設定為 40。新的邏輯環便建構成功,符記傳遞順序便更改為 60 50 40 30 20 60

17-4 一個新工作站(E)的加入程序

(C) 多重反應

發生多重反應時,管理者會收到一個被干擾的訊息,表示在反應時窗的時間內,有二個以上工作站發出 S 訊框表示欲加入邏輯環。由於系統只能一次加入一個工作站,因此必須解決爭執。管理者必須再送出『解決-爭端』(R訊框,在 R 訊框後面緊跟著四個時窗時間,欲加入邏輯環的工作站依照自己識別碼的前兩位元的大小,在時窗時間內送出『設定-後工作者』(S訊框,其關聯如下圖所示:

每一個參與競爭者皆依照其識別碼的最左邊二個位元(最高位元)來決定是否送出 S 訊框。如前兩位元是 11 便在第一個反應時窗送出、10 在第二時窗送出、01 在第三時窗、00 則在第四時窗。如果在自己的反應時窗以前就聽到網路上有人傳送 S 訊框,表示有識別碼較大者參與競爭,自己便應先退出,等待下次機會再要求加入邏輯環。

如果在較高的反應時窗只有一個工作站反應並送出 S 訊框,管理者就設定它為下一個工作站,並將 Token 傳遞給它,再由新的 Token 持有者負責邀請新的工作站加入。上一次沒有成功加入者,可再依照加入新工作站程序要求加入。

也有可能在同一個較高的反應時窗有二個以上的工作站送出 S 訊框,造成訊號干擾的現象,此時管理者就必須再送出第二個 R 訊框以解決爭端。而上次送出 S 訊框的新工作站也會從網路偵測到訊號碰撞的現象,知道有其他工作站也同樣符合條件(識別碼前二位元相同),必須再競爭一次。參與競爭者收到第二次 R 後,就再依照最左邊第 3 和第 4 位元的大小,在對應的反應時窗送出 S 訊框。如又碰撞則再比較第 5 和第 6 位元大小,依此類推。我們用一個例子來說明其運作情況,如圖 17-4 中邏輯環的傳遞方向為 60 50 40 30 20 60。當工作站 50 拿到符記,而它必須負責處理新工作站的加入。當它發出 SS1 訊息時,工作站 454647 都符合條件而要求加入,因此皆送出 S 訊息,也就發生碰撞。工作站 50 連續發出 3 R 訊框皆產生碰撞,到了第四個 R 才解決競爭,找出最大的識別碼是 47。完成一次加入程序後,工作站 50 便將符記傳遞給 47(運作程序如圖 17-5 所示),再由工作站 47 去負責解決 45 46 兩個新工作站加入的競爭。

17-5 解決多重工作站加入的競爭

邏輯環上所有工作站(只要擁有 Token)都可以發出 SS1 邀請新工作站加入,但只有最小識別碼的工作站不可以。因為當工作站發出 SS1 訊息時,想要加入邏輯環的工作站的識別碼必須符合 DA < TS < SA 的條件,也就是說它的識別碼必須介於兩個邏輯環上的端點之間才可以。如果最小識別碼的工作站發出SS1 訊框,所有網路上介於最大與最小識別碼的工作站都可以參加競爭,因此會破壞網路上由大到小的傳遞順序。所以,最小識別碼者必須送出另一個『邀請 後工作站 2』(SS2訊框來邀請新工作站。SS2 訊框後面接著二個反應時窗,第一個是讓小於最小識別碼的工作站反應;而第二個是讓大於最大識別碼的工作站使用。當第一個反應時窗無人使用時,才可以反應在第二個時窗。也就是說,當第一個反應時窗沒有反應,則表示沒有比最小者還小的工作站欲加入。此時,識別碼大於最大識別碼的工作站可以利用第二個反應時窗來反應。欲加入的工作站還是發送『設定 後工作站』(S來告知,如果沒有碰撞現象就依上述 (B) 唯一反應的處理,如發生碰撞就依據 (C) 多重反應的程序來解決紛爭。

17-3-3 工作站退出邏輯環

工作站若欲退出邏輯環,就必須先取得 Token 並處理完退出程序後才可以退出。處理程序是送出『設定後工作站』(S控制訊息給它的前工作站(在網路上廣播),其 S 訊框的內容為:

DA = PS

SA = TS

DATA = NS

而其後工作站收到這個訊息後,會將其 PS 值設定為 S 訊框中的 DA 值;又其前工作站也會收到該訊框,而將其 NS 值設定為 S 控制訊息中的 DATA 值。如此該工作站便在邏輯環中自動消失。此時原 Token 持有者再將 Token 送給新的後工作站。我們用圖 17-6 來說明工作站 30 如何退出邏輯環,當它取得 Token 後(由工作站 40 傳遞過來),便送出 S 訊框,其中 DA = 40(前工作站)、SA = 30(本工作站)、DATA = 20(後工作站)。後工作站(20)收到該訊框後,將本身的 PS 設定為 40;而前工作站(40)則將本身的 NS 修改為 20。新的邏輯環於是建立成功,工作站 30 也退出邏輯環了。隨後工作站 40 立即再產生一個 Token 傳遞給工作站 20,整個邏輯環又繼續正常運作。

17-6 工作站退出程序

 

翻轉工作室:粘添壽

 

電腦網路與連結技術:

 

 

翻轉電子書系列: