KR100532321B1 - 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 블록 일련번호 생성 및 바이트 일련번호 확인 장치 및 방법 - Google Patents

이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 블록 일련번호 생성 및 바이트 일련번호 확인 장치 및 방법 Download PDF

Info

Publication number
KR100532321B1
KR100532321B1 KR10-1999-0018566A KR19990018566A KR100532321B1 KR 100532321 B1 KR100532321 B1 KR 100532321B1 KR 19990018566 A KR19990018566 A KR 19990018566A KR 100532321 B1 KR100532321 B1 KR 100532321B1
Authority
KR
South Korea
Prior art keywords
data
serial number
bit
bits
byte
Prior art date
Application number
KR10-1999-0018566A
Other languages
English (en)
Other versions
KR20000074547A (ko
Inventor
장훈
이현석
김대균
구창회
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR10-1999-0018566A priority Critical patent/KR100532321B1/ko
Priority to US09/575,759 priority patent/US6850508B1/en
Publication of KR20000074547A publication Critical patent/KR20000074547A/ko
Application granted granted Critical
Publication of KR100532321B1 publication Critical patent/KR100532321B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1642Formats specially adapted for sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1841Resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1874Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/04Network layer protocols, e.g. mobile IP [Internet Protocol]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

무선 환경에서 데이터의 효율적 전송을 위해 사용되는 라디오 링크 프로토콜(RLP: Radio Link Protocol)에 따라 데이터를 송수신하는 장치 및 방법이 개시되어 있다. 본 발명에 따른 데이터 송신장치는 각각이 고유의 서비스를 위한 데이터를 처리하며, 미리 결정되는 크기의 RLP프레임을 생성하는 다수의 RLP처리기와, 상기 각 RLP처리기로부터 생성될 RLP프레임의 크기를 결정하며, 상기 각 RLP 처리기로부터 생성되는 적어도 하나 이상의 RLP프레임이 포함된 다중화 프레임을 생성하는 다중화 제어기와, 적어도 하나 이상의 상기 다중화 프레임이 포함된 물리 프레임을 물리채널을 통해 송신하는 물리계층 처리기를 포함한다.

Description

이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 블록 일련번호 생성 및 바이트 일련번호 확인 장치 및 방법 {Generating Variable-length of Block Sequence Number and Confirming Variable-length of Byte Sequence Number Apparatus and Method in accordance with Radio Link Protocol for Mobile Telecommunication System}
본 발명은 부호분할다중접속(Code Division Multiple Access: 이하 CDMA라 칭한다) 방식의 이동 통신시스템에 관한 것으로, 특히 무선 환경에서 데이터의 효율적 전송을 위해 사용되는 라디오 링크 프로토콜(RLP: Radio Link Protocol)에 따라 데이터를 송수신하는 장치 및 방법에 관한 것이다.
일반적으로 CDMA방식의 이동 통신시스템은 음성을 위주로 하는 IS-95 규격에서 발전하여, 음성뿐만 아니라 고속 데이터의 전송이 가능한 CDMA2000 규격으로 발전하기에 이르렀다. 상기 CDMA2000 규격에서는 고품질의 음성, 동화상, 인터넷 검색 등의 서비스가 가능하다.
상기 CDMA2000 규격에서 제공하는 패킷 데이터 서비스의 예가 도 1에 나타나있다. 상기 도 1에서 단말기는 터미널 장치(Terminal Equipment)인 TE와 단말 장치(Mobile Termination)인 MT로 이루어져 있다. 상기 도 1에서 기지국은 교환기와 함께 BS/MSC(Base Station/Mobile Switching Center)로 표시되어 있고, 데이터 망(예: 인터넷)과 연동시켜주는 인터워킹펑션(Interworking Function)부는 IWF로 표시되어 있다. 상기 IWF부는 서로 다른 프로토콜을 사용하는 경우 상호간에 프로토콜 변환을 시켜주는 기능을 수행하는 장치이다. 상기 도 1에서 단말기와 IWF부의 상위 서비스(Web Service)처리부들은 네트워크 프로토콜(IP: Internet Protocol)처리부와 링크 프로토콜(PPP: Point-to-Point Protocol)처리부를 거쳐서 데이터를 주고 받는다. 즉, 상위 서비스처리부들이 만든 데이터는 최종적으로 링크 프로토콜 패킷의 형태로 하위 계층에 전달되고, 하위 계층에서는 적절한 프로토콜을 사용하여 전송하게 된다.
상기 도 1에서는 TE와 MT 사이에 EIA-232제어기가 사용되는 예를 보여주고 있다. EIA-232제어기를 통하여 MT에 전송된 링크 프로토콜 패킷들은 본 발명에서 다루는 라디오 링크 프로토콜(Radio Link Protocol: 이하 RLP라 칭한다)을 거쳐서 RLP 프레임(RLP Frame)에 나누어 들어간다. 상기 과정으로 생성된 RLP 프레임은 CDMA2000 규격인 IS-2000 규격을 통하여 연결된 물리 채널을 통하여 전송되게 된다. 연결된 물리 채널을 통하여 기지국으로 수신된 RLP 패킷은 다시 링크 프로토콜 패킷들로 복원이 되고 복원된 패킷들을 릴레이 계층을 통하여 상기 IWF부로 전송된다. 일반적으로 기지국과 IWF부 사이의 인터페이스는 IS-658 규격을 따른다. 상기 IWF부에서는 링크 프로토콜 패킷에서 데이터를 꺼내어 네트워크 프로토콜 처리부에게 전달하고 최종적으로 이러한 데이터들은 상위 서비스 처리부에게 전달된다.
상기 과정은 단말기에서 기지국으로 데이터를 전송하는 과정을 보여주었지만 반대로 기지국에서 단말기에게 데이터를 전송하는 과정 또한 유사하게 진행된다.
CDMA2000에서는 다양한 서비스를 제공하기 위해서 상기 도 1과는 다른 여러 가지 구성이 가능하도록 되어 있다. 그러나 상위 서비스의 데이터를 담은 링크 프로토콜 패킷들은 모두 RLP를 통하여 무선 물리 채널로 전송된다는 점에서는 모두 공통된다.
상기 RLP Type 3 규격은 현재 전송율 집합 1(Rate Set 1)에 대해서 9.6 kbps 또는 19.2 kbps의 물리 채널 프레임을 채울 수 있는 크기의 RLP 프레임 또는 전송율 집합 2(Rate Set 2)에 대해서 14.4 kbps 또는 28.8 kbps의 물리 채널 프레임을 채울 수 있는 크기의 RLP 프레임만을 생성한다. 따라서 물리 채널이 153.6 kbps나 230.4 kbps와 같이 높은 전송율로 동작할 때는 상기 RLP 프레임 여러 개를 하나의 물리 채널 프레임에 넣는 방법을 사용한다. 만일 물리 채널이 상기 RLP Type 3 규격에서 지원하는 최대 전송율 153.6 또는 230.4 kbps 이상을 지원하는 경우, 예를 들어, 307.2 kbps, 460.8 kbps, 614.4 kbps, 1036.8 kbps 등을 지원하는 경우에는 더 많은 RLP 프레임을 하나의 물리 채널 프레임에 담게 된다. 그러나 이러한 방식은 하나의 물리 채널 프레임을 하나의 큰 크기의 RLP 프레임으로 채우는 방법에 비해서 프레임 헤더에 의한 부담이 커지고 사용하지 못하는 부분이 많아지기 때문에 효율적인 방법이 될 수 없다. 따라서 현재의 RLP Type 3 프레임 보다 더 큰 크기의 RLP 프레임을 전송하기 위해서는 기존의 방법과는 다른 새로운 방법이 필요하게 된다.
따라서 본 발명의 목적은 새로운 일련 번호 방법(Octet-Based Sequencing)을 제안하여 다양한 길이의 RLP 프레임을 가능하게 하여 다양한 크기와 구조를 갖는 물리 채널 프레임에 보다 많은 데이터를 전송할 수 있도록 하는데 있다.
본 발명의 다른 목적은 다양한 길이의 RLP 프레임을 지원하기 위한 효과적인 다중화/역다중화 제어기의 동작을 제안함으로써 다양한 크기와 구조를 갖는 물리 채널 프레임에 보다 많은 데이터를 전송할 수 있도록 하는데 있다.
본 발명의 또 다른 목적은 상기 방법에서 발생하는 재전송을 요청하는 NAK 프레임의 구성을 보다 효과적으로 할 수 있도록 하여 하나의 NAK 프레임으로 보다 많은 재전송 요청을 할 수 있도록 하는데 있다.
본 발명의 또 다른 목적은 블럭 단위의 전송 및 재전송도 가능하게 함으로써 전송의 효율을 보다 높일 수 있도록 하는데 있다.
이러한 목적들을 달성하기 위한 본 발명에 따른 데이터 송신장치는 각각이 고유의 서비스를 위한 데이터를 처리하며, 미리 결정되는 크기의 RLP프레임을 생성하는 다수의 RLP처리기와, 상기 각 RLP처리기로부터 생성될 RLP프레임의 크기를 결정하며, 상기 각 RLP 처리기로부터 생성되는 적어도 하나 이상의 RLP프레임이 포함된 다중화 프레임을 생성하는 다중화 제어기와, 적어도 하나 이상의 상기 다중화 프레임이 포함된 물리 프레임을 물리채널을 통해 송신하는 물리계층 처리기를 포함한다.
이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한한 동일한 부호를 가지도록 하고 있음에 유의해야 한다.
도 2는 본 발명이 적용되는 RLP에 따라 데이터를 송수신하는 이동 통신시스템의 구성을 보여주는 도면이다.
상기 도 2에서 물리계층 처리기 150,250은 IS-2000 규격에 따라서 단말기와 기지국 사이에 물리 채널을 연결하고, RLP처리기 130,230에서 전달되는 RLP 프레임들을 상기 연결된 물리 채널을 통하여 상대편 물리 계층에게 전달하고, 상기 물리 채널을 통하여 수신된 RLP 프레임들을 RLP처리기 130,230에게 전달하는 구성 요소들을 하나의 블럭으로 나타낸 것이다.
다중화/역다중화 제어기 140,150은 물리계층 처리기 150,250에게 전달할 RLP 프레임들에 대해서 목적지와 크기 등의 정보를 RLP 프레임들 앞에 붙인 후 물리계층 처리기 150,250에게 전달하는 다중화 기능과, 반대로 수신된 RLP 프레임에 대해서 목적지와 크기를 확인한 후 상위 RLP처리기 130,230에게 전달하는 역다중화 기능을 수행한다. 송신 및 수신 데이터 버퍼 122,124,222,224는 메모리 장치로서 도 1의 예에서와 같이 EIA-232 제어기나 IS-658 제어기가 상기 링크 프로토콜 처리기 110,210에서 받은 데이터를 저장해둔다. 상기 데이터 버퍼들 122,222는 RLP처리기 130,230가 요구할 때마다 저장된 패킷을 순서대로 요구된 크기에 맞게 잘라준다. 또한 상기 데이터 버퍼들 124,224는 RLP처리기 130,230에서 데이터를 전달할 때마다 순서대로 저장해둔다. 이 저장된 데이터는 상기 EIA-232 제어기나 IS-658 제어기에 의해 PPP처리기 또는 IWF부에게 전달된다. 상기 EIA-232 제어기나 IS-658 제어기는 EIA-232 규격과 IS-658 규격에 따라 동작하며, 상기 데이터 버퍼들 122,124,222,224와 링크 프로토콜 처리기 110,210 사이에서 데이터 송수신을 맡는다. 현재 CDMA2000 패킷 서비스에서는 상기 EIA-232 제어기나 IS-658 제어기 이외에 다른 방식을 사용할 수도 있으므로, 상기 도 2에서는 이들 제어기를 표시하지는 않았다는 사실에 유의할 필요가 있다.
도 3은 본 발명에 따른 데이터 송신기의 구성을 보여주는 도면이다.
도 3을 참조하면, RLP 프레임을 송신 처리하기 위한 RLP처리기 130은 RLP 제어기 131과, L_V(S) 레지스터 132와, 재전송 버퍼 133과, L_V(NR) 레지스터 139를 포함한다. 또한 RLP처리기 130은 L_B(NR) 레지스터들 141과, 역시 같은 수의 B(NR) 레지스터들 142를 포함한다.
상기 RLP 제어기 131은 송신 데이터 버퍼 122에서 데이터를 받아서 RLP 프레임을 생성한 다음, 다중화/역다중화 제어기 140에게 이 생성된 RLP 프레임을 담은 데이터 블록을 전송한다. 상기 재전송 버퍼(Forward Resequencing Buffer) 133은 메모리 장치로서 재전송을 위한 데이터를 기억시키기 위한 것이다. 상기 RLP 제어기 131은 L_V(S) 레지스터 132의 값이 L_V(NR) 레지스터 139의 값보다 작게 되는 경우에, 재전송 버퍼 133에 저장되어 있는 데이터를 재전송한다.
상기 L_V(S) 레지스터 132는 바이트 단위로 데이터를 전송할 시 전송되는 각 바이트의 일련번호를 저장한다. L_V(NR) 레지스터 139는 수신기가 수신 도중에 수신하지 못한(깨진) 데이터 바이트의 일련 번호를 저장한다. 이때의 일련 번호는 수신기로부터 보고되어 저장된다. L_B(NR) 레지스터 141은 상기 L_V(NR) 레지스터 139에 저장된 값을 가지고 산출한 블록의 기준 일련 번호를 저장한다. B(NR) 레지스터 142는 상기 L_B(NR) 레지스터 141에 저장된 일련 번호를 가지는 데이터 바이트에서 B개의 데이터 바이트를 묶어서 보냈을 때 사용한 9비트의 일련 번호를 저장한다. 따라서 L_B(NR) 레지스터 141에 저장된 일련 번호와 B(NR) 레지스터 142에 저장된 일련 번호의 가산 결과에 따른 일련 번호를 가지는 데이터 바이트에서 B개의 데이터 바이트를 묶었을 때 붙여질 9비트의 일련 번호는 {B(NR) 레지스터의 값 + 1} modulo 29이 된다.
다시 말하면, 상기 L_B(NR) 레지스터 141은 무한히 긴 데이터에 대해서 '0'부터 차례대로 각 바이트에 번호를 부여하였을 때 기준값 단위로 데이터를 전송하는 경우 각 블록 데이터의 첫 번째 바이트가 가질 수 있는 20비트의 일련 번호를 저장하게 된다. 그리고 상기 B(NR) 레지스터 142는 짝을 이루는 상기 L_B(NR) 레지스터 141이 저장하고 있는 20비트 일련 번호를 9비트 값으로 변환한 값을 저장한다.
도 4는 본 발명에 따른 데이터 수신기의 구성을 보여주는 도면이다.
도 4를 참조하면, RLP 프레임을 수신 처리하기 위한 RLP 처리기 130은 RLP 제어기 131과, 레지스터 E 134와, L_V(N) 레지스터 135와, L_V(R) 레지스터 136과, NAK 리스트 137, 재정렬 버퍼 138을 포함한다. 또한 RLP 처리기 130은 L_B(N) 레지스터들 143과, 역시 같은 수의 B(N) 레지스터들 144를 포함한다.
상기 RLP 제어기 131은 다중화/역다중화 제어기 140에서 RLP 프레임을 받아서 순서에 맞는 데이터가 도착하였는지 살펴본다. 이때 만일 순서에 맞다면 수신 데이터 버퍼 124에 데이터를 전송한다. 만일 그렇지 않다면 재정렬 버퍼 138에 저장한 다음, NAK(Non AcKnowledge) 리스트 137에 재전송을 요청할 부분을 기록하고 다음번 제어 프레임을 송신할 때 NAK 리스트 137에 저장되었던 부분을 넣어서 보낸다. 상기 레지스터 E 134는 깨진 데이터 블록의 수를 기록하기 위한 것이다. 다중화/역다중화 제어기 140에서 깨진 데이터 블록을 알리면, RLP 제어기 131은 이 값을 레지스터 E 134에 기록한 후, 재설정이 필요할 때 사용할 수 있다. 상기 RLP 제어기 131은 L_V(R) 레지스터 136의 값보다 크거나 같은 일련 번호를 가지는 데이터 바이트가 수신되는 경우에는 새 데이터가 수신된 것으로 판단한다. 이와 달리 상기 RLP 제어기 131은 L_V(R) 레지스터 136의 값보다 작고 L_V(N) 레지스터의 값보다 크거나 같은 일련 번호를 가지는 데이터 바이트가 수신된 경우에는 재전송 데이터가 수신된 것으로 판단한다.
상기 L_V(N) 레지스터 135는 수신되어야 할 데이터중 수신하지 못한(깨진) 데이터 바이트의 일련 번호를 저장한다. 즉, L_V(N) 레지스터 135는 연속적으로 수신되는 데이터 바이트에서 다음 번에 수신되어야 하는 데이터 바이트의 일련 번호를 저장하는 것이다. 이 레지스터 135에 저장된 값은 송신기로 보고되어, 송신기의 L_V(NR) 레지스터 139에 저장되게 된다. L_V(R) 레지스터 136은 다음에 수신할 새 데이터 바이트의 일련 번호를 저장한다. L_B(N) 레지스터 143은 상기 L_V(N) 레지스터 135에 저장된 값을 가지고 산출한 블록의 기준 일련 번호를 저장한다. B(N) 레지스터 144는 L_B(N) 레지스터 143에 저장된 일련 번호를 가지는 데이터 바이트에서 B개의 데이터 바이트를 묶어 보냈을 때 사용한 9비트의 일련 번호 값을 저장한다. 따라서 L_B(N) 레지스터 143에 저장된 일련 번호와 B(N) 레지스터 144에 저장된 일련 번호의 가산 결과에 따른 일련 번호를 가지는 데이터 바이트에서 B개의 데이터 바이트를 묶었을 때 붙여질 9비트의 일련 번호는 {B(N) 레지스터의 값 + 1} modulo 29이 된다. 이러한 L_B(N) 레지스터 143과, B(N) 레지스터 144는 각각 송신기의 L_B(NR) 레지스터 141과, B(N) 레지스터 142에 대응하는 것이다.
상기 수신기의 L_V(N) 레지스터 135에 저장된 일련 번호를 송신기는 정확하게 알 수 없기 때문에 송신기는 단지 이전에 보고된 L_V(N) 레지스터 135에 저장된 과거의 값만을 알 수 있다. 그러나 상기 수신기의 L_B(N) 레지스터 143과 B(N) 레지스터 144에 저장되는 값은 모두 B의 배수이고 그 차이 또한 B의 배수가 되므로, 송신기의 B(NR) 레지스터 142에 저장된 9비트의 일련 번호를 수신기로 제공하면, 수신기는 상기 제공된 9비트의 일련 번호를 보고 정확하게 19비트의 일련 번호를 찾아낼 수 있다.
본 발명에 따라 가변길이의 RLP 프레임을 생성하고 송수신하는 동작은 크게 다중화/역다중화 제어기 140,240과, RLP 처리기 130,230의 동작으로 대별되어 되어 설명될 수 있을 것이다. 상기 다중화/역다중화 제어기 140과 240의 동작은 동일하게 수행되고, RLP 처리기 130과 230의 동작은 동일하게 수행되므로, 하기에서의 본 발명에 따른 동작은 편의상 다중화/역다중화 제어기 140과, RLP 처리기 130의 동작으로 국한되어 설명될 것이다.
다중화/역다중화 제어기의 송신동작
현재 연결되어 있는 물리 채널을 통하여 패킷 데이터 뿐만 아니라 음성 데이터나, 기타 다른 여러 가지 정보들이 동시에 송신될 수 있으므로, 하기에서는 다중화/역다중화 제어기에게 전송할 데이터를 제공하는 역할을 수행하는 것을 '서비스'라고 칭할 것이다. 또한 다중화/역다중화 제어기 140과 물리계층 처리기 150이 서로 주고 받는 전송 단위를 '정보 비트(information bits) 또는 물리프레임(physical frame)'이라고 칭하고, RLP처리기 130을 포함한 상위 서비스 블록과 다중화/역다중화 제어기 140이 서로 주고 받는 전송 단위를 '데이터 블록(data block) 또는 RLP프레임'이라고 칭할 것이다.
송신측 다중화/역다중화 제어기 140은 적어도 매 설정시간(예: 20 ms)마다 물리계층 처리기 150에게 전송할 정보 비트를 생성하여 전달하여야 한다. 즉, 다중화/역다중화 제어기 140은 현재 연결되어 있는 모든 물리 채널에 대해서 물리 채널로 전송되는 프레임의 페이로드(payload)를 채울 정보 비트를 생성하여 전달하여야 한다. IS-2000 규격에는 기본 채널(Fundamental Channel), 전용 제어 채널(Dedicated Control Channel), 부가 채널(Supplemental Channel) 등이 존재한다. 상기 다중화/역다중화 제어기 140이 이러한 정보 비트를 생성하여 물리 계층 처리기 150에게 전달하여 상기 기본 채널, 전용 제어 채널, 또는 부가 채널 중 어느 한 채널로 전송하고자 할 때는 다음과 같은 값들을 전달한다.
- SDU: 실제 전송될 정보 비트를 담는다. 전용 제어 채널 또는 부가 채널의 경우 만일 전송할 정보 비트가 없다면 상기 다중화/역다중화 제어기와 물리 계층이 미리 약속한 널값(NULL)을 채운다.
- FRAME_SIZE: 정보 비트가 담길 물리 채널 프레임의 크기를 담는다. 상기 SDU에 널값이 지정되는 경우에는 물리 계층에서 이 값을 무시한다.
- FRAME_RATE: 정보 비트가 담길 물리 채널 프레임이 전송될 전송 속도를 지정한다. 상기 SDU에 널값이 지정되는 경우에는 물리 계층에서 이 값을 무시한다.
송신측 다중화/역다중화 제어기 140이 상기한 내용을 물리계층 처리기 150에게 전달하면, 상기 물리계층 처리기 150은 지정된 부호화 방법 및 변조 방식 등을 사용하여 전달된 내용을 처리한 후 수신측에게 전송한다.
송신측 다중화/역다중화 제어기 140은 물리 채널로 전달할 논리 전송 단위의 페이로드 또는 정보 비트를 생성하기 위해, 논리적 채널(logical channel)이 현재 연결되어 있는 물리 채널에 대응되는 서비스들에서 전송할 데이터 블록(data block)을 사용한다. 상기 논리적 채널이 연결된 물리 채널에 대응되는 서비스는 현재 생성되는 정보 비트를 전송할 물리 채널로 자신의 데이터 블록을 전송할 수 있는 서비스를 말한다. 이러한 서비스를 단말과 기지국 상호간에 서로 연결하고, 또한 상기 서비스의 논리적 채널을 물리 채널 위에 연결시키는 과정은 IS-2000에 규정된 시그날링 메시지(signaling message)와 시그날링 절차(signaling procedure)로 가능하다.
송신측 다중화/역다중화 제어기 140은 현재 논리적 채널이 연결되어 있는 물리 채널에 대응되는 서비스들의 데이터 블록을 전송하기로 결정하면, 적절한 우선 순위에 따라 상기 서비스에게서 적절한 길이의 데이터 블록(도 5의 (a) 참조)을 받아들인다. 상기 다중화/역다중화 제어기 140은 상기 서비스에게서 데이터 블록을 받아들일 때 수신측의 다중화/역다중화 제어기가 상기 데이터 블록을 전달할 서비스를 알 수 있도록 하기 위해 서비스 인식자(service identifier)와, 길이 정보를 상기 데이터 블록에 덧붙인 다중화 프레임 MuxPDU를 만든다(도 5의 (b) 참조). 상기 다중화 프레임 MuxPDU는 여러 서비스에서 받은 여러 개의 데이터 블록과 시그날링 메시지를 함께 가질 수도 있다. 이러한 MuxPDU 하나 또는 여러 개가 포함되어 정보 비트가 구성되며, 상기 정보 비트에는 하나 또는 여러 개의 MuxPDU 마다 오류를 발견할 수 있도록 하는 CRC(Cyclic Redundancy Code)가 추가될 수 있다. 여러 개의 MuxPDU 마다 오류를 발견할 수 있는 CRC가 추가되는 경우, 하나의 CRC와 상기 CRC로 보호되는 정보 비트의 일부분을 본 발명에서는 '논리 전송 단위(LTU: Logical Transmission Unit)'이라고 칭하고 상기 물리 계층에게 전달될 정보 비트를 여러 부분으로 나누어서 각 나누어진 부분마다 오류를 검사할 수 있는 CRC를 넣는 방식을 '논리 전송 단위(logical transmission unit)가 사용되었다'고 한다. 이때 상기 나누어진 정보 비트의 일부분을 본 발명에서는 '논리 전송 단위(logical transmission unit)'라고 칭하고 상기 CRC에 의해서 보호되는 CRC를 제외한 논리 전송 단위의 나머지 부분을 '논리 전송 단위의 페이로드'라고 칭할 것이다(도 5의 (c)참조). 이들 논리 전송 단위는 수신측 다중화/역다중화 제어기에서 올바르게 수신되었는지의 여부를 판단하는 기본 단위가 된다. 만일 상기 논리 전송 단위가 사용되지 않는다면, 수신측 다중화/역다중화 제어기에서 올바르게 수신되었는지 판단하는 기본 단위는 정보 비트가 된다.
송신측 다중화/역다중화 제어기 140은 현재 전송될 물리 채널 프레임에 대해서 가능한 전송율과 정보 비트의 크기, 그리고 논리 전송 단위가 사용되는지 여부와 사용될 경우의 논리 전송 단위 크기와 CRC 생성 방법 등을 미리 알고 있어야 한다. 이러한 '형상 정보(configuration)'는 단말과 기지국이 미리 약속한 범위에서, 물리 계층 제어기 150이 제공하는 현재의 물리 채널 상태에 따라 상기 송신측 다중화/역다중화 제어기 140이 생성할 정보 비트의 크기와 논리 전송 단위의 생성 방식을 결정하는데 사용한다. 상기 송신측 다중화/역다중화 제어기 140은 논리 전송 단위의 사용을 결정하면, 데이터 블록을 포함하는 MuxPDU로 논리 전송 단위의 페이로드를 채우고 남은 공간은 채움 MuxPDU 또는 채움 비트열로 채운 다음, 생성된 논리 전송 단위의 페이로드에 대한 CRC를 생성한다. 상기 송신측 다중화/역다중화 제어기 140은 상기 과정을 필요한 논리 전송 단위 수만큼 반복하고 생성된 논리 전송 단위를 차례차례 집어넣어 정보 비트를 채운 다음, 남은 공간은 '0'으로 채우고 물리 계층 처리기 150에게 전달한다.
상기 송신측 다중화/역다중화 제어기 140은 논리 전송 단위를 사용하지 않기로 결정하면, 데이터 블록을 포함하는 MuxPDU로 채우고 정보 비트를 남은 공간은 채움 MuxPDU 하나 또는 채움 비트열로 채운 다음, 생성된 정보 비트를 물리 채널에게 전달한다.
상기 송신측 다중화/역다중화 제어기 140은 더 이상의 전송할 데이터 블록이 없는 경우, 정보 비트의 남은 부분을 채우기 위해서 수신측 다중화/역다중화 제어기와 미리 약속한 특정 서비스 인식자로 설정한 MuxPDU를 사용하거나 또는 수신측 다중화/역다중화 제어기와 미리 약속한 일정한 비트열(bit pattern)을 사용하여 정보 비트의 남은 부분을 채운다. 본 발명에서는 상기 특정 서비스 인식자로 설정한 MuxPDU를 '채움 MuxPDU(fill MuxPDU)', 그리고 상기 일정한 비트열을 '채움 비트열(fill bit pattern)'이라고 칭할 것이다.
송신측 다중화/역다중화 제어기 140은 상기 과정에서 논리적 채널이 연결된 물리 채널에 대응되는 모든 서비스와 시그날링 메시지 생성기에서 전송할 아무런 시그날링 메시지나 데이터 블록을 받지 못했을 때는 현재 전송하고자 하는 물리 채널에 따라서 다르게 동작한다. 즉, 전용 제어 채널이나 부가 채널의 경우 널값(NULL)을 SDU로 전달한다. 기본 채널의 경우에는 수신측 다중화/역다중화 제어기와 미리 약속한 일정한 비트열을 정보 비트로 하여 물리 채널에 전달한다. 본 발명에서는 상기 일정한 비트열을 '널 트래픽(null traffic)'이라고 칭할 것이다.
상기 송신측 다중화/역다중화 제어기에게 서비스가 아무런 데이터 블록도 전송할 것이 없음을 알리는 방법으로 '빈 데이터 블록'을 전달한다. 상기 빈 데이터 블록은 아무런 내용도 가지지 않는 데이터 블록으로 상기 특수한 목적을 위해서만 사용된다.
다중화/역다중화 제어기의 수신동작
수신측 물리계층 처리기 150은 수신되는 신호를 지정된 복호화 방법 및 복조 방식 등을 사용하여 해석한 다음, 수신된 물리 계층 프레임에 담긴 정보 비트 부분을 수신측 다중화/역다중화 제어기 140에게 전달한다. 물리계층 처리기 150이 이러한 정보 비트를 해석하여 다중화/역다중화 제어기 140에게 전달할 때는 다음과 같은 정보가 포함되어 전달된다.
- SDU: 실제 수신된 정보 비트를 담는다. 만일 수신된 정보 비트가 없거나 프레임이 깨졌으면, 상기 다중화/역다중화 제어기 140과, 물리계층 처리기 150이 미리 약속한 널값(NULL)을 채운다.
- FRAME_QUALITY: 수신된 물리 채널 프레임이 올바른(valid) 프레임인지 아닌지의 여부를 알려준다.
- FRAME_SIZE: 수신된 물리 채널 프리임의 크기를 담는다. 이 값은 수신된 물리 채널 프레임의 전송 속도에 따라서 결정된다.
- FRAME_RATE: 수신된 물리 채널 프레임의 전송 속도를 담는다.
상기 수신측 다중화/역다중화 제어기 140은 현재 수신된 물리 채널 프레임에 대해서 전송율과 정보 비트의 크기, 그리고 논리 전송 단위가 사용되었는지 여부와, 사용되었으면 논리 전송 단위의 크기(길이/개수), CRC 생성 방법 등을 미리 알고 있어야 한다. 이러한 형상 정보(configuration)는 단말과 기지국이 미리 약속한 범위에서 물리계층 처리기 150이 제공하는 상기 정보에 따라 결정할 수 있는 것으로 한다.
상기 수신측 다중화/역다중화 제어기 140은 만일 수신측 물리계층 처리기 150에서 아무런 물리 채널 프레임도 수신되지 않았다고 판단되어 SDU에 널값을 채우고 FRAME_QUALITY에 올바른 프레임이 수신되었다고 알려주면, 논리적 채널이 연결된 물리 채널에 대응되는 모든 서비스들에게 아무 프레임도 수신되지 않았다고 알린다.
상기 수신측 다중화/역다중화 제어기 140은 만일 수신측 물리계층 처리기 150에서 SDU에 널값을 채우지 않았거나 FRAME_QUALITY에 깨진 프레임이 수신되었다고 알려주면, 상기 형상 정보와 수신측 물리계층 처리기 150이 제공한 정보에 의해서 논리 전송 단위가 수신된 프레임에 사용되었는지 결정한다.
상기 수신측 다중화/역다중화 제어기 140은 만일 논리 전송 단위가 사용되었다면 논리 전송 단위의 길이와 CRC 검사 방법, 그리고 논리 전송 단위의 개수를 결정한다. 상기 다중화/역다중화 제어기 140은 논리 전송 단위의 개수 만큼 수신된 정보 비트에서 논리 전송 단위를 분리한다. 상기 다중화/역다중화 제어기 140은 이미 논리 전송 단위의 길이와 개수를 알고 있으므로 수신된 정보 비트에서 상기 길이 단위로 영역을 상기 개수만큼 나누어서 논리 전송 단위를 구분할 수 있다.
상기 수신측 다중화/역다중화 제어기 140은 할당되어 있는 물리 채널에서 수신된 정보 비트를 보내면, 물리 채널에서 함께 전달한 FRAME_QUALITY를 보고서 수신된 정보 비트가 깨졌는지 판단한다. 상기 수신측 다중화/역다중화 제어기 140은 만일 수신된 정보 비트가 깨졌고 수신된 정보 비트가 여러 개의 논리 전송 단위로 나누어져 있다면, 상기 과정에서 구분된 각 논리 전송 단위의 CRC를 다시 평가하여 오류가 없는 논리 전송 단위들이 있는지 살펴본다.
상기 다중화/역다중화 제어기 140은 상기 과정에서 만일 오류가 있는 논리 전송 단위가 있다면, 각각의 오류가 있는 논리 전송 단위에 대하여 논리적 채널이 연결된 물리 채널에 대응되는 모든 서비스들에게 깨진 데이터 블록이 수신되었음을 알린다. 이때 상기 다중화/역다중화 제어기 140은 각각의 서비스들에 대하여 깨진 논리 전송 단위가 포함할 수 있는 해당 서비스 데이터 블록의 최대 길이를 함께 알려준다.
상기 수신측 다중화/역다중화 제어기 140은 만일 수신된 정보 비트가 깨졌고 수신된 정보 비트에 하나 또는 여러 개의 MuxPDU 마다 오류를 발견할 수 있는 CRC가 추가되어 있지 않다면, 논리적 채널이 연결된 물리 채널에 대응되는 모든 서비스들에게 깨진 데이터 블록이 수신되었음을 알린다. 이때 상기 다중화/역다중화 제어기 140은 각각의 서비스들에 대하여 깨진 정보 비트가 포함할 수 있는 해당 서비스 데이터 블록의 최대 길이를 함께 알려준다.
상기 수신측 다중화/역다중화 제어기 140은 만일 오류가 없는 논리 전송 단위 또는 정보 비트가 수신되었으면, 채움 비트열이 아닌 오류가 없는 MuxPDU들을 상기 정보 비트에서 분리한다. 상기 다중화/역다중화 제어기 140은 상기 분리된 MuxPDU가 널 트래픽이나 채움 MuxPDU가 아니라면, 상기 MuxPDU의 서비스 인식자가 지정하는 서비스에게 상기 MuxPDU에 포함된 데이터 블록과 데이터 블록의 길이를 전달한다.
상기 수신측 다중화/역다중화 제어기 140은 상기 수신 과정을 마치고 나면 오류가 없는 논리 전송 단위 또는 정보 비트가 수신되었고 물리 채널에 논리적 채널이 대응되는 서비스 중에서 데이터 블록을 받지 못한 서비스가 있는 경우, 빈 데이터 블록이 수신되었다고 알린다.
상기와 같은 다중화/역다중화 제어기 140의 송신 및 수신 동작은 하기와 같은 실시예의 설명을 통해 보다 명확해질 수 있을 것이다. IS-2000 표준에서는 기본 채널(Fundamental Channel), 부가 채널(Supplemental Channel), 전용 제어 채널(Dedicated Control Channel) 등 여러 전용 트래픽 채널(dedicated traffic channel)을 규정하고 있다. 그러므로 본 발명에 따른 다중화/역다중화 제어기 140의 송신 및 수신 동작은 기본 채널에 적용되는 경우와, 부가 채널에 적용되는 경우로 구분되어 설명될 수 있다. 상기 전용 제어 채널은 기본 채널이 9.6 kbps 또는 14.4 kbps로만 동작하는 특수한 경우로 볼 수 있으므로 본 발명에서는 별도의 설명은 하지 않는다. 상기 경우에 덧붙여서 IS-2000 표준에서는 논리 전송 단위가 사용되는 경우와, 논리 전송 단위가 사용되지 않는 경우로 구분되어 설명될 수 있다. 여기서 논리 전송 단위가 사용되는 경우란 콘볼루션 코드(Convolution Code)를 사용하여 데이터를 부호화한 후 데이터를 송수신하는 경우에 해당하며, 논리 전송 단위가 사용되지 않는 경우란 터보코드(Turbo Code)를 사용하여 데이터를 부호화한 후 데이터를 송수신하는 경우에 해당한다.
먼저, 본 발명의 실시예에 따른 동작을 설명하기 전에 IS-2000 표준에서 규정하고 있는 기본 채널의 정보 비트 수와 부가 채널의 정보 비트 수를 정리해보면 각각 하기의 <표 1> 및 <표 2>, <표 3>, <표 4>와 같다. 하기의 <표 1>과 <표 2>는 IS-2000 표준에서 규정하고 있는 기본 채널의 정보 비트 수를 나타내며, <표 3>과 <표 4>는 부가 채널의 정보 비트 수를 나타낸다. 하기의 <표 1>과 <표 3>은 전송율 9600 bps를 기반으로 하는 전송율 집합(Rate Set) 1의 정보 비트 수를 나타내고, 하기의 <표 2>와 <표 4>는 전송율 14400 bps를 기반으로 하는 전송율 집합 2의 정보 비트 수를 나타낸다.
IS-2000의 기본 채널의 정보 비트 수 (전송율 집합 1)
전송율 정보 비트 수
9600 bps 172 비트
4800 bps 80 비트
2700 bps 40 비트
1500 bps 16 비트
IS-2000의 기본 채널의 정보 비트 수 (전송율 집합 2)
전송율 정보 비트 수
14400 bps 267 비트
7200 bps 125 비트
3600 bps 55 비트
1800 bps 21 비트
IS-2000의 부가 채널의 정보 비트 수 (전송율 집합 1)
전송율 정보 비트 수
9600 bps 172 비트
19200 bps 360 비트
38400 bps 744 비트
76800 bps 1512 비트
153600 bps 3048 비트
307200 bps 6120 비트
614400 bps 12264 비트
IS-2000의 부가 채널의 정보 비트 수 (전송율 집합 2)
전송율 정보 비트 수
14400 bps 267 비트
28800 bps 552 비트
57600 bps 1128 비트
115200 bps 2280 비트
230400 bps 4584 비트
460800 bps 9192 비트
1036800 bps 20712 비트
상기 <표 1> 및 <표 2>, <표 3>, <표 4>에서는 IS-2000에서 규정하는 모든 정보 비트의 크기를 나타낸 것은 아니라는 사실에 유의하여야 할 것이다.
상기 <표 3> 또는 <표 4>와 같은 정보 비트 수에 대응하여 LTU를 사용하는 경우, LTU의 크기 및 개수를 구해보면 하기 <표 5>와 <표 6>과 같다. 이때 LTU의 크기와 개수를 곱한 후 남는 비트를 가산하면 정보 비트의 수가 구해진다.
부가 채널에 적용되는 LTU (전송율 집합 1)
전송율 논리 전송 단위 크기 논리 전송 단위 개수 남는 비트
9600 bps - 사용하지 않음 -
19200 bps - 사용하지 않음 -
38400 bps 368 비트 2 개 8 비트
76800 bps 376 비트 4 개 8 비트
153600 bps 376 비트 8 개 40 비트
307200 bps 760 비트 8 개 40 비트
614400 bps 1528 비트 8 개 40 비트
부가 채널에 적용되는 LTU (전송율 집합 2)
전송율 논리 전송 단위 크기 논리 전송 단위 개수 남는 비트
14400 bps - 사용하지 않음 -
28800 bps - 사용하지 않음 -
57600 bps 560 비트 2 개 8 비트
115200 bps 568 비트 4 개 8 비트
230400 bps 568 비트 8 개 40 비트
460800 bps 1144 비트 8 개 40 비트
1036800 bps 2584 비트 8 개 40 비트
상기 <표 5>와 <표 6>에서 처음 두 개의 전송율에 대해서는 LTU를 사용하지 않는 것에 주의하여야 한다. 즉, 상기 송신측과 수신측 다중화/역다중화 제어기는 이러한 전송율을 가진 부가 채널이 연결되었을 때는 정보 비트를 처리하는 규칙을 따른다.
정보 비트를 채우기 위해서 본 발명에서 제안하는 MuxPDU 포맷(format)은 하기 <표 7>, <표 8>, <표 9>, <표 10>, <표 11> 및 <표 12>와 같다. 하기 <표 7>과 <표 8>은 기본 채널의 정보 비트를 위한 MuxPDU 포맷을 나타내고, <표 9>와 <표 11>은 LTU가 사용되는 경우에 부가 채널의 정보 비트를 위한 MuxPDU 포맷을 나타내고, <표 10>과 <표 12>는 LTU가 사용되지 않는 경우에 부가 채널의 정보 비트를 위한 MuxPDU 포맷을 나타낸다. 상기한 바와 같이 상기 전용 제어채널은 기본 채널에서 9600 bps 또는 14400 bps만 허용되는 특수한 경우이므로, 전용 제어채널은 하기 <표 7>과 <표 8>에서 전송율 9600 bps 또는 14400 bps에 해당하는 MuxPDU 포맷만 허용한다.
기본 채널 정보 비트를 위한 MuxPDU 포맷 (전송율 집합 1)
전송율 제1서비스데이터 블록 시그날링메시지 서비스데이터 블록 서비스 인식자 MuxPDU헤더
9600 bps 171 비트 - - - '0'
80 비트 88 비트 - - '0001'
40 비트 128 비트 - - '0101'
16 비트 152 비트 - - '1001'
- 168 비트 - - '1101'
80 비트 - 85 비트 3 비트 '0011'
40 비트 - 125 비트 3 비트 '0111'
16 비트 - 149 비트 3 비트 '1011'
- - 165 비트 3 비트 '1111'
4800 bps 80 비트 - - - -
2700 bps 40 비트 - - - -
1500 bps 16 비트 - - - -
기본 채널 정보 비트를 위한 MuxPDU 포맷 (전송율 집합 2)
전송율 제1서비스데이터 블록 시그날링메시지 서비스데이터 블록 서비스 인식자 MuxPDU헤더
14400 bps 266 비트 - - - '0'
124 비트 138 비트 - - '00001'
54 비트 208 비트 - - '00011'
20 비트 242 비트 - - '00101'
- 262 비트 - - '00111'
14400 bps 124 비트 - 135 비트 3 비트 '01001'
54 비트 - 205 비트 3 비트 '01011'
20 비트 - 239 비트 3 비트 '01101'
- - 259 비트 3 비트 '01111'
20 비트 222 비트 17 비트 3 비트 '10001'
7200 bps 124 비트 - - - '0'
54 비트 67 비트 - - '0001'
20 비트 101 비트 - - '0011'
- 121 비트 - - '0101'
54 비트 - 64 비트 3 비트 '0111'
20 비트 - 98 비트 3 비트 '1001'
- - 118 비트 3 비트 '1011'
20 비트 81 비트 17 비트 3 비트 '1101'
3600 bps 54 비트 - - - '0'
20 비트 32 비트 - - '001'
- 52 비트 - - '011'
20 비트 - 29 비트 3 비트 '101'
- - 49 비트 3 비트 '111'
1800 bps 20 비트 - - - '0'
- - 17 비트 3 비트 '1'
상기 <표 7>과 <표 8>에서 MuxPDU에 포함된 각각의 데이터 블록을 구분할 수 있는 정보인 MuxPDU헤더가 MuxPDU 뒤에 붙게 된다. 상기 MuxPDU 헤더는 각 데이터 블록을 바이트 정렬하기 위해서 MuxPDU의 맨뒷부분에 위치하였다.
부가채널 정보비트를 위한 MuxPDU 포맷 (전송율 집합 1에서 LTU가 사용되는 경우)
전송율 서비스인식자 길이지시자 길이타입필드 길이 필드 서비스데이터블록의 길이
38400 bps 3 비트 '0' - - 최대 348 비트
38400 bps 3 비트 '1' '00' '0000000' 최대 339 비트
76800 bps 3 비트 '0' - - 최대 356 비트
76800 bps 3 비트 '1' '00' '0000000' 최대 347 비트
153600 bps 3 비트 '0' - - 최대 356 비트
153600 bps 3 비트 '1' '00' '0000000' 최대 347 비트
307200 bps 3 비트 '0' - - 최대 740 비트
307200 bps 3 비트 '1' '00' '0000000' 최대 731 비트
614400 bps 3 비트 '0' - - 최대 1508 비트
614400 bps 3 비트 '1' '00' '0000000' 최대 1499 비트
모든전송율에서 3 비트 '1' '01' 7 비트 최대 1019 비트
모든전송율에서 3 비트 '1' '10' 15 비트 최대 262131 비트
부가채널 정보비트를 위한 MuxPDU 포맷 (전송율 집합 1에서 LTU가 사용되지 않는 경우)
전송율 서비스인식자 길이지시자 길이타입필드 길이 필드 서비스 데이터블록의 길이
19200 bps 3 비트 '0' - - 최대 356 비트
19200 bps 3 비트 '1' '00' '0000000' 최대 347 비트
38400 bps 3 비트 '0' - - 최대 740 비트
38400 bps 3 비트 '1' '00' '0000000' 최대 731 비트
76800 bps 3 비트 '0' - - 최대 1508 비트
76800 bps 3 비트 '1' '00' '0000000' 최대 1499 비트
153600 bps 3 비트 '0' - - 최대 3044 비트
153600 bps 3 비트 '1' '00' '0000000' 최대 3035 비트
307200 bps 3 비트 '0' - - 최대 6116 비트
307200 bps 3 비트 '1' '00' '0000000' 최대 6107 비트
614400 bps 3 비트 '0' - - 최대 12260 비트
614400 bps 3 비트 '1' '00' '0000000' 최대 12251 비트
모든전송율에서 3 비트 '1' '01' 7 비트 최대 1019 비트
모든전송율에서 3 비트 '1' '10' 15 비트 최대 262131 비트
부가 채널 정보 비트를 위한 MuxPDU 포맷 (전송율 집합 2에서 LTU가 사용되는 경우)
전송율 서비스인식자 길이지시자 길이타입필드 길이 필드 서비스 데이터블록의 길이
57600 bps 3 비트 '0' - - 최대 540 비트
57600 bps 3 비트 '1' '00' '0000000' 최대 531 비트
115200 bps 3 비트 '0' - - 최대 548 비트
115200 bps 3 비트 '1' '00' '0000000' 최대 539 비트
230400 bps 3 비트 '0' - - 최대 548 비트
230400 bps 3 비트 '1' '00' '0000000' 최대 539 비트
460800 bps 3 비트 '0' - - 최대 1124 비트
460800 bps 3 비트 '1' '00' '0000000' 최대 1115 비트
1036800 bps 3 비트 '0' - - 최대 2564 비트
1036800 bps 3 비트 '1' '00' '0000000' 최대 2555 비트
모든전송율에서 3 비트 '1' '01' 7 비트 최대 1019 비트
모든전송율에서 3 비트 '1' '10' 15 비트 최대 262131 비트
부가채널 정보비트를 위한 MuxPDU 포맷 (전송율 집합 2에서 LTU가 사용되지 않는 경우)
전송율 서비스인식자 길이지시자 길이타입필드 길이 필드 서비스 데이터 블록의 길이
28800 bps 3 비트 '0' - - 최대 548 비트
28800 bps 3 비트 '1' '00' '0000000' 최대 539 비트
57600 bps 3 비트 '0' - - 최대 1124 비트
57600 bps 3 비트 '1' '00' '0000000' 최대 1115 비트
115200 bps 3 비트 '0' - - 최대 2276 비트
115200 bps 3 비트 '1' '00' '0000000' 최대 2267 비트
230400 bps 3 비트 '0' - - 최대 4580 비트
230400 bps 3 비트 '1' '00' '0000000' 최대 4571 비트
460800 bps 3 비트 '0' - - 최대 9188 비트
460800 bps 3 비트 '1' '00' '0000000' 최대 9179 비트
1036800 bps 3 비트 '0' - - 최대 20708 비트
1036800 bps 3 비트 '1' '00' '0000000' 최대 20699 비트
모든전송율에서 3 비트 '1' '01' 7 비트 최대 1019 비트
모든전송율에서 3 비트 '1' '10' 15 비트 최대 262131 비트
상기 <표 7>, <표 8>, <표 9>, <표 10>, <표 11>, <표 12>에서 서비스 인식자는 다음 <표 13>과 같이 정해질 수 있다.
서비스 인식자
서비스 인식자 서비스
'000' 예약
'001' 제1서비스
'010' 제2서비스
'011' 제3서비스
'100' 제4서비스
'101' 제5서비스
'110' 제6서비스
'111' 널 서비스
상기 <표 13>에서 널 서비스(null service)는 수신측 다중화/역다중화 제어기에게 채우기 위한 채움 MuxPDU임을 알릴 때 사용하는 상기 미리 약속된 특정 서비스 인식자 값이다. 상기 <표 13>에서 알 수 있듯이 상기 <표 7>, <표 8>, <표 9>, <표 10>, <표 11>, <표 12>의 MuxPDU 포맷은 최대 여섯 개의 서비스에서 보내온 데이터 블록을 구분할 수 있다.
상기 <표 7>과 <표 8>은 기본 채널로 전송되는 MuxPDU 포맷을 보여준다. 여기에서 제1서비스는 서비스 인식자 없이 MuxPDU 헤더만 보고도 구분이 가능하다. 왜냐하면, 상기 <표 7>에 나타난 바와 같이 MuxPDU헤더의 하위 2번째 비트가 '0'인 경우가 제1서비스에 해당하기 때문이다. 제2서비스에서 제6서비스에 해당하는 데이터 블록은 상기 <표 7>의 서비스 인식자를 보고서 판단할 수 있다. 따라서 상기 <표 7>의 서비스 인식자는 '010'에서 '110'까지의 값만을 가질 수 있다. 상기 <표 7>의 MuxPDU 포맷을 사용하는 기본 채널에서는 제1서비스의 데이터 블록이 모두 '1'로 채워지는 경우, 수신측 다중화/역다중화 제어기는 송신측 다중화/역다중화 제어기에서 아무 서비스에게도 해당하지 않는 널 트래픽으로 약속한다. 따라서 수신측 다중화/역다중화 제어기는 기본 채널에서 수신된 MuxPDU가 제1서비스의 데이터 블록만을 가지며 데이터 블록이 모두 '1'로 채워진 것이면 널 트래픽으로 판단한다.
다중화/역다중화 제어기의 기본 채널을 통한 송신 동작
RLP를 사용하는 여섯 개의 서비스가 연결된 경우를 가정하면, 상기 송신측 다중화/역다중화 제어기는 다음과 같이 동작한다. 이러한 동작은 도 9와 같은 흐름에 따른다.
우선 다중화/역다중화 제어기는 규정된 서비스 품질 보증 규칙(QoS)에 따라서 각각의 서비스들의 전송 순서와 데이터 블록의 크기를 결정한다. 즉 다중화/역다중화 제어기는 시그날링 LAC 계층(LAYER)으로 가능한 크기를 문의하고(도 9의 S10단계), 상기 시그날링 LAC 계층으로부터 적당한 크기의 데이터 블록을 확인한다(S11단계). 상기 다중화/역다중화 제어기는 서비스 전송순서를 결정하고(S11a단계), 다음에 상기 확인된 크기의 데이터 블록을 우선적으로 제1서비스에 요청하고(S12단계), 상기 제1서비스로부터 상기 확인된 크기내의 데이터 블록을 전달받는다(S13단계). 기본 채널로 전송될 데이터 블록의 경우, 상기 <표 7> 또는 <표 8>에서 MuxPDU가 허용하는 데이터 블록의 크기와 개수, 그리고 조합에 따라서 적절한 크기의 데이터 블록을 생성하도록 RLP처리기에게 요청하여야 한다. 그런 다음에, 상기 다중화/역다중화 제어기는 전송할 데이터 블록을 누적하고, 전송할 수 있는 남아있는 블록을 계산한다(S14단계). 다음에, 상기 다중화/역다중화 제어기는 상기 누적한 데이터 블록으로 MuxPDU를 만들 수 있는지 여부를 판단한다(S15단계). MuxPDU를 만들 수 없는 경우에는 다시 S12단계로 진행하여 해당하는 서비스로 데이터 블록을 요청하고, 그 요청에 따른 데이터 블록을 전달받는다. MuxPDU를 만들 수 있는 경우에는 누적된 데이터 블록으로 MuxPDU를 만든다(S16단계). 이때 다중화/역다중화 제어기는 포함되는 데이터 블록에 따라서 상기 <표 4>로부터 적절한 비트열을 찾아 MuxPDU 헤더에 덧붙인다. 상기 다중화/역다중화 제어기는 이렇게 생성된 MuxPDU를 정보 비트로 하여 상기 물리 채널에게 전달한다(S17단계).
상기 과정에서 데이터 블록을 생성할 기회를 얻지 못한 RLP처리기에게는 상기 다중화/역다중화 제어기가 빈 데이터 블록(blank data block)을 생성하도록 요청하여 RLP처리기가 자신이 기회를 얻지 못하였음을 알 수 있도록 한다. 또한 상기 과정에서 모든 RLP가 아무런 데이터 블록도 제공하지 않았다면, 상기 다중화/역다중화 제어기는 상기 널 트래픽을 만들어서 이것을 정보 비트로 하여 상기 물리 채널에게 전달한다.
다중화/역다중화 제어기의 기본 채널을 통한 수신 동작
수신측 다중화/역다중화 제어기는 기본 채널로 전송된 정보 비트에 대해서 다음과 같이 동작한다. 이러한 동작은 도 10과 같은 처리흐름에 따른다. 우선 수신된 정보 비트의 전송율과 MuxPDU 헤더 비트를 보고서(도 10의 S20단계) 각각의 데이터 블록을 구분한다(S21,S22단계). 각각의 데이터 블록을 구분하기 위해서는 먼저 전송율 집합에 따라서 상기 <표 7> 또는 <표 8>을 참조한다. 우선 수신된 정보 비트의 마지막 1 비트를 보고 이 값이 '0'으로 설정되어 있으면, 마지막 1 비트를 제외한 나머지 모든 정보 비트는 제1서비스의 데이터 블록이므로 제1서비스에게 데이터 블록의 길이와 함께 전달한다(S23단계).
상기 수신측 다중화/역다중화 제어기는 상기 과정에서 만일 수신된 정보 비트의 마지막 1 비트가 '1'로 설정되어 있으면, 전송율 집합 1의 경우 마지막 4 비트를, 전송율 집합 2의 경우 마지막 5 비트를 MuxPDU 헤더로 간주한다. 상기 MuxPDU 헤더와 같은 비트열을 가지는 조합을 상기 <표 7> 또는 <표 8>에서 찾는다. 만일 같은 비트열을 가지는 조합이 없으면, 상기 수신측 다중화/역다중화 제어기는 수신된 정보 비트를 깨진 것으로 처리한다. 만일 같은 비트열을 가지는 조합이 있으면 상기 <표 7> 또는 <표 8>에 규정된 데이터 블록의 크기와 위치에 따라서 데이터 블록과 서비스 인식자를 구분한다. 예를 들어 전송율 집합 1일 때 수신된 정보 비트가 9600 bps로 수신되었고 상기 MuxPDU 헤더가 '0011'이라면, 수신된 MuxPDU는 첫 80 비트는 제1서비스 데이터 블록이고 그 다음 85 비트는 또다른 서비스의 데이터 블록이며 나머지 3 비트는 서비스 인식자가 된다. 상기 <표 7> 또는 <표 8>에 규정된 것과 같이 조합에 따라서는 서비스 인식자가 없을 수도 있다.
상기 과정에서 구분된 데이터 블록은 상기 <표 7> 또는 <표 8>을 참조하여 해당하는 서비스에게 전달한다. 제1서비스와 시그날링 계층에는 서비스 인식자를 보지 않고도 바로 데이터 블록과 데이터 블록의 길이를 함께 전달할 수 있다. 그러나 서비스 인식자가 있는 경우에는 서비스 인식자를 상기 <표 13>과 대조하여 해당하는 서비스에게 데이터 블록과 데이터 블록의 길이를 함께 전달한다. 상기 예에서 수신측 다중화/역다중화 제어기는 상기 80 비트의 데이터 블록을 그 길이와 함께 제1서비스에게 전달하고, 서비스 인식자가 가리키는 서비스에게 상기 85 비트의 데이터 블록을 그 길이와 함께 전달한다. 이때 서비스 인식자의 값이 '000', '001', '111'로 되어 있으면, 상기 수신측 다중화/역다중화 제어기는 상기 수신된 정보 비트를 깨진 것으로 처리한다. 만일 수신된 정보 비트가 깨진 것이라면, 상기 다중화/역다중화 제어기는 기본 채널에 논리적 채널이 대응되는 모든 서비스에게 깨진 데이터 블록이 수신되었음을 알리고 각 서비스가 보낼 수 있는 최대 데이터 블록의 길이를 함께 알려준다. 예를 들어 상기 전송율 집합 1에서 사용하는 <표 7>의 MuxPDU 포맷이라면 제1서비스에게 171 비트를, 제2서비스에서 제6서비스까지는 165 비트를 알려준다.
이와 달리, 상기 수신측 다중화/역다중화 제어기는 상기 정보 비트가 깨지지 않았고 데이터 블록이 하나 밖에 없으며 제1서비스에 해당하는 데이터 블록이고 모두 '1'로 채워져 있으면, 널 트래픽으로 간주하고 버리고 기본 채널에 논리적 채널이 모든 대응되는 서비스들에게 아무런 데이터 블록이 수신되지 않았음을 알린다. 상기 수신측 다중화/역다중화 제어기는 상기 정보 비트가 깨지지 않았을 때 기본 채널에 논리적 채널이 대응되는 서비스 중에서 수신된 데이터 블록이 없는 서비스들에 대해서 빈 데이터 블록이 수신되었음을 알려준다. 상기 널 트래픽인 경우 아무런 데이터 블록이 수신되지 않았음을 알리는 것과 상기 빈 데이터 블록이 수신되었음을 알리는 것은 서비스에 따라서 다른 의미를 가질 수 있음에 주의하여야한다.
다중화/역다중화 제어기의 부가 채널을 통한 송신 동작
다중화/역다중화 제어기가 부가 채널 정보 비트를 생성할 때 LTU를 생성하는 경우 전송율에 따라 <표 5> 또는 <표 6>에 표시된 개수만큼의 LTU를 만든다. 상기 LTU는 <표 5> 또는 <표 6>에 규정된 것과 같은 크기를 갖는다. 상기 LTU는 16비트 CRC를 가지므로 실제 LTU에 실어 보낼 수 있는 최대 MuxPDU의 크기는 전송율에 따라서 다르다.
예를 들어, 부가 채널 307.2 kbps을 사용하고 LTU를 생성하는 경우에는 LTU의 페이로드에 MuxPDU가 들어가게 되므로 MuxPDU의 최대 크기는 LTU 페이로드의 크기 760 비트에서 CRC 16 비트를 뺀 나머지 744 비트가 된다. 상기 다중화/역다중화 제어기가 부가 채널 정보 비트를 생성할 때는 LTU를 생성하는 경우 가능한 MuxPDU 포맷은 전송율 집합에 따라 상기 <표 9>와 <표 11>의 포맷이 가능하다. 상기 다중화/역다중화 제어기가 MuxPDU를 생성하여 LTU 페이로드를 모두 채우면 상기 다중화/역다중화 제어기는 LTU 페이로드에 대한 16 비트 CRC를 생성한다. 상기 16 비트 CRC는 부가 채널에 적용되는 16 비트 CRC 생성 방식과 똑같이 만든다. 상기 다중화/역다중화 제어기는 상기 방식으로 상기 <표 5> 또는 <표 6>에 규정된 것과 같은 개수의 LTU를 만들고 이를 차례로 정보 비트에 넣은 후 남는 공간은 '0'으로 채우고 물리 계층 제어기에게 전달한다.
상기 다중화/역다중화 제어기가 부가 채널 정보 비트를 생성할 때 LTU를 생성하지 않는 경우 전송율에 따라 <표 3> 또는 <표 4>에 지정된 크기의 정보 비트를 생성한다. 이러한 경우 정보 비트에 실어 보낼 수 있는 MuxPDU는 전송율 9600 bps 또는 14400 bps인 경우에는 상기 <표 7>과 <표 8>에 규정된 MuxPDU 포맷을 가진 하나의 MuxPDU만 가능하다. 특히 부가 채널의 경우에는 서비스 데이터 블록이 하나만 들어간 포맷만을 사용할 수 있으므로 실제 사용 가능한 포맷은 상기 <표 7>과 <표 8>에서 각각 두 가지 뿐이다. 상기 다중화/역다중화 제어기가 MuxPDU를 생성하여 정보 비트를 채우면 이를 물리 계층 제어기에게 전달한다.
상기 다중화/역다중화 제어기가 부가 채널 정보 비트를 생성할 때 LTU를 생성하지 않는 경우 전송율이 19200 bps 또는 28800 bps 이상인 경우에는, 상기 <표 10>과 <표 12> MuxPDU 포맷이 가능하다. 상기 다중화/역다중화 제어기가 MuxPDU를 생성하여 정보 비트를 채우고, 이를 물리 계층 제어기에게 전달한다.
상기 다중화/역다중화 제어기는 규정된 서비스 품질 보증 규칙(QoS)에 따라서 각각의 서비스들의 전송 순서와 데이터 블록의 크기를 결정한다. 다음에, 상기 다중화/역다중화 제어기는 우선 순위에 따라서 각 서비스들의 RLP에게 데이터 블록을 요청한다(도 11의 S30단계). 즉, 다중화/역다중화 제어기는 우선순위가 가장 높은 제1서비스의 RLP처리기로 가능한 데이터 블록을 요청하고(S30단계), 상기 제1서비스의 RLP처리기로부터 대응하는 데이터 블록 또는 빈데이터 블록을 전달받는다(S31단계). 이때 빈데이터 블록이 아닌 데이터블록이 전달되는 경우 다중화/역다중화 제어기는 이 전달된 데이터블록을 이용하여 MuxPDU를 생성한다(S32단계). 이렇게 생성된 MuxPDU는 결과적으로 정보비트로서 생성되게 된다.
상기 다중화/역다중화 제어기가 부가 채널 정보 비트를 생성할 때 LTU를 생성하는 경우, 상기 <표 9> 또는 <표 11>에서 MuxPDU가 허용하는 데이터 블록의 크기와 현재 생성 중인 LTU의 남은 자리에 따라서 적절한 크기의 데이터 블록을 생성하도록 RLP처리기에게 요청하여야 한다. 즉, 다중화/역다중화 제어기는 데이터 블록을 전달받은 후 LTU 또는 정보 비트의 남은 크기를 계산한 후(S33단계), 이때 계산된 크기가 가능한 MuxPDU의 크기 이상인지 여부를 판단한다(S34단계). 상기 계산된 크기가 가능한 MuxPDU의 크기 이상인 것으로 판단되는 경우, 다중화/역다중화 제어기는 가능한 크기의 데이터 블록을 다음 우선순위의 제2서비스의 RLP처리기로 요청하고(S35단계), 상기 제2서비스의 RLP처리기로부터 대응하는 데이터 블록 또는 빈 데이터 블록을 전달받는다(S36단계). 위와 같은 동작은 모든 서비스의 RLP처리기에 대해 반복적으로 수행될 수 있다.
상기 다중화/역다중화 제어기가 부가 채널 정보 비트를 생성할 때 LTU를 생성하지 않고 전송율 9600 bps 또는 14400 bps인 경우에는, 상기 <표 7>과 <표 8>에 규정된 MuxPDU 포맷 중에서 부가 채널로 보낼 수 있는 MuxPDU를 하나 생성하기 위하여 우선 순위에 따라 각각의 서비스에게 상기 <표 7>과 <표 8>에 규정된 부가 채널로 보낼 수 있는 데이터 블록을 생성하도록 요청한다. 만일 어느 한 서비스라도 데이터 블록을 생성하면 상기 다중화/역다중화 제어기는 이를 MuxPDU로 만든다.
상기 다중화/역다중화 제어기가 부가 채널 정보 비트를 생성할 때 LTU를 생성하지 않는 경우 전송율이 19200 bps 또는 28800 bps 이상인 경우에는, 상기 <표 10> 또는 <표 12>에서 MuxPDU가 허용하는 데이터 블록의 크기와 현재 생성 중인 LTU의 남은 자리에 따라서 적절한 크기의 데이터 블록을 생성하도록 RLP처리기에게 요청하여야 한다(도 11의 S32단계∼S38단계).
상기 다중화/역다중화 제어기가 부가 채널 정보 비트를 생성할 때 LTU 페이로드를 채우거나 정보 비트를 채우는 경우, 상기 다중화/역다중화 제어기는 현재까지 채우지 못한 LTU 페이로드 또는 정보 비트의 나머지 부분의 길이를 알고 있어야 한다. 상기 다중화/역다중화 제어기는 남은 부분에 대해서 서비스들에게 데이터 블록을 생성하도록 요청한다. 만일 어떤 서비스가 빈 데이터 블록이 아닌 데이터 블록을 전달하면 상기 다중화/역다중화 제어기는 이 데이터 블록의 길이에 따라서 다음과 같이 동작한다.
1. 만일 전달된 데이터 블록의 길이가 LTU 페이로드 또는 정보 비트의 남은 공간에 비해서 4 비트만큼 작으면 상기 다중화/역다중화 제어기는 전송한 서비스에 따라서 <표 13>을 참고하여 3 비트 서비스 인식자를 붙이고 길이 지시자 1 비트를 '0'으로 설정하여 상기 데이터 블록의 앞에 붙여서 MuxPDU를 만든다. 상기 다중화/역다중화 제어기는 상기 생성된 MuxPDU를 LTU 페이로드 또는 정보 비트의 남은 공간에 넣고 LTU 페이로드 또는 정보 비트를 완성시킨다.
2. 만일 전달된 데이터 블록의 길이가 LTU 페이로드 또는 정보 비트의 남은 공간에 비해서 13 비트 작으면 상기 다중화/역다중화 제어기는 전송한 서비스에 따라서 <표 13>을 참고하여 3 비트 서비스 인식자를 붙이고, <표 9> 내지 <표 12>를 참고하여 길이 지시자 1 비트를 '1'로, 길이 타입 필드 2 비트를 '00'으로, 길이 필드 7 비트를 '0000000'으로 설정하여 상기 데이터 블록의 앞에 붙여서 MuxPDU를 만든다. 상기 다중화/역다중화 제어기는 상기 생성된 MuxPDU를 LTU 페이로드 또는 정보 비트의 남은 공간에 넣고 LTU 페이로드 또는 정보 비트를 완성시킨다.
3. 만일 전달된 데이터 블록의 길이가 LTU 페이로드 또는 정보 비트의 남은 공간에 비해서 14 비트 또는 그 이상 작으면 상기 다중화/역다중화 제어기는 상기 <표 9>, <표 10>, <표 11>, <표 12>에 제시된 7 비트 또는 15 비트 길이 필드를 가지는 MuxPDU를 생성한다. 즉, 상기 다중화/역다중화 제어기는 생성된 데이터 블록이 1019 비트와 같거나 더 작으면 전송한 서비스에 따라서 <표 13>을 참고하여 3 비트 서비스 인식자를 붙이고, <표 9>∼<표 12>를 참고하여 길이 지시자 1 비트를 '1'로, 길이 타입 필드 2 비트를 '01'으로, 그리고 길이 필드 7 비트를 상기 서비스 인식자, 길이 지시자, 길이 타입 필드, 길이 필드, 그리고 데이터 블록을 합한 전체 MuxPDU의 길이를 바이트 단위로 표시하여 이 값에서 1을 뺀 값으로 설정한다. 만일 생성된 데이터 블록이 1019 비트 보다 더 크면 전송한 서비스에 따라서 <표 13>을 참고하여 3 비트 서비스 인식자를 붙이고, <표 9>∼<표 12>를 참고하여 길이 지시자 1 비트를 '1'로, 길이 타입 필드 2 비트를 '01'으로, 그리고 길이 필드 15 비트를 상기 서비스 인식자, 길이 지시자, 길이 타입 필드, 길이 필드, 그리고 데이터 블록을 합한 전체 MuxPDU의 길이를 바이트 단위로 표시하여 이 값에서 1을 뺀 값으로 설정한다. 만일 상기 과정에서 구해진 값이 정수가 아니면, 즉 MuxPDU의 길이가 바이트 단위가 아니면 상기 다중화/역다중화 제어기는 상기 데이터 블록을 버린다. 만일 구해진 값이 정수이면 상기 서비스 인식자, 길이 지시자, 길이 타입 필드, 길이 필드를상기 데이터 블록의 앞에 붙여서 MuxPDU를 만든다. 상기 다중화/역다중화 제어기는 상기 생성된 MuxPDU를 LTU 페이로드 또는 정보 비트의 남은 공간에 넣는다.
상기와 같이 생성된 MuxPDU를 LTU의 페이로드(payload)에 차례로 집어 넣고 남은 부분에 대해서 다시 상기 과정을 반복한다. 이때 적절한 크기의 데이터 블록이 더이상 없다면, 상기 다중화/역다중화 제어기는 서비스 인식자를 '111', 그리고 길이 지시자를 '0'으로 하여 남은 부분의 첫번째 4 비트를 채운 후 나머지 부분을 모두 '0'으로 설정하여 LTU 페이로드 또는 정보 비트를 채운다.
LTU를 생성하는 경우 상기 과정을 통하여 <표 5> 또는 <표 6>에 제시된 필요한 개수의 LTU를 생성하면, 다중화/역다중화 제어기는 생성된 LTU를 모두 정보 비트에 차례로 집어넣는다. 상기 다중화/역다중화 제어기는 상기 <표 5> 또는 <표 6>에 나타난 것과 같이 남은 비트 부분은 모두 '0'으로 채우고 이를 물리 채널 제어기에게 전달한다.
LTU를 생성하지 않는 경우 상기 과정을 통하여 <표 3> 또는 <표 4>에 제시된 정보 비트를 모두 채우면 상기 다중화/역다중화 제어기는 이를 물리 채널 제어기에게 전달한다.
상기 과정을 통하여 얻을 수 있는 정보 비트의 예가 도 6에 나타나 있다. 상기 도 6에서는 세 개의 LTU를 보여준다. 도 6은 본 발명에 따라 생성될 수 있는 LTU의 포맷들을 보여주는 도면이다. 이러한 LTU들은 물리 채널을 통해 전송될 정보 프레임을 구성하는데, 상기 각 LTU는 다중화 프레임 MuxPDU와 CRC로 이루어진다. 여기서는 정보 프레임이 LTU들로 구성되는 경우를 설명하고 있지만, CRC가 없이도, 즉 정보 프레임은 다중화 프레임들로만 구성되어 전송될 수도 있다. 정보 프레임내에 포함되는 연속적인 다중화 프레임들은 각각 주어진 길이(예: 도 5의 (c)에 도시된 바와 같이 744비트)를 가질 수 있으며, 각 다중화 프레임들은 도 5의 (b)에 도시된 바와 같이 헤더와 이후의 RLP프레임(또는 데이터 블록)으로 구성된다. 이때 RLP프레임에는 전송할 데이터가 포함된다. 상기 다중화 프레임들중 적어도 하나는 복수의 서브 다중화 프레임들로 구성되고, 각 서브 다중화 프레임은 RLP 서비스 인식자 필드와, 전송해야할 데이터의 길이를 나타내는 길이 표시 필드를 포함하는 헤더와 이후의 데이터 블록으로 구성된다. 즉, 상기 다중화 프레임은 어떤 한 서비스를 위한 데이터 블록 및 그 데이터 블록을 나타내는 헤더로 구성되는 하나의 서브 다중화 프레임일 수도 있고, 각각이 서비스를 위한 데이터 블록과 그 데이터 블록을 나타내는 헤더로 구성되는 복수의 서브 다중화 프레임일 수도 있다. 도 6의 (a)는 다중화 프레임이 하나의 서브 다중화 프레임으로 구성되는 경우, 즉 하나의 데이터 블록만이 포함되는 경우를 도시하고 있다. 도 6의 (b)는 다중화 프레임이 복수의 서브 다중화 프레임으로 구성되는 경우, 즉 복수의 데이터 블록들이 포함되는 경우를 도시하고 있다. 상기 데이터 블록(RLP프레임)을 생성하는 동작은 도 3의 RLP제어기 131에 의해 수행되고, 다중화 프레임을 생성하는 동작은 도 3의 다중화/역다중화 제어기 140에 의해 수행되고, 정보 프레임(물리 프레임)을 생성하는 동작은 도 2의 물리계층 처리기 150에 의해 수행된다. 도 6의 (a)를 참조하면, 첫번째 LTU는 제1서비스에서 740 비트의 데이터 블록을 받은 경우로 LTU 페이로드 보다 정확히 4 비트 작으므로, 서비스 인식자를 제1서비스 '001'으로 설정하고 길이 지시자를 '0'으로 설정한 다음 받은 데이터 블록으로 LTU의 페이로드를 채운다. 여기서, 서비스 인식자와, 길이 지시자와, 예약 비트는 다중화 프레임의 헤더를 구성한다. '001'의 서비스 인식자는 <표 13>에서 알 수 있는 바와 같이 이후의 데이터 블록이 제1서비스를 위한 것임을 나타내고, '0'의 길이 지시자는 다중화 프레임내에 하나의 데이터 블록만이 포함됨을 나타낸다. 도 6의 (b)를 참조하면, 두번째 LTU는 제2서비스에서 331 비트의 데이터 블록을 받은 경우로 남은 LTU 페이로드 보다 14 비트 이상 작고 1019 비트 보다는 작으므로, 서비스 인식자를 제2서비스 '010'으로 설정하고 길이 지시자를 '1'로 설정한 다음 길이 타입 필드를 '01', 그리고 길이 필드를 MuxPDU 전체 길이인 43 바이트에서 하나 뺀 값('0101010')으로 설정한다. 나머지 50 바이트의 LTU의 페이로드 부분은 아무런 서비스도 데이터 블록을 제공하지 않은 경우로 이때에는 채움 MuxPDU를 생성하여 집어 넣는다. 여기서, 서비스 인식자와, 길이 지시자와, 예약 비트는 다중화 프레임의 헤더를 구성한다. 상기 LTU, 즉 다중화 프레임은 2개의 서브 다중화 프레임으로 구성된다. 첫 번째 서브 다중화 프레임에서 '010'의 서비스 인식자는 <표 13>에서 알 수 있는 바와 같이 이후의 데이터 블록이 제2서비스를 위한 것임을 나타내고, '1'의 길이 지시자는 다중화 프레임내에 제2서비스의 데이터 블록 이외에도 다른 데이터 블록이 포함됨을 나타내고, 길이 타입 필드의 '01' 비트는 <표 9> 내지 <표 12>에 나타난 바와 같이 길이 필드 및 서비스 데이터 블록의 길이를 나타낸다. 즉, 상기 길이 지시자와 길이 타입 필드와 길이 필드는 전송하여야할 데이터의 길이를 나타내는 정보를 포함하는 길이 표시 필드를 구성한다. 두 번째 서브 다중화 프레임에서 '111'의 서비스 인식자는 <표 13>에서 알 수 있는 바와 같이 이후의 데이터 블록이 널 서비스를 위한 것임을 나타내고, '0'의 길이 지시자는 다중화 프레임내의 이후에 널 서비스의 데이터 블록 이외에도 다른 데이터 블록이 포함되지 않음을 나타낸다. 도 6의 (c)를 참조하면, 세번째 LTU는 LTU를 생성할 때 아무런 서비스도 데이터 블록을 제공하지 않은 경우로, 역시 채움 MuxPDU를 생성하여 집어 넣는다. 상기 도 6에서 예로 제시된 LTU들을 모아서 정보 비트를 채우고 남은 비트를 '0'으로 설정하면 정보 비트의 생성이 끝나게 된다.
다중화/역다중화 제어기의 부가채널을 통한 수신 동작
수신측 다중화/역다중화 제어기는 부가 채널로 전송된 정보 비트에 대해서 다음과 같이 동작한다. 이러한 동작은 도 12에 도시된 바와 같은 흐름에 따른다.
LTU가 사용된 정보 비트의 경우, 상기 <표 5> 또는 <표 6>에서와 같이 전송율에 따라 LTU를 구분한다. 예를 들어, 307.2 kbps로 연결된 부가 채널로 수신된 정보 비트는 상기 <표 5>에서와 같이 760 비트 단위로 LTU를 구분한다. 만일 정보 비트가 오류가 없으면, 각각의 LTU 또는 정보 비트에 대해서 MuxPDU를 구분하는 작업을 한다(도 12의 S40단계). MuxPDU를 구분한 이후에 다중화/역다중화 제어기는 데이터 블록이 전달될 서비스 RLP를 판단하고(S41단계), 해당하는 서비스의 RLP로 수신 데이터 블록을 전달한다. 이때 수신 데이터 블록과 함께 데이터 블록의 길이를 전달한다(S42,S43단계). 이러한 수신 데이터 블록과 데이터 블록의 길이의 전달은 구분된 모든 MuxPDU에 대해 해당하는 서비스의 RLP로 이루어진다.
이와 달리, 정보 비트가 오류가 있으면, 각각의 LTU에 대해서 CRC를 검사한다. 이때 CRC 검사에서 오류가 없는 LTU에 대해서는 MuxPDU를 구분한다. 각각의 오류가 있는 LTU에 대해서는 부가 채널에 논리적 채널이 대응되는 모든 서비스에게 깨진 데이터 블록이 수신되었음을 알리고, 각 서비스가 상기 깨진 LTU로 보낼 수 있는 최대 데이터 블록의 길이를 함께 알려준 다음, 상기 정보 비트를 버린다. 상기 예에서 307.2 kbps로 연결된 부가 채널로 수신된 상기 LTU로 보낼 수 있는 최대 데이터 블록의 길이는 상기 도 6에서와 같이 740 비트가 될 것이다.
LTU가 사용되지 않은 정보 비트의 경우, 전송율이 9600 bps 또는 14400 bps인 경우에는 상기<표 7> 또는 <표 8>에 따라서 MuxPDU를 구분한다. 이때 MuxPDU를 구분하는 방법은 기본 채널에서와 같이 수행하면 된다. 단 부가 채널에서는 부가 채널에 논리적 채널이 대응되는 서비스에서 받은 하나의 데이터 블록만 MuxPDU에 있을 수 있으므로 MuxPDU 헤더가 이와 같지 않은 정보 비트는 깨진 것으로 간주한다.
LTU가 사용되지 않은 정보 비트의 경우, 전송율이 19200 bps 또는 28800 bps 이상인 경우에는 전체 정보 비트에 대해서 MuxPDU를 구분한다. 만일 정보 비트가 오류가 있으면, 상기 다중화/역다중화 제어기는 부가 채널에 논리적 채널이 대응되는 모든 서비스에게 깨진 데이터 블록이 수신되었음을 알리고, 각 서비스가 상기 논리 전송 단위로 보낼 수 있는 최대 데이터 블록의 길이를 상기 <표 10> 또는 <표 12>에서와 같이 알려준 다음, 상기 정보 비트를 버린다. 예를 들면, 307.2 kbps로 연결된 부가 채널로 수신된 상기 깨진 정보 비트로 보낼 수 있는 최대 데이터 블록의 길이는 상기 <표 10>에서와 같이 6116 비트가 될 것이다.
상기 LTU 페이로드 또는 정보 비트에 대해서 MuxPDU를 구분하는 경우, 상기 서비스 인식자와, 길이 지시자, 그리고 길이 필드를 통하여 MuxPDU가 가지고 있는 데이터 블록이 어떤 서비스에게 전달되어야 하며 또한 수신된 MuxPDU의 전체 길이를 다음과 같이 알 수 있다.
1. 상기 수신측 다중화/역다중화 제어기는 상기 LTU 페이로드 또는 정보 비트의 가장 앞 부분에서부터 MuxPDU 구분을 시작한다.
2. 해석 중인 MuxPDU의 서비스 인식자가 상기 <표 13>에서와 같이 '111'로 되어 있으면 상기 수신측 다중화/역다중화 제어기는 상기 LTU 페이로드 또는 정보 비트의 남은 부분을 모두 무시한다.
3. 만일 해석 중인 MuxPDU의 서비스 인식자가 상기 <표 13>에서와 같이 '000'으로 되어 있으면 상기 수신측 다중화/역다중화 제어기는 상기 LTU 페이로드 또는 정보 비트를 깨진 것으로 간주한다.
4. 만일 해석 중인 MuxPDU의 서비스 인식자가 상기 <표 13>에서와 같이 '001'에서 '110' 사이이고 부가 채널에 논리적 채널이 대응되는 서비스 중 하나를 가리키면 다음 1 비트 길이 지시자를 본다. 만일 서비스 인식자가 부가 채널에 논리적 채널이 대응되는 서비스 중 하나를 가리키지 않으면 상기 수신측 다중화/역다중화 제어기는 상기 LTU 페이로드 또는 정보 비트를 깨진 것으로 간주한다.
5. 만일 1 비트 길이 지시자가 '0'이면 상기 LTU 페이로드 또는 정보 비트의 남은 부분이 모두 하나의 MuxPDU이다. 따라서 남은 부분의 크기에서 4 비트를 뺀 값을 길이로 하는 MuxPDU에서 데이터 블록을 상위 서비스에게 전달한다.
6. 만일 1 비트 길이 지시자가 '1'이면 다음 2 비트의 길이 타입 필드를 본다. 만일 2 비트 길이 타입 필드가 '11'이면 상기 수신측 다중화/역다중화 제어기는 상기 LTU 페이로드 또는 정보 비트를 깨진 것으로 간주한다.
7. 만일 2 비트 길이 타입 필드가 '00'이면 상기 LTU 페이로드 또는 정보 비트의 남은 부분이 모두 하나의 MuxPDU이다. 따라서 남은 부분의 크기에서 13 비트를 뺀 값을 길이로 하는 MuxPDU에서 데이터 블록을 상위 서비스에게 전달한다.
8. 만일 2 비트 길이 타입 필드가 '01'이면 다음 7 비트의 길이 필드를 본다. 만일 7 비트의 길이에 1을 더한 값이 상기 LTU 페이로드 또는 정보 비트의 남은 부분의 길이를 바이트로 표시한 것 보다 크면 상기 수신측 다중화/역다중화 제어기는 상기 LTU 페이로드 또는 정보 비트를 깨진 것으로 간주한다.
9. 만일 7 비트의 길이 필드 값에 1을 더한 값이 상기 LTU 페이로드 또는 정보 비트의 남은 부분의 길이를 바이트로 표시한 것과 같거나 작으면 상기 구해진 값이 MuxPDU의 길이이다. 따라서 상기 LTU 페이로드 또는 정보 비트의 남은 부분에서 상기 구해진 값을 길이로 하는 MuxPDU에서 앞부분 13 비트를 뺀 나머지 부분을 길이와 함께 상위 서비스에게 전달한다.
10. 만일 2 비트 길이 타입 필드가 '10'이면 다음 15 비트의 길이 필드를 본다. 만일 15 비트의 길이에 1을 더한 값이 상기 LTU 페이로드 또는 정보 비트의 남은 부분의 길이를 바이트로 표시한 것 보다 크면 상기 수신측 다중화/역다중화 제어기는 상기 LTU 페이로드 또는 정보 비트를 깨진 것으로 간주한다.
11. 만일 15 비트의 길이 필드 값에 1을 더한 값이 상기 LTU 페이로드 또는 정보 비트의 남은 부분의 길이를 바이트로 표시한 것과 같거나 작으면 상기 구해진 값이 MuxPDU의 길이이다. 따라서 상기 LTU 페이로드 또는 정보 비트의 남은 부분에서 상기 구해진 값을 길이로 하는 MuxPDU에서 앞부분 13 비트를 뺀 나머지 부분을 길이와 함께 상위 서비스에게 전달한다.
12. 상기 MuxPDU를 구하고 상기 LTU 페이로드 또는 정보 비트의 남은 부분이 있으면 남은 부분에 대해서 상기 과정을 다시 수행한다.
상기 도 3 및 도 4에 도시된 바와 같은 RLP제어기 131에 의해 수행되는 본 발명에 따른 다음과 같이 구분되어 설명될 수 있다.
RLP제어기의 데이터 송신전 동작
RLP제어기 131은 동작을 시작하기 전에 상기 도 3과 도 4에서 보여주는 것과 같이 레지스터 L_V(S) 132와, L_V(NR) 139, L_V(N) 135, L_V(R) 136, E 134를 '0'으로 설정한다. 상기 RLP제어기 131은 동작을 시작하기 전에 재전송 버퍼 133과, NAK 리스트 137, 그리고 재정렬 버퍼 138을 모두 비운다. 또한 RLP제어기 131은 동작을 시작하기 전에, L_B(NR) 레지스터 141, B(NR) 레지스터 142, L_B(N) 레지스터 143, B(N) 레지스터 144를 모두 '0'으로 설정한다. RLP제어기 131은 마지막으로 재전송에 관련된 모든 타이머를 끈다.
상기 RLP제어기 131이 상기 다중화/역다중화 제어기에게 전달할 수 있는 데이터 블록(RLP 프레임)의 종류는 도 7과 도 8와 같다.
상기 도 7은 기본 채널로 전송할 수 있는 RLP 프레임을 보여주고, 상기 도 8은 부가 채널로 전송할 수 있는 RLP 프레임을 보여준다. 본 발명에서 RLP 프레임은 다음과 같이 부르겠다. 상기 도 7 또는 하기 <표 14>의 SYNC, SYNC/ACK, ACK, 또는 NAK 프레임은 제어 프레임(control frame)이라고 하고 데이터를 담은 프레임을 데이터 프레임(data frame)이라고 칭하겠다. 상기 데이터 프레임은 적어도 한 바이트 이상의 새로 전송되는 데이터를 담고 있는 새 데이터 프레임(new data frame)과, 재전송되는 데이터만 담고 있는 재전송 데이터 프레임(retransmitted data frame)으로 나누어진다. 상기 16 비트 SEQ 필드만 가지는 프레임은 아이들 프레임(idle frame)이라고 하고, 상기 L_V(S) 레지스터 132 등의 값을 가지는 프레임은 상태 동기화 프레임(Status Synchronization Frame)이라고 하여 제어 프레임, 데이터 프레임과는 별도로 칭하겠다.
상기 도 7에서 기본 채널로 전송되는 데이터 블록은 최대 하나의 제어 프레임, 데이터 프레임 또는 아이들 프레임이 가능하다. 상기 도 7은 기본 채널을 통해 전송될 수 있는 데이터 블록에 포함되는 각종 프레임들의 일예를 도시하고 있는 것으로, (a)는 제어 프레임(SYNC,SYNC/ACK,ACK FRAME)의 포맷을 나타내고 있고, (b),(c),(d)는 데이터 프레임(FUNDICATED DATA FRAME)의 포맷을 나타내고 있고, (e)는 아이들 프레임(IDLE FRAME)의 포맷을 나타내고 있고, (f)는 상태 동기화 프레임(STATUS SYNCHRONIZATION FRAME)의 포맷을 나타내고 있다. 상기 도 7의 (a)를 참조하면, 제어 프레임은 프레임의 전단에 위치하는 8비트의 CTL 필드와, 16비트의 FCS 필드와, 프레임의 후단에 위치하는 1비트의 TYPE 필드로 구성된다. 상기 CTL 필드는 SYNC 프레임인 경우 '11100001' 값으로 채워지고, SYNC/ACK 프레임인 경우에는 '11100010' 값으로 채워지고, ACK 프레임인 경우에는 '11100011'로 채워진다. 이때 TYPE 필드는 '0'으로 채워진다. 상기 도 7의 (b)는 블록 일련 번호 방식에 따라 데이터 프레임을 전송하는 경우에 해당하는 데이터 프레임의 포맷을 나타내고, (c)와 (d)는 데이터 프레임을 블록 일련 번호 방식을 사용하지 전송하지 못하는 경우에 해당하는 데이터 프레임의 포맷을 나타낸다. 블록 일련 번호 방식에 따라 데이터 프레임을 전송하는지 아닌지 여부에 대한 판단은 각 데이터 프레임의 후단에 위치하는 TYPE 필드의 값으로부터 가능하다. (b)에 도시된 바와 같이 데이터 프레임을 블록 일련 번호 방식을 사용하여 전송하는 경우에 TYPE 필드에는 '1'의 값이 채워지고, (c) 및 (d)에 도시된 바와 같이 데이터 프레임을 블록 일련 번호 방식을 사용하지 않고 전송하는 경우에 TYPE 필드에는 '0'의 값이 채워진다. 상기 (b)를 참조하면, 데이터 프레임은 SEQ 필드와, DATA 필드와, PADDING 필드와, SEQ_HI 필드와, TYPE 필드로 구성된다. 일예로서, 상기 SEQ 필드는 8비트로 구성되고, DATA 필드는 160/256비트로 구성되고, SEQ_HI 필드는 1비트로 구성되고, TYPE 필드는 1비트로 구성될 수 있다. 여기서, DATA 필드에 전송을 위해 채워지는 데이터의 비트 수는 160(전송율 집합 1의 경우)/256(전송율 집합 2의 경우)비트이지만, 이 전송 데이터를 나타내는 일련 번호가 채워지는 필드, 즉 SEQ 필드와, SEQ_HI 필드는 9비트로서 구성이 가능하다. 왜냐하면, 전송 데이터에 대해 바이트 단위로 일련 번호를 부여하는 것이 아니라 바이트 단위 일련 번호의 정수배에 해당하는 블록 단위로 일련 번호를 부여하기 때문이다. 상기 (c)를 참조하면, 데이터 프레임은 CTL 필드와, LEN 필드와, SEQ 필드와, DATA 필드와, PADDING 필드와, SEQ_HI 필드와, TYPE 필드로 구성된다. 일예로서, 상기 CTL 필드는 2비트로 구성되고, LEN 필드는 4비트로 구성되고, SEQ 필드는 18비트로 구성되고, DATA 필드는 (144(전송율 집합 1의 경우)/240(전송율 집합 2의 경우)-LEN*8)비트로 구성되고, SEQ_HI 필드는 1비트로 구성되고, TYPE 필드는 1비트로 구성된다. 상기 (d)를 참조하면, 데이터 프레임은 CTL 필드와, LEN 필드와, SEQ 필드와, DATA 필드와, PADDING 필드와, SEQ_HI 필드와, TYPE 필드로 구성된다. 일예로서, 상기 CTL 필드는 2비트로 구성되고, LEN 필드는 12비트로 구성되고, SEQ 필드는 18비트로 구성되고, DATA 필드는 (LEN*8)비트로 구성되고, SEQ_HI 필드는 1비트로 구성되고, TYPE 필드는 1비트로 구성된다. 상기 (c)와 (d)에 도시된 데이터 프레임들은 모두 블록 일련 번호 방식을 사용하지 않고 데이터 프레임을 전송하는 경우로 DATA 필드에 채워지는 비트 수에 있어서 차이가 있고, 또한 그 차이에 기인하여 LEN 필드에 차이가 있는 것이다. 상기 (e)를 참조하면, 아이들 프레임은 16비트의 SEQ 필드와, PADDING 필드로 구성된다. 상기 (f)를 참조하면, 상태 동기화 프레임은 CTL 필드와, L_V(S) 필드와, L_V(R) 필드와, L_V(N) 필드와, PADDING 필드와, FCS 필드와, PADDING 필드와, TYPE 필드로 구성된다. 이때 CTL 필드는 '11100101' 값으로 채워지고, TYPE 필드는 '0'의 값으로 채워진다. 일예로, 상기 CTL 필드는 8비트로 구성되고, L_V(S) 필드는 20비트로 구성되고, L_V(R) 필드는 20비트로 구성되고, L_V(N) 필드는 20비트로 구성되고, FCS 필드는 16비트로 구성되고, TYPE 필드는 1비트로 구성된다.
상기 도 8에서 부가 채널로 전송되는 데이터 블록은 최대 하나의 데이터 프레임이 가능하다. 상기 도 8의 (a)는 블록 일련 번호 방식에 따라 데이터 프레임을 전송하는 경우에 해당하고, (b)와 (c)는 블록 일련 번호 방식을 사용하지 않고 바이트 일련 번호 방식에 따라 데이터 프레임을 전송하는 경우에 해당한다. 부가 채널을 통해 전송하기 위한 데이터 프레임이 블록 일련 번호 방식에 따른 것인지 아닌지는 데이터 프레임의 TYPE 필드로부터 알 수 있다. 상기 TYPE 필드가 '0'인 경우는 블록 일련 번호 방식에 따른 데이터 프레임이고, '1'인 경우는 블록 일련 번호 방식을 사용하지 않는 경우에 따른 데이터 프레임이다. 상기 도 8의 (a)를 참조하면, 데이터 프레임은 TYPE 필드와, PADDING 필드와, SEQ 필드와, DATA 필드로 구성된다. 이때 TYPE 필드는 '0'으로 채워진다. 일예로, 상기 TYPE 필드는 1비트로 구성되고, PADDING 필드는 2비트로 구성되고, SEQ 필드는 9비트로 구성된다. 상기 도 8의 (b)를 참조하면, 데이터 프레임은 TYPE 필드와, SEQ 필드와, DATA 필드로 구성된다. 일예로, 상기 TYPE 필드는 1비트로 구성되고, SEQ 필드는 19비트로 구성된다. 상기 도 8의 (c)를 참조하면, 데이터 프레임은 SEQ 필드와, DATA 필드로 구성된다. 일예로, 상기 SEQ 필드는 19비트로 구성된다.
상기 RLP제어기 131은 데이터를 전송하기 전에 재설정 과정을 수행한다. 상기 RLP제어기 131은 SYNC 프레임을 데이터 블록으로 다중화/역다중화 제어기 140에게 계속 전달한다.
상기 RLP제어기 131은 SYNC 프레임을 상기 다중화/역다중화 제어기 140에게서 받으면, SYNC/ACK 프레임을 상기 다중화/역다중화 제어기 140에게 물리 채널 프레임이 수신되었고 빈 데이터 블록이 아니며 SYNC 프레임이 아닐 때까지 계속 전달한다.
상기 RLP제어기 131은 SYNC/ACK 프레임을 받으면, 상기 다중화/역다중화 제어기 140에게 ACK 프레임을 전달한다. 상기 RLP제어기 131은 ACK 프레임을 상기 다중화/역다중화 제어기 140에서 물리 채널 프레임이 수신되었고 빈 데이터 블록이 아니며 SYNC/ACK 프레임이 아닐 때까지 계속 전달한다. 상기 RLP제어기 131은 물리 채널 프레임이 수신되었고 수신된 데이터 블록이 빈 데이터 블록이 아니며 SYNC/ACK 프레임이 아닌 RLP 프레임을 가지고 있으면 데이터 송신을 시작한다.
상기 RLP제어기 131은 ACK 프레임을 받으면 데이터 송신을 시작한다. 상기 RLP제어기 131은 상기 다중화/역다중화 제어기 140에게 SYNC, SYNC/ACK, ACK 프레임을 제외한 다른 프레임을 전달할 수 있다.
RLP제어기의 데이터 송신 동작
RLP제어기 131은 데이터 송신을 할 때 20 비트 일련 번호 레지스터 L_V(S) 132를 사용한다. 상기 RLP제어기 131은 상기 일련 번호 레지스터 L_V(S) 132에서 프레임에 붙일 일련 번호를 결정한다. 상기 일련 번호는 모두 220과의 부호없는 모듈로(modulo) 연산을 사용한다. 일련 번호 N이 있을 때 (N + 1) modulo 219에서 (N +219 - 1) modulo 220까지의 일련 번호들은 N 보다 크다고 말하고, (N - 219) modulo 220에서 (N - 1) modulo 220까지의 일련 번호는 N 보다 작다고 말한다.
RLP제어기 131은 데이터 송신을 할 때 20 비트 일련 번호를 각각의 데이터 마다 부여한다. 이 값은 상기 L_V(S) 레지스터 132에서 생성한다. RLP제어기 131은 프레임 전송할 때 언제나 첫번째 데이터 바이트의 일련 번호를 표시하여 보낸다. RLP제어기 131은 프레임에 첫번째 데이터 바이트의 일련 번호를 표시할 때 상기 20 비트의 일련 번호 중에서 하위 19 비트를 표시하거나 또는 본 발명에서 제안하는 방법을 사용한 9 비트 값을 표시할 수 있다.
RLP제어기의 기본 채널 데이터 송신 동작
송신측 다중화/역다중화 제어기 140은 상기 RLP제어기 131에게 기본 채널로 전송할 데이터 블록을 요청하여 상기 RLP제어기 131이 프레임을 생성하도록 한다. 상기 송신측 다중화/역다중화 제어기 140은 상기 RLP제어기 130에게 데이터 블록을 요청하면서 상기 RLP제어기 131이 만들어내야하는 데이터 블록의 크기를 함께 알려준다.
상기 RLP제어기 131은 기본 채널로 전송할 데이터 블록을 만들 때 다음의 우선 순위에 따라 데이터 블록을 만든다.
1. 제어 프레임 (SYNC, SYNC/ACK, ACK, NAK) 또는 상태 동기화 프레임(Status Synchronization Frame)
2. 재전송 데이터 프레임
3. 데이터 프레임
4. 아이들 프레임
전송할 제어 프레임이 있으면, 상기 RLP제어기 131은 다음과 같이 제어 프레임을 만든다. SYNC, SYNC/ACK, ACK 프레임의 경우, 상기 도 7의 (a)에 도시된 바와 같이 CTL 필드를 프레임 종류에 따라서 설정한 후 FCS 필드를 붙인다. FCS 필드는 RFC-1662에 의하여 규정된 다항식(polynomial)에 의하여 만들어지는 16 비트 프레임 점검 비트열(frame check sequence)이다. 상기 FCS 필드는 앞에 오는 모든 비트에 대하여 만들어진다. 상기 RLP제어기 131은 상기 다중화/역다중화 제어기 140에서 알려준 크기에 맞추어 상기 FCS 필드 다음을 모두 '0'으로 설정한다. 상기 RLP제어기 131은 상기 생성된 데이터 블록을 상기 다중화/역다중화 제어기 140에게 전달한다.
재전송하여야할 데이터들이 있으면, 상기 RLP제어기 131은 NAK 프레임을 생성하여 상기 다중화/역다중화 제어기에게 전달한다. 상기 NAK 프레임은 하기 <표 14>와 같은 구조를 가진다.
NAK 프레임
CTL 8 비트
NAK_COUNT 2 비트
NAK_COUNT + 1만큼 다음의 필드들이 들어간다:
NAK_TYPE_AND_UNIT 4 비트
NAK_TYPE_AND_UNIT이 '0001'이면 다음의 필드들이 들어간다:
FIRST 20 비트
LAST 20 비트
NAK_TYPE_AND_UNIT이 표 15 또는 16에 정의된 값이면 다음의 필드들이 들어간다.
NAK_MAP_SEQ 20 비트
NAK_MAP 8 비트
어떠한 NAK_TYPE에 대해서도 다음의 필드들이 들어간다:
PADDING_1 가변길이
FCS 16 비트
PADDING_2 가변길이
상기 <표 14>에서 상기 RLP제어기 131은 NAK 프레임을 다음과 같이 만든다. 상기 <표 14>의 CTL 필드는 '11100100'으로 설정한다. 상기 RLP제어기 131은 상기 NAK 프레임에 포함되는 재전송 요구의 수에서 하나를 뺀 값을 상기 NAK_COUNT 필드값으로 한다. 상기 RLP제어기 131은 상기 NAK_COUNT 필드값에 하나를 더한 만큼 재전송 요구를 넣는다. 상기 재전송 요구는 상기 <표 14>에서 알 수 있듯이 NAK_TYPE_AND_UNIT 필드와 이 필드 값에 따라서 FIRST, LAST 필드 또는 NAK_MAP_SEQ, NAK_MAP 필드로 구성된다. 상기 재전송 요구의 NAK_TYPE_AND_UNIT 필드를 '0001'으로 설정한 경우, 상기 RLP제어기 131은 연속적으로 재전송을 요청하는 첫번째 일련 번호를 FIRST 필드에 넣고 마지막 일련 번호를 LAST 필드에 넣는다. 상기 RLP제어기 131은 상기 NAK_TYPE_AND_UNIT을 다음 <표 15> 또는 <표 16>과 같이 설정할 수 있다. 상기 RLP제어기 131이 상기 NAK_TYPE_AND_UNIT 필드를 <표 15> 또는 <표 16>과 같이 설정하면 재전송 요구는 NAK_MAP_SEQ 필드와 NAK_MAP 필드를 가지는 NAK MAP 방식이 된다.
NAK_TYPE_AND_UNIT 필드 (전송율 집합 1)
필드 값 일련 번호 수
'0010' 20개
'0011' 42개
'0100' 43개
'0101' 91개
'0110' 187개
'0111' 379개
'1000' 763개
NAK_TYPE_AND_UNIT 필드 (전송율 집합 2)
필드 값 일련 번호 수
'0001' 32개
'0010' 66개
'0011' 67개
'0100' 139개
'0101' 283개
'0110' 319개
'0111' 571개
'1000' 1147개
'1001' 2587개
'1010' - '1111' 예약
상기 RLP제어기 131은 상기 <표 15> 또는 <표 16>을 참고하여 NAK MAP을 채운다. 상기 NAK MAP은 첫번째 일련 번호를 NAK_MAP_SEQ 필드에 넣고 상기 <표 15> 또는 <표 16>에 표시된 단위로 재전송을 요청하는 일련 번호들을 NAK_MAP에 표시한다. 상기 RLP제어기 131은 상기 NAK MAP을 사용하여, NAK_TYPE_AND_UNIT 필드에 의해서 결정된 단위가 U일 때, 상기 NAK_MAP에서 NAK_MAP_SEQ에서 (NAK_MAP_SEQ + U - 1) modulo 220까지의 일련 번호에 해당하는 모든 데이터에 대해 재전송을 요청하고, NAK_MAP의 최상위에서 n번째 비트가 '1'일 때마다 (NAK_MAP_SEQ + n * U) modulo 220에서 (NAK_MAP_SEQ + (n + 1) * U - 1) modulo 220까지의 일련 번호에 해당하는 모든 데이터에 대해서 재전송을 요청한다. 상기 n 값은 1에서 8까지의 값을 가질 수 있다. 상기 NAK MAP에서 예를 들어 NAK_TYPE_AND_UNIT 필드가 '0010'이고 전송율 집합이 1일 때 NAK_MAP_SEQ가 '0'으로 설정되어 있고 NAK_MAP이 '10000000'이면 이를 수신한 RLP제어기는 일련 번호 0에서 39까지의 데이터를 재전송하여야 한다.
상기 RLP제어기 131은 상기 재전송 요구를 상기 NAK_COUNT 필드값에 하나를 더한 만큼 만들어 넣은 다음 FCS 필드를 바이트 정렬로 맞추기 위하여 '0'으로 패딩을 하고 FCS 필드를 채운다. 상기 FCS 필드는 RFC-1662에 의하여 규정된 다항식(polynomial)에 의하여 만들어지는 16 비트 프레임 점검 비트열(frame check sequence)이다. 상기 FCS 필드는 앞에 오는 모든 비트에 대하여 만들어진다. 상기 FCS 필드를 넣은 다음 상기 RLP제어기 131은 데이터 블록의 나머지 부분에 대해서 '0'을 채운다.
재전송 또는 새로 보낼 데이터가 있을 때, 상기 RLP제어기 131은 상기 도 7의 (b), (c), (d) 중의 한 가지 포맷을 사용할 수 있다. 상기 도 7의 (b) 포맷은 자신이 실어보내는 최대 데이터 길이를 이용하여 자신이 실어보내는 첫번째 데이터 바이트의 일련 번호를 9 비트(SEQ 8비트, SEQ_HI 1비트)로 적어서 보낼 수 있을 때 사용한다. 상기 자신이 전송하는 데이터 길이를 이용하여 자신이 실어보내는 데이터의 일련 번호를 줄여서 전송하는 방법을 하기에서는 블럭 단위 일련 번호 방식이라고 칭할 것이다. 상기 RLP제어기 131은 새로 보낼 데이터가 있을 때는 첫번째 데이터 바이트의 일련 번호를 상기 L_V(S) 레지스터 132에 저장된 첫번째 데이터 바이트의 20 비트 일련 번호로 정한다. 상기 도 7의 (c)와 (d) 포맷은 상기 블럭 단위 일련 번호 방식으로 전송할 수 없을 때 사용하는 포맷이다. 상기 도 7의 (c)와 (d)에서는 전송할 첫번째 데이터 바이트의 일련 번호의 하위 19 비트(SEQ 18비트, SEQ_HI 1비트)를 담아서 보내는 것은 같지만 전송할 수 있는 데이터의 길이가 각기 다르다.
상기 RLP제어기 131은 우선 첫번째 데이터 바이트의 일련 번호와 전송할 연속적인 데이터의 양을 사용하여 생성할 프레임의 포맷을 결정한다. 즉, 상기 RLP제어기 131은 다음의 조건을 만족시키면 상기 도 7의 (b) 포맷을 사용하여 전송한다.
첫째, 전송할 연속적인 데이터의 첫번째 데이터 바이트의 일련 번호 S와 상기 L_B(NR) 레지스터 141 중 현재 전송율에 대응되는 레지스터의 값과의 차이가 상기한 바와 같이 상기 도 7의 (b) 포맷으로 보내는 데이터 개수 B의 배수(즉 전송율 집합 1에서 20 또는 전송율 집합 2에서 32의 배수)이고,
둘째, 전송할 연속적인 데이터의 전송할 첫번째 데이터 바이트의 일련 번호 값이 하기 <수학식 1>로 구해지는 값 M 보다 작으며,
셋째, 전송할 연속적인 데이터의 양이 상기 도 7의 (b) 포맷으로 보낼 수 있는 크기 B와 같거나 크면, (즉 20 바이트 또는 32 바이트 이상이 되면) 상기 도 7의 (b) 포맷을 사용할 수 있고, 그렇지 않으면 상기 도 7의 (c) 또는 (d) 포맷을 사용한다.
상기 RLP제어기 131은 상기 L_B(NR) 레지스터 141과 B(NR) 레지스터 142에 저장된 값을 이용하여 상기 M 값을 구한다. 상기 RLP처리기 130은 상기 도 7의 (b)에 제시된 포맷을 사용하여 기본 채널로, 또는 상기 도 8의 (a)에 제시된 포맷을 사용하여 부가 채널로 전송 가능한 데이터 블록의 크기들의 개수만큼 상기 L_B(NR) 레지스터 141들과 B(NR) 레지스터 142을 가지고 있다. 상기 L_B(NR) 레지스터 141들은 각각 다음 <표 17>과 <표 18>에 나타난 값의 배수이면서 상기 L_V(NR) 레지스터 139의 값 보다 작은 최대값을 저장하는 20 비트 레지스터이다.
L_B(NR) 레지스터들 (전송율 집합 1)
레지스터 기준값
L_B(NR) [1] 20
L_B(NR) [2] 42
L_B(NR) [3] 43
L_B(NR) [4] 91
L_B(NR) [5] 187
L_B(NR) [6] 379
L_B(NR) [7] 763
L_B(NR) [8] 1531
L_B(NR) 레지스터들 (전송율 집합 2)
레지스터 기준값
L_B(NR) [1] 32
L_B(NR) [2] 66
L_B(NR) [3] 67
L_B(NR) [4] 139
L_B(NR) [5] 283
L_B(NR) [6] 319
L_B(NR) [7] 571
L_B(NR) [8] 1147
L_B(NR) [9] 2587
즉, 상기 L_B(NR) 레지스터들 141은 무한히 긴 데이터에 대해서 '0'부터 차례대로 각 바이트에 번호를 부여하였을 때 자신의 기준값 단위로 데이터를 전송하는 경우 각 블럭 데이터의 첫번째 바이트가 가질 수 있는 20 비트 일련 번호를 나타낸다. 상기 B(NR) 레지스터들 142는 역시 상기 <표 17> 또는 <표 18>의 L_B(NR) 레지스터 141들과 짝을 이루며, 상기 각 L_B(NR) 레지스터들 141이 가진 20 비트 일련 번호를 9 비트 값으로 변환한 값을 가지는 9 비트 레지스터이다. 상기 RLP제어기 131은 상기 L_B(NR) 레지스터 141들의 저장된 값을 사용하여 하기 <수학식 1>에서 최대값 M을 계산한다.
상기 <수학식 1>에서 CEILING(a, b) 함수는 a 보다 크거나 같으면서 b의 배수가 되는 최소의 값을 구하는 함수이고, R은 현재 전송율, 그리고 B는 현재 전송율 R에서 상기 도 7의 (a)에 제시된 포맷을 사용하여 기본 채널로, 또는 상기 도 8의 (a)에 제시된 포맷을 사용하여 부가 채널로 전송 가능한 데이터 블록의 크기이다. 상기 L_B(NR) [R] 레지스터는 상기 B 값을 자신의 기준값으로 가지는 상기 <표 17> 또는 <표 18>의 레지스터이다.
상기 도 7의 (b) 포맷을 사용할 때 상기 RLP제어기 131은 먼저 SEQ 필드를 설정하기 위해 상기 첫번째 데이터 바이트의 20 비트 일련 번호 L_SEQ와 L_B(NR) [R] 레지스터의 20 비트 값과의 차이 D를 구한다. 상기 20 비트 A와 B의 차이 D는 다음의 <수학식 2>를 사용하여 구할 수 있다.
상기 RLP제어기 131은 상기 첫번째 데이터 바이트의 일련 번호 20 비트 L_SEQ 값을 A로 L_B(NR) [R] 레지스터의 20 비트 값을 B로 바꾼 상기 <수학식 2>를 사용하여 차이값을 구한다. 상기 RLP제어기 131은 상기 차이값 D를 사용하여 상기 첫번째 데이터 바이트의 일련 번호 20 비트 L_SEQ 값을 변환한 9 비트 B_SEQ을 다음 <수학식 3>과 같이 구한다.
상기 <수학식 3>에서 FLOORING(a, b) 함수는 a 보다 작거나 같으면서 b의 배수가 되는 최소의 값을 구하는 함수이고, B는 현재 전송율 R에서 상기 도 7의 (b)에 제시된 포맷을 사용하여 기본 채널로, 또는 상기 도 8의 (a)에 제시된 포맷을 사용하여 부가 채널로 전송 가능한 데이터 블록의 크기이다. 상기 B(NR) [R] 레지스터는 상기 L_B(NR) 레지스터 141들이 가진 20 비트 일련 번호를 변환한 9 비트 값을 가진다. 상기 RLP제어기 131은 상기 도 7의 (b) 포맷을 사용할 때 상기 구해진 B_SEQ 값의 하위 8 비트로 SEQ 필드를 설정하고 나머지 상위 1 비트로 SEQ_HI 필드를 설정하여 수신측에서 총 9 비트의 값을 얻을 수 있도록 한다.
다음에, 상기 RLP제어기 131은 TYPE 필드를 '1'로 설정하고 DATA 필드를 전송할 데이터로 채운다.
상기 도 7의 (c) 또는 (d) 포맷을 사용하여 전송할 때 상기 RLP제어기 131은 전송할 데이터의 양에 따라서 생성할 프레임의 포맷을 결정한다. 즉, 상기 RLP제어기 131은 다음의 조건을 만족시키면 상기 도 7의 (c) 포맷을 사용하여 전송한다. 전송할 연속적인 데이터의 양이 상기 도 7의 (c) 포맷으로 보낼 수 있는 데이터 양보다 많은 경우(즉, 전송율 집합 1에서 3 바이트, 전송율 집합 2에서 15 바이트 보다 같거나 많은 경우), 상기 도 7의 (c) 포맷을 사용할 수 있고, 그렇지 않으면 상기 도 7의 (d) 포맷을 사용한다.
상기 도 7의 (c) 포맷을 사용할 때 상기 RLP제어기 131은 먼저 SEQ 필드를 상기 첫번째 데이터 바이트의 20 비트 일련 번호 L_SEQ 값의 하위 18 비트로, SEQ_HI 필드를 상위에서 두번째 1 비트로 설정하여 수신측에서 상기 첫번째 데이터 바이트의 20 비트 일련 번호 L_SEQ 값의 하위 19 비트를 얻을 수 있도록 한다.
다음에, 상기 RLP제어기 131은 TYPE 필드를 '0'으로 설정하고, CTL 필드를 '01'로 설정한 다음, DATA 필드를 전송할 데이터로 채운다. 상기 과정에서 주의할 점은 전송할 데이터를 최소한 전송율 집합 1에서 3 바이트, 전송율 집합 2에서 15 바이트 이상 채워야한다는 것이다. 상기 RLP제어기 131은 DATA 필드에서 SEQ_HI 필드까지 남은 공간은 모두 '0'으로 설정한다.
그 다음에, 상기 RLP제어기 131은 LEN 필드를 전송율 집합 1에서 18 바이트, 전송율 집합 2에서 30 바이트 값에서 전송하는 데이터의 바이트 수를 뺀 설정한다. 따라서 LEN 필드가 만일 '0'이면 전송율 집합 1에서는 3 바이트의 데이터를 가지고 있는 것이 되고 전송율 집합 2에서는 15 바이트 데이터를 가지고 있는 것이 된다. 상기한 바와 같이 전송하는 데이터는 전송율 집합 1에서 18 바이트, 전송율 집합 2에서 30 바이트 값에서 전송하는 데이터의 바이트 수를 뺀 만큼이므로 수신측에서는 이 LEN 필드값을 가지고 전송된 데이터의 수를 구할 수 있다.
상기 도 7의 (d) 포맷을 사용할 때, 상기 RLP제어기 131은 먼저 SEQ 필드를 상기 첫번째 데이터 바이트의 20 비트 일련 번호 L_SEQ의 하위 18 비트로, SEQ_HI 필드를 상위에서 두번째 1 비트로 설정하여 수신측에서 상기 첫번째 데이터 바이트의 20 비트 일련 번호 L_SEQ의 하위 19 비트의 값을 얻을 수 있도록 한다.
다음에, 상기 RLP제어기 131은 TYPE 필드를 '0'으로 설정하고, CTL 필드를 '10'으로 설정한 다음, DATA 필드를 전송할 데이터로 채운다. 상기 RLP제어기 131은 DATA 필드에서 SEQ_HI 필드까지 남은 공간은 모두 '0'으로 설정한다.
그 다음에, 상기 RLP제어기 131은 LEN 필드를 전송하는 데이터의 바이트 수로 설정한다.
새 데이터를 전송할 때 상기 RLP제어기 131은 상기 레지스터 L_V(S) 132에서 새 데이터 프레임의 각 데이터 바이트마다 고유의 20 비트 일련 번호를 붙인다. 즉, N 바이트의 데이터를 전송하는 경우 L_V(S) 레지스터 132의 값이 S이었다면, 데이터의 첫번째 바이트는 S를, n 번째 바이트는 (S + n - 1) modulo 220 번을, 마지막 N 번째바이트는 (S + N - 1) modulo 220 번의 일련 번호를 가지게 된다. 상기 N 바이트의 새 데이터를 전송하면 상기 RLP제어기 131은 상기 L_V(S) 레지스터 132를 (S + N) modulo 220으로 설정한다. 상기 RLP제어기 131은 상기 일련 번호 레지스터 L_V(S) 132를 새 데이터를 담는 데이터 프레임을 만들었을 때만 포함된 데이터 수만큼 증가시킨다. 즉, 이미 전송되었던 데이터를 재전송하는 경우, 또는 제어 프레임이나 아이들 프레임, 상태 동기화 프레임 등을 보낼 때에는 상기 L_V(S) 레지스터 132는 증가하지 않는다.
상기 RLP제어기 131은 새로 전송된 데이터들을 수신측의 재전송 요청에 대비하여 재전송 버퍼 133에 일련 번호와 함께 저장해 둔다. 상기 RLP제어기 131은 수신측에서 재전송을 요청한 경우, 요청된 일련 번호에 해당하는 데이터 바이트를 상기 재전송 버퍼 133에서 찾아서 재전송하여야 한다. 상기 RLP제어기 131은 상기 증가된 L_V(S) 레지스터 132 값이 상기 L_V(NR) 레지스터 139 값 보다 작게되면 상기 RLP제어기 131은 상기 재설정 과정을 수행한다.
상기 RLP제어기 131은 보낼 새 데이터 또는 재전송할 데이터도 없고 전송할 제어 프레임도 없을 경우, 상기 도 7의 (d) 포맷의 데이터 프레임을 전송할 수 있다. 이 경우 전송할 프레임의 SEQ 필드를 L_V(S) 레지스터 132의 하위 18 비트로 설정하고, SEQ_HI 필드를 상위에서 두번째 1 비트로 설정하여 수신측에서 상기 L_V(S) 레지스터 132의 20 비트 값의 하위 19 비트의 값을 얻을 수 있도록 한다. 그런 다음 상기 RLP 제어기 131은 LEN 필드를 '0'으로, TYPE 필드를 '0'으로 설정하고, CTL 필드를 '10'으로 설정한 다음, 나머지 부분을 '0'으로 채운 데이터 블록을 상기 다중화/역다중화 제어기 140에게 전달한다.
상기 RLP제어기 131은 다중화/역다중화 제어기 140이 16 비트, 20 비트 또는 32 비트의 길이를 가지는 데이터 블록을 요청하거나 보낼 새 데이터 또는 재전송할 데이터도 없고 전송할 제어 프레임도 없을 경우, 상기 도 7의 (e) 포맷과 같은 아이들 프레임을 전송할 수 있다. 상기 아이들 프레임을 만들기 위해서 상기 RLP제어기 131은 SEQ 필드를 L_V(S) 레지스터 132의 하위 16 비트로 채운다. 상기 RLP제어기 131은 나머지 데이터 블록 부분은 '0'으로 채운 데이터 블록을 상기 다중화/역다중화 제어기 140에게 전달한다.
상기 RLP제어기 131은 적절한 시간 간격을 두고 상기 도 7의 (f) 포맷과 같은 상태 동기화 프레임(Status Synchronization Frame)을 전송할 수 있다. 상기 RLP제어기 131은 상기 도 7의 (f) 포맷과 같은 상태 동기화 프레임을 전송할 때 CTL 필드는 '11100101'로 설정하고, 나머지 L_V(S), L_V(R), L_V(N) 필드는 각각 L_V(S) 레지스터 132, L_V(R) 레지스터 136, L_V(N) 레지스터 135의 값으로 설정한다.
RLP제어기의 기본 채널 데이터 수신 동작
RLP제어기 131은 제어 프레임 중에서 SYNC, SYNC/ACK, ACK 프레임를 수신하면 상기 재설정 과정을 수행한다.
상기 RLP제어기 131은 제어 프레임 중에서 NAK 프레임을 수신하면 상기 <표 15>에 따라 NAK 프레임을 해석하여 요청된 데이터 바이트들을 재전송한다.
상기 도 7의 포맷 (b)와 같은 프레임을 수신하였을 때 상기 RLP제어기 131은 다음과 같이 동작한다. 우선 상기 RLP제어기 131은 수신된 프레임의 8 비트 SEQ 필드와 1 비트 SEQ_HI 필드를 구하여 1 비트 SEQ_HI 필드를 8 비트 SEQ 필드값 앞에 붙인 9 비트 값 B_SEQ를 구한다. 상기 RLP제어기 131은 상기 B_SEQ 값과 상기 도 7의 포맷 (b)가 전송할 수 있는 데이터 크기 B를 사용하여 다음과 같은 <수학식 4>를 통해 일련 번호 L_SEQ를 구한다.
상기 <수학식 4>에서 R은 현재 전송율, B는 현재 전송율 R에서 상기 도 7의 (b)에 제시된 포맷을 사용하여 기본 채널로, 또는 상기 도 8의 (a)에 제시된 포맷을 사용하여 부가 채널로 전송 가능한 데이터 블록의 크기이다. 상기 B(N) [R] 레지스터는 상기 L_B(N) 레지스터 [R]이 가진 20 비트 일련 번호를 변환한 9 비트 값을 가진다.
상기 L_B(N) 레지스터들 143은 각각 다음 <표 17>과 <표 18>에 나타난 값의 배수이면서 상기 L_V(N) 레지스터 135의 값 보다 작은 최대값을 저장하는 20 비트 레지스터이다. 상기 RLP제어기 131은 일련번호 L_SEQ 값을 수신된 데이터의 첫번째 바이트의 20 비트 일련 번호 L_SEQ로 하고 상기 데이터 크기 B 값을 수신된 데이터 바이트 수 N으로 한다.
상기 RLP제어기 131은 상기 도 7의 포맷 (c) 또는 (d)와 같은 데이터가 담긴 프레임을 수신하였을 때 수신된 프레임의 18 비트 SEQ 필드와 1 비트 SEQ_HI 필드를 사용하여 1 비트 SEQ_HI 필드를 18 비트 SEQ 필드값 앞에 붙인 19 비트 일련 번호 값을 수신된 데이터의 첫번째 바이트의 일련 번호 S로 한다. 상기 RLP제어기 131은 상기 도 7의 포맷 (c) 또는 (d)와 같은 데이터가 담긴 프레임을 수신하였을 때 구해진 19 비트 일련 번호 값 S에서 다음의 <수학식 5>를 사용하여 수신된 데이터의 첫번째 바이트의 20 비트 일련 번호 L_SEQ를 구한다.
상기 RLP제어기 131은 상기 <수학식 5>에서 구한 L_SEQ 값을 수신된 데이터의 첫번째 바이트의 20 비트 일련 번호 L_SEQ로 하고, 상기 프레임에 담긴 LEN 필드에서 수신된 데이터 바이트 수를 구하여 구해진 값을 N으로 한다.
상기 RLP제어기 131은 데이터를 수신할 때 20 비트 일련 번호 레지스터인 L_V(N) 135와, L_V(R) 136, E 레지스터 134를 사용한다. 일련 번호 레지스터 L_V(R) 136은 다음에 받을 새 데이터 바이트의 일련 번호를 가리키고, 일련 번호 레지스터 L_V(N) 135는 연속적으로 수신되는 데이터 바이트에서 다음번으로 수신되어야하는 데이터 바이트의 일련 번호를 가리킨다. 즉, L_V(N) 레지스터 135에 저장된 일련 번호를 가지는 데이터 바이트가 도착해야 상기 RLP제어기 131은 상위 링크 프로토콜에게 데이터를 전달할 수 있으며, L_V(R) 보다 크거나 같은 일련 번호를 가지는 데이터 바이트는 새 데이터이지만, L_V(R) 보다 작고 L_V(N) 보다 크거나 같은 일련 번호를 가지는 데이터 바이트는 재전송 데이터이다.
상기 RLP제어기 131은 수신된 데이터의 첫번째 바이트의 일련 번호 L_SEQ와 20 비트 일련 번호 레지스터인 L_V(N) 레지스터 135, L_V(R) 레지스터 136과 상기 일련 번호 L_SEQ를 다음과 같이 비교한다.
첫째, 일련 번호 L_SEQ가 L_V(N) 레지스터 135보다 같거나 크고, L_V(R) 레지스터 136보다 작으면, 상기 RLP제어기 131은 이를 재전송 데이터로 간주한다.
둘째, 일련 번호 L_SEQ가 L_V(R) 레지스터 136보다 같거나 크고, L_V(R) 레지스터 136과 E 레지스터 134를 더한 값을 220으로 modulo 연산한 값 보다 작으면, 상기 RLP제어기 131은 이를 새 데이터로 간주한다.
셋째, 일련 번호 L_SEQ가 L_V(R) 레지스터 136과 E 레지스터 134를 더한 값을 220으로 modulo 연산한 값 보다 같거나 크면, 상기 RLP제어기 131은 이를 중복 데이터로 간주한다.
상기 RLP제어기 131은 중복 데이터로 간주된 데이터가 도착하면, 이미 수신한 데이터이므로 상기 중복 데이터를 버린다.
상기 RLP제어기 131은 새 데이터 또는 재전송 데이터로 간주된 데이터가 도착하면, 수신된 데이터 프레임의 각 데이터 바이트의 일련 번호를 앞에서부터 차례대로 상기 과정에서 구해진 L_SEQ에서 시작하는 일련 번호 L을 붙인다. 즉, n 번째 데이터 바이트는 일련 번호 L로 (L_SEQ + n - 1) modulo 220의 값을 가지며, 첫번째 바이트는 일련 번호로 L_SEQ 값을 가진다. 상기 RLP제어기 131은 수신된 데이터 프레임의 데이터 바이트에 대해서 각각의 일련 번호 순서대로 다음과 같은 작업을 수행한다. 상기 n은 1에서 수신된 데이터의 전체 길이 N까지의 값을 가진다.
상기 RLP제어기 131은 수신된 데이터가 재전송 데이터로 간주되었다면, 데이터 바이트의 일련 번호 L과 저장된 NAK 엔트리의 20 비트 일련 번호가 일치하는 엔트리를 찾는다. 상기 RLP제어기 131은 도 4에 도시된 바와 같이 NAK 리스트 137을 이용한다. 상기 NAK 리스트 137의 각 엔트리(entry)들은 20 비트 일련 번호와 일련 번호에 해당하는 데이터 바이트가 수신되었는지 여부를 기록하는 필드를 가지고 있으며, 재전송 타이머(retransmission timer)와 취소 타이머(abort timer)를 가지고 있다. 상기 RLP제어기 131은 상기 NAK 엔트리 137중에서 20 비트 일련 번호와 상기 수신된 첫번째 데이터 바이트의 일련 번호 L_SEQ 값과 같은 것이 있는지 찾는다. 만일 같은 NAK 엔트리가 있다면, 상기 RLP제어기 131은 다음을 수행한다.
첫째, 수신된 데이터 바이트의 일련 번호 L이 L_V(N) 보다 크거나 같고 L_V(R) 보다 작다면, 상기 RLP제어기 131은 상기 수신된 데이터 바이트를 재정렬 버퍼 138에 저장한다. 이때 상기 일련 번호 L 값이 L_V(N)과 같다면, 상기 RLP제어기 131은 재정렬 버퍼 138에 저장된 데이터 바이트들을 일련 번호로 L_V(N) 값을 갖는 데이터 바이트에서부터 연속적으로 전달할 수 있는 일련 번호를 가지는 데이터 바이트까지 상위 링크 프로토콜에게 전달한다. 상기 RLP제어기 131은 상기 수신된 데이터 바이트와 일치하는 엔트리에 기다리는 데이터 바이트가 수신되었음을 기록한다.
둘째, 수신된 데이터 바이트의 일련 번호 L이 L_V(R)과 같고, L_V(R)이 L_V(N)과 같은 경우, 상기 RLP제어기 131은 L_V(R)과 L_V(N)을 동시에 증가시키고 220에 대한 modulo 연산을 한다. 이와 달리 수신된 데이터 바이트의 일련 번호 L이 L_V(R)과 같고, L_V(R)이 L_V(N)과 같지 않은 경우, 상기 RLP제어기 131은 상기 L_V(R)을 증가시키고 220에 대한 modulo 연산을 한다. 상기 RLP제어기 131은 상기 수신된 데이터 바이트를 재정렬 버퍼 138에 저장한다.
셋째, 수신된 데이터 바이트의 일련 번호 L이 L_V(R) 보다 크다면, 상기 RLP제어기 131은 일련 번호 L_V(R)에서 (L - 1) modulo 220를 가지는 데이터 바이트에 대한 재전송을 요청하기 위해 NAK 리스트 137에 각 데이터 바이트에 대한 엔트리를 만든다. 각 엔트리는 해당하는 데이터 바이트에 대한 20 비트 일련 번호를 가지고 있게 된다. 또한, 상기 RLP제어기 131은 수신된 데이터 바이트를 재정렬 버퍼 138에 저장하고 L_V(R)을 (L + 1) modulo 220으로 설정한다.
한편, 상기 RLP제어기 131은 아이들 프레임을 받으면, 일련 번호 S를 SEQ 필드 값으로 설정한 다음, 하기 <수학식 6>과 같이 일련 번호 L_SEQ을 계산한다.
상기 RLP제어기 131은 상기 수신된 아이들 프레임의 일련 번호 L_SEQ 값이 L_V(R) 보다 크면, 일련 번호 L_V(R)에서 (L_SEQ - 1) modulo 220를 가지는 데이터 바이트에 대한 재전송을 요청하기 위해 NAK 리스트 137에 각 데이터 바이트에 대한 엔트리를 만든다. 각 엔트리는 해당하는 데이터 바이트에 대한 20 비트 일련 번호를 가지고 있게 된다. 상기 RLP제어기 131은 L_V(R)을 (L + 1) modulo 220으로 설정한다.
상태 동기화 프레임을 받으면, 상기 RLP제어기 131은 상태 동기화 프레임이 담아온 L_V(N) 필드값을 상기 L_V(NR) 레지스터 139로 설정한다. 만일 담아온 L_V(N) 필드값이 상기 RLP제어기 131이 가지고 있던 L_V(NR) 레지스터 139 값 보다 작으면 상기 RLP제어기 131은 상기 재설정 과정을 수행한다.
상기 과정에서 L_V(NR) 레지스터 139 값이 변경되었다면 상기 RLP제어기 131은 다음을 수행한다. 즉, 상기 변경된 L_V(NR) 레지스터 139 값에 따라서 모든 L_B(NR) 레지스터 141들과 모든 B(NR) 레지스터 142를 다음과 같이 수정한다.
첫째, 상기 RLP제어기 131은 상기 변경된 L_V(NR) 레지스터 139 값과 상기 L_B(NR) [R] 레지스터에 저장되어 있던 값과의 차이를 구하고 이 값 보다 작으면서 전송율 R에서 보낼 수 있는 데이터 블록의 크기 B의 배수가 되는 최대값 D를 구한다. 상기 RLP제어기 131은 상기 구해진 D 값을 상기 L_B(NR) [R] 레지스터에 더하고 modulo 220 연산을 수행한다.
둘째, 상기 RLP제어기 131은 상기 과정에서 구해진 값 D를 상기 과정에서 구해진 데이터 블록의 크기 B로 나눈 값을 상기 B(NR) [R] 레지스터에 더하고 modulo 29 연산을 수행한다.
상기 RLP제어기 131은 다중화/역다중화 제어기 140에서 깨진 데이터 블록이 수신되었음을 알리고 데이터 블록의 크기를 알리면, 상기 <표 17>, <표 18>과 같이 수신될 수 있는 상기 도 7의 (b)에 제시된 포맷을 사용하여 기본 채널로, 또는 상기 도 8의 (a)에 제시된 포맷을 사용하여 부가 채널로 전송 가능한 데이터 블록의 크기 M을 예상한다. 예를 들면 만일 깨진 데이터 블록이 기본 채널로 전송된 것이고 전송율 집합 1이 사용 중이라면 M은 20 바이트가 된다. 만일 깨진 데이터 블록이 기본 채널로 전송된 것이고 전송율 집합 2가 사용 중이라면 M은 32 바이트가 된다. 이와 달리, 깨진 데이터 블록이 부가 채널로 전송된 것이라면, 상기 <표 17>, <표 18>에서와 같이 M은 상기 다중화/역다중화 제어기 140에서 알린 깨진 데이터 블록의 길이 L 비트에서 12 비트를 빼고 다시 8 로 나눈 값을 M으로 한다. 예를 들어, 깨진 데이터 블록의 길이를 740 비트로 알려주었다면 12 비트를 빼고 8로 나눈 91 바이트를 M으로 생각한다.
상기 RLP제어기 131은 상기 깨진 데이터 블록의 최대 데이터 바이트 수 M을 얻으면 이 값을 레지스터 E 134에 저장된 값과 더하여 다시 레지스터 E 134에 저장한다. 이때 상기 증가된 E 레지스터 134와 L_V(N) 레지스터 135 값을 더하여 220 modulo 연산을 한 결과가 상기 L_V(N) 레지스터 135 값 보다 작게되면 상기 RLP제어기 131은 상기 재설정 과정을 수행한다.
상기 RLP제어기 131은 데이터 수신 과정에서 빈 데이터 블록이 아니면서 올바르게 수신된 데이터 블록이 하나라도 있거나 상기 다중화/역다중화 제어기가 아무런 프레임도 수신되지 않았다고 알려주면 상기 레지스터 E 134를 '0'으로 설정한다.
RLP제어기의 부가 채널 데이터 송신 동작
송신측 다중화/역다중화 제어기 140은 상기 RLP제어기 131에게 부가 채널로 전송할 데이터 블록을 요청하여 상기 RLP제어기 131이 프레임을 생성하도록 한다. 상기 송신측 다중화/역다중화 제어기 140은 상기 RLP제어기 131에게 데이터 블록을 요청하면서 상기 RLP제어기 131이 만들어내야하는 데이터 블록의 크기를 함께 알려준다.
상기 RLP제어기 131은 부가 채널로 전송할 데이터 블록을 만들 때 다음의 우선 순위에 따라 데이터 블록을 만든다.
1. 재전송 데이터 프레임
2. 데이터 프레임
재전송 또는 새로 보낼 데이터가 있을 때, 상기 RLP제어기 131은 도 8의 (a), (b), (c) 중의 한 가지 포맷을 사용할 수 있다. 상기 도 8의 (a) 포맷은 자신이 실어보내는 최대 데이터 길이를 이용하여 자신이 실어보내는 블럭 단위 일련 번호 방식으로 첫번째 데이터 바이트의 일련 번호를 9 비트로 적어서 보낼 수 있을 때 사용한다. 상기 RLP제어기 131은 새로 보낼 데이터가 있을 때는 첫번째 데이터 바이트의 일련 번호를 상기 L_V(S) 레지스터 132 값을 첫번째 데이터 바이트의 20 비트 일련 번호로 정한다.
상기 도 8의 (b)와 (c) 포맷은 상기 블럭 단위 일련 번호 방식으로 전송할 수 없을 때 사용하는 포맷이다. 상기 도 8의 (b)와 (c)에서는 전송할 첫번째 데이터 바이트의 일련 번호의 하위 19 비트를 담아서 보내는 것은 같지만 전송할 수 있는 데이터의 길이가 각각 다르다.
상기 RLP제어기 131은 우선 첫번째 데이터 바이트의 일련 번호와 전송할 연속적인 데이터의 양을 사용하여 생성할 프레임의 포맷을 결정한다. 즉, 상기 RLP제어기 131은 다음의 조건을 만족시키면 상기 도 8의 (a) 포맷을 사용하여 전송한다.
첫째, 전송할 연속적인 데이터의 첫번째 데이터 바이트의 일련 번호 S와 상기 L_B(NR) 레지스터 141 중 현재 전송율에 대응되는 레지스터의 값과의 차이가 상기 도 8의 (a) 포맷으로 보내는 데이터 개수 B의 배수이고,
둘째, 전송할 연속적인 데이터의 전송할 첫번째 데이터 바이트의 일련 번호 값이 상기 <수학식 1>로 구해지는 값 M 보다 작으며,
셋째. 전송할 연속적인 데이터의 양이 상기 도 8의 (a) 포맷으로 보낼 수 있는 크기 B와 같거나 크면, 상기 도 8의 (a) 포맷을 사용할 수 있고, 그렇지 않으면 상기 도 8의 (b) 또는 (c) 포맷을 사용한다.
상기의 <수학식 1>과 <수학식 2>, 그리고 <수학식 3>은 이미 설명한 바와 같다.
상기 도 8의 (a) 포맷을 사용할 때, 상기 RLP제어기 131은 먼저 SEQ 필드를 설정하기 위해 상기 첫번째 데이터 바이트의 20 비트 일련 번호 L_SEQ('A')와 L_B(NR) [R] 레지스터의 20 비트 값과('B')의 차이 D를 구한다. 상기 20 비트 A와 B의 차이 D는 상기의 <수학식 2>를 사용하여 구할 수 있다. 상기 RLP제어기 131은 상기 차이값 D를 사용하여 상기 첫번째 데이터 바이트의 일련 번호 20 비트 L_SEQ 값을 변환한 9 비트 B_SEQ을 상기 <수학식 3>과 같이 구한다. 상기 RLP제어기 131은 상기 구해진 9 비트 B_SEQ 값으로 SEQ 필드를 설정하여 수신측에서 9 비트의 값을 얻을 수 있도록 한다. 다음에, 상기 RLP제어기 131은 TYPE 필드를 '0'으로 설정하고, 2 비트를 '0'으로 채운 후, DATA 필드를 전송할 데이터로 채운다.
상기 도 8의 (b) 또는 (c) 포맷을 사용하여 전송할 때, 상기 RLP제어기 131은 전송할 데이터의 양에 따라서 생성할 프레임의 포맷을 결정한다. 즉, 상기 RLP제어기 131은 다음의 조건을 만족시키면 상기 도 8의 (b) 포맷을 사용하여 전송한다. 전송할 연속적인 데이터의 양이 상기에서 구해진 상기 도 8의 (a) 포맷으로 보낼 수 있는 데이터양보다 하나 적으면(즉, (B - 1) 바이트이면), 상기 도 8의 (b) 포맷을 사용할 수 있고, 그렇지 않으면 상기 도 8의 (c) 포맷을 사용한다.
상기 도 8의 (b) 포맷을 사용할 때, 상기 RLP제어기 131은 먼저 SEQ 필드를 상기 첫번째 데이터 바이트의 20 비트 일련 번호 L_SEQ 값의 하위 19 비트로 설정하여 수신측에서 상기 첫번째 데이터 바이트의 20 비트 일련 번호 L_SEQ 값의 하위 19 비트를 얻을 수 있도록 한다. 다음에, 상기 RLP제어기 131은 TYPE 필드를 '1'로 설정하고, DATA 필드를 전송할 데이터로 채운다. 상기 과정에서 주의할 점은 전송할 데이터를 (B - 1) 바이트 만큼 채워야한다는 것이다.
상기 도 8의 (c) 포맷을 사용할 때, 상기 RLP제어기 131은 먼저 SEQ 필드를 상기 첫번째 데이터 바이트의 20 비트 일련 번호 L_SEQ 값의 하위 19 비트로 설정하여 수신측에서 상기 첫번째 데이터 바이트의 20 비트 일련 번호 L_SEQ 값의 하위 19 비트를 얻을 수 있도록 한다. 상기 RLP제어기 131은 DATA 필드를 전송할 데이터로 채운다.
새 데이터를 전송할 때, 상기 RLP제어기 131은 상기 레지스터 L_V(S) 132에서 새 데이터 프레임의 각 데이터 바이트마다 기본 채널 송신 때와 마찬가지로 고유의 20 비트 일련 번호를 붙인다. 즉, N 바이트의 데이터를 전송하는 경우 L_V(S) 레지스터 132의 값이 S이었다면 데이터의 첫번째 바이트는 S를, n 번째 바이트는 (S + n - 1) modulo 220 번을, 마지막 N 번째바이트는 (S + N - 1) modulo 220 번의 일련 번호를 가지게 된다. 상기 N 바이트의 새 데이터를 전송하면 상기 RLP제어기 131은 상기 L_V(S) 레지스터 132를 (S + N) modulo 220으로 설정한다.
상기 RLP제어기 131은 기본 채널 송신 때와 마찬가지로 상기 일련 번호 레지스터 L_V(S) 132를 새 데이터를 담는 데이터 프레임을 만들었을 때만 포함된 데이터 수만큼 증가시킨다. 즉, 이미 전송되었던 데이터를 재전송하는 경우에는 상기 L_V(S) 레지스터 132는 증가하지 않는다.
상기 RLP제어기 131은 새로 전송된 데이터들을 수신측의 재전송 요청에 대비하여 재전송 버퍼 133에 일련 번호와 함께 저장해 둔다. 상기 RLP제어기 131은 수신측에서 재전송을 요청한 경우, 요청된 일련 번호에 해당하는 데이터 바이트를 상기 재전송 버퍼 133에서 찾아서 재전송하여야 한다.
상기 RLP제어기 131은 상기 증가된 L_V(S) 레지스터 132 값이 상기 L_V(NR) 레지스터 139 값 보다 작게되면 상기 RLP제어기 131은 상기 재설정 과정을 수행한다.
상기 RLP제어기 131은 보낼 새 데이터 또는 재전송할 데이터도 없고 전송할 제어 프레임도 없을 경우, 빈 데이터 블록을 상기 다중화/역다중화 제어기 140에게 전달한다.
RLP제어기의 부가 채널 데이터 수신 동작
수신측 다중화/역다중화 제어기 140은 RLP제어기 131에게 데이터 블록과 함께 수신된 데이터 블록의 크기 T를 함께 알려준다. 상기 RLP제어기 131은 상기 전달된 크기 T에 따라서 다음과 같이 수신된 데이터 블록의 포맷을 판단한다.
첫째, 상기 수신된 데이터 블록의 크기 T가 상기 도 8의 (a) 포맷으로 보낼 수 있는 크기 B에 12를 더한 값과 같은 경우, 상기 RLP제어기 131은 수신된 데이터 블록을 상기 도 8의 포맷 (a) 또는 (b)와 같은 데이터 블록으로 판단한다. 왜냐하면, 상기 도 8의 포맷 (a)에서는 총 12 비트(1+2+9비트)의 헤더를 가지고 있으므로, 전송하는 데이터 양이 B일 때 전체 크기는 언제나 (B × 8 + 12) 비트가 되기 때문이다. 상기 전송하는 데이터 양 B는 상기 <표 17>과 <표 18>에 제시된 기준값 중의 하나가 될 수 있다.
둘째, 상기 수신된 데이터 블록의 크기 T가 상기 도 8의 (a) 포맷으로 보낼 수 있는 크기 B에 12를 더한 값과 같은 경우, 상기 RLP제어기 131은 수신된 데이터 블록의 첫번째 비트를 본다. 만일 첫번째 비트가 '0'이면, 상기 RLP제어기 131은 수신된 데이터 블록을 상기 도 8의 포맷 (a)와 같은 데이터 블록으로 판단한다. 만일 첫번째 비트가 '1'이면, 상기 RLP제어기 131은 수신된 데이터 블록을 상기 도 8의 포맷 (b)와 같은 데이터 블록으로 판단한다.
셋째, 상기 수신된 데이터 블록의 크기 T가 상기 도 8의 (a) 포맷으로 보낼 수 있는 크기 B에 12를 더한 값 보다 작은 경우, 상기 RLP제어기 131은 수신된 데이터 블록을 상기 도 8의 포맷 (c)와 같은 데이터 블록으로 판단한다.
상기 도 8의 포맷 (a)와 같은 프레임을 수신하였을 때 다음과 같이 동작한다. 우선 상기 RLP제어기 131은 수신된 프레임의 9 비트 SEQ 필드를 구하여 이 값을 9 비트 값 B_SEQ로 한다. 상기 RLP제어기 131은 상기 B_SEQ 값과 상기 도 7의 포맷 (b)가 전송할 수 있는 데이터 크기 B를 사용하여 상기 <수학식 4>를 통해 일련 번호 L_SEQ를 구한다. 상기 RLP제어기 131은 상기 <수학식 4>에서 구해진 L_SEQ 값을 수신된 데이터의 첫번째 바이트의 20 비트 일련 번호 L_SEQ로 하고 상기 데이터 크기 B 값을 수신된 데이터 바이트 수 N으로 한다.
상기 RLP제어기 131은 상기 도 8의 포맷 (b) 또는 (c)와 같은 데이터가 담긴 프레임을 수신하였을 때 수신된 프레임의 19 비트 SEQ 필드값을 수신된 데이터의 첫번째 바이트의 일련 번호 S로 한다. 상기 RLP제어기 131은 상기 도 8의 포맷 (b) 또는 (c)와 같은 데이터가 담긴 프레임을 수신하였을 때 구해진 19 비트 일련 번호 값 S에서 상기 <수학식 5>를 사용하여 수신된 데이터의 첫번째 바이트의 20 비트 일련 번호 L_SEQ를 구한다. 상기 RLP제어기 131은 상기 <수학식 5>에서 구해진 L_SEQ 값을 수신된 데이터의 첫번째 바이트의 20 비트 일련 번호 L_SEQ로 하고, 상기 다중화/역다중화 제어기 140이 전달한 수신된 데이터 블록의 크기 T에서 상기 도 8의 포맷 (b)와 같은 프레임이 수신되었을 때는 20 비트를 빼고 8로 나눈 값(또는 상기 도 8의 포맷 (c)와 같은 프레임이 수신되었을 때는 19 비트를 빼고 8로 나눈 값)을 수신된 데이터 바이트 수 N으로 한다. 만일 이때 구해진 수신된 데이터 바이트 수 N이 0 또는 자연수가 아니면 상기 RLP제어기 131은 상기 데이터 블록을 버린다.
상기 RLP제어기 131은 데이터를 수신할 때 20 비트 일련 번호 레지스터인 L_V(N) 135와, L_V(R) 136, E 레지스터 134를 사용한다. 일련 번호 레지스터 L_V(R) 136은 상기 기본 채널에서와 마찬가지로 다음에 받을 새 데이터 바이트의 일련 번호를 가리키고, 일련 번호 레지스터 L_V(N) 135는 연속적으로 수신되는 데이터 바이트에서 다음번으로 수신되어야하는 데이터 바이트의 일련 번호를 가리킨다.
상기 RLP제어기 131은 수신된 데이터의 첫번째 바이트의 일련 번호 L_SEQ와, 20 비트 일련 번호 레지스터인 L_V(N) 레지스터 135와, L_V(R) 레지스터 136과, 상기 일련 번호 L_SEQ를 기본 채널에서와 마찬가지로 다음과 같이 비교한다.
첫째, 일련 번호 L_SEQ가 L_V(N) 레지스터 135보다 같거나 크고, L_V(R) 레지스터 136보다 작으면, 상기 RLP제어기 131은 이를 재전송 데이터로 간주한다.
둘째, 일련 번호 L_SEQ가 L_V(R) 레지스터 136보다 같거나 크고, L_V(R) 레지스터 136과 E 레지스터 134를 더한 값을 220으로 modulo 연산한 값 보다 작으면, 상기 RLP제어기 131은 이를 새 데이터로 간주한다.
셋째. 일련 번호 L_SEQ가 L_V(R) 레지스터 136과, E 레지스터 134를 더한 값을 220으로 modulo 연산한 값 보다 같거나 크면, 상기 RLP제어기 131은 이를 중복 데이터로 간주한다.
상기 RLP제어기 131은 상기에서 중복 데이터로 간주된 데이터가 도착하면, 이미 수신한 데이터이므로 상기 중복 데이터를 버린다.
상기 RLP제어기 131은 상기에서 새 데이터 또는 재전송 데이터로 간주된 데이터가 도착하면 수신된 데이터 프레임의 각 데이터 바이트의 일련 번호를 앞에서부터 차례대로 상기 과정에서 구해진 L_SEQ에서 시작하는 일련 번호 L을 붙인다. 즉, n 번째 데이터 바이트는 일련 번호 L로 (L_SEQ + n - 1) modulo 220의 값을 가지며, 첫번째 바이트는 일련 번호로 L_SEQ 값을 가진다. 상기 n은 1에서 수신된 데이터의 전체 길이 N까지의 값을 가진다. 상기 RLP제어기 131은 수신된 데이터 프레임의 데이터 바이트에 대해서 각각의 일련 번호 순서대로 다음과 같은 작업을 수행한다.
상기 RLP제어기 131은 수신된 데이터가 재전송 데이터로 간주되었다면, 데이터 바이트의 일련 번호 L과 저장된 NAK 엔트리의 20 비트 일련 번호가 일치하는 엔트리를 찾는다. 이때 상기 RLP제어기 131은 도 4에 도시된 바와 같이 NAK 리스트 137을 이용한다. 상기 NAK 리스트 137의 각 엔트리(entry)들은 20 비트 일련 번호와 일련 번호에 해당하는 데이터 바이트가 수신되었는지 여부를 기록하는 필드를 가지고 있으며, 재전송 타이머(retransmission timer)와 취소 타이머(abort timer)를 가지고 있다. 상기 RLP제어기 131은 상기 NAK 엔트리 137중에서 20 비트 일련 번호와 상기 수신된 첫번째 데이터 바이트의 일련 번호 L_SEQ 값과 같은 것이 있는지 찾는다. 만일 같은 NAK 엔트리가 있다면, 상기 RLP제어기 131은 기본 채널에서와 마찬가지로 다음을 수행한다.
첫째, 수신된 데이터 바이트의 일련 번호 L이 L_V(N) 보다 크거나 같고 L_V(R) 보다 작다면, 상기 RLP제어기 131은 상기 수신된 데이터 바이트를 재정렬 버퍼 138에 저장한다. 이때 상기 일련 번호 L 값이 L_V(N)과 같다면, 상기 RLP제어기 131은 재정렬 버퍼 138에 저장된 데이터 바이트들을 일련 번호로 L_V(N) 값을 갖는 데이터 바이트에서부터 연속적으로 전달할 수 있는 일련 번호를 가지는 데이터 바이트까지 상위 링크 프로토콜에게 전달한다. 상기 RLP제어기 131은 상기 수신된 데이터 바이트와 일치하는 엔트리에 기다리는 데이터 바이트가 수신되었음을 기록한다.
둘째, 수신된 데이터 바이트의 일련 번호 L이 L_V(R)과 같고, L_V(R)이 L_V(N)과 같은 경우, 상기 RLP제어기 131은 L_V(R)과 L_V(N)을 동시에 증가시키고 220에 대한 modulo 연산을 한다. 이와 달리 수신된 데이터 바이트의 일련 번호 L이 L_V(R)과 같고, L_V(R)이 L_V(N)과 같지 않은 경우, 상기 RLP제어기 131은 상기 L_V(R)을 증가시키고 220에 대한 modulo 연산을 한다. 상기 RLP제어기 131은 상기 수신된 데이터 바이트를 재정렬 버퍼 138에 저장한다.
셋째, 수신된 데이터 바이트의 일련 번호 L이 L_V(R) 보다 크다면, 상기 RLP제어기 131은 일련 번호 L_V(R)에서 (L - 1) modulo 220를 가지는 데이터 바이트에 대한 재전송을 요청하기 위해 NAK 리스트 137에 각 데이터 바이트에 대한 엔트리를 만든다. 각 엔트리는 해당하는 데이터 바이트에 대한 20 비트 일련 번호를 가지고 있게 된다. 또한, 상기 RLP제어기 131은 수신된 데이터 바이트를 재정렬 버퍼 138에 저장하고, L_V(R)을 (L + 1) modulo 220으로 설정한다.
상기 RLP제어기 131은 다중화/역다중화 제어기 140에서 깨진 데이터 블록이 수신되었음을 알리고 데이터 블록의 크기를 알리면, 상기 <표 17>, <표 18>과 같이 수신될 수 있는 상기 도 7의 (b)에 제시된 포맷을 사용하여 기본 채널로, 또는 상기 도 8의 (a)에 제시된 포맷을 사용하여 부가 채널로 전송 가능한 데이터 블록의 크기 M을 예상한다. 예를 들어, 만일 깨진 데이터 블록이 기본 채널로 전송된 것이고 전송율 집합 1이 사용 중이라면 M은 20 바이트가 된다. 만일 깨진 데이터 블록이 기본 채널로 전송된 것이고 전송율 집합 2가 사용 중이라면 M은 32 바이트가 된다.
이와 달리, 깨진 데이터 블록이 부가 채널로 전송된 것이라면, 상기 <표 17>, <표 18>에서와 같이 M은 상기 다중화/역다중화 제어기 140에서 알린 깨진 데이터 블록의 길이 L 비트에서 12 비트를 빼고 다시 8 로 나눈 값을 M으로 한다. 예를 들어, 깨진 데이터 블록의 길이를 740 비트로 알려주었다면 12 비트를 빼고 8로 나눈 91 바이트를 M으로 생각한다.
상기 RLP제어기 131은 상기 깨진 데이터 블록의 최대 데이터 바이트 수 M을 얻으면 이 값을 레지스터 E 134에 저장된 값과 더하여 다시 레지스터 E 134에 저장한다. 이때 상기 증가된 E 레지스터 134와 L_V(N) 레지스터 135 값을 더하여 220 modulo 연산을 한 결과가 상기 L_V(N) 레지스터 135 값 보다 작게되면 상기 RLP제어기 131은 상기 재설정 과정을 수행한다.
상기 RLP제어기 131은 데이터 수신 과정에서 빈 데이터 블록이 아니면서 올바르게 수신된 데이터 블록이 하나라도 있거나 상기 다중화/역다중화 제어기 140이 아무런 프레임도 수신되지 않았다고 알려주면, 상기 레지스터 E 134를 '0'으로 설정한다.
RLP제어기의 데이터 수신후 동작
RLP제어기 131은 수신된 모든 프레임을 처리한 후 다음과 같은 작업을 수행한다.
수신된 데이터 블록 중에서 아이들 프레임이 수신되는 경우 또는 새 데이터 프레임이 수신되는 경우, 상기 RLP제어기 131은 NAK 리스트 137에서 오래된 엔트리부터 다음의 과정을 수행한다.
첫째, NAK 엔트리가 취소 타이머가 설정된 후 아직 만료되지 않았고 이미 세 번의 NAK에 상기 NAK 엔트리가 가지고 있는 일련 번호가 포함되어 전송되었다면, RLP제어기 131은 취소 타이머의 값을 하나 줄인다. 만일 상기 취소 타이머 값이 '0'이 되면, RLP제어기 131은 다음 동작을 수행한다. 만일 RLP제어기 131이 이미 NAK 엔트리가 가지고 있는 일련 번호에 해당하는 재전송 데이터 바이트를 수신하였다면, 상기 RLP제어기 131은 상기 NAK 엔트리를 삭제한다. 이와 달리, RLP제어기 131이 이미 NAK 엔트리가 가지고 있는 일련 번호에 해당하는 재전송 데이터 바이트를 수신하지 않았다면, 상기 RLP제어기 131은 상기 NAK 엔트리의 일련 번호에 해당하는 데이터 바이트를 수신하지 못한 것으로 간주하고, 재정렬 버퍼 138에 저장된 상기 NAK 엔트리의 일련 번호 보다 크고 연속적으로 상위 링크 프로토콜로 보낼 수 있는 수신된 데이터 바이트들을 상위 링크 프로토콜로 전달한다. 상기 RLP제어기 131은 다음번 수신을 기다리는 데이터 바이트의 일련 번호로 L_V(N) 레지스터 135를 설정한다.
둘째, NAK 엔트리가 재전송 타이머가 설정된 후 아직 만료되지 않았고 이미 두 번의 NAK에 상기 NAK 엔트리가 가지고 있는 일련 번호가 포함되어 전송되었다면, 상기 RLP제어기 131은 취소 타이머의 값을 하나 줄인다. 만일 상기 재전송 타이머 값이 '0'이 되면, 상기 RLP제어기 131은 다음 동작을 수행한다. 만일 RLP제어기 131이 이미 NAK 엔트리가 가지고 있는 일련 번호에 해당하는 재전송 데이터 바이트를 수신하였다면, 상기 RLP제어기 131은 상기 NAK 엔트리를 삭제하고 상기 RLP제어기 131은 다음번 수신을 기다리는 데이터 바이트의 일련 번호로 L_V(N) 레지스터 135를 설정한다. 이와 달리, RLP제어기 131이 이미 NAK 엔트리가 가지고 있는 일련 번호에 해당하는 재전송 데이터 바이트를 수신하지 않았다면, 상기 RLP제어기 131은 상기 NAK 엔트리의 취소 타이머를 적절한 값으로 설정한다. 상기 RLP제어기 131은 다음에 전송할 세 개의 NAK 프레임에 상기 NAK 엔트리가 가지고 있는 일련 번호를 포함시켜서 전송한다.
상기 RLP제어기 131은 새로 추가하여야 하는 NAK 엔트리들에 대해서 NAK 엔트리의 재전송 타이머를 적절한 값으로 설정하고, 다음에 전송할 두 개의 NAK 프레임에 상기 NAK 엔트리가 가지고 있는 일련 번호를 포함시켜서 전송한다.
상기 과정에서 L_V(N) 레지스터 135 값이 변경되었다면 상기 RLP제어기 131은 다음을 수행한다. 즉, 상기 변경된 L_V(N) 레지스터 135 값에 따라서 상기 모든 L_B(N) 레지스터 143들과 상기 모든 B(N) 레지스터 144에 대해서 다음을 수행한다.
첫째, 상기 RLP제어기 131은 상기 변경된 L_V(N) 레지스터 135 값과 상기 L_B(N) [R] 레지스터에 저장되어 있던 값과의 차이를 구하고, 이 값 보다 작으면서 전송율 R에서 보낼 수 있는 데이터 블록의 크기 B의 배수가 되는 최대값 D를 구한다. 상기 RLP제어기 131은 상기 구해진 D 값을 상기 L_B(N) [R] 레지스터에 더하고, modulo 220 연산을 수행한다.
둘째, 상기 RLP제어기 131은 상기 과정에서 구해진 값 D를 상기 과정에서 구해진 데이터 블록의 크기 B로 나눈 값을 상기 B(N) [R] 레지스터에 더하고, modulo 29 연산을 수행한다.
상술한 바와 같이 본 발명에서는 데이터 바이트 기반의 일련 번호 방법을 보완하여 효율을 더 높일 수 있는 블럭 단위의 일련 번호 방식을 제안하여 라디오 링크 프로토콜(RLP)을 위한 가변 길이의 프레임을 생성할 수 있도록 하는 이점이 있다. 또한 본 발명에서는 데이터 바이트 기반의 일련 번호 방법을 보완하여 효율을 더 높일 수 있는 블럭 단위의 일련 번호 방식을 제안하여 라디오 링크 프로토콜이 가변 길이의 프레임을 생성할 수 있도록 하는 이점이 있다. 그리고 또한 본 발명에서는 상기 라디오 링크 프로토콜이 가변 길이의 프레임을 생성할 수 있도록 지원하는 다중화/역다중화기를 제안하고 있다.
도 1은 패킷데이터 서비스를 수행하는 일반적인 부호분할다중접속 통신시스템의 구성도.
도 2는 본 발명이 적용되는 RLP에 따른 데이터 송수신 장치의 구성도.
도 3은 본 발명에 따른 데이터 송신기의 구성도.
도 4는 본 발명에 따른 데이터 수신기의 구성도.
도 5는 본 발명에 따라 생성되는 프레임들의 포맷을 보여주는 도면.
도 6은 본 발명에 따라 생성되는 LTU의 포맷을 보여주는 도면.
도 7은 본 발명에 따라 생성되는 RLP 프레임을 기본 채널을 통해 송수신할 시의 프레임 포맷을 보여주는 도면.
도 8은 본 발명에 따라 생성되는 RLP 프레임을 부가 채널을 통해 송수신할 시의 프레임 포맷을 보여주는 도면.
도 9는 본 발명에 따른 기본 채널 송신 동작의 처리 흐름도.
도 10은 본 발명에 따른 기본 채널 수신 동작의 처리 흐름도.
도 11은 본 발명에 따른 부가 채널 송신 동작의 처리 흐름도.
도 12는 본 발명에 따른 부가 채널 수신 동작의 처리 흐름도.

Claims (44)

  1. 각 프레임은 블록 일련번호와 그 후의 데이터 영역으로 구성되고, 상기 데이터 영역은 바이트 길이를 가지는 데이터 비트들로 채워지고, 상기 블록 일련번호는 보다 많은 데이터 비트를 전송하기 위해 바이트의 미리 설정된 배수에 해당하는 블록 단위마다 부여되는 복수의 프레임들을 전송하는 통신시스템에서; 상기 복수의 프레임들중에서 적어도 하나의 프레임내의 바이트 단위의 데이터 비트들을 수신측에서 확인할 수 있도록 하기 위한 상기 블록 일련번호를 생성하는 방법에 있어서:
    전송을 위한 데이터의 첫 번째 바이트를 나타내는 m비트의 제1 바이트 일련번호(A)와, 상기 전송을 위한 데이터가 속하는 제1블록 이후의 제2블록의 첫 번째 바이트의 데이터를 나타내는 m비트의 제2 바이트 일련번호(B)간의 차이(D)를 구하는 과정과;
    상기 차이(D)를 사용하여 상기 제1 바이트 일련번호(A)를 m비트보다 작은 비트수를 가지는 n비트의 상기 블록 일련번호(B_SEQ)로 변환하는 과정을 포함하고, 함을 특징으로 하는 상기 방법.
    상기 차이(D)는 { A - B + 2m } modulo 2m에 의해 구해지고, 상기 블록 일련번호(B_SEQ)는 { B(NR) + FLOORING(D,C)/C } modulo 2n에 의해 구해지며, 여기서 FLOORING(a,b)는 a보다 작거나 같으면서 b의 배수가 되는 최소의 값을 구하기 위한 함수이고, B(NR)은 m비트의 상기 제2 바이트 일련번호(B)를 n비트로 변환한 값이고, C는 상기 프레임의 크기임을 특징으로 하는 상기 블록 일련번호 생성 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 각 프레임은 블록 일련번호와 그 후의 데이터 영역으로 구성되고, 상기 데이터 영역은 바이트 길이를 가지는 데이터 비트들로 채워지고, 상기 블록 일련번호는 보다 많은 데이터 비트를 전송하기 위해 바이트의 미리 설정된 배수에 해당하는 블록 단위마다 부여되는 복수의 프레임들을 전송하는 통신시스템에서; 상기 복수의 프레임들중에서 적어도 하나의 프레임내의 바이트 단위의 데이터 비트들을 수신측에서 확인할 수 있도록 하기 위한 상기 블록 일련번호를 생성하는 장치에 있어서:
    전송을 위한 데이터의 첫 번째 바이트를 나타내는 m비트의 제1 바이트 일련번호(A)를 저장하는 제1레지스터와;
    상기 전송을 위한 데이터가 속하는 제1블록 이후의 제2블록의 첫 번째 바이트의 데이터를 나타내는 m비트의 제2 바이트 일련번호(B)를 저장하는 제2레지스터와;
    상기 제1 바이트 일련번호(A)와 상기 제2 바이트 일련번호(B)간의 차이(D)를 구하고, 상기 차이(D)를 사용하여 상기 제1 바이트 일련번호(A)를 m비트보다 작은 비트수를 가지는 n비트의 상기 블록 일련번호(B_SEQ)로 변환하는 제어기를 포함하고,
    상기 제어기는 상기 차이(D)를 { A - B + 2m } modulo 2m에 의해 구하고, 상기 블록 일련번호(B_SEQ)를 { B(NR) + FLOORING(D,C)/C } modulo 2n에 의해 구하고, 여기서 FLOORING(a,b)는 a보다 작거나 같으면서 b의 배수가 되는 최소의 값을 구하기 위한 함수이고, B(NR)은 m비트의 상기 제2 바이트 일련번호(B)를 n비트로 변환한 값이고, C는 상기 프레임의 크기임을 특징으로 하는 상기 블록 일련번호 생성 장치.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 각 프레임은 블록 일련번호와 그 후의 데이터 영역으로 구성되고, 상기 데이터 영역은 바이트 길이를 가지는 데이터 비트들로 채워지고, 상기 블록 일련번호는 보다 많은 데이터 비트를 전송하기 위해 바이트의 미리 설정된 배수에 해당하는 블록 단위마다 부여되는 복수의 프레임들을 수신하는 통신시스템에서; 상기 복수의 프레임들중에서 적어도 하나의 프레임내의 상기 블록 일련번호로부터 바이트 단위의 데이터 비트들을 나타내는 바이트 일련번호를 확인하는 방법에 있어서:
    상기 복수의 프레임들중에서 적어도 하나의 프레임을 수신하고, 상기 수신 프레임내에 포함된 n비트의 상기 블록 일련번호(B_SEQ)를 확인하는 과정과;
    상기 확인된 블록 일련번호(B_SEQ)와 상기 프레임의 크기 값(C)을 이용하여 수신된 데이터의 첫 번째 바이트를 나타내는 m비트의 바이트 일련번호(L_SEQ)를 구하는 과정을 포함하고,
    상기 바이트 일련번호(L_SEQ)는 { L_B(N) + (2n + B_SEQ - B(N)) modulo 2n ×C }에 의해 구해지고, 여기서, L_B(N)은 수신되어야할 데이터의 바이트 일련번호에 해당하는 블록을 나타내는 m비트의 기준 일련번호이고, B(N)은 상기 기준 일련번호를 n비트로 변환한 값임을 특징으로 하는 상기 바이트 일련번호 확인 방법.
  24. 삭제
  25. 삭제
  26. 각 프레임은 블록 일련번호와 그 후의 데이터 영역으로 구성되고, 상기 데이터 영역은 바이트 길이를 가지는 데이터 비트들로 채워지고, 상기 블록 일련번호는 보다 많은 데이터 비트를 전송하기 위해 바이트의 미리 설정된 배수에 해당하는 블록 단위마다 부여되는 복수의 프레임들을 수신하는 통신시스템에서; 상기 복수의 프레임들중에서 적어도 하나의 프레임내의 상기 블록 일련번호로부터 바이트 단위의 데이터 비트들을 나타내는 바이트 일련번호를 확인하기 위한 장치에 있어서:
    수신되어야할 데이터의 제1 바이트 일련번호(L_V(N))를 저장하는 제1레지스터와;
    상기 제1 바이트 일련번호에 해당하는 블록을 나타내는 m비트의 기준 일련번호(L_B(N))를 저장하는 제2레지스터와;
    상기 m비트의 기준 일련번호를 n비트로 변환한 값(B(N))을 저장하는 제3레지스터와;
    상기 복수의 프레임들중에서 적어도 하나의 프레임을 수신하고, 상기 수신 프레임내에 포함된 n비트의 상기 블록 일련번호(B_SEQ)를 확인하고, 상기 확인된 블록 일련번호(B_SEQ)와 상기 프레임의 크기 값(C)을 이용하여 수신된 데이터의 첫 번째 바이트를 나타내는 m비트의 바이트 일련번호(L_SEQ)를 구하는 제어기를 포함하고,
    상기 제어기는 상기 바이트 일련번호(L_SEQ)를 { L_B(N) + (2n + B_SEQ - B(N)) modulo 2n ×C }에 의해 구하는 것을 특징으로 하는 상기 바이트 일련번호 확인 장치.
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
KR10-1999-0018566A 1999-05-21 1999-05-21 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 블록 일련번호 생성 및 바이트 일련번호 확인 장치 및 방법 KR100532321B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-1999-0018566A KR100532321B1 (ko) 1999-05-21 1999-05-21 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 블록 일련번호 생성 및 바이트 일련번호 확인 장치 및 방법
US09/575,759 US6850508B1 (en) 1999-05-21 2000-05-22 Apparatus and method for exchanging variable-length data according to a radio link protocol in a mobile communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-1999-0018566A KR100532321B1 (ko) 1999-05-21 1999-05-21 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 블록 일련번호 생성 및 바이트 일련번호 확인 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20000074547A KR20000074547A (ko) 2000-12-15
KR100532321B1 true KR100532321B1 (ko) 2005-11-29

Family

ID=19587212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1999-0018566A KR100532321B1 (ko) 1999-05-21 1999-05-21 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 블록 일련번호 생성 및 바이트 일련번호 확인 장치 및 방법

Country Status (2)

Country Link
US (1) US6850508B1 (ko)
KR (1) KR100532321B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101459176B1 (ko) 2007-12-04 2014-11-07 탈레스 이산 대수에 기초한 동기-프레임 방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020033518A (ko) * 2000-10-19 2002-05-07 윤종용 이동통신 시스템에서 서로 다른 품질의 데이터 전송 장치및 방법
US7031281B1 (en) * 2000-11-27 2006-04-18 Nortel Networks Limited Method for reducing overhead in forward link traffic multiplexing
US7310336B2 (en) * 2001-05-18 2007-12-18 Esa Malkamaki Hybrid automatic repeat request (HARQ) scheme with in-sequence delivery of packets
US7970962B2 (en) * 2002-03-15 2011-06-28 Broadcom Corporation Method and apparatus utilizing a tail bus to solve back-to-back data burst problems
US7720043B2 (en) * 2002-11-20 2010-05-18 Qualcomm Incorporated Use of idle frames for early transmission of negative acknowledgement of frame receipt
KR100953630B1 (ko) * 2002-12-13 2010-04-20 엘지전자 주식회사 전송 데이터율 전달용 물리 채널의 운용 방법
US7320009B1 (en) 2003-03-28 2008-01-15 Novell, Inc. Methods and systems for file replication utilizing differences between versions of files
US7224993B2 (en) * 2003-05-15 2007-05-29 Lucent Technologies Inc. Power control method with DTX frame detection for a communication channel
JP4128961B2 (ja) * 2004-01-26 2008-07-30 株式会社東芝 無線通信装置、無線通信方法及び無線通信プログラム
US7613186B2 (en) * 2004-05-06 2009-11-03 Via Telecom Co., Ltd. Processing multiplex sublayer data unit data in hardware
US7965736B2 (en) * 2005-08-24 2011-06-21 Qualcomm Incorporated Transmission of multiplex protocol data units in physical layer packets
US8693384B2 (en) * 2008-05-29 2014-04-08 Htc Corporation Method for dynamic packet retransmission for radio link control layer in a wireless communications system
US10256944B1 (en) * 2015-04-23 2019-04-09 Marvell International Ltd. Controlling false packet acceptance
US11296920B2 (en) * 2017-08-18 2022-04-05 Maxlinear, Inc. High-speed serial interface for orthogonal frequency division multiplexing (OFDM) cable modems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980069768A (ko) * 1996-05-08 1998-10-26 모리시타 요이치 다중전송방법 및 시스템과 거기에서 사용되는 음성파동 흡수방법
EP0877513A1 (en) * 1997-05-05 1998-11-11 Nokia Mobile Phones Ltd. Dynamic configuration of radio link protocol in a telecommunications system
KR100416996B1 (ko) * 1999-05-10 2004-02-05 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6317430B1 (en) * 1998-02-19 2001-11-13 Lucent Technologies Inc. ARQ protocol support for variable size transmission data unit sizes using a hierarchically structured sequence number approach
US6553003B1 (en) * 1998-06-13 2003-04-22 Samsung Electronics, Co., Ltd. Device and method processing a radio link protocol in a mobile communication system
US6507582B1 (en) * 1999-05-27 2003-01-14 Qualcomm Incorporated Radio link protocol enhancements for dynamic capacity wireless data channels

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980069768A (ko) * 1996-05-08 1998-10-26 모리시타 요이치 다중전송방법 및 시스템과 거기에서 사용되는 음성파동 흡수방법
EP0877513A1 (en) * 1997-05-05 1998-11-11 Nokia Mobile Phones Ltd. Dynamic configuration of radio link protocol in a telecommunications system
KR100416996B1 (ko) * 1999-05-10 2004-02-05 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101459176B1 (ko) 2007-12-04 2014-11-07 탈레스 이산 대수에 기초한 동기-프레임 방법

Also Published As

Publication number Publication date
US6850508B1 (en) 2005-02-01
KR20000074547A (ko) 2000-12-15

Similar Documents

Publication Publication Date Title
KR100416996B1 (ko) 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법
KR100383611B1 (ko) 이동 통신시스템에서 라디오링크프로토콜에 따른 가변길이의 데이터 전송 장치 및 방법
KR100516671B1 (ko) 이동통신시스템에서 라디오링크프로토콜에 따른 가변길이의 데이터 송수신 장치 및 방법
KR100539879B1 (ko) 이동 통신시스템에서 라디오링크프로토콜에 따른 데이터 송수신 장치 및 방법
KR100532321B1 (ko) 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 블록 일련번호 생성 및 바이트 일련번호 확인 장치 및 방법
KR20000074179A (ko) 이동 통신시스템에서 라디오링크프로토콜에 따른 데이터 송수신장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121030

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131030

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20141030

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20151029

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee