Home Page

第 十 章

分散式佇列雙匯流排網路

(Distributed Queue Dual Bus)


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

IEEE 802.6 製定「分散式佇列雙匯流排」網路 (Distributed Queue Dual Bus Network 簡稱 DQDB) 標準。顧名思意,這種網路的結構有二個單向匯流排 ,彼此傳送方向相反,如圖10-1 所示。而所謂「分散式佇列」是指利用分散式的方法來達到一般佇列的功能。一般「佇列」(Queue) 的最大特色就是「先進先出」(First In First Out FIFO)。網路利用這個特色來決定各工作站使用匯流排傳送資料的秩序。也就是說, 網路提供一套分散式的通訊協定,使得較先申請要傳送資料的工作站可以較早使用匯流排。由於傳送之匯流排為單向傳送,因此必須有二個匯流排才可以達到任意二個工作站都可以通訊的基本要求。為了方便起見,這二個匯流排分別稱為 A B (Bus A Bus B)。每個單向匯流排有一個負責產生「訊槽」(slot) 的工作站, 稱為「訊槽產生器」(Slot generator,又稱為 Head of Bus, HOB)。它不斷的產生固定長度的訊槽,然後送入單向匯流排,流經每個工作站之後到達匯流排之「終端器」(Terminator) 為止。每個工作站在得到使用匯流排的許可後 (必須經過通訊協定之協調),可以在匯流排上拿取一個空的訊槽 (empty slot),然後將其欲傳送之資料 (長度與訊槽之長度相同) 寫入訊槽中往下游送。此網路的主要特性如下:

多元化傳輸速率。傳輸速率可為 155 Mbps140 Mbps 34 Mbps

傳送資料單位為固定長度之「訊槽」(slot)

傳輸媒介為光纖或同軸電纜。

通訊協定採用「分散式佇列」(Distributed Queue) 通訊模式並且提供三種優先權。

提供二種擷取傳輸媒介的模式: 佇列--仲裁擷取法」(Queued-Arbitrated Access) 及「非仲裁擷取法」(Non-Arbitrated Access)。非仲裁擷取法提供等時而且連線導向(Connection-Oriented)的服務,適合即時應用系統(audiovideoimage 等等)。佇列--仲裁擷取法利用非仲裁擷取法所剩下的頻寬來提供非同步而且非連線導向的服務,適合一般數據或檔案傳送應用系統。

高頻寬使用率。佇例--仲裁擷取法在網路負載輕時具有低擷取延遲(Low access delay) 的特性,而在網路負載重時具有少浪費頻寬的特性。佇列--仲裁擷取法所能提供的成功輸出率(Throughput) 和網路的大小或傳送速率無關。

擴充性高。DQDB 網路擷取法以訊槽的結構為基礎可以和未來的寬頻整合服務數位網路 (BISDN)相容,成為由目前網路系統發展到 BISDN 之間的過渡型網路。

10-1 雙匯流排網路結構

單向匯流排 A B 是獨立運作的。工作站必須分別參與其分散式佇列的競爭才能使用該匯流排。也就是說,如果某工作站想要將資料分別送給位於其左,右兩邊的工作站 (例如圖10-1 中,工作站 2 欲傳送資料給工作站 1 n),則必須加入 Bus A 的使用競爭以使傳送資料給右邊工作站 n,同時也要加入 Bus B 的使用競爭以便傳送資料給左邊工作站 1

DQDB 網路通訊結構包含四部份(如圖10-2 所示):

l 傳輸媒界擷取控制部份(Medium Access Control, MAC)

傳輸媒界擷取控制管理部份(MAC Management Entity, MAC ME)

l 實體層通訊協定部份(Physical Layer Protocol, PHY)

l 實體層傳輸媒界相關部份(Physical Medium Dependent, PMD)

其中 MAC 部份位於 IEEE 802.2 LLC 下面。這種規格使得 DQDB 網路可以較容易和 IEEE 802 系列的區域網路互連,因為這些區域網路都使用相同的 802.2 LLCMAC 層制定提供給 LLC 使用的服務和 MAC 彼此之間的通訊協定 (MAC Protocol) 由於 DQDB 提供「非同步傳輸」(Asynchronous) 服務及「等時傳輸」(Isochronous) 服務,因此 MAC 中包含「非同步傳輸控制」(Asynchronous Transfer Control, ATC) 及「等時傳輸控制」(Isochronous Transfer Control, ITC) 機制。ACC (Access Control Component) 則負責有關訊槽的傳送與接收工作。PHY 制定資料在傳輸時的編碼方式, 和傳輸媒介無關。 PMD 制定光纖驅動器和接收器的特徵和其他與傳輸媒介有關的部份,例如工作站如何連接,甚至接頭, 傳輸線的特徵等等。MAC ME負責管理 DQDB 的各個層次使得工作站可以在雙匯流排網路上順利運作。

每個 DQDB 網路包含一些由傳輸線路連接的工作站。工作站可以經由不同的傳輸線路和其鄰近的 2 個工作站相連結。每一段連接 2個相鄰工作站的傳輸線路具有全雙工傳送功能 (Full Duplex),用來傳送 Bus A Bus B 的訊號。工作站內之匯流排結構如圖10-3 所示。由圖10-3 我們可以知道 Bus A (B) 事實上是由一段一段的傳輸線路串接起來的,並且在經過每個工作站時,由「OR-WRITE」閘控制其輸出值。這種結構具有一個特色,那就是當資料在匯流排上傳送時,工作站不可以將資料拿走,只可以在通訊協定的允許之下更改其內容。

 

10-2 DQDB 工作站標準結構

10-3 工作站內部匯流排結構

DQDB 網路可以有不同範圍的應用,如果規模較小則可以當成一般區域網路的骨幹網路 (如圖10-4 所示),連接私人交換機 (PBX)、主電腦、語音/數據整合工作站 (Integrated Voice/Data Workstation)、電話系統、VoD 伺服器,甚至另外一個較小的 DQDB 網路。如果網路所要求的規模較大,則可以 DQDB 網路為基礎連接成一「大都會區域網路」(Metropolitan Area Network,簡稱 MAN),如圖 10-5 所示。大都會區域網路以 DQDB 網路為主,然後利用橋接器、路徑器、及網路閘門將之連接起來 ,當然也可以包含一些其他不同規模、性質的網路。

10-4 DQDB 網路為骨幹之區域網路

10-5 DQDB 網路為基礎之大都會區域網路範例

 

DQDB可以有二種不同的架構:

1.開放式架構 (Open Dual Bus)

2.迴路式架構 (Looped Dual Bus)

在開放式架構之下 (如圖10-1),匯流排 A 及匯流排 B 各有其不同的「訊槽產生器」和終端器,而且每個匯流排都沒有迴路。在迴路式架構之下 (如圖10-6)匯流排 A 及匯流排 B 具有共同的訊槽產生器和終端器,並且由某一個工作站來擔任,負責傳送空槽到匯流排 A (B)上,然後拿走經過匯流排傳送後的訊槽。迴路式架構具有容忍網路一個故障的功能,如某一段傳輸線路斷裂,並且完成網路重新組織 (Network Reconfiguration) 的能力 (開放式架構則無此功能)。如圖10-7(a) 所示,當位於工作站 i 工作站 i-1 之間的傳輸線路斷裂時則

1. 原先擔任訊槽產生器的工作站 1 將其匯流排 A 及匯流排 B 恢復與一般工作站相同的狀況。

2. 位於斷裂傳輸線路兩邊的工作站各自擔任某一匯流排之訊槽產生器。如圖10-7(a) 所示,左邊的工作站 i 擔任匯流排 A 之訊槽產生器及匯流排 B 之終端器而右邊的工作站 i-1 則擔任匯流排 B 之訊槽產生器及匯流排 A 之終端器。

10-7(b) 所示為當某一個工作站 i 故障時的網路重組情形。除了原先擔任訊槽產生器的工作站 1 將其匯流排 A 及匯流排 B 恢復與一般工作站相同的狀況之外,位於斷裂傳輸線路兩邊的工作站也各自擔任某一匯流排之訊槽產生器。如圖10-7(b) 所示,左邊的工作站 i+1 擔任匯流排 A 之訊槽產生器及匯流排 B 之終端器而右邊的工作站 i-1 則擔任匯流排 B 之訊槽產生器及匯流排 A 之終端器。

10-6 迴路式匯流排架構

 

 

(a) 線路斷裂重組情形 (b) 工作站故障重組情形

10-7 網路重新組織範例

 


yball1.gif (1556 bytes) 10.2 訊槽格式

DQDB 利用固定長度的「訊槽」 (slot) 來傳送資料而每個匯流排的訊槽產生器會不斷的將空槽送上匯流排給工作站使用。每個訊槽的長度為 53 個位元組,其中第一個位元組為控制欄,其他 52 個位元組為存放資料欄,如圖10-8 所示。控制欄中各欄位意義如下:

BUSY:1”表示此訊槽已被佔用,“0”表示此訊槽為空槽。

SL_TYPE:1”表示此訊槽為「非仲裁」 (Non-ArbitratedNA,Pre-ArbitratedPA) 型態,為等時傳輸時所使用。0表示此訊槽為「佇列一仲裁」(Queued-Arbitrated QA) 型態,為非同步傳輸時所使用。

Reserved:保留未用。

PSR(Previous Slot Reusable):指示前一個訊槽中的資料是否可以被清除。

REQ-2:優先權等級 2 (Priority 2) 的使用申請欄。

REQ-1:優先權等級 1 (Priority 1) 的使用申請欄。

REQ-0:優先權等級 0 (Priority 0) 的使用申請欄。

10-8 DQDB 訊槽格式

 


yball1.gif (1556 bytes) 10.3 非同步傳輸──佇列仲裁法

DQDB 網路的資料傳輸方式有「非同步傳輸」 (Asynchronous) 及「等時傳輸」(Isochronous) 二種。在非同步傳輸之下,每個訊槽為單一工作站所使用, 而工作站在使用二個訊槽之間的時間不定,必須根據其使用「申請」(Request) 在佇列中的順序而定。在等時傳輸之下,每個訊槽可為多個工作站所共同。工作站雖然僅使用部分訊槽欄位傳送資料,不過使用二個訊槽之間的時間可控制。因此非同步傳輸較適合一般資料、檔案的傳送,而等時傳輸則較適用於有即時反應要求的資料傳送,如視訊(Video)、語音 (Voice)、影像 (Image) 之即時交談應用系統等等。

 

「佇列仲裁法」(Queued-Arbitrated Access) 是要以分散式的方法來完成一般佇列「先進先出」的功能。以 DQDB 網路的觀點來說,先申請的工作站可以優先使用空槽來傳送資料。因此對於要使用匯流排 A 的工作站,它必須隨時注意由匯流排 A 流過來的訊槽是否為空槽, 並且利用匯流排 B 流過來的訊槽 (空槽或滿槽)上的申請欄 (Request bit) 申請使用匯流排 A 的空槽。這個申請則經由匯流排 B 通知位於該工作站上游 (指匯流排 A) 的所有工作站,如圖10-9 所示。相同的,如果工作站要使用匯流排 B 來傳送資料則必須注意匯流排 B 上的訊槽的忙碌欄位及使用匯流排 A 上的訊槽的申請欄位。由於 DQDB 網路將資料分為三種不同的優先權等級,因此每一個訊槽中有三個申請欄位 (REQ2REQ1REQ0) 以便提供各別申請的功能。

10-9 匯流排 A 上訊槽的申請與使用

當工作站沒有 QA 資料存在佇列中等待傳送時,其反應如下 (如圖10-10 所示)

1. 每次收到一個由匯流排 B 傳來的申請則將其「申請計數器」(Request Counter) 的值加 1

2. 每次收到一個由匯流排 A 傳來的空槽則將其申請計數器的值減 1

其中申請計數器的值代表到目前為止位於其下游 (指匯流排 A) 的工作站所提出的申請總數。 因此當有空槽流過去時表示會有某一個申請 (不知道是那個工作站提出的)得到服務,故其值減 1。針對匯流排 B 工作站也有一個同樣功能的申請計數器。

10-10 工作站沒有 QA 資料在佇列時處理方法

當工作站有一筆 QA 資料要送到匯流排 A 時,其處理過程如下所示(10-11):

在匯流排 B 上送出申請 (根據資料的優先權等級設定訊槽的申請欄)

將申請計數器的值放到「倒數計數器」(Countdown Counter)上。

申請計數器的值設為 0 並且開始其計數功能。

每收到一個由匯流排 A 傳來的空槽則將倒數計數器上的值減 1,直到其值 等於 0 為止。此時工作站可將下次收到的空槽改為滿槽,並且將資料寫到訊槽上往下游傳送。

在執行步驟 4 的任一瞬間,倒數計數器的值代表到目前為止位於其下游 (指匯流排 A) 的工作站中,較早提出而尚未被服務申請個數。因此遇有空槽仍必須往下游送以符合先申請先使用的原則。而申請計數器的值則代表較其後提出的申請總數。 當倒數計數器的值等於 0 時表示比其較早提出的申請都已被服務,所以可以使用下一個空槽。

10-11 工作站有 QA 資料要傳送時的處理方法

接下來我們用一個例子來說明 DQDB 網路匯流排A的運作過程 (匯流排 B 情形亦同)。如圖10-12所示,網路有 5 個工作站,其中 RQ CD 分別代表申請計數器及倒數計數器。假設開始時經過匯流排 A 的都是滿槽 (BUSY slot) 而且申請的秩序為工作站 523。運作過程如下:

1. 工作站 5 提出申請,將其 RQ (0) 放到 CD 中。此申請經由匯流排 B 傳送使得每一個工作站的 RQ 值加 1 成為 1 (10-12(a))

2. 工作站 2 提出申請,將其 RQ (1) 放到 CD 中,並且讓 RQ0。此申請經由匯流排 B 傳送使得工作站 1 RQ 值加 1 成為 2 (10-12(b))

3. 工作站 3 提出申請, 將其 RQ (1) 放到 CD 中並且讓 RQ0。此申請經由匯流排 B 傳送使得工作站 12 RQ 值分別加 1 成為 3 1 (10-12(c))

工作站 5 提出申請

工作站 2 提出申請

(c) 工作站 3 提出申請

10-12 空槽申請過程範例

此時各工作站所得到的情報如下(參考圖10-12(c)):

工作站 1: 位於匯流排 A 下游的工作站中有三個提出申請 (RQ3)

工作站 2: 位於匯流排 A 下游的工作站中有一個較早提出申請 (RQ1),一個較晚提出申請 (RQ1)

工作站 3: 位於匯流排 A下游的工作站中有一個較早提出申請 (CD1),沒有較晚提出申請者。

工作站 4: 位於匯流排 A下游的工作站中有一個提出申請 (RQ1)

工作站 5: 位於匯流排 A下游的工作站中沒有較早 (CD0),也沒有較晚提出申請者 (RQ0)

接下來我們說明空槽使用情形。如圖10-13(a) 所示,當第一個空槽經過時,工作站 1 將其 RQ 值減 1 成為 2,工作站 2 將其 CD 值減 1 成為 0,工作站 3 將其 CD 值減 1成為 0,工作站 4 將其 RQ 值減 1 成為 0,而最後工作站 5 得到此空槽之使用權並將之改為滿槽。如圖10-13(b) 所示,當第二個空槽經過時,工作站 1 將其 RQ 值減 1 成為1,工作站 2 因其 CD 值為 0,因此可以使用此空槽,其他工作站的狀態則不變。當下一個空槽出現時,工作站 12 RQ 值將會成為 0,而工作站 3 將可以使用該空槽,如圖10-13(c) 所示。

由以上的例子我們可以看出工作站的確是按照申請的秩序 (523) 來使用空槽,滿足佇列的特性。

(a) 第一個空槽經過時,工作站 5 得到使用權

(b) 第二個空槽經過時,工作站 2 得到使用權

(c) 第三個空槽經過時,工作站 3 得到使用權

10-13 空槽使用過程範例

 

 

10.3.1 訊框切割與組合

前面說明了工作站如何將一個固定長度的「資料片段」(Segment) 送入空槽中。以下說明一個訊框 (Frame) 如何被切割成固定長度的資料片段及工作站收到這些片段之後如何組合成原來的訊框。

首先我們先看看 DQDB MAC 層訊框 (MAC Frame) 的格式。如圖10-14 所示,一個訊框有訊框標頭 (Header)、資料部份、及訊框尾標 (Trailer)。其中控制欄中各欄位意義如下:

Rsvd (Reserved): 保留未用。

BEtag (Beginning-Ending Tag): 訊框前後之旗標。兩個旗標值相同。

BAsize (Buffer Allocation size): 訊框的總長度。

DA (Destination Address): 目的地工作站位址。

SA (Source Address): 原始工作站位址。

X+ : 表示此欄位不被此層之通訊協定 (MAC-Protocol) 所處理。

HLPI (Higher Layer Protocol Identifier): 上層通訊協定之識別碼,如 IPIPXCLNS 等等。

PL (PAD Length): 資料欄位後之附加資料長度。

QOS (Quality of Service): 服務品質 (由上層通訊協定處理)。

CIB (CRC32 Indication Bit): 指示有無使用 CRC32 檢查碼。

HEL (Header Extension Length): 訊框標頭擴充欄位長度。

Brdg (Bridging): 橋接器使用欄位 (由上層通訊協定處理)。

HE (Header Extension): 訊框標頭擴充欄位。

INFO (Information): 欲傳送之資料,最長為 9188 個位元組。

CRC32 (32-bit Cyclic Redundancy Check): 循環重複檢查碼。

 

10-14 DQDB 網路訊框格式

為了方便起見,我們稱一個 MAC 層的訊框為「初始 MAC 通訊協定數據單元」(Initial MAC Protocol Data Unit,簡稱 IMPDU)。在傳送一個 IMPDU 前首先必須將 IMPDU 切割成一些長度為 44 位元組的「片段」(Segments),如圖10-15 所示。然後將每一個片段加上長度為兩個位元組的「片段標頭」及「片段尾標」,稱之為「推導 MAC 通訊協定數據單元」(Derived MAC Protocol Data Unit,簡稱 DMPDU)

一個 DMPDU 的格式如圖10-16 所示。其片段標頭有三個欄位(片段型態、順序號碼、資料辨識碼),片段尾標有二個欄位(片段長度、檢查碼):

片段型態 (Segment Type) DMPDU 有下列四種型態:

BOM(Beginning of Message):表示此 DMPDU 為此資料的第一個 DMPDU

COM(Continue of Message):表示此 DMPDU 為此資料的中間 DMPDU

EOM(End of Message):表示此 DMPDU 為此資料的最後一個 DMPDU

SSM(Single Segment Message):表示此 DMPDU 為此資料唯一的 DMPDU

順序號碼 (Sequence Number)4 位元。表示此 DMPDU 在傳送時的順序,其值為 0 15。第一個 DMPDU 的順序為 0, 以後則每一個 DMPDU 1,直到 15 為止。15 之後又從 0 開始使用。

資料識別碼 (Message Identifier)10 位元。屬於同一筆資料的 DMPDU 都有一個相同的資料識別碼。

片段長度 (Payload Length)6 位元。所有的片段長度都是 44 個位元組,除了最後一個。如果 IMPDU 的長度不是 44 的整數倍則最後一個片段的長度小於 44。因此使用六個位元來記錄其長度即可。

檢查碼 (Payload CRC)10 位元。利用 CRC-10 檢查碼來檢查 DMPDU 是否傳送錯誤。

 

 

10-15 IMPDU 切割成 DMPDUs

 

10-16 DMPDU 包裝成訊槽

 

10-16 也顯示如何將一個 DMPDU 再加上五個位元組而包裝成為一個長度為53 個位元組的訊槽。其中第一個位元組就是前面已經介紹過的「存取控制欄位」(Access Control Field)。接著四個位元組是「網路控制資訊欄位」(Network Control Information),此欄位在「等時傳輸」方法中使用(請參考第 10.4 節),但在「非同步傳輸」方式中則沒有使用而將其值固定設為 16 進位的 FFFFF022

接下來我們說明工作站如何能夠在匯流排上所流過的許許多多訊槽中辨認出那些是要傳給自己的訊槽。每一個 IMPDU 都有「目的地位址」欄位,而這個欄位在切割時會被放到第一個片段中。換言之,第一個 DMPDU (型態為 BOM) 將包含此資訊。網路上的任何一個工作站在收到屬於 BOM 型態的 DMPDU 時都必須進一步檢查其中的目的地位址是否等於自己。如果不是則將該 DMPDU 轉送出去,不做任何拷貝的動作。否則便將該筆 DMPDU 拷貝下來並且將其中的「資料識別碼」記錄下來。以後只要收到型態為 COM 而且資料識別碼相同的 DMPDU 就表示屬於同一筆資料,可以拷貝起來。最後當型態為 EOM 而且資料識別碼相同的 DMPDU 也收到時則表示該筆資料已接收完畢,可以開始進行組合的工作。

由於每一個 DMPDU 都有一個順序編號,因此接收端可以由所接收到的順序中檢查出資料是否有流失。如果一個 DMPDU 在傳送的過程中沒有流失但訊號錯誤則可以利用位於片段尾標的 CRC 檢查碼檢查出來。錯誤的 DMPDU 將會被丟棄。在傳送的過程中只要有任何一個 DMPDU 流失或錯誤,則接收端將無法組合成原來的 IMPDU3h此時所有其他接收到的將會被丟此時所有其他接收到的 DMPDU 將會被丟棄。換言之,此筆資料將被當成在網路中傳送流失。由於順序編號只佔了四個位元,而且其值為循環使用,因此在傳送的過程中如果連續流失 16 DMPDU 將使接收端無法檢查出此錯誤而進行組合的工作。不過在組合完成之後會發現其長度不對而將之丟棄。無論哪一種情形,工作站將無法在 MAC 通訊協定要求傳送端重送流失的 IMPDU。使用者如果需要高可靠度的傳輸則必須依賴上層通訊協定 ( TCP) 的協助。

另外一種比較複雜的錯誤狀況可能發生在傳送端連續傳送兩個 IMPDU 給相同的接收端而且使用相同的資料識別碼。當然每一個IMPDU 都會被切割成許多 DMPDUs 而且以 BOMCOMCOM,…,COMEOM 的順序傳送。如果第一個 IMPDU EOM 和第二個 IMPDU BOM 同時流失,則接收端會將屬於兩個 IMPDU DMPDUs 視為屬於同一個 IMPDU (因為有相同的資料識別碼)而進行錯誤的組合。為了避免這個問題,每一個 IMPDU 的頭尾都有一個內容相同的 BEtag (Beginning-Ending Tag) 旗標,而且不同的 IMPDU 使用不同的旗標。如此一來,接收端如果發現組合後的頭尾旗標不一致則將該 IMPDU 丟棄。

我們已經說過工作站在網路上是靠「資料識別碼」來接收屬於同一個 IMPDU DMPDUs。因此,不同的 IMPDU 在網路上傳送時應該使用不同的資料識別碼,否則接收端可能會將屬於不同 IMPDU DMPDUs 組合起來造成錯誤。通常一個工作站在傳送 IMPDU 時是按照順序一個接著一個傳送,很少同時傳送兩個 IMPDU。因此,工作站很少有機會同時使用兩個資料識別碼。即使同時使用兩個資料識別碼也會使用不同的資料識別碼。但是不同的工作站卻有可能使用相同的資料識別碼。為了解決這個問題,DQDB 網路的實體層提供了一個「資料識別碼分配通訊協定」(MID Page Allocation Protocol)。經由此通訊協定的運作每一個工作站都有一組互不相同的資料識別碼。以下我們介紹此通訊協定的運作方式。

資料識別碼分配通訊協定透過傳送「資料識別碼分配欄」(MID Page Allocation Field, MPAF)來進行資料識別碼的分配工作,MPAF包含了三個欄位(如圖10-17所示),各欄位之意義如下:

Page Reservation, PR:表示此 MPAF 的識別碼是否已經被預約。

Page Counter Modules, PCM:此欄位含有將此 MPAF 識別碼除以 4 的餘數(在此每一個資料識別碼為一個數值),如此可讓網路上的每個工作站檢查其自己的識別碼計數器目前的值是否與匯流排之訊槽產生器的識別碼計數器同步。

Page Counter Control, PCC:用以控制所有的識別碼計數器。識別碼並非真正的置於 MPAF 傳送,而是在網路上的每個工作站都擁有一個識別碼計數器,其值介於 1 210-1,因此當計數器作修改時網路上的所有工作站必須同步的動作,並以此欄位之訊息控制之。

10-17 MPAF 的格式與其各欄編碼意義

資料識別碼分配通訊協定為兩階段性的通訊協定(如圖10-18所示),第一個階段為「維持資料識別碼」(Keep MID Pages):匯流排 A 的訊槽產生器會依目前該訊槽產生器上的識別碼計數器產生相對的 MPAF,傳送給下游,網路上的每個工作站收到該 MPAF 則會依 MPAF 上的 PCC 修改其本身的識別碼計數器,並檢查識別碼是否正確,之後依其所使用的識別碼記錄檢查該識別碼是否目前正在使用(每個工作站會記錄著其所使用的識別碼),若是目前正在使用則將該 MPAF PR 欄改為「已預約」(Reserved),否則將該 MPAF 原封不動的傳送給下游。當匯流排 B 的訊槽產生器收到此一訊息時會將之忠實的轉送到匯流排 B,並進行下一個階段。

該通訊協定的第二個階段為「摘取資料識別碼」(Get MID Pages):此一階段進行識別碼的取得,在此階段網路上的每個工作站收到此 MPAF 時,會依其情況是否需要識別碼作以下的處理:(1) 該工作站需要識別碼:則視該 MPAF PR 欄而定,若是 PR 為「未預約」則將該 PR 欄設為「已預約」,並將目前的識別碼計數器上的值記錄下來以便使用。若是該 MPAF PR 欄為「已預約」,則該工作站必須等待下一次的機會,並將該訊息傳送給下一個工作站。(2) 該工作站不需要識別碼:則將 MPAF 傳送給下一個工作站不須作任何的處理。

10-18 資料識別碼分配通訊協定流程

 

10.3.2 位址格式 (Address Format)

DQDB 網路的位址欄位長度為 8 個位元組,其中又分為三個次欄位 (如圖 10-19 所示):

位址型態 (Address Type): 4 位元。

填塞部份 (Padding): 60-N 位元。

MAC 服務接觸點位址 (MAC Service Access Point, MSAP): N 位元。

 

10-19 位址欄位

DQDB 網路的位址格式和其他 IEEE 802 系列的區域網路稍微不一樣,除了有 16 位元及 48 位元二種格式之外,還有 60 位元的格式。這是因為 DQDB 網路被定位為一種大都會網路,因此需要較大的位址空間。60 位元的位址如果屬於「專屬管理」(Privately Administered) 則由地方性大都會網路的操作員負責管理。如果屬於「公共管理」(Publicly Administered) 則各別的 60 位元位址 (Individual) 必須根據 CCITT 建議文件 E.164 (針對 ISDN 領域所制定的號碼規劃原則)來制定。即國家碼由 CCITT 來管理,而一個國家內部的號碼分配則由該國家自行管理。至於 16 位元及 48 位元二種位址的格式則和一般的區域網路相同,如圖10-20 所示。其中 I/G=0 表示該位址是某個工作站的「個別位址」(Individual Address)I/G=1 表示該位址是某個群體的「群體位址」(Group Address),這是用來達到「群播」(Multicast) 的目的。屬於該群體的每一個工作站都會接收該筆資料。如果所有位元的值都是 1 則代表「廣播」(Broadcast),網路上所有的工作站都必須接收該筆資料。

 

10-20 16-位元及 48-位元的 MSAP 位址格式

 

10.3.3 釋槽工作站

 

DQDB 網路上傳送的訊槽有一個很重要的特性,就是一旦由空槽變成滿槽後就不可以再更改為空槽。這是因為工作站使用「或寫」(OR-WRITE) 的輸出輸入線路,一個位元只可以由 0改成 1而不能由 1改成 0。這個特性意味著一個訊槽即使已被其目的地工作站拷貝也必須原封不變的繼續傳送,直到終端器為止。如果我們能克服這點使得一個達成任務的訊槽(已經過其目的地工作站)可以被變更回空槽讓下游的工作站重複使用,則可以大大的提升網路的效能

困難的是工作站使用「或寫」的輸出輸入線路。這種線路的好處就是訊號延遲非常短,通常只是一個位元的時間。換言之,工作站只有一個位元的時間來處理一個接收到的位元(比較或變更)。但是工作站卻必須等到收到「資料辨識碼」(Message ID) 之後才能判斷一個訊槽是否傳送給自己。此時該訊槽的前導部份(包含忙碌欄位)都已經傳送出去。因此即使發現該訊槽是傳送給自己(可以被下游工作站重複使用)也已經來不及將之變更為空槽。其補救的方法是將下一個訊槽的 PSR (Previous Slot Reusable) 欄位(請參考圖 10-8)設為 1,表示「前面那個訊槽可以釋放」。可是這個訊號對其他工作站來說也無法發揮功能,因為工作站看到此訊號時,前面一個訊槽(仍然為滿槽)早就轉送出去,根本來不及使用。為了解決這個問題,網路提供了一種特殊的工作站稱為「釋槽工作站」(Erasure Node)。這種工作站的輸出輸入線路不是採用「或寫」線路,因此可以任意變更位元的值。最重要的是,釋槽工作站的時間延遲大於一個訊槽的時間而不是一個位元的時間。換言之,釋槽工作站有一個長度為 54 個位元組的「位移暫存器」(Shift Register),每一個收到的位元都先存入位移暫存器的輸入端,位移暫存器滿的時候才開始由輸出端將位元一個一個的傳送出去。因此,當釋槽工作站看到一個訊槽的PSR 欄位被設為 1時,其前面的一個訊槽還在位移暫存器中。此時釋槽工作站便將 PSR 欄位設為 0並且將位移暫存器中的訊槽變更為空槽(包含將訊槽中的 DMPDU 內容全部清除為 0)。請注意訊槽中「要求欄位」(REQ-2REQ-1REQ-0) 的值不變更,因為這些欄位是上游工作站用來要求另外一個匯流排的空槽,無論訊槽有沒有被重複使用,這些要求都不能受到干擾。

 


yball1.gif (1556 bytes) 10.4 等時傳輸 (Isochronous) ──非佇列仲裁法

「等時傳輸」(Isochronous) 的特色就是資料在網路上傳送的時間間隔相同,即維持一個固定的時間延遲。如圖10-21 所示,網路上有兩種資料 A B 在傳送,而每一筆資料的傳送間隔都是 125 us。如果每一筆資料的大小是一個位元組 (A),則其傳輸速率便是 64 Kbps (= 8 位元/125 us)。如果每一筆資料的大小是32 個位元組 (B),則其傳輸速率便是 2.048 Mbps (= 256 位元/125 us)

 

10-21 等時傳輸範例

DQDB 網路是利用 PA 訊槽來提供等時傳輸的頻寬。PA 訊槽的格式如圖10-22 所示。53 個位元組中除了五個位元組之外全部用來提供等時頻寬。也就是說,一個 PA 訊槽可以有 48 個位元組的等時頻寬。為了方便起見,這些位元組分別用「位移」 (offset) 0,1,2,,47 來辨識。為了提供等時通訊的特性,訊槽產生器將會每 125 us 產生一個 PA 訊槽。我們稱這些每隔 125 us 出現一次的 PA 訊槽為同一組 PA 訊槽。工作站只要在同組中的每個 PA 訊槽的相同位移傳送一個位元組的資料就算是擁有一個 64 Kbps 的等時通道。因為一組 PA 訊槽最多只能提供 3.072 Mbps (392 位元/ 125 us) 的等時頻寬,因此必要時訊槽產生器會產生兩組或更多組的 PA 訊槽。為了分辨這些 PA 訊槽,每個 PA 訊槽有一個 VCI (Virtual Circuit Identifier) 欄位,屬於同一組的 PA 訊槽具有相同的 VCI 值。因此,一個 (VCI, Offsets) 便可用來代表某一個等時通道。

10-22 PA 訊槽格式

10-23 所示為等時通道分配的範例。該網路目前有一組 VCI=100 PA 訊槽正在傳送而且有兩個等時通道正在使用,分別是 (VCIOffsets) = (100{0}) 頻寬為 64 Kbps (VCIOffsets) = (100{46,47}) 頻寬為 128 Kbps。圖10-24 所示為等時通道分配的另外一個範例。該網路目前有兩組 PA 訊槽正在傳送 (VCI=100 VCI=200) 而且有四個等時通道正在使用,分別是 (VCIOffsets) = (100{0}) 頻寬為 64 Kbps(VCIOffsets) = (100{46,47}) 頻寬為 128 Kbps(VCIOffsets) = (200{1}) 頻寬為 64 Kbps(VCIOffsets) = (200{46}) 頻寬為 64 Kbps

二個工作站間如果能以等時的方式傳送及接收資料,我們稱他們中間有一個「等時通道」(Isochronous Channel)。每一個等時通道的頻寬可以不同,通常是 (64*N) Kbps N >= 1。等時傳輸的服務是採用集中式管理,因此,要使用等時傳輸服務之前,必須先建立等時通道。基本上,網路有一個「頻寬管理工作站」(Bandwidth Management Station) 負責有效的管理網路的有限頻寬(如 DQDB 155 Mbps)。當一個工作站想要等時通道時必須向頻寬管理工作站提出申請(所需要的等時通道數量及頻寬)。頻寬管理工作站則根據當時頻寬的使用情形來決定如何處理。(a) 如果當時網路上都沒有使用等時通道或可用的等時通道頻寬不夠滿足申請需求,則頻寬管理工作站會利用 QA 訊槽通知訊槽產生器送出一組具有某個 VCI 值的 PA 訊槽(即每 125 us 送出一個 PA 訊槽)。這一組 PA 訊槽都有相同的 VCI 值。因此頻寬管理工作站便利用 QA 訊槽將該 VCI 值及適當的位移 (VCIOffsets) 回給申請的工作站。(b) 如果當時網路已有使用等時通道而且所剩的等時通道頻寬也足以滿足申請需求,則管理工作站便直接利用 QA 訊槽將該適當的 (VCIOffsets) 回給申請的工作站。(c)如果當時網路的等時通道頻寬已充份的使用無法滿足申請需求,則管理工作站便回絕此申請。如果申請工作站能得到一個 (VCIOffsets) 則表示已經申請到等時頻寬,此時便可利用 QA 訊槽將此 (VCI,Offsets) 傳送給其目的地工作站建立一個等時通道。當工作站不再需要等時通道時則向頻寬管理工作站提出釋放申請。頻寬管理工作站則收回所使用的頻寬 (VCI, Offsets),此頻寬可以服務其他工作站所提出之申請。如果某一組 PA 訊槽的等時通道都沒有工作站要求使用則頻寬管理工作站便通知訊槽產生器將該組 PA 訊槽換回 QA 訊槽以便傳送非同步資料。

10-23 等時通道分配範例(一)

我們知道每一組 PA 訊槽可以提供最多 3.072 Mbps (48x64 Kbps) 的等時頻寬。這些頻寬只能用來建立等時通道,也就是說,沒有建立等時通道的等時頻寬也不可以拿來傳送非同步資料。如果一組 PA 訊槽只用了一個 64 Kbps 的等時通道則表示浪費了 3.008 Mbps 的頻寬。因此頻寬管理工作站應該要有一個非常有效率的頻寬分配方法才行。在標準中並沒有規定頻寬管理工作站應該要如何分配頻寬,但基本的原則是除非目前所使用的等時頻寬不足以滿足新的需求否則不輕易產生另位一組 PA 訊槽。雖然如此,但等時頻寬的使用仍然有可能出現效率不佳的情形。例如原先有兩組 PA 訊槽正在使用而且都用滿而沒有浪費。但是每一個等時通道都有可能隨時結束而釋放出等時頻寬。因此最後有可能每一組 PA 訊槽都只剩少許的等時通道而形成浪費的情形。此時這兩組 PA 訊槽也不能合併為一組,因為合併的結果將會使一些等時通道在轉換瞬間發生時間超前或延後 (shift) 的現象,破壞等時的特性。

10-24 等時通道分配範例(二)

 

10.4.1 等時通道之維運

 

當網路上的兩部工作站希望相互通話時,則此兩部工作站必須依固定的程序以建立起一個等時通道提供此服務,為了提供等時傳輸的服務,DQDB 網路上必須有一特殊的工作站稱為「頻寬管理工作站」,負責管理網路的所有頻寬。因此當一個工作站需要等時通道時,必須將其需求告知頻寬管理工作站。此一告知的工作須經過一連串的控制訊號(Control Signal)相互傳送始能完成,而控制訊號的傳遞必須透過一個訊號終點站(Signaling Termination)來完成。DQDB網路中,有關此一部份之控制訊號傳遞方式是依據 CCITT 編號 Q.931 的標準。因此如圖10-25 所示,一個 DQDB 網路必須具有一個頻寬管理工作站以及一個 Q.931 的訊號終點站。同樣地,當通話結束時,通話的雙方亦須依某一定的程序釋放此等時通道以供其他工作站使用。以下我們將介紹此兩個程序的運作方式。

10-25 通話建立所需之功能要素

 

等時通道建立程序

由於 DQDB 網路是雙匯流排的形式,所以建立一個等時通道需要預留兩條匯流排的頻寬,因此等時通道建立的程序包含了兩個部份:一為預約匯流排 A的等時頻寬,二為預約匯流排 B 的等時頻寬,兩者的流程相似。如圖10-25 所示,當在工作站A的終端機 A 希望與在工作站 B 的終端機 B 通話,則終端機 A 會發出一個通話建立的要求給訊號終點站,此時訊號終點站會送出一個等時通道需求的訊息給頻寬管理工作站,頻寬管理工作站會依目前等時頻寬使用的情形,決定是否接受該需求,若是接受則會視情況而定適時的傳送產生 VCI 的要求給匯流排 A 的訊槽產生器,匯流排 A 的訊槽產生器收到此要求後會依其需求產生 PA 訊槽,並且送出一個回報訊息給頻寬管理工作站,當頻寬管理工作站收到此回報後會通知工作站 A 使用那一個等時通道與工作站 B 通話,工作站 A 收到此通知後亦會回送一個回報訊息給頻寬管理工作站,在頻寬管理工作站收到此回報後,它會送出一個等時通道已預約完畢的通知給訊號終點站,訊號終點站再將通話建立完成的通知傳送給終端機A,至此對匯流排 A 的等時頻寬預約工作算是完成,整個流程如圖10-26 所示。有關匯流排 B 的等時通道預約程序與上述者相似,圖10-27 有詳盡的訊息流程。

10-26 通話建立流程範例(通話起源端)

10-27 通話建立流程範例(通話目的端)

 

 

 

等時通道釋放程序

 

相似於等時通道建立的程序,等時通道的釋放程序亦需要對兩個匯流排進行相同的動作,我們以匯流排 B 為例作說明。當終端機 B 想結束通話時,它會送出一個斷線(disconnect)的通知給訊號終點站,訊號終點站收到此通知後,則發出一個等時通道釋放的訊息給頻寬管理者以便將等時通道釋放出去供其它工作站使用。頻寬管理工作站收到釋放頻寬的通知時,它將通知工作站 B 清除該等時通道之(VCI, Offsets),工作站B收到此通知時它會修改其記錄,並送出(VCI, Offsets)已清除的通知給頻寬管理工作站,頻寬管理工作站收到此資訊後則修改其等時通道使用情形的資料(將該釋放的等時通道之(VCI, Offsets)改為可供使用),並依當時的狀況適時的通知匯流排 B 的訊槽產生器結束產生該 VCI PA 訊槽(若有需要)。訊槽產生器收到停止產生的訊息後則會停止產生該 VCI PA 訊槽,並回送一個停止產生訊槽的回報給頻寬管理工作站,當頻寬管理工作站完成上述的工作之後才會送一個等時通道釋放回報給訊號終點站以便告知它等時通道釋放完成,在訊號終點站收到此一回報後,才回送一個釋放完成的通知給終端機 B。整個通道釋放的流程如圖10-28 所示。有關匯流排 A 的等時通道釋放程序亦是相似的,因而在此不多作說明。

10-28 通話結束流程範例(匯流排B

 


習題

10.1 DQDB 網路提供下列那些服務?

(a) 非同步傳輸服務 (Asynchronous)

(b) 同步傳輸服務 (Synchronous)

(c) 等時傳輸服務 (Isochronous)

(d) 以上皆是

10.2 DQDB 網路工作站之內部匯流排結構採用「OR-Write」線路。請說明此種設計對網路的資料傳送有何影響?

10.3 DQDB 網路可以有二種不同的架構:開放式 (Open Dual Bus) 及迴路式 (Looped Dual Bus) 請說明在迴路式架構下網路如何處理線路斷裂及工作站損毀的問題。

10.4 DQDB 網路利用佇列仲裁法 (Queued-Arbitrated Access) 來提供非同步傳輸的服務。請說明此佇列仲裁法的工作原理,包括 (1) 工作站無 QA 資料在佇列時之處理方式及 (2) 工作站有 QA 資料在佇列時之處理方式。

10.5 參考圖10-12,10-13。假設網路上有五個工作站而提出申請的順序為工作站 2,1,4,3。請說明

(a) 每一工作站提出申請後各個工作站之 RQ CD 值。

(b) 工作站使用空槽的過程中各個工作站之 RQ CD 值。

10.6 參考圖10-12,10-13。假設網路上有五個工作站而提出申請的順序為工作站 5,4,3,2。請說明

(a) 每一工作站提出申請後各個工作站之 RQ CD 值。

(b) 工作站使用空槽的過程中各個工作站之 RQ CD 值。

10.7 DQDB 網路上傳送的資料單位是訊槽。請說明工作站如何將一訊框切割成若干訊槽。目的地工作站又如何在網路上擷取其應接收的訊槽並且組合成原來之訊框。

10.8 目的地工作站在組合訊槽時可能出現那些錯誤?這些錯誤是如何處理的?

10.9 為了避免工作站在接收訊槽時發生誤收的情形,DQDB網路要求每一個工作站在傳送訊框時應使用不同的資料識別碼。請說明 DQDB網路如何做到此點?

10.10 請說明為何佇例--仲裁擷取法在網路負載輕時具有低擷取延遲的特性,而在網路負載重時具有少浪費頻寬的特性。

10.11 請說明為何佇列--仲裁擷取法所能提供的成功輸出率和網路的大小或傳 送速率無關。

10.12 請說明 DQDB網路上釋槽工作站 (Erasure node) 的主要工作為何。其又如何完成釋放訊槽的任務?

10.13 何謂「等時傳輸」?請說明其主要特色為何。

10.14 請說明 PA 訊槽的格式,並請說明DQDB網路如何利用 PA 訊槽來提供等時傳輸服務。訊槽產生器又如何在適當的時機產生 PA 空槽?

10.15 請說明 DQDB 網路上建立等時通道的程序。

10.16 請說明 DQDB 網路上釋放等時通道的程序。