280 likes | 420 Views
H.223. 2008.02. Contents. Overview Introduction MUX layer Adaptation layer Multiplex layer specification Framework of MUX layer Primitives Framing Header Information field Abort Multiplex Entry Descriptor example Information field example Adaptation layer specification
E N D
H.223 2008.02.
Contents • Overview • Introduction • MUX layer • Adaptation layer • Multiplex layer specification • Framework of MUX layer • Primitives • Framing • Header • Information field • Abort • Multiplex Entry Descriptor example • Information field example • Adaptation layer specification • Introduction • AL1 specification • AL2 specification • AL3 specification
Overview • Introduction • 하나 이상의 상위 layer 정보 stream들을 교환하는 데 사용되는 multiplexing을 정의한 protocol • Data protocol과 control protocol, 혹은 audio codec과 video codec과 같이 서로 다른 종류의 stream을 multiplex • 각정보 stream은 logical channel number (LCN)으로 구분되는 uni-directional logical channel로 표현 • LCN은 중복하여 사용할 수 없으며, 0부터 65535까지의 정수 • LCN 0는 H.245 control channel로 고정하여 사용 • Logical channel의 개설, 관리 등의 기능은 H.245에 정의
Overview • MUX layer • 상위의 Adaptation Layer (AL)로부터 받은 정보를 하위의 physical layer를 통해서 상대방 단말로 전달하는 기능 • AL과는 MUX-SDU (Service Data Unit)이라는 논리 단위로 정보를 주고 받음 • MUX-SDU는 항상 하나의 logical channel로 전송 될 정보만을 포함 • MUX-SDU의 크기는 정수 개의 octet 단위 • MUX layer는 MUX-SDU를 하나 혹은 그 이상의 가변 길이 packet들(MUX-PDU)로만들어서 상대방 단말로 전송 • MUX-PDU는 1 octet header와 가변 길이 (octet 단위) information field를 포함 • 각 MUX-PDU들은 HDLC flag으로 구분 (0 bit insertion 사용) • 하나의 MUX-PDUinformation field에 여러 logical channel의 data가 들어갈 수 있음 • Header의 Multiplex Code (MC) field (4bits)가 information field의 각 octet이 어느 logical channel을 통해 전송 돼야 하는지 표시 • MC는 multiplex table entry index를 나타냄 • Mux table entry들을 사용하기 전에 control channel을 통해 단말 사이에 그 내용을 먼저 교환해야 함 • Logical channel에는 segmentable과 non-segmentable channel이 있으며 segmentable channel의 MUX-SDU는 여러 segment로 분리 전송 가능
Overview • Adaptation layer • AL과 AL user 사이에 주고 받는 data는 AL-SDU를 단위로 함 • AL-SDU는 정수 개의 옥텟들을 포함 • AL은 AL-SDU에 error detection, sequence numbering, 재전송과 같은 기능을 위한 부가 정보를 삽입하여 MUX layer로 전달 • 각 단말의 AL entity 사이에 교환되는 정보 단위를 AL-PDU라 하며, 하나의 AL-PDU는 하나의 MUX-SDU가 됨 • AL1 • Data, control 정보 전송을 위한 layer • Error control을 전혀 하지 않으며, 필요하다면 AL user (e.g. SRP, LAPM/V.42)에 의해 수행 되어야 함 • Framed transfer mode • 상위 layer로부터 가변길이의 AL-SDU를 받아서 아무 작업도 하지 않고 MUX layer로 내려 보냄 • Unframed transfer mode • AL1 user로부터 AL1으로 frame이 아닌 연속된 octet이 전달됨 • 하나의 AL-SDU는 전체 sequence를 가리키며이 sequence가 무한히 계속될 수 있다고 가정해야 함
Overview • Adaptation layer • AL2 • Digital audio의 전송을 위한 layer • 상위 layer (e.g. audio encoder)로부터 가변길이 AL-SDU를 받아서 MUX layer로 전달 • 8-bit CRC 추가 • 1 octet sequence number 추가 (optional) • AL3 • Digital video의 전송을 위한 layer • 상위 layer (e.g. video encoder)로부터 가변길이 AL-SDU를 받아서 MUX layer로 전달 • 16-bit CRC 추가 • 1 혹은 2 octet의 control 정보 추가 (optional) • Video를 위해 만들어진 재전송 protocol을 포함
Multiplex layer specification • Framework of MUX layer • 하위의 physical layer를 사용하여 송신 AL로부터 수신 AL로 MUX-SDU를 전송 • 하나의 logical channel에 속한 MUX-SDU들은 반드시 AL에서 MUX layer로 전달된 순서에 따라 전송되어야 함 • Primitives • MUX layer는 하나 이상의 AL과 함께 동작할 수 있음 • MUX layer와 각각의 AL은 다음과 같은 primitive들을 사용하여 정보를 주고받음
Multiplex layer specification • MUX-PDU framing • 각 MUX-PDU는 HDLC flag으로 구분 • HDLC flag은 ‘0111 1110’을 사용하며 각 MUX-PDU의 앞 뒤에 위치 (opening flag, closing flag) • MUX-PDU가 연속되는 경우 앞 MUX-PDU의 closing flag을 뒤 MUX-PDU의 opening flag으로 사용 (flag이 연속하여 수신되는 경우도 받아들여야 함) • MUX-PDU의 data가 flag과 혼동되지 않도록 transparency 적용 • 송신할 때 ‘1’이 연속하여 5번 나오면 무조건 ‘0’을 삽입 • 수신할 때 ‘111111’은 flag으로 판단, ‘111110’이 나오면 마지막 0을 버리고 data를 사용
Multiplex layer specification • MUX-PDU header • Multiplex Code (MC) field (4bits) • Information field의 각 octet이 어느 logical channel에 속하는지 나타내기 위해서 multiplex table의 index를가지고 있음 (0~15, 0은 control channel) • 각 multiplex table entry들을 사용하기 전에 H.245 MultiplexEntrySend message를 통해 table entry 1부터 15까지의 내용을 상대방에게 전송해야 함 • 통신을 시작할 때는 entry 0만 사용 가능하며 나머지는 비활성화 상태 • 통신의 각 방향에 사용되는 multiplex table entry 사이에는 의존관계가 없으며 내용이 다를 수도 있음 • MC 값이 비활성화 상태인 table entry를 나타내거나, 열려있지 않은 logical channel의 octet을 포함한 MUX-PDU는 폐기 • Header Error Control (HEC) field (3bits) • 3-bit CRC를 사용해 MC field의 error를 검출 • Packet Marker (PM) field (1bit) • Segmentable logical channel의 MUX-SDU의 마지막을 나타냄
Multiplex layer specification • MUX-PDU information field • MC 값이 가리키는 multiplex table entry는 information field의 octet pattern을 나타냄 (table entry syntax는 H.245에 정의) • 하나의 information field에 여러 logical channel의 data가 포함 될 수 있음 • Information field는 어떤 octet 경계에서든지 closing flag을 통해서 끝낼 수 있음 (non-segmentable logical channel의 data는 제외) • Information field의 길이에는 제한이 없으나 하위 물리 매체의 error 특성을 고려하여 길이를 결정해야 함 • MUX-PDU abort • 다음 조건들을 만족하는 MUX-PDU는 그 앞에 수신된 MUX-PDU에 대한 abort로 취급 • Information field가 없음 • PM 값이 0 • MC 값이 그 앞에 수신된 MUX-PDU와 같음
Multiplex layer specification • Multiplex Entry Descriptor example • 표의 각 행은 MultiplexEntryDescriptor를 나타냄 • 다음의 다섯 logical channel을 사용하는 것으로 가정 • LCN0: control • LCN1: audio I (non-segmentable) • LCN2: data • LCN3: video • LCN4: audio II (non-segmentable)
Multiplex layer specification • Information field example • Multiplex Entry Descriptor example의 entry 5를 예로 사용 • {LCN1,RC4},{{LCN2,RC1},{LCN3,RC2},RC UCF} • AL로부터 세 개의 MUX-SDU를 수신한 상태로 가정 • 4 octets from LCN1, 3 octets from LCN2, 3 octets from LCN3 • Information field 구성 • 4 octets from LCN1 • 1-octet segment from LCN2 • 2-octet segment from LCN3 • 1-octet segment from LCN2 • 1-octet segment from LCN3 • LCN3의 MUX-SDU가 끝났으므로 closing flag을 전송하여 MUX-PDU 종료 • PM 값이 1이고 information field가 없는 MUX-PDU를 전송하여 해당 채널의 전송이 완료 되었음을 알림 • LCN2의 나머지 1octet은 이후의 어떤 MUX-PDU에든지 실어서 전송 가능
Adaptation layer specification • Introduction • 하위의 MUX layer를 사용하여 상위 layer (AL user)가필요로 하는 기능을 제공 • AL1, AL2, AL3의 세 가지 type이 있음 • 송신 단말이 logical channel을 열기 위해 H.245 OLC message를 보낼 때 어느 AL을 사용할 것인지 결정 • AL-SDU • AL과 상위 layer가 주고받는 정보의 단위 • 길이는 가변적일 수 있음 • 최대 길이는 AL user에 의해 결정 • 하나의 logical channel에 속한 AL-SDU들은 반드시 상위 layer에서 AL layer로 전달된 순서에 따라 전송되어야 함 • AL user가 전달한 하나의 AL-SDU는 하나의 AL-PDU가 되고, 하나의 AL-PDU는 하나의 MUX-SDU가 됨 (vice versa)
Adaptation layer specification • AL1 specification • 주로 data나 control information을 전달하기 위해 설계 • Error 검출이나 보정 기능을 제공하지 않으므로 재전송을 포함한 error 제어를 상위 layer에서 수행해야 함 • Transfer modes • Framed transfer mode • 상위 layer에서 만든 frame을 전송하기 위해 사용 • Frame은 우선 AL-SDU가 되고 AL1에서 MUX-SDU가 되어 MUX layer로 전달 • Unframed transfer mode • Unframed octet sequence를 전달하기 위해 사용 • 상위 layer로부터 오는 octet sequence 안의 framing에 대해 AL1은 알 수 없으므로 전혀 관여하지 않고 MUX layer로 내려 보냄 • Transfer mode는 송신 단말이 H.245 OLC message를 통해 결정
Adaptation layer specification • AL1 specification • Primitives • AL1은 다음과 같은 primitive들을 사용하여 AL1 user와 정보를 주고받음
Adaptation layer specification • AL1 specification • Procedures for Abort • Layer들 간에 streaming mode로 정보를 주고 받을 때 사용 할 수 있음 • AL1 user로부터 AL-Abort.request를 받으면 AL1은 즉시 MUX layer로 MUX-Abort.request를 보내야 함 • MUX layer로부터 MUX-Abort.indication을 받으면 AL1은 즉시 AL1 user에게 AL-Abort.indication을 보내야 함 • Unframed transfer mode에서는 abort 기능을 사용할 수 없음
Adaptation layer specification • AL2 specification • 주로 digital audio를 전달하기 위해 설계 • Error 검출을 위해 8-bit CRC를 사용 • 빠지거나 잘못 전달된 AL-PDU를 찾아내기 위해서 sequence number를 사용할 수 있음 (optional) • Primitives • AL2는 다음 표와 같은 primitive들을 사용하여 AL2 user와 정보를 주고받음 • Error Indication (EI): AL2 user에게 error indication을 전달하기 위한 parameter로 세부 사항은 H.223의 범위가 아님
Adaptation layer specification • AL2 specification • Functions of AL2 • Error 검출 및 통보 • Sequence numbering (optional) • Format and coding of AL2 • Sequence Number (SN) field • 빠지거나 잘못 전달 된 AL-PDU를 찾아내기 위해 사용 • 모든 H.223 receiver는 SN field를 포함한 AL-PDU를 수신하여 처리할 수 있어야 함 • SN field의 사용 여부는 단말에 의해 결정되며 H.245 OLC message를 통해 상대 단말에 알려져야 함 • SN field를 검사하여 잘못 전달됐다고 판단되는 AL-PDU는 폐기 • AL-PDU payload field • 하나의 완전한 AL-SDU를 포함 • CRC field • 전체 AL-PDU의 error 검출을 위해 사용
Adaptation layer specification • AL2 specification • Procedures for Abort • Layer들 간에 streaming mode로 정보를 주고 받을 때 사용 할 수 있음 • AL2 user로부터 AL-Abort.request를 받으면 AL2는 즉시 MUX layer로 MUX-Abort.request를 보내야 함 • MUX layer로부터 MUX-Abort.indication을 받으면 AL2는 부분적으로 수신된 AL-PDU들을 모두 폐기 • Procedures for sequence numbering • 첫 SN 값은 0부터 시작하여 1씩 증가, 255까지 사용 • Procedures for error control • AL-SDU의 CRC가 잘못 된 경우, AL-DATA.indication primitive에 해당 AL-SDU와 적당한 EI를 실어서 AL2 user에게 전달 • SN 값이 잘못 된 경우, 해당 AL-PDU는 폐기하고 빈 AL-SDU와 EI를 AL-DATA.indication에 실어서 AL2 user에게 전달
Adaptation layer specification • AL3 specification • 주로 digital video를 전달하기 위해 설계 • Error 검출을 위해 16-bit CRC를 사용 • 빠지거나 잘못 전달된 AL-PDU를 찾아내기 위해서 sequence number를 사용할 수 있음 (optional) • Video data를 위해 설계된 재전송 기능을 사용할 수 있음 (optional) • Primitives • AL3는 다음 표와 같은 primitive들을 사용하여 AL3 user와 정보를 주고받음 • Error Indication (EI): AL3 user에게 error indication을 전달하기 위한 parameter로 세부 사항은 H.223의 범위가 아님
Adaptation layer specification • AL3 specification • Functions of AL3 • Error 검출 및 통보 • Sequence numbering (optional) • 재전송 지원 (optional) • Formats and coding of AL3 • Control field (optional) • 모든 H.223 receiver는 그 길이에 관계 없이 control field를 포함한 AL-PDU를 수신하여 처리할 수 있어야 함 • Control field의 길이는 단말에 의해 결정되며 H.245 OLC message를 통해 상대 단말에 알려져야 함 • Control field를 사용하지 않는 경우에는 재전송 기능을 사용할 수 없음 • Payload Type (PT) field • PT 값이 1: payload에 AL-SDU를 포함, I-PDU라고부름 • PT 값이 0: payload에 관리 메시지를 포함 (재전송 기능에 사용), S-PDU라고 부름 • Sequence Number (SN) field • I-PDU는 send SN N(S), S-PDU는 receive SN N(R)을 포함 • SN 값을 확인하여빠졌거나 잘못 전달된 AL-PDU는 폐기
Adaptation layer specification • AL3 specification • Formats and coding of AL3 • AL-PDU payload field • I-PDU: AL3 user로부터 받은 AL-SDU를 포함 • S-PDU: 1 octet짜리 관리 메시지를 포함 • CRC field • Control field를 포함한 전체 AL-PDU의 error 검출을 위해 사용 • Procedures for Abort • Layer들 간에 streaming mode로 정보를 주고 받을 때 사용 할 수 있음 • AL3 user로부터 AL-Abort.request를 받으면 AL3는 즉시 MUX layer로 MUX-Abort.request를 보내야 함 • MUX layer로부터 MUX-Abort.indication을 받으면 AL3는 부분적으로 수신된 AL-PDU들을 모두 폐기
Adaptation layer specification • AL3 specification • Procedures for Error Control • Invalid AL-PDU • 최소 길이보다 짧은 경우 • 길이가 octet 단위로 떨어지지 않는 경우 • AL-PDU 최대 길이보다 긴 경우 • CRC error가 있는 경우 • Error control field가 없는 경우 • CRC error가 발생하면 AL-DATA.indication에 해당 AL-SDU와 EI를 실어서 AL user에게 전달 • Error control field가 있는 경우 • AL3 receiver는 재전송을 요구할 수 있으며 AL3 sender는 받은 요청에 반드시 응답해야 함 • AL3 receiver는 재전송을 요청하지 않고 AL-DATA.indication에 해당 AL-SDU와 EI를 실어서 AL user에게 전달할 수 있음
Adaptation layer specification • AL3 specification • Retransmission – Definitions • 각 I-PDU는 0부터 127의 sequence number를 가질 수 있음 • Send state variable V(S) • 송신 AL3 entity의 내부 변수 • 다음 전송 될 I-PDU의 sequence number를 나타냄 • 다음 순서의 I-PDU를 MUX layer로 보내고 나면 값이 1 증가 • Send sequence number N(S) • I-PDU만 가지고 있는 값이며자신의 sequence number를 나타냄 • 다음 순서의 I-PDU가 전송되도록 지정되면 그 N(S) 값으로 V(S)를 설정 • Send buffer BS • 각 AL3 entity가 가장 최근에 전송한 I-PDU들을 보관하기 위해 반드시 가져야 하는 buffer • Buffer의 최소 크기는 H.223을 사용하는 System spec.(e.g. H.324)에서 정의 • Buffer 크기는 H.245 OLC message를 통해 상대 단말에게 알려져야 함 • Receive state variable V(R) • 수신 AL3 entity의 내부 변수 • 다음 수신 될 I-PDU가 가져야 할 sequence number를 나타냄 • 오류가 없고 N(S)의 값이 현재 V(R)과 같은 I-PDU를 수신하면 V(R)의 값은 1 증가 • Receive sequence number N(R) • S-PDU만 가지는 값이며, 해당 S-PDU와 연관된 I-PDU의 N(S)값을 나타냄
Adaptation layer specification • AL3 specification • Retransmission – Supervisory messages • S-PDU에 의해 전달되는 1 octet짜리 message • Selective reject (SREJ) message • AL3 receiver가 하나의 I-PDU에 대해 재전송을 요청하기 위해 사용 • 하나의 I-PDU에 대해 한 번만 전송 되어야 함 • Declined retransmission (DRTX) message • AL3 transmitter가 재전송 요청 받은 I-PDU를 보내 줄 수 없다고 알리기 위한 message • H.223의 error recovery는 negative ack.만을 지원하기 때문에 어떤 경우에는 재전송 요청 이전에 필요한 I-PDU가 송신측에서 삭제 될 수도 있음
Adaptation layer specification • AL3 specification • Retransmission – Procedures • 초기화 • 관리 메시지를 보내기 위해 역방향 logical channel이 필요 • 역방향 logical channel의 설정이 끝나면 V(S)와 V(R)의 값을 0으로 만들고 현재의 예외 상태를 초기화 • 정상적인 I-PDU 송신 • AL user로부터 받은 AL-DATA.request의 정보를 I-PDU로 만들어 MUX layer로 넘겨 줌 • I-PDU의 SN에는 V(S) 값을 넣고, I-PDU를 MUX layer로 넘긴 뒤에 V(S)는 1 증가 • 정상적인 I-PDU 수신 • 수신한 I-PDU에 오류가 없고 N(S)가 V(R)과 같으면 AL3 receive entity는 V(R)의값을 1 증가시킴 • SREJ PDU 수신 • SREJ PDU의 N(R)과 같은 N(S) 값을 가진 I-PDU가 buffer에 있으면 최대한 빠르게 해당 I-PDU를 MUX layer로 전달 • 필요한 I-PDU가 이미 삭제 되었으면 AL3 entity는 declined-retransmission 예외 상태로 들어가야 함
Adaptation layer specification • AL3 specification • Retransmission – 예외 상태 보고 및 복구 • 잘못 된 AL-PDU 수신 • 수신한 AL-PDU가 잘못 된 경우 폐기하거나, 나중에 AL3 user에게 전달하기 위해 보관할 수 있음 • N(S) sequence error • 수신한 I-PDU의 N(S) 값이 receiver의 N(R) 값과 같지 않을 때 발생 • V(R)의 값은 증가하지 않고, 각기 다른 N(R)을 가진 하나 이상의 SREJ PDU를 송신할 수 있음 • 각 SREJ PDU를 MUX layer로 보낼 때마다 local timer를 시작 • 각 SREJ PDU에 대해 AL3 receiver는 빈 AL-SDU나 보관해 둔 잘못된 해당 AL-SDU를 EI parameter와 함께 AL user에게 전달 • 재전송을 요청한 I-PDU (N(S) = V(R))를 수신 • 해당 I-PDU에 대한 예외 상태를 종료하고 timer 정지 • AL3 receiver는 해당 AL-SDU와 적절한 EI parameter를 AL user에게 전달 • V(R)은 다음 순서의 sequence number를 나타내기 위해 필요한 만큼 증가 • 재전송을 요청한 I-PDU (N(S) ≠ V(R))를 수신 • 수신한 I-PDU에 대한 SREJ PDU보다 먼저 보낸 모든 SREJ PDU들의 timer를 정지시켜서 예외 상태를 종료 시킴 • 각 예외 상태가 종료 될 때마다 V(R)은 1씩 증가하고, 빈 AL-SDU와 적당한 EI parameter를 AL user에게 전달 • 위의 처리가 모두 끝난 뒤에 수신한 I-PDU를 AL user에게 전달 • 정상적으로 수신되는 다른 I-PDU들의 정보는 AL3 user에게 적절한 EI parameter와 함께 전달 되어야 함
Adaptation layer specification • AL3 specification • Retransmission – 예외 상태 보고 및 복구 • N(R) sequence error • 수신한 S-PDU의 N(R) 값이 올바르지 않을 때 발생 • 먼저 수신한 SREJ PDU의 N(R)을 N1, 그 다음에 수신한 SREJ PDU의 N(R)을 N2라고 했을 때, [V(S) – N2] ≥ [V(S) – N1]인경우 • DTRX PDU의 N(R)이 송신한 SREJ PDU의 N(R)과 다른 경우 • 이와 같은 S-PDU는 무시 • Expiration of timer • Timer가 최대 값을 초과하면 해당 timer를 정지시켜서 예외 상태를 종료하고 V(R)을 증가시킴 • 빈 AL-SDU나 보관해 둔 잘못된 해당 AL-SDU를 EI parameter와 함께 AL user에게 전달 • Declined-retransmission 상태 • AL3 transmitter는 buffer에 없는 I-PDU에 대한 재전송 요청 (SREJ PDU)을받으면 다음과 같이 동작해야 함 • 수신한 SREJ PDU의 N(R)과 같은 N(R)을 가진 DRTX PDU를 최대한 빨리 송신 • AL3 user에게 AL-DRTX.indication을 전달 • 아직 전송되지 않은 AL-PDU들의 전송을 재개 • AL3 receiver는 DRTX message를 받으면 해당 timer를 정지시켜서 예외 상태를 종료하고 V(R)을 증가시키고, 빈 AL-SDU나 보관해 둔 잘못된 해당 AL-SDU를 EI parameter와 함께 AL user에게 전달 • 요청하지 않은 DRTX PDU를 수신하면 이를 무시 • Reserved 상태인 message code를 가진 관리 메시지를 수신하면 이를 무시