Home Page

第五章

IEEE 802.4 Token-Bus 網路

 


yball1.gif (1556 bytes)  5.1 網路結構及特性簡介

 

IEEE 802.4 區域網路在實際的連線上是匯流排網路 (Bus),但是在運作上卻是以「邏輯環狀」網路 (Logical Ring) 的模式運作。也就是說,工作站在傳送訊框時都是以廣播的方式在匯流排上傳送,可是到底誰可以傳送訊框則必須根據邏輯環上的排列秩序來決定。其網路架構如圖5-1 所示。為了以分散式的方法建造出邏輯環,每一個工作站必須有一個識別碼(ID),同時它也要記錄另外二個相鄰工作站的識別碼,即在邏輯環上的「前工作站」(Previous Station,簡寫為PS) 及「後工作站」(Next Station,簡寫為 NS)。例如圖5-1 中,識別碼為 20 (TS20) 的工作站其記錄的資料分別為 NS60 PS30。只要在邏輯環上的每一個工作站都記錄這些資料,則自然而然的會將參與的工作站連結成一個具有方向性(順時針方向)的邏輯環。這個邏輯環有一個重要的特徵:環上的工作站是根據其識別碼由大到小排列的。例如圖5-1 中的秩序為 6050302060IEEE 802.4 Token-Bus 網路的主要特性如下:

 

傳輸速率為 4 Mbps

訊框為 IEEE 802.4 Token-bus 訊框。

傳輸媒介為光纖、同軸電纜或雙絞線。

通訊協定採用「訊標傳遞」(Token Passing) 通訊模式並且提供四種優先權。訊標用來控制傳送訊框的秩序並且解決搶用匯流排的問題。

公平使用頻寬。在正常運作的情況之下,網路上只有一個訊標,並且該訊標被邏輯環上的工作站依由大到小的秩序傳遞著(注意傳遞的過程是經由匯流排廣播)。每一個工作站必須得到訊標才可以使用匯流排傳送訊框,並且在送完訊框後將訊標傳遞給邏輯環上的下一個工作站。工作站可公平的使用頻寬。

高頻寬使用率。由於網路上只有一個訊標而且只有擁有訊標的工作站才可以傳送訊框,因此這種控制方法不會造成訊框衝撞 (collision) 的情形。頻寬使用率與網路負載成正比,不會因網路負載增加而降低。

必須維護邏輯環。因為邏輯環的架構完全是根據參與其中的工作站所記錄的識別碼來形成的,與硬體沒有關係,也與工作站實際的位置無關,因此也必須依靠軟體的方法來維護。其中較重要的項目有:

邏輯環的起始建造 (ring initialization)

讓新的工作站加入邏輯環 (addition to ring)

讓工作站退出邏輯環 (deletion from ring)

從損壞中還原 (error recovery)

容錯功能佳。由於網路一開始起動的時候並沒有邏輯環的存在,因此系統必須有一套分散式的通訊協定來建造最初的邏輯環。又因為不在邏輯環上的工作站將不會得到合法的訊標所以沒有機會傳送訊框。例如圖5-1 所示的工作站 10 40,雖然在硬體上已經連接上匯流排,但因為沒有在邏輯環上,所以不能算是網路中的一份子。因此系統也必須有一套分散式通訊協定來讓新的工作站(如新開機)有機會加入邏輯環中運作。相同的,當有工作站欲停止運作退出網路時,也要有一套方法來達成。當網路發生不正常狀況時,系統也要有補救的方法來克服種種問題,達到分散式系統的功能。可能發生的不正常狀況有:

訊標流失 (token loss)

網路中同時存在多個訊標 (multiple tokens)

訊標傳遞失敗 (unaccepted token)

工作站損壞 (failed station)

工作站的接收器損壞 (failed receiver)

 

 

 

 

 

5-1 Token-bus 網路架構

 

 


yball1.gif (1556 bytes)  5.2 訊框格式

IEEE 802.4的訊框格式如圖5-2 所示。其中:

Preamble:建立同步功能並且顯示訊框的第一個位元。

SD (Start Delimiter):顯示訊框的開始。

FC(Frame Control):表示一般訊框或控制用訊框。

DA(Destination Address):表示訊框要送給那一個工作站。

SA(Source Address):表示訊框由那一個工作站送出。

LLC-Frame:訊框本身。

FCS(Frame Check Sequence):訊框檢查碼。

ED(End Delimiter):表示訊框的結束。

最大長度(從SD ED8191 位元組。

5-2 訊框格式

 

為了維護邏輯環的運作,在通訊協定中採用了許多種控制用的訊框,其格式如圖5-3 所示。至於每一種控制訊框的用途則將於往後各節中介紹。

 

5-3 控制訊框

在圖5-3 中有一些控制訊框的格式後面跟著有不同個數的「反應時窗」(response window) 。而所謂的反應時窗即是指訊號在匯流排上來回跑一趙所需要的時間 (round-trip propagation delay),也稱為一個時槽 (one slot time)。當訊標擁有者送出這類的控制用訊框時,它會利用不同個反應時窗的時間來監聽匯流排上的訊息以瞭解其他工作站的反應。在每一個反應時窗中可能發生的反應情況如下:

沒有反應。這時在匯流排上便聽不到任訊息。

唯一反應。這時在匯流排上可聽到一個正確的訊息。

多重反應。這時因為有二個或二個以上的工作站同時做出反應,因此訊 號會彼此干擾,結果聽到的是不正確的訊息(雜訊)。

 


yball1.gif (1556 bytes)   5.3 通訊協定

5.3.1 正常的訊標傳遞運作

在正常的運作之下,訊標是依照工作站的識別碼由大到小傳遞的。如圖5-4 中所示,工作站 50 將訊標傳遞給它的下一個工作站 30。在邏輯環中的每一個工作站都有以下的資訊:

TS:本工作站的識別碼或地址(This Station's address)

NS:下一個工作站(後工作站)的識別碼或地址 (Next Station's address)

PS:上一個工作站(前工作站)的識別碼或地址 (Previous Station's address)

 

5-4 訊標傳遞次序

除此之外,每一個工作站都有一個訊標保留時限 (token holding timer) 來限制其擁有訊標的時間,避免其獨佔訊標的使用權。這個時限的值是在網路系統起始建立時設定的。當訊框傳送完畢或訊標保留時限到時,就必須將訊標傳遞給下一個工作站。而當一個工作站收到訊標時,必須在一個反應時窗之內做出反應:

1. 傳送訊框(當有訊框要傳送時),或

2. 傳遞訊標給下一個工作站(當無訊框要傳送時)。

工作站不可以先將訊標保存起來而不做任何反應。否則其前工作站會因為沒有收到反應而以為訊標流失或工作站損壞,然後會開始一段補救的程序,造成混亂。

 

5.3.2 工作站的加入程序

由於必須是在邏輯環上的工作站才可以得到訊標來傳送訊框,因此系統提供一個方法讓一些新的工作站加入邏輯環中的適當位置(邏輯環有一定的先後順序)。這個工作由訊標持有者來引發。訊標持有者在將訊標傳遞出去之前,它會先送一個「邀請-後工作站-1」(Solicit-successor-1) 的控制訊框給網路上的所有工作站(經由廣播的匯流排)來邀請新的工作站加入,並且等待一個反應時窗的時間。這個控制訊框上的訊息為:

DANS

SATS

DATANULL

所有欲加入邏輯環而且本身的識別碼大於 DA 而小於 SA 的工作站,都可以在下一個時槽中表明意願。其方法是送出一個「設定-後工作站」(Set-successor) 的控制訊框,其所攜帶的訊息為:

DA=訊標持有者識別碼 (Token-holder address)

SATS

DATATS

訊標持有者會根據在一個反應時窗中不同的反應而採取動作。可能的反應有三種:

沒有反應。這表示沒有介於 SA DA 之間的工作站想加入邏輯環。因此可以將訊標傳遞給下一個工作站。

唯一反應。這表示有一個介於 SA DA 之間的工作站想加入邏輯環。此時訊標持有者、下一個工作站以及新工作站三者都必須同時更正其所保存的邏輯環相關訊息。訊標持有者必須將其原來的 NS 值改為新加入工作站的識別碼,下一個工作站也必須將其原來的 PS 值改為新加入工作站的識別碼,而新加入工作站則設定其 PS 值為訊標持有者的識別碼,NS 值為下一個工作站的識別碼。經過各自修改的動作之後,新的邏輯環便包含了新加入的工作站。如圖5-5 所示,工作站 40 欲加入邏輯環,當工作站 50 送出「邀請-後工作站-1」後,工作站 40 便送出「設定-後工作站」。由於是廣播性網路因此每一個工作站都可以收到這二個訊框。經過訊息的修正之後,工作站 40 便加入了邏輯環。

多重反應。這時訊標持有者會收到一個被干擾的訊框,表示有二個或二個以上的「合格」工作站想同時加入邏輯環中。由於系統一次只能處理一個新的工作站的加入,因此必須有一套方法來決定讓誰加入。此時訊標持有者會送出「解決-爭端」(resolve-contention) 的控制訊框給所有參與競爭的工作站,讓它們找出一個識別碼最大的工作站。如圖5-6 所示,當工作站 50 送出「邀請-後工作站-1」時,工作站 40 30 都各自送出「設定-後工作站」的控制訊框,結果造成衝撞,因此工作站 50 便送出「解決-爭端」的控制訊框。

(a)

(b)

5-5 唯一反應範例

 

 

(a)

 

(b)

5-6 多重反應範例

 

要找出所有參與競爭的工作站中誰具有最大的識別碼的主要問題,在於每一個參與競爭的工作站只知道自己的狀況,根本不知道有幾個其他工作站要競爭,也不知道它們的識別碼。此時必須依靠一套完全分散式的方法來決定誰最大。其方法如下:

當訊標持有者送出「解決-爭端」的控制訊框後,便會等待 4 個反應時窗的時間 (4 slot times) 如下圖所示:

每一個參與競爭的工作站則根據其識別碼(位址)的最左邊二個位元的值來決定在那一個反應時窗送出「設定-後工作站」的控制訊框:

11:在第 1 個反應時窗送出

10:在第 2 個反應時窗送出

01:在第 3 個反應時窗送出

00:在第 4 個反應時窗送出

如果在送出之前便聽到有其他工作站送出(不論成功或衝撞)則表示自己的識別碼不是最大,因而自動退出競爭行列。如果送出的控制訊框沒有造成衝撞則表示自己的識別碼為最大,此時可依據加入一個工作站的程序來完成加入的動作。如果送出的控制訊框發生衝撞的現象則表示競爭者中有其他的工作站其識別碼的最左邊二個位元的值和自己相同。因此在這 4 個反應時窗中無法比出大小。此時訊標持有者會再度送出「解決-爭端」的控制訊框,並且觀察 4 個反應時窗。此時在第一輪的比較中無法分出大小的工作站便根據其識別碼的最左邊第 34 個位元的值來決定傳送時間。如此一直重覆直到有一個「設定-後工作站」被成功的送出為止。此時送出該控制訊框的工作站便可加入邏輯環中,其他的工作站則必須等待下一次的加入機會時再來競爭。我們以圖5-7 的例子來說明其競爭的方法。假設有 5 個工作站 ABCDE 要競爭而且其識別碼為 8 個位元。則如圖5-7 所示,在第一輪的競爭中,ABC 因為發生衝撞而參與第二輪的競爭,而 DE 因為在未送之前便收到衝撞的訊息所以自動退出。在第二輪的競爭中A 也自動退出。BC在第三輪的競爭中仍然不能分出大小。一直等到第四輪的競爭中才由 B 成功的送出控制訊框而成為新加入的工作站。

5-7 解決爭端範例

所有在邏輯環上的工作站都是以送出「邀請-後工作站-1」的控制訊框來邀請新的工作站加入,除了識別碼最小的工作站,它不可以使用這個控制訊框。因為所有新工作站中識別碼大於邏輯環中最小識別碼且小於最大識別碼者都會參與競爭,結果便會破壞邏輯環由大到小的秩序。此時其要邀請的對象應該是識別碼小於最小識別碼或大於最大識別碼的工作站。因此它是送出「邀請-後工作站-2」(Solicit-successor-2)控制訊框,並且等待 2 個反應時窗。其中第一個反應時窗是保留給識別碼小於其識別碼的工作站使用,而第二個反應時窗則保留給識別碼大於邏輯環上最大識別碼的工作站使用。當第一個反應時窗沒有反應時則表示沒有小於其識別碼的工作站要加入,此時識別碼大於邏輯環上最大識別碼的工作站才可以利用第二個反應時窗來反應。在 2 個反應時窗中只要有任何一個送成功的「設定-後工作站」控制訊框則該工作站可以加入。相同的,如果發生衝撞現象則根據前面所提的方法來解決競爭。

如圖5-8 所示,工作站 20 須送出「邀請-後工作站-2」的控制訊框,而工作站 10 則在第一個反應時窗中成功的成為新的加入者。

持有訊標的工作站並不是在每次要傳遞訊標前都會送出邀請訊息。而是根據一個時間參數週期性的來完成這些工作,以避免浪費太多的時間(如果邀請的太過密集則可能都會沒有反應而浪費時間)。

 

 

(a)

(b)

5-8 「邀請-後工作站-2」控制訊框使用範例

 

 

5.3.3 工作站的退出程序

當一個工作站想要退出邏輯環時,它必須等到取得訊標之後再送出「設定-後工作站」控制訊框給它的前工作站(原訊標持有者),其中

DAPS

SATS

DATANS

當其後工作站收到這個訊息後,會將其 PS 值設定為控制訊框中的 DA 值。而當其前工作站收到時會將其 NS 值設定為控制訊框中的 DATA 值。如此一來便自動的將該工作站從邏輯環中刪除。此時原訊標持有者會再送一個訊標給新的後工作站。如圖5-9 所示,工作站 50 送一個訊標給工作站 30 其回應一個「設定-後工作站」控制訊框。結果工作站 20 PS 值由 30 改為 50,而工作站 50 NS 值由 30 改為 20,自動將工作站 30 刪除。工作站 50 再傳遞一個訊標給工作站 20

(a)

(b)

5-9 退出邏輯環範例

 


yball1.gif (1556 bytes)   5.4 錯誤處理程序

由於網路運作的環境可能受到種種不同的干擾,如線路經過不穩定的電磁場,停電,甚至當機的情形,因此網路系統也要考慮到種種可能造成的問題,並且提供一套解決的辦法。基本上,IEEE 802.4 通訊協定可能面臨的問題有 5 類:

網路同時存在多個訊標

對方沒有收到訊標

工作站損壞

工作站接收器損壞

網路沒有訊標

以下我們便針對每一個問題討論其原因、特徵,以及解決的方法。

 

5.4.1 網路同時存在多個訊標

造成原因:訊息干擾或有工作站的地址重覆。

偵測方法:當某一個工作站持有訊標,卻聽到其他的工作站在傳送訊框。 這表示其他工作站也持有訊標。

解決辦法:將自己持有的訊標丟棄。如果每一個工作站都如此做則網路立 刻成為沒有訊標的狀態。其解決方法請參考 5.4.3 節。

 

5.4.2 對方沒有收到訊標或工作站損壞

造成原因:傳遞給一個工作站的訊標受到干擾而損毀,或下一個工作站本 身已損壞(如停電、當機等不正常退出邏輯環)。

偵測方法:在一個反應時窗之內沒有任何回應。前面我們曾經提及當一個 工作站收到訊標時,必須在下一個時槽立刻反應(傳送訊框或 傳遞訊標)。因此若無反應則表示訊標損毀或工作站損壞。

解決方法:原訊標持有者再將訊標傳遞一次,如果仍然沒有反應則認定其 後工作站已經損壞(訊標連續二次被損毀的機率極小),當然 此時邏輯環也已斷裂。為了將該後工作站刪除並且補救邏輯 環,原訊標持有者必須找到損壞工作站的後工作站來取代損壞 工作站的位置。因此它會送出一個「誰-跟在後面」(who- follows) 的控制訊框給所有的工作站。 其訊息如下:

DAXX

SATS

DATANS

其中 NS 即是損壞的工作站的識別碼。

每一個工作站一旦收到這個訊息便會立刻比較其本身訊息中的 PS 值是否等於控制訊框中的 DATA(NS) 值。如果是,則表示它是損壞工作站的後工作後站,此時它便送出一個「設定-後工作站」的控制訊框給原訊標持有者。經過訊息的修改之後便將邏輯環再建立起來。如圖5-10 所示,假設工作站 50 損壞,則工作站 60 在傳送 2 次訊標後便傳送「誰-跟在後面」控制訊框。所有工作站都可收到此控制訊框,但只有工作站 30 回送「設定-後工作站」控制訊框,結果工作站 30 便成為工作站 60 的後工作站。

 

(a)

 

(b)

5-10 邏輯環補救範例

「誰-跟在後面」控制訊框後面會保留三個反應時窗。其中前面二個是工作站完成比較所需要的時間,而第三個反應時窗才是用來送出反應訊息的。如果都沒有收到任何反應訊息,則訊標持有者會再送一次「誰-跟在後面」控制訊框。萬一仍然沒有反應,則表示損壞工作站的後工作站也同樣的損壞了(極有可能因為局部停電而造成若干工作站當機)。此時訊標持有者會送出「邀請-後工作站-2」(Solicit-successor-2) 控制訊框來要求重建邏輯環。此控制訊框的訊息如下:

DATS

SATS

DATANULL

其中 DASATS 代表請求邏輯環上所有的工作站一起來幫忙重建的任務。(在5.3 節中曾經也提到使用「邀請-後工作站-2」控制訊框,其中DASA,因此和現在所邀請的範圍不一樣)。此控制訊框仍然保留二個反應時窗,其中識別碼小於訊標持有者的工作站在第一個時窗反應,而識別碼大於訊標持有者的工作站則在第二個時窗反應(如果第一個時窗沒有任何反應)。此後的過程便和加入一個新工作站的程序相同。因為訊標持有者要找的對象是所有生存的工作站中識別碼小於它的最大者。如果沒有識別碼小於訊標持有者之工作站,則是找識別碼大於它的最大者。如圖5-11所示,工作站 50 30 皆損壞時,工作站 60 要找的是工作站 20。不過工作站 20 10 都會在收到「邀請-後工後站-2」的控制訊框後的第一個反應時窗中反應並且造成衝撞。接下來是按照比大小的方法使得工作站 20 脫穎而出成為工作站 60 的新後工作站。

(a)

(b)

5-11 邏輯環補救範例

如果仍然沒有任何工作站對「邀請-後工作站-2」控制訊框有所反應則表示:

所有其他的工作站全損壞(或離開邏輯環),使得訊標持有者為網路的唯一生存者。

本身的接收器故障因而收不到任何訊息。

此時該工作站會先假設是第一種情況而開始進行邏輯環初建的工作,如不斷的邀請新加入者。如果仍然收不到任何訊息,則認為是接收器故障此時必須執行故障測試或報告使用者請求維修。

 

5.4.3 網路沒有訊標或初始狀態

造成原因:持有訊標的工作站損壞,或

訊標損毀,或

網路在初始狀態(initialization)

偵測方法:匯流排上經過一段特定的時間都沒有任何訊息出現。(每個工作站 都有一個 Bus-idle timer)

解決方法:任何一個工作站偵測到這個事件之後都會想要另外產生一個新的訊標。但是如果每個工作站都貿然產生訊標則網路又會變成多個訊標的狀態。因此必須有一套分散式的方法來決定由誰來產生新的訊標。在標準中是由所有欲產生訊標的工作站中識別碼最大的負責。這又牽涉到要比大小的問題,不過其狀況和 5.3 節(圖5-7 )中所提及的不相同。在 5.3 節中有一個訊標持有者送出「解決-爭端」控制訊框給所有工作站有一個「同步」的訊號。然而在目前的情形之下並沒有同步的條件,每個工作站是根據自己所偵測到的事件來決定競爭的時機。

為了要比識別碼的大小,每個偵測到事件的工作站會送出「要求-訊標」(Claim-token) 的控制訊框。其中訊框為:

DAXX

SATS

DATA=長度為 0,2,4 6 個時槽的任何數據

數據本身的值沒有任何意義,不過其長度卻是用來比大小的,設定方法是根據其識別碼的最左邊 2 個位元的值:

 

其比較大小的原理如下:

1. 如果所送出的「要求-訊標」控制訊框沒有發生衝撞的情形,則表示其是唯一適時發現問題的工作站。同時此要求也傳送成功使得其成為新的訊標持有者。

2 如果發生衝撞,則表示有其他的工作站亦提出要求。此時便要監聽數據 衝撞的情形:

(a) 最後一個時槽沒有衝撞,表示自己的識別碼是最大的,可成為新 的訊標持有者。

(b) 所有時槽全部衝撞而且後面還收到其他工作站的數據,表示有其 他工作站的識別碼大於自己,自動放棄競爭。

(c) 所有時槽全部衝撞而且後面沒有其數據出現,表示這一輪的比較中無法分出大小。此時根據自己識別碼最左邊第 34 個位元的值決定數據長度,並且在下一個時槽開始時送出新的「要求-訊標」控制訊框。

這種競爭的程序將持續進行直到狀況 (a) 出現為止。此時新的訊標持有者可以傳送訊框,然後進行傳遞訊標的例行程序。

 

 


yball1.gif (1556 bytes)   5.5 優先權方法

所謂優先權 (priority) 是指將訊息的重要性分為不同等級,越高等級之訊息越有優先權使用訊標。在 IEEE 802.4 的訊框格式中有 3 個位元是用來顯示該筆訊框的優先權等級(參考圖5-3(h),其中控制欄位 (Control field01MMMPPP)中的PPP 即代表優先權的 3 個位元)。此 3 個位元欄位的值可為 0 7,不過只採用其中的 4 個等級,分別是:

6 :最高等級

4 :次高等級

2 :第三等級

0 :最低等級

為了避免某一個工作站因為擁有許多最高等級的訊息要傳送而獨佔訊標,每一個工作站都會設定一個最高等級訊息使用訊標的時限 (Hi-Pri-Token-Hold-Time) 。其他每一種較低等級的訊框則利用「目標訊標環繞時間」(Target Token Rotation TimeTRT)來控制使用訊標的時限。

為了方便說明,假設有 N 個等級的訊息,而每一個等級則可能同時有若干訊框要傳送,如圖5-12 所示。

5-12 優先權架構

網路管理系統會設定不同等級訊息持有訊標的時間:

等級N HPTHT(Hi-Pri-Token-Hold-Time)

等級N-1 TRT(N-1) Token-Rotation-Time

........

等級1 TRT(1)

TRTCToken-Rotation-Time-Counter

TTTemporary Timer

其中 TRTC 是指上一次得到訊標到目前為止的時間,而 TT 是指這次得到訊標到目前為止的時間。在取得訊標之後一定可以傳送等級 N 的訊息(最多使用時間為 HPTHT),至於其他等級的訊息則必須根據實際時間狀況而定,如下圖所示:

TRTC TT 的值會隨著時間而改變,而且每一次 TRTC 的值通常也不會相同。 當一個工作站得到訊標之後是根據圖5-13 所示之流程圖來傳送訊框及傳遞訊標。

 

5-13 傳送訊框及傳遞訊標流程圖

以下我們用一個例子來說明。假設優先權等級 N2,網路邏輯環上共有 4 個工作站,識別碼=60,50,20,10。傳送訊框相關訊息如下:

N2

工作站 60:訊框長度=128 位元組,每次傳送 3 筆等級 2 的訊框。

工作站 50TRT(1)1600,訊框長度=400 位元組,儘可能的傳送等級 1 訊框。

工作站 20TRT(1)1600,訊框長度=356 位元組,儘可能的傳送等級 1 訊框。

工作站 10:訊框長度=305 位元組,每次傳送 2 筆等級 2 的訊框。

訊標傳遞一次的時間=19 位元組時間。

(開始時假設所有的工作站都沒有訊框要送,只有傳遞訊標)

每一個工作站傳送訊框的情形則如圖5-14 所示。其中工作站 60 THT610,所以每次得到訊標後可傳送 4 個最高等級之訊框 (610/1284),但每次只傳送 3 筆訊框。相同的,工作站 10 可傳送 2 個最高等級之訊框 (610/3052) 。開始時因為假設所有工作站都沒有訊框要送,因此只有訊標被輪流傳遞著。當工作站 60 有訊框要送時,其 TRTC 值則等於 19*476(訊標傳遞一圈的時間),接下來其傳送 3 個長度 128 位元組的訊框,然後將訊標傳遞給工作站 50 。因此當工作站 50 收到訊標時其 TRTC 值為 19*3128*319460 (TRTC值從上次得到訊標即開始計算)。由於 460 小於 1600(TRT),因此可送 (1600-460)/4002.83 個等級 1 的訊框,然後將訊標傳遞給工作站 20 。而工作站 20 TRTC 則為 19*23*12819400*3191660。因為1660 大於 1600,所以不可以傳送等級 1 的訊框,而將訊標立即傳遞給工作站 10 。此時工作站 10 TRTC 亦為1660,但因為有等級 2 之訊框要送,所以可送 2 個長305 位元組的訊框。其他的 TRTC 值可根據此法計算。例如:

工作站 50:(訊標第6 次環繞時)

1782 2*(356)2*(305)3*(128)4*(19) 1600

工作站 20:(訊標第9 次環繞時)

1477 2*(356)1*(305)3*(128)4*(19) 1600

 

在這個例子之匯流排使用的分佈情形為:

1. 當工作站 10 每次傳送 2 個訊息時:等級 2 66%,等級 1 34%

2. 當工作站 10 每次傳送 1 個訊息時:等級 2 48%,等級 1 52%

從這個例子當中我們可以觀察到每一個工作站都可以在得到訊標後傳送最高等級的訊息。而所剩下的頻寬則由所有工作站中較低等級之訊息輪流使用(例子中工作站 50 20 彼此輪流傳送訊框)。

 

5-14 優先權等級訊框傳送範例

 

演算法中每一個工作站得到訊標後的處理流程則如圖5-15 所示。其中:

THT=訊標擁有時間:工作站擁有訊標來傳送等級 6 訊框的最長時間。

TRT4=等級 4 訊框之訊標環繞時間:允許訊標環繞一圈而仍然可以傳送 等級 4 訊框的最長時間。

TRT2=等級 2 訊框之訊標環繞時間:同前所述。

TRT0=等級 0 訊框之訊標環繞時間:同前所述。

 


yball1.gif (1556 bytes)  5.6 編碼方法

IEEE 802.4 所採用的編碼方法是「差動式曼徹斯特編碼」(Differential Manchester Encoding)。其特性如下:

每一個位元時間有二種可能的訊號轉換時間 (S,M)

S :在位元開始時轉換 (Starting transition)

M :在位元中間轉換 (Mid-bit transition)

T :轉換 (Transition)

-:沒有轉換 (No transition)

5-15 演算法流程圖

 

表示數據的方法如下(參考圖5-16

(TT):代表數據 "0"

(T) :代表數據 "1"

(--)(T) NN,代表特殊符號。Start Delimiter End Delimiter 利用此 符號來避免和一般數據相同所造成的問題(Code violation)

Start DelimiterNN0NN000

End DelimiterNN1NN1IE

其中

I :中間位元,其值為

1 表示該工作站還有訊框要送

0 表示傳送最後一筆訊框

E 錯誤位元

網路訊號增益器若偵測到訊框傳送發生錯誤可在轉送之前設定此位元,告知此訊框已錯誤。

 

(a)

(b)

5-16 差動式曼徹斯特編碼

 


習題

5.1 IEEE 802.4 網路的實際連線和邏輯上運作有何不同 ?

5.2 為什麼 IEEE 802.4 網路是無訊框衝撞的網路 ? 有沒有其他非訊框衝撞的情形 ?

5.3 IEEE 802.4 網路在運作上是依據一個邏輯環。此邏輯環有何特性 ? 其與工作站實際連接的位置有何關係 ?

5.4 請簡單說明 IEEE 802.4 網路正常運作的過程。

5.5 IEEE 802.4 網路如何讓工作站加入邏輯環中 ?

5.6 如果有二個或二個以上的工作站同時欲加入邏輯環且其位址相鄰則會發生什麼狀況 ? 如何解決 ?

5.7 以圖5-7 為例。假設工作站位址如下所示則其競爭過程為何 ?

A00101010

B01111010

C01110100

D00001010

E01111011

5.8 邏輯環上位址最小的工作站使用「邀請-後工作站-2」(Solicit -Successor-2) 控制訊框來邀請工作站加入邏輯環。此訊框後面有二個反應時窗,其意義為何 ? 可能會有哪些反應 ?

5.9 請敘述邏輯環上工作站正常退出邏輯環的程序。

5.10 請說明IEEE 802.4網路上為什麼會同時存在多個訊標 ? 工作站如何偵測 ? 何解決這個問題?

5.11 請敘述邏輯環上一個工作站故障時的處理程序。

5.10 請敘述邏輯環上連續二個工作站故障時的處理程序。

5.13 以圖5-17 為例。請說明工作站 44 45 如何加入該邏輯環中。

 

 

 

5-17

5.14 以圖5-17 為例。請說明當下列情形發生系統會如何處理。

(a) 工作站 5040 故障

(b) 工作站 504030 故障

(c) 工作站 30 20 故障

5.15 以圖5-17為例。請說明工作站 10 90 如何加入該邏輯環中。

5.16 請說明 IEEE 802.4 網路由初始狀態到建立含有二個工作站的邏輯環的過 程。 這期間會用到下列哪些控制訊框 ?

(a) Solicit-successor-1, (b) Solicit-successor-2, (c) Claim-Token

(d) Resolve-contention, (e) Set-successor

5.17 要求訊標 (Claim-token) 控制訊框上的訊框有 0,2,4 6 slots 長度的任意 值。請說明這是根據什麼來決定其長度 ? 為什麼不使用 0,1,2 3 slots 長度的任意值 ?

5.18 參考圖5-14。請解釋為什麼在訊標傳遞的第三輪中工作站 60,50,20 TRTC 值都是1782 ?

5.19 請說明 IEEE 802.4 網路優先權演算法中 TRT(i)i4,2,0 值的大小如何影響工作站使用頻寬的頻率及數量。

5.20 下列敘述中何者為正確 ?

(a) TRT(4) TRT(2) TRT(0)

(b) TRT(0) TRT(2) TRT(4)

(c) TRT(0)TRT(2)、及 TRT(4) 之間沒有一定的大小關係。