基本介紹
定義,主要功能,工作原理,
定義
DQDB:分散式佇列雙匯流排 (DQDB:Distributed Queue Dual Bus Defined in IEEE 802.6)
為使城域網更有效地工作,要求系統:運行的跨越距離範圍較大,錯誤發生率低,適合多節點,並具有可變頻寬分配能力。通過 DQDB,網路跨度可達到 30 英里,傳輸速率範圍從 34 Mbps 到 155 Mbps。數據傳輸速率的波動歸因於許多主機共享一個雙匯流排以及單主機到幀發生器的位置,但現在已經有一些方案可以彌補這些缺陷,確保 DQDB 功能可靠且對所有主機都公平對待。
DQDB 中包含兩根同時連線工作站的匯流排線路,並且在每根匯流排的末端各連線一個幀發生器。匯流排採用並行運行方式,在該方式下,允許幀反向通過工作站傳輸。
主要功能
其主要功能為:
- 向LLC提供MAC服務
- 提供等時服務
- 提供面向連線的數據服務
- 自動搶占優先機制
工作原理
向LLC提供MAC服務
提供MAC服務給LLC的過程是:在源端把MAC服務數據單元MSDU進行分段,形成固定長度的單元,並把這些固定長度的單元傳送到目的地,在那裡把它們裝配成MSDU。
分段操作進程是按照初始MAC協定數據單元IMPDU的形式,在MSDU上附加一個IMPDU頭部,一個可選的頭部擴展,一個可選的32位CRC校驗,一個公共PDU尾部,以及一個可變長的PAD域。PAD域保證所有附加到MSDU上的域是與32位對準的。IMPDU分割成固定長度的分段單元,放在QA的有效載荷中傳送。IMPDU可能有取值為0的八位位組跟在尾部作為填充,以保證最後一個分割單元被完全填滿。
所有支持MAC服務的分段的有效載荷叫做派生MAC協定數據單元DMPDU(Derived MAC Protocol Data Unit),是由一個頭部域,一個尾部域以及分割單元一起組成。DMPDU的頭部域由三個子域組成,第一個是分段類型子域,第二個是順序號子域,第三個子域是報文標識MID。DMPDU尾部域由兩個子域組成,第一個是有效載荷長度子域,第二個子域是有效載荷CRC。
MID用來提供從同一個IMPDU中派生出來的分割單元之間的邏輯連線,該IMPDU被傳送時,它在子網上的MID是唯一的。MID的編號是由MID頁分配機制來分配的,這是一種在整個子網上要求和保持MID的值的唯一的分布方法。MID識別所有從單個IMPDU派生的DMPDU,在目的地重新裝配分割單元組成IMPDU。
下面來說明IMPDU。如何在源址分割,然後在目的地如何重裝。
2.1.1源址的分割
源址把一系列的DMPDU作為QA有效載荷,第一個分割單元是報文開始(BOM)DMPDU,是由分段類型子域中的BOM編碼來識別,並表示一個新的IMPDU傳送的開始。MID子域是源址得到的DIM值,順序號子域帶的與相繼的DMPDU的聯繫的編號順序相關聯的初始值。BOM DMPDU還將包括IMPDU的頭部和頭部擴展信息,再加上MSDU的前面一些八位位組,足以填滿一個分割單元。
後續的是一系列COM(Continuation of Message)DMPDU,也是由分段類型子域中的COM碼來識別。IMPDU的最後一個分割單元是EOM(End Of Message)DMPDU。在分段類型子域中包含EOM碼。COM和EOM的順序號值是從BOM DMPDU開始依次加1。所有從一個IMPDU派生出的COM DMPDU和EOM DMPDU都與BOM DMPDU具有相同的MID值。如IMPDU只要求以單個分割單元傳送,則在DMPDU的分段類型子域中採用SSM(Single Segment Unit Message)碼標識,在此時不用MID,即MID值為0。
DMPDU尾部的有效載荷長度子域填寫八位位組的數目。對於提給LLC的無連線MAC服務,BOM和COM DMPDU有效載荷長度總是44。寫在EOM DMPDU的長度值是指出生在IMPDU中最後剩下多少八位位組要傳送,這一長度值可以是4到44之間4的整數倍。寫入SSM DMPDU的長度值是指出整個IMPDU的長度,它可以是28到44之間4的整數倍。尾部的有效載荷CRC子域是依據分段有交效載荷的八位位組計算出的CRC碼。
2.1.2在目的地的重新裝配
為了接收如上所述的分割的IMPDU,每個AU將監控匯流排上所有通過的分段。所有的DMPDU在分段頭部含有一個特定的VCI值的集合。如果VCI的值是AU準備接收的,AU將藉助有效載荷CRC子域來驗證此DMPDU。如果CRC驗證失敗,則此DMPDU被丟棄。
對於每個在分段類型子域中有BOM碼的有效DMPDU,AU將檢查在BOM分割單元中的MCP頭部。如果MCP頭部指示此IMPDU是給此AU的,那么它將拷貝這個BOM分割單元並繼續以下所述的操作。如果此IMPDU不是給這個AU的,則不拷貝這分割單元。
為了接收到此BOM分割單元有關的剩餘的IMPDU,AU還將從BOM DMPDU中記錄順序號與MID值。從同一個IMPDU派生的後續DMPDU,在分段頭部具有同樣的VCI值,對於每一個後續的DMPDU有一個遞增的順序號,並且在DMPDU頭部有同樣的VCI值,這時都應接收下來。AU用有效載荷CRC子域來驗證所有在同樣的VCI上接收的DMPDU。然後把MID值與原先記錄的那個相比,一旦匹配,只要順序號是所期望的值,AU就拷貝此DMPDU的已驗證過的分割單元。當收到一個驗證過DMPDU,MID值是匹配的,其順序號也是所期望的,在分段類型子域中是EOM碼,並且其分割單元被拷貝下來以後,那么整的IMPDU就接收好了。分段在DBDQ子網保證按序遞交,AU能夠重新裝配成IMPDU。連結起來減去公共PDU頭部和尾部的長度,從公共PDU尾部中接收到的長度值,就與IMPDU所接收到的八位位組的總數相比較,如果不相同,則接收方丟棄此IMPDU。這個校驗用來保證已經接收的正確個數DMPDU,從而防止丟失或誤插入的COM DMPDU。
另一個驗證信息是開始結束標籤BEtag。BEtag值在給定IMPDU的公共PDU頭部和公共PDU尾部兩處都傳送。接收方收到後比較兩個BEtag的值,如果不匹配就丟棄此IMPDU。BEtag用來保證重裝的IMPDU的BOM DMPDU和EOM DMPDU都是從同一個源IMPDU派生的,以及收到的DMPDU數目正好是COM DMPDU的那一類丟失的。因為此一類丟失從接收到的DMPDU重新裝配好的IMPDU仍然具有公共PDU尾部所指定的長度,但不是同一個IMPDU的開始結束標籤。
如果節點支持用32位CRC來檢驗IMPDU並且在接收到的IMPDU的M-CP頭部有一位指出具有CRC32域,那么AU將用CRC32域來驗證此IMPDU。如果CRC驗證失敗則丟棄此IMPDU;如果CRC驗證通過。此IMPDU就被有效地接受。
所有這些比較和驗證都通過,這一IMPDU才認為是有效的。
在接收完一個IMPDU的所有DMPDU之後,記錄的MID值必須清除,因為源址有可能在不同的IMPDU中重新使用同樣的MID值。
為了保證能正常終止一個IMPDU的傳送,必須設定一個時鐘來確定在AU中MID值可以維持多長時間有效,如果EOM DMPDU丟失,在時鐘周期內未收到具有相匹配的MID值的EOM DMPDU,所記錄的MID值被清除,並且將已收到與此MID值相等的分割單元均被丟棄。
有了以上所述機制,AU能夠並發地接收和重裝多個IMPDU,這是通過VCI和MID值和匹配來實現的。
單個分割單元的IMPDU以類似於BOM IMPDU的方式來接收。AU用有效載荷CRC子域來驗證,檢查MCP頭部域是否此AU接收,如果有效載荷CRC通過且IMPDU所列地址是此AU,則拷貝分割單元。不過,既對於SSM來說沒有後續DMPDU,所以不需記錄MID值。接收後,用公共PDU尾部的長度和在公共PDU頭部與公共PDU尾部的BEtag值加以證實即可。
提供等時服務
在IEEE 802.6標準中的等時服務只提供訪問媒體以讀寫等時服務八位位組所要求的DQDB層功能,這包括每個單元中的預先仲裁訪問控制功能和匯流排頭上周期性地產生PA時隙的功能。
提供面向連線的數據服務
在IEEE 802.6的目前版本標準中說明了支持到LLC的無連線MAC數據服務,給出關於提供等時服務的指南,面向連線數據服務仍在研究之中。