제 16 장 DQDB(Distributed Queue Dual Bus)

16.1 개요

* 근거리망의 상호 연결이나 도시 등의 비교적 넓은 지역(직경 50 km)을 위해 개발되었다. 이런 종류의 네트워크를 MAN(Metropolitan Area Network) 이라 한다.

* 이중 버스 구조로 각 버스의 방향은 상호 반대 방향이다.(DQDB 의 버스 형태는 인접 호스트간 점대점으로 연결되느 형태이므로 다스의 호스트가 하나의 전송 매체에 모두 접속되는 전형적인 버스 형태와는 약간 상이한 버스 형태 임)[그림 16.1]

* 표준은 IEEE 802.5/ISO 8802.6 이다.

* 2.048 Mbps 에서 155 Mbps 까지의 전송 속도를 갖는다.

* 회선교환 서비스(등시성 트래픽) 및 패킷교환 서비스(비등시성 트래픽) 모두를 지원한다.

* 광 선로를 전송매체로 사용한다.

* 높은 전송소도로 데이터, 음성, 영상 신호를 수용하는 통합 서비스를 대역 폭의 낭비 없이 효율적으로 제공한다.

* 각 버스의 끝에 위치하는 슬롯 생성기(Slot generator)는 53 옥텟의 일정 한 크기를 갖는 빈 슬롯(slot)을 정기적으로 버스에 흘려 보내며 각 노드 는 메체 접근 제어 방식을 통해 빈 슬롯에 접근하여 전송하고자 하는 데 이터를 슬롯에 실어 전송한다.

* 다른 네트워크에서는 프레임이라 명명하는 것을 슬롯이라 함에 유의한다.

16.3 프로토콜 구조

* [그림 16.2]는 DQDB 프로토콜 구조를 나타낸다.

* 물리계층내에는 Physical Layer Convergence Protocol(PLCP) 이 있으며 PLCP는 다양한 전송 매에 및 전송속도를 하나의 MAC 계층과 연계시킨 다. 즉, 각각의 전송 방식별로 PLCP가 존지하여 DQDB 계층과 통일된 인터페이스를 갖는다.

* DQDB 계층내에는 세 개의 기능이 정의된다. 이 세 개의 기능은 connectionless 데이터 전송을 위한 MCF, connection oriented 데이터 전 송을 위한 COCF, 그리고 영상이나 음성과 같은 등시성isochronous) 서 비스를 위한 ICF 등이다.

* MCF 와 COCF 는 QA(Queued Arbitrated) 기능에 의해 지원되며 ICF 는 PA(Pre Arbitrated) 기능에 의해 지원된다.

* QA 와 PA 기능은 QA 와 PA에 공통으로 사용되는 Common functions 과 접속된다.

16.3 매체 접근 제어(MAC : Medium Access Control)

* DQDB는 각 노드의 채널 사용을 제어하기 위하여 슬롯의 제어 필드에 Busy 비트와 Request 비트를 운용한다.

* Busy 비트는 이 슬롯이 비어 있는지(Busy = 0) 혹은 사용 중인지(Busy = 1)의 여부를 나타낸다.

* Request 비트는 전송할 데이터가 있음을 네트워크에 알리기 위한 용도로 사용된다. Request 비트가 0인 슬롯을 기다리고 있다가 해당 비트를 1로 세트한다.

* DQDB 의 동작을 [그림 16.3]에 나타낸다.

* 각 호스트는 전송하고자 하는 데이터가 있는 경우 전송하고자 하는 반대 방향의 버스로 지나가는 슬롯의 Request 비트를 1로 세트하여 자신보다 상위에 위치한 호스트에 이를 알린다.

* 예을 들어, 호스트 A가 자신보다 우측에 위치한 호스트로 데이터를 전달 하고자 하면 버스 B의 슬롯 발생기로부터 전송되는 슬롯의 Request 비트 를 세트하여 전송할 데이터가 있음을 네트워크에 알린다.

* 이 슬롯은 호스트 B, C, D로 전송되고 각 호스트는 슬롯의 Request 비트 를 조사하여 자신보다 하위 방향(전송 방향과 반대 방향)의 호스트가 전 송 요청을 하고 있음을 인지한다.

* 각 호스트는 자신보다 하위 방향의 호스트 중 얼마나 많은 호스트들이 전 송 요청을 하고 있는지를 계산하기 위한 목적으로 각 버스에 대해 RC(Request Counter) 및 CD(Countdown Counter)를 운용한다.

* 각 호스트의 동작은 그 호스트가 전송할 데이터를 갖고 있느냐 없느냐에 따라 달라지며 전송할 데이터가 없는 경우는 RQ만 운용한다.

* 전송할 데이터가 없는 호스트는 R 비트가 세트된 슬롯이 검출될 적 마다 해당되는 버스의 RC 카운터를 하나 증가시킨다. 따라서, RC 카운터의 내 용은 자신보다 하위 방향에 위치한 호스트중 전송 요청을 한 호스트의 총 수가 된다.

* 예를 들어, 호스트 A가 R 비트를 세트하여 버스 B를 통해 전송 요청을 하였다면 이를 수신한 호스트 B, C, D는 버스 B의 RC를 하나 증가한다.

* RC 및 DC 의 초기값은 0으로 설정되므로 이 경우 RC의 값은 1이된다. 이 상태에서 호스트 B도 전송 요청을 하게 되면 호스트 C, D의 RC 값은 2가 된다.

* 이 상태에서 호스트 B에 전송할 데이터가 발생하면 그 시점까지 호스트 B의 하위 방향 호스트들의 전송요청이모두 처리된 후에야 전송된다. 이 와 같이, DQDB의 동작은 분산된 큐(queue) 구조하에서 먼저 전송 요청 을 한 호스트의 데이터가 먼저 전송되는 FIFO(First In First Out) 방식 으로 볼 수 있으며 호스트가 Request 비트를 세트하여 전송 요청을 하는 동작은 네트워크의 분산된 큐(queue)에 저장을 하는 기능과 동일하게 볼 수 있다.

* 이와같은 전송순서를 제공하기 위해 호스트 B 는 현재의 RC 값을 DC에 기입하고 RC를 0으로 초기화 한다. 버스 A로 부터 빈 슬롯(B비트가 0인 슬롯)이 검출될 적 마다 DC의 값을 하나 감소하고 해당 슬롯은 그대로 통과 시킨다. 물론, 이때 버스 B를 통해 Request 비트가 1로 세트된 슬롯 이 검출되면 RC를 하나 증가한다.

* 이러한 과정은 DC의 값이 0이 될 때 까지 계속되며 0이 되면 빈 슬롯을 검출하여 자신의 데이터를 실어 전송한다.

* DC의 값은 자신보다 하위 방향에 위치한 호스트 중 전송 요청을 한 호스 트의 총 수 이고 이들은 자신보다 전송순서에 있어 우선권이 높으므로 DC의 값이 0이 될 때 까지 빈 슬롯을 통과 시킴으로서 우선권이 높은 호 스트에게 먼저 전송기회를 주고 자신의 전송순위가 된 후에야 비로서 전 송권한을 갖는다.

* 신호의 전파지연 시간을 무시하면 DQDB는 각 호스트에 도착한 데이터를 완전한 FIFO형식으로 처리하지만 하위 호스트가 전송한 Request 비트가 상위 호스트로 전달되는데 걸리는 전파지연이 있어서 이 시간동안 전송할 데이터가 생성된 상위 호스트는 빈 슬롯을 먼저 사용하게 된다. 따라서, 헤드노드에 인접한 호스트가 보다 많은 전송기회를 얻게 되고 이로 인해 공정성(fairness)의 문제가 발생한다.

* 이 문제를 해소하기 위하여 BWB(BandWidth Balancing) 방식이 사용된 다.

* BWB 방식을 구현하기 위하여 BWD_MOD 및 BWB 계수기를 운영한다.

* 빈 슬롯을 통해 데이터를 전송한 호스트는 BWB 계수기를 증가시킨다. BWB_MOD 값 만큼의 빈 슬롯을 사용한 호스트는 다음 빈 슬롯의 사용 을 하위 호스트에 양보함으로서 하위 호스트가 좀 더 많은 전송 기회를 갖게 되고 이것은 공정성을 향상시킨다.

16.4 DQDB 계층

16.4.1 SDU 처리 과정

* LLC 계층으로 부터 수신한 SDU(Service Data Unit)를 처리하는 과정은 [그림 16.4]와 같다.

* LLC 계층으로 부터 수신한 MAC Service Data Unit(MSDU)에 헤더와 트레일러를 추가하여 Initial MAC Protocol Data Unit(IMPDU)를 구성한 다.

* IMPDU는 44 옥텟의 segmentation unit으로 분할되고 각 segmentation unit에는 두 바이트의 헤더와 트레일러가 추가되어 48 옥텟의 Derived MAC Protocol Unit(DMPDU)을 구성한다.

* 각 DMPDU는 QA 슬롯의 페이로드에 실려 전송되고 수신부에서 재결합 된다.

* QA 세그먼트는 4 옥텟의 헤더와 48 옥텟의 페이로드로 구성된다.[그림 16.5]

* QA 세그먼트 헤더의 VCI는 하나의 물리적인 선로상에 설정된 다수개의 논리적 연결에 속한 QA 세그먼트를 구별하는데 사용된다.

* 페이로드 타입은 전송되는 데이터의 특성을 나타내고 HCS는 전송오류를 검출하는데 사용된다.

* DMPDU 세그먼트 페이로드의 헤드부는 44 옥텟의 정보 위치를 나타내고 순차번호는 IMPDU 내에서 DMPDU의 순서를 나타낸다.

* MID는 하나의 IMPDU로부터 구성된 DMPDU를 지정하는데 사용된다. 즉, 하나의 IMPDU로부터 구성된 DMPDU는 모두 동일한 MID를 갖지만 다른 IMPDU로부터 구성된 DMPDU가 사용하는 MID와는 상이한 값을 갖 는다.

* DMPDU 트레일러에는 DMPDU에 의해 전송되는 IMPDU 정보의 길이와 전송오류를 검출하는 기능이 포함된다.

* 이상의 52 옥텟의 QA 세그먼트에 1 옥텟의 ACF를 부가하여 53 옥텟의 QA 슬롯이 완성되며 ACF는 DQDB의 사용효율을 높이는데 사용된다.

16.4.2 PDU 필드

(1)IMPDU

(가)헤더

* R은 예약 필드로서 모두 0으로 세트된다.

* BEtag(Begining/End tag)는 1 옥텟 길이의 순차번호로서 헤더와 트레일 러에 동일할 값이 사용되어 수신부에서 재결합하는데 사용된다. 즉, 두 개 의 상이한 IMPDU를 구별하는데 사용된다.

* BAsize(Buffer Address)는 8 옥텟으로서 처음의 4 비트는 주소 형태를 지시하며 나머지 60 비트는 16, 48, 혹은 60 비트를 수용할 수 있다. 주소 가 60비트보다 짧은 경우는 Padding을 한다. 주소 형태는 다음과 같다.

01xx=16비트 11Gx : G = 1(그룹), 0(개별)

10xx=48비트 11xP : P = 1(국부적 주소 관리),0(전체적 주소 관리)

11xx=60비트 모든 다른 코드는 예약

* SA(Source Address)는 DA와 비슷하나 단지 개별 주소만 허락된다.

* PID(Protocol Identifier)는 MSDU(MAC Service Data Unit)를 수신할 상 위 프로토콜을 지정한다. 000001은 LLC를 지정한다.

* PL(Pad Length)은 0에서 3 옥텟의 0이 MSDU에 더해져서 길이를 4 옥 텟의 정수배로 만드는데 사용된다. 0에서 3 옥텟의 수는 2 비트로 지정된 다.

* QoS(Quality of Sdrvice)는 MSDU에 부여된 지연 우선순위를 나타낸다. 111R은 가장 짧은 지연을 나타내고 000R은 가장 긴 지연을 나타낸다. R 은 예약용으로 현재 사용되고 있지 않다.

* CIB(DRC Indication Bit)가 1이면 CRC가 존재하고 0이면 CRC가 사용되 지 않음을 나타낸다.

* HEL(Header Extension Length) 값에 4를 곱한 값이 HE 필드에 있는 옥 텟 수를 나타낸다.

* Brdg(Bridging)은 추후의 LAN 브릿징 기능을 위해 예약되어 있다.

* HE(Header Extension)는 현재 정의되어 있지 않다.

(나) 트레일러

* PAD는 INFO + PAD 길이를 4 옥텟의 정수 배로 만드는데 사용된다.

* R(Reserved)은 모두 0로 세팅된다.

* Betag는 헤더의 Betag와 동일한 값을 갖는다.

* Length는 헤더의 BAsize와 동일한 값을 갖으며 헤더, Information, PAD, CRC의 전체 길이를 나타낸다.

(2) DMPDU

(가) 헤더

* SegT(Segment type)는 이 세그먼트가 IMPDU 메시지의 시작을 나타내 는지(BOM, 10), 연속되는 세그먼트의 중간 인지(COM, 00), 끝을 나타내 는지(EOM, 01) 혹은 하나의 세그먼트 메시지에 IMPDU가 모두 실리는지 (SSM,11)를 나타낸다.

* SeqNo(Sequence Nunber)는 모듈로 16의 순차번호로서 순서 정렬과 오류 가 발생한 DMPDU를 검출하는데 사용된다.

* MID(Message Identifier)는 동일한 IMPDU를 실어날으는 DMPDU에 대 한 순차번호를 나타낸다.

(나) SU(Segmentation Unit)

* 만일 EOM이고 데이터가 44 옥텟보다 적은 경우는 0으로 padding된다. 만일 ACF의 Busy 비트가 0이면 SU는 모두 0이 된다.

(다) 트레일러

* PL(Payload Lenth)은 IMPDU PAD를 포함한 SU의 옥텟 수를 나타낸다. 44 옥텟이거나 padding이 있는 경우는 4의 정수 배가 된다.

* PCRC(Payload CRC)는 모든 DMPDU 영역에 대한 CRC-10을 나타낸다.

(3) QA 세그먼트

* VCI(Virtual Channel Identifier)는 비연결형 MAC 서비스인 경우는 모두 1로 세트되고 PA 슬롯인 경우는 다른 값을 갖는다.

* PT(Payload Type)는 MAC 서비스인 경우는 00을 갖는다.

* SP(Segment Priority)는 추후의 브릿징 기능을 위해 예약된 필드이다.

* HCS(Header Check Sequence)는 상기의 3 필드에 대한 CRC-8을 나타낸 다.

(4) QA 슬롯

* Busy가 1이면 MAC 데이터를 실고 있음을 나타내고 0은 셀이 비어 있음 을 나타낸다.

* Type이 0이면 QA(Queued Arbitrated), 1이면 PA(Pre Arbitrated)를 나타 낸다.

* PSR(Previous Segment Received)에 대한 정확한 규정은 아직 정의 되어 있지 않다.

* R(Reserved)은 추후 사용 예정이다.

* Req(Request)는 3 비트(왼쪽에서 오른쪽으로 2,1,0)로 구성되며 각각은 전 송 우선권을 나타낸다. 만일 데이터가 큐(queue) 0과 1에 저장되어 있는 경우 큐 2의 데이터가 우선적으로 송신된다. 우선권의 설정은 임의적으로 될 수 있지만 제어나 신호 정보가 일반 데이터 보다 높게 설정되는 것이 일반적이다.

16.5 물리계층

* 물리계층의 PLCP 블록은 MAC 계층의 데이터를 DQDB가 지원하는 다양 한 전송방식에 맞추어 전송하는 기능을 수행한다.

* DQDB가 지원하는 전송방식은 다양하므로 각 전송방식별로 PLCP가 존 재하여 각 전송방식의 특성을 흡수하고 상위계층인 MAC 계층에는 동일 한 인터페이스를 제공합으로서 MAC 계층의 물리계층에 대한 독립성을 제공한다.

* 전송방식의 예로 DS3(44.736 Mbps)를 사용하는 경우 상응되는 PLCP 프 레임은 다음과 같다.[그림 16.6]

* 이러한 PLCP 프레임은 전송을 위해 DS3 프레임의 페이로드로 매핑 (mapping)된다.

* PLCP 프레임의 각 필드의 의미는 다음과 같다.

# F1 : 장치 운용자간의 운 陷관련 데이터 송수신 등에 사용된다.

# G1 : 인접 호스트간의 링크 상태를 보고하는 용도로 사용된다. 즉, 수 신부에서 입력되는 빛의 파워가 기준치 이하로 떨어졌다거나 혹은 비 트 오류가 심각하게 나타나는 등의 오류를 감지하면 이를 송신측에 알 리기 위해 감지된  류 내용을 G1 필드에 실어 송신한다.

# B1 : BIP-8 패리티.BIP은 Bit Interleaved Parity를 나타내며 각 바이 트의 비트 위치별로 패리티를 적용하여 결과의 내용을 해당되는 비트 에 삽입한다.[그림 16.7]

# M2, M1 : 네트워크의 장애 복구 혹은 재구성(reconfiguration)과 같은 운용, 유지, 보수 기능에 사용된다.

# C1 : PLCP 프레임을 DS3 프레임의 페이로드로 매핑(mapping)하는 경우 두 프레임간의 위상차로 스터프(stuff) 비트(NOTE 참고)가 삽입 되었음을 수신장치에 알리기 위한 용도.

# Zn : 예약용

NOTE :

1. 스터프(stuff) 동기 방식

* 저차군 디지탈 신호를 고차군 신호로 다중화 하는 경우 일단 저차군 신호의 비트를 메모리에 기입한 후 저차군 신호 주파수 보다도 약간 높은 속도의 주파수(클럭)로 읽게 되면 모든 저차군 신호는 이 공통의 주파수에 동기가 된다.

* 그런데, 클럭의 주파수(메모리로부터 읽는 클럭 주파수)가 저차군 시호 의 주파수(메모리에 쓰여지는 클럭 주파수)보다 약간 빠르므로 두 주파 수간의 차이가 커져 메모리에서 펄스를 읽어내지 않아야 하는 시점이 도달된다.

* 이 시점에서 메모리로부터 실질적인 저차군 펄스를 읽는 것이 아니라 가상적인 펄스(스터프 펄스)를 삽입하여 두 주파수의 차이를 보상하고 스터프 펄스가 삽입되었음을 알리는 펄스를 삽입하여 전송한다. 수신장 치는 스터프 펄스의 삽입이 인지되면 해당되는 스터프 펄스를 제거한다.

* 스터프 펄스 및 스터프 펄스가 삽입되었음을 알리는 펄스를 위해 고차 군 신호의 프레임에 해당되는 비트가 할당된다.

* 이 방식의 특징은 다중변환장치 마다 독립적인 클럭과 비트변동을 흡 수하는 수 비트 정도의 메 모리가 필요하지만 저차군 상호의 동기를 위 할 필요가 없어 장치는 비교적 단순화 된다.