이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대한 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대 로 내려져야 할 것이다.
후술되는 본 발명의 주요한 요지 중의 하나는, 상위 계층의 패킷을 미리 정해진 크기에 따라 분할하는 RLC(Radio Link Control) 계층과 RLC 계층의 패킷들을, 스케쥴링에 따라 할당된 전송 자원에 맞춰 연접하는 MAC(Medium Access Control) 계층을 포함하는 이동통신 시스템에서, RLC 계층과 MAC 계층이 중복적으로 프레이밍을 수행하는 대신, MAC 계층에 의한 프레이밍만을 수행하는 것이다. MAC 계층은 다음 전송 주기에 전송할 MAC PDU의 크기에 맞춰 프레이밍을 수행한다. 상기와 같이 프레임의 크기를 가변적으로 사용할 경우, ARQ에 의한 재전송 요구시, 재전송할 패킷의 크기와 스케쥴된 전송 자원의 양이 맞지 않아서, 재전송을 수행할 수 없는 문제가 발생할 수 있다. 이러한 문제점을 해결하기 위해서 분할 재전송의 개념을 도입한다.
도 3 및 도 4는 본 발명의 바람직한 실시예에 따른 무선 프로토콜의 계층 구조와 프레임 포맷을 나타낸 것이다.
도 3에 도시한 바와 같이 무선 프로토콜은 MAC 계층(320)과 물리계층(325)으로 구성되며, MAC 계층(320)은 MAC-f(MAC-framing) 계층(310)과 MAC-m(MAC-multiplexing) 계층(315)이라는 2개의 서브-계층(sub layer)들로 구성된다. MAC-f 계층(310)은 RLC 계층과 비슷한 역할을 담당하며, RLC 계층과 마찬가지로 서비스 당 하나의 엔터티가 구성될 수 있다. MAC-f 계층(310)은 상위계층(305)으로부터 MAC SDU(Service Data Unit)들을 접수하고, 상기 MAC SDU들을 이용하여 MAC-m 계 층(315)이 요청하는 크기(330)에 맞춰 MAC-f PDU들을 프레이밍한다. 그리고 상기 MAC-f PDU들(335)에 대해 ARQ를 수행한다.
MAC-m 계층(315)은 다수의 MAC-f 엔터티들(310)과 연결되며, MAC-f 엔터티들(310)로부터의 MAC-f PDU들(335)을 하나의 MAC-m PDU(340)로 다중화한다. 그리고 상기 MAC-m PDU(340)에 대해 HARQ 동작을 수행한다. MAC-m 계층(315)은 단말의 채널 상황에 맞춰 MAC-m PDU(340)의 크기를 결정하고, MAC-f 엔터티들(310)의 버퍼 상황과 우선순위 등을 고려해서 MAC-f PDU의 크기(330)를 결정한다.
도 4를 참조하면, 각 MAC-f PDU(335)는 일련번호(430), 크기 필드(433), 프레이밍 헤더(FH, Framing Header, 435), 페이로드(410)로 구성된다. MAC-f 계층(310)은 MAC-m 계층(315)으로부터 MAC-f PDU 크기(330)를 통보 받고, 상기 크기(330)에 맞춰 상위 계층(305)으로부터의 IP 패킷(들)을 분할하거나 연접해서 페이로드(410)를 구성한다. 그리고 1씩 단조 증가하는 일련번호(430)와 페이로드의 크기를 나타내는 크기 필드(433)와 프레이밍 헤더(435)를 삽입하여 MAC-f PDU(335)를 구성해서 MAC-m 계층(315)으로 전달한다. 상기 프레이밍 헤더(435)는 연접/분할과 관련된 정보를 포함한다.
MAC-m PDU(340)는 적어도 하나의 다중화 헤더(440)와 페이로드(420)로 구성된다. 각 다중화 헤더(440)에는, 상기 페이로드(420)에 수납되는 각 MAC-f PDU(335)에 대한 다중화 정보가 포함된다. 예를 들어 상기 다중화 정보는, 해당하는 MAC-f 엔터티의 식별자가 될 수 있다.
상기와 같이 MAC-m PDU의 크기와 MAC-f PDU의 크기를 채널 상황에 맞춰 가변 적으로 설정할 경우, ARQ 동작의 일 예를 도 5를 참조하여 설명한다. 여기에서는 설명의 편의를 위해, MAC-m 다중화가 수행되지 않은 것으로 가정한다. 또한 여기에서는 각 MAC-f PDU의 전체 헤더 중 단지 부 일련번호 필드만을 나타내었다.
도 5를 참조하면, 4개의 IP 패킷(505, 510, 515, 520)이 MAC-f 계층에 버퍼링되어 있다. 먼저 MAC-f 계층은 MAC-m 계층의 지시에 따라 일련번호가 0인 MAC-f PDU(525)를 구성하여 전송한다. 이때 채널 상황에 따라 정해진 MAC-f PDU(525)의 크기는 1000 byte이다. 다음으로 MAC-f 계층은 MAC-m 계층의 지시에 따라 일련번호가 1인 MAC-f PDU(530)와 2인 MAC-f PDU(535)를 전송한다. 그리고 일련번호가 3인 MAC-f PDU(540)를 전송하는데, 이때 채널 상황이 양호하게 되어, 상기 MAC-f PDU(540)의 페이로드 크기는 1500 바이트로 정해진다.
수신측 MAC-f 계층은 일련번호가 0 ~ 2인 MAC-f PDU들(525 ~ 535)은 수신하였으나, 일련번호가 3인 MAC-f PDU(540)는 수신하지 못하고, 이에 따라 송신측 MAC-f 계층으로 상기 일련번호가 3인 MAC-f PDU(540)를 재전송해 줄 것을 요청한다. 그런데 송신측 MAC-f 계층이 상기 재전송 요청을 받아서 재전송을 준비하는 시점에 채널 상황이 나빠져서, 전송 가능한 MAC-f PDU 페이로드의 크기가 1000 바이트로 감소하게 되었다면, 1500 바이트 크기를 가지는 MAC-f PDU(540)를 그대로 전송할 수 없는 상황이 된다.
이처럼 재전송이 필요한 시점에 채널 상황이 변해서 원래 크기의 패킷을 재전송할 수 없는 경우에, 상기 패킷을 다시 분할해서 전송하여야 한다. 이 때 송신측은 수신측에게 상기 패킷이 특정 패킷에 대한 재전송이며, 또한 분할되었다는 사 실을 알려준다. 이를 위해서 상기 분할된 재전송 패킷들 각각의 일련번호는 원래 패킷의 일련번호를 그대로 사용하되, 부일련번호(sub SN)를 추가로 포함한다.
도 5의 예와 같이, MAC-f PDU(540)이 2개의 MAC-f PDU들(545, 550)로 분할되어 재전송될 경우, 상기 MAC-f PDU들(545, 550)에는 3이라는 원래 일련번호와 함께, 0과 1이라는 부일련번호가 각각 추가로 삽입된다. 즉 MAC-f PDU(545)의 전체 일련번호는 [3.0]이 되고, MAC-f PDU(550)의 전체 일련번호는 [3.1]이 된다.
상기와 같은 분할 재전송은 필요에 따라 여러 번 반복될 수도 있는데, 예를 들어 MAC-f PDU(545) 역시 분할 재전송되어야 한다면, 분할 재전송되는 MAC-f PDU들(555, 560)은 [3.0]이라는 공통된 일련번호 및 부일련번호를 포함하고, 0과 1이라는 또 다른 부일련번호가 사용되어서, [3.0.0]과 [3.0.1]이라는 전체 일련번호를 가지게 된다.
이하 설명의 편의를 위해서 아래와 같이 용어를 정의한다.
- 세그먼트(Segment) : 재전송을 위해 분할된 MAC-f PDU
- 세그먼트 레벨(Segment level) : 분할 재전송을 위해 원래의 MAC-f PDU가 분할된 회수. 예를 들어 MAC-f PDU들(545, 550)의 세그먼트 레벨은 1이며, MAC-f PDU들(555, 560)의 세그먼트 레벨은 2가 된다.
<<제1 실시예>>
도 6a 및 도 6b는 본 발명의 제1 실시예에 따른 프레임 포맷을 보다 자세히 도시한 것이다.
도 6a를 참조하면, MAC-m PDU(605)는 복수의 다중화 헤더들(610)과 MAC-f PDU들(615)로 구성된다. 상기 다중화 헤더들(610)은 MAC-m PDU(605)에 수납된 MAC-f PDU들(615)의 수만큼 존재한다. 다중화 헤더들(610)의 순서와 MAC-f PDU들(615)의 순서는 동일하다. 즉 첫 번째 다중화 헤더는 첫 번째 MAC-f PDU에 대한 다중화 정보를 포함하고, 두 번째 다중화 헤더는 두 번째 MAC-f PDU에 대한 다중화 정보를 포함한다. 다중화 헤더들(610) 각각은 해당 MAC-f PDU가 처리될 MAC-f 엔터티의 식별자와 이어지는(following) 정보가 다른 다중화 정보인지 첫 번째 MAC-f PDU인지를 나타내는 플래그 비트로 구성된다.
각 MAC-f PDU(615)는 SN 헤더(620), 전체 길이(TL, Total Length)(622), E 비트(624), 프레이밍 헤더(626), 페이로드(630)로 구성된다. 페이로드(630)에는 상위 계층의 패킷(들), 즉 IP 패킷(들)이 분할되거나 연접되어서 수납된다.
SN 헤더(620)는 일련번호(632)와 F1 비트(634)와 부일련번호 헤더(636)로 구성된다. 부일련번호 헤더(636)는 분할 재전송되는 MAC-f PDU에만 포함되며, 부일련번호(638)와 마지막 부분 지시자(Last Segment Indicator: LSI)(640)와 F2 비트(642)로 구성된다. 한 MAC-f PDU에는 세그먼트 레벨만큼의 부일련번호 헤더(들)가 존재한다. 예를 들어 세그먼트 레벨이 1인 MAC-f PDU의 SN 헤더에는 하나의 부일련번호 헤더가 존재하며, 세그먼트 레벨이 2인 MAC-f PDU의 SN 헤더에는 두 개의 부일련번호 헤더들이 존재한다.
일련번호(632)는 MAC-f PDU가 최초 전송될 때마다 1씩 단조 증가하는 정수이다. F1 비트(634)는 이어지는 비트가 부일련번호 헤더(638)인지 전체 길이 필 드(622)인지를 나타내는 1 비트의 정보이다. '0'이면 전체 길이 필드(622)가, '1'이면 부일련번호 헤더(636)가 따라옴을 의미한다.
LSI(640)는 부일련번호 헤더(636)의 일부로서, 분할 재전송되는 해당 MAC-f PDU가 마지막 세그먼트인지 아닌지를 나타내는 정보이다. 부일련번호(638)는 0에서 시작해서 동일한 세그먼트 레벨의 분할된 MAC-f PDU가 재전송될 때마다 '1'씩 단조 증가하는 정수이다. F2 비트(642)는 이어지는 정보가 다음 부일련번호 헤더인지 전체 길이 필드(622)인지를 나타내는 1 비트의 정보이다. '0'이면 전체 길이 필드(622)가 따라옴을 의미하고, '1'이면 다음 부일련번호 필드가 따라옴을 의미한다.
전체 길이(622)는 페이로드(630)의 크기를 바이트 단위로 나타낸다.
E 비트(624)는 이어지는 정보가 길이 지시자(644)를 포함하는 프레이밍 헤더(626)인지 페이로드(630)인지를 나타내는 비트이다. 예를 들어 E 비트(624)가 '0'이면 페이로드(630)가 따라옴을 의미하고, '1'이면 길이 지시자(644)가 따라옴을 나타낸다.
프레이밍 헤더(626)는 페이로드(630)에 수납된 IP 패킷들의 분할/연접에 관한 정보를 담는다. 프레이밍 헤더(626)는 길이 지시자(644)와 E 비트(646)로 구성된다. 길이 지시자(644)는 페이로드(630)에 IP 패킷의 마지막 부분이 포함되어 있을 경우, 상기 마지막 부분의 위치를 나타내는 정보이다. 그러므로 페이로드(630)에 여러 개의 IP 패킷들이 연접되어 있을 경우, 여러 개의 길이 지시자들이 프레이밍 헤더(626)에 포함된다. E 비트(646)는 각 길이 지시자(644)의 뒤에 삽입되며, 이어지는 다음 길이 지시자가 존재하는지 혹은 페이로드(630)가 이어지는지를 나타낸다.
수신측 MAC-f 계층은 일련번호(632)대로 나열된 MAC-f PDU들의 프레이밍 헤더(626)를 검사함으로써, 페이로드(630)에서 IP 패킷들을 추출할 수 있다. 길이 지시자(644)가 지시하는 부분은 한 IP 패킷의 종료점이자 다음 IP 패킷의 시작점이 되므로, 페이로드들을 해당 일련번호(632) 순으로 나열한 뒤, 길이 지시자(644)가 지시하는 위치를 기준으로 자르면, IP 패킷들이 추출된다.
도 6b는 도 5에 나타낸 MAC-f PDU(555)의 구조를 나타낸 것이다. 여기에서 전체길이 필드와 E 비트는 생략하였다. MAC-f PDU(555)의 전체 일련번호는 [3.0.0]이고, 세그먼트 레벨은 2임을 이미 설명하였다. 그러므로 2개의 부일련번호 필드들(654, 660)이 구비되어, 첫 번째 부일련번호 필드(654)는 '0'이며, 두 번째 부일련번호 필드(660)는 '0'이다. 일련번호(650)에 이어지는 F1 비트(652)는 이어지는 부일련번호 필드(654)가 존재함을 나타내는 '1'이다.
첫 번째 부일련번호 필드(654)에 이어지는 LSI(656)는 MAC-f PDU(555)가 분할 전송되는 마지막 세그먼트가 아님을 나타내는 '0(false)'으로 설정되고, LSI(656)에 이어지는 F2 비트(658)는 이어지는 부일련번호 필드(660)가 존재함을 나타내는 '1(true)'로 설정된다. 두 번째 부일련번호 필드(660)에 이어지는 LSI(662)는 MAC-f PDU(555)가 분할 전송되는 마지막 세그먼트가 아님을 나타내는 '0'이고, LSI(662)에 이어지는 F2 비트(664)는 전체길이 필드(도시하지 않음)가 따라옴을 나타내는 '0'이다.
프레이밍 헤더의 LI(670)는 페이로드(674)의 길이가 800바이트임을 나타내는 '800'이며, E 필드(672)는 페이로드(674)가 따라옴을 나타내는 '0'으로 설정된다.
도 6a 및 도 6b에서 제시한 프레임 구조는 일 예에 불과하며, 상기 제시된 구조 외에도 여러 가지 변형이 존재할 수 있다. 즉 본 발명은 프레임 구조 자체에 대한 것이 아니라, 통신 상황에 맞춰서 IP 패킷을 다양한 크기로 프레이밍 하는 것으로 이해되어야 한다. 또한 재전송 시 무선 채널 악화 등의 이유로 원래 패킷을 그대로 재전송할 수 없을 때, 재전송 패킷의 크기를 적절하게 맞춰 주는 방법과 장치가 제공된다. 이를 위해서 일련번호와 부일련번호라는 개념을 도입하였고, 일련번호는 최초 전송 시에 사용된 값으로 고정되고, 분할 재전송 시에 부일련번호를 삽입하여 수신측이 분할된 패킷들을 원래의 최초 전송 패킷으로 조립(assembly)하도록 한다.
도 7은 본 발명의 제1 실시예에 따른 분할 재전송의 예를 도시한 것이다.
도 7을 참조하면, 소정 크기들을 가지는 세 개의 IP 패킷들(701, 702, 703)이 있고, IP 패킷(701)의 마지막 부분과 하나의 온전한(complete) IP 패킷(702)과 IP 패킷(703)의 첫 번째 부분이, 한 MAC-f PDU(705)의 페이로드(708)에 수납되었다. 이 때 페이로드(708)에 수납된 IP 패킷(701)에 관련된 부분의 크기는 700 바이트, IP 패킷(702) 전체의 크기는 600 바이트, IP 패킷(703)에 관련된 부분의 크기는 700 바이트이다.
상기 MAC-f PDU(705)의 크기는 2000 바이트를 약간 상회하며, 상기 MAC-f PDU(705)가 제1 시점에 최초로 전송된다. 이때 송신측은 상기 MAC-f PDU(705)의 일 련번호(SN)는 x로, 전체 길이(TL)는 2000으로 설정한다. 이후 재전송 요구가 발생하였으며, 재전송을 실행할 제2 시점에 전송 가능한 MAC-f PDU의 크기는 예를 들어 1200 바이트라고 하자. 그러면 송신측은 상기 MAC-f PDU(705)를 그대로 전송할 수 없으므로, 상기 MAC-f PDU(705)를 분할하여 재전송한다.
분할 재전송은 원래의 패킷을 분할한 뒤 재전송하는 것으로, 분할된 패킷의 일부분은 새롭게 만들어 지고, 원래 패킷의 일부분은 분할된다. 이 때 원래 패킷의 분할되는 부분을 '재전송 유니트(retransmission unit)' 라고 명명할 때, 원래 패킷의 어떤 부분을 재전송 유니트로 간주할 것인가에 대해서는 2가지 접근 방식이 있다.
첫 번째 방식은, MAC-f PDU(705)의 페이로드(708)만을 재전송 유니트(710)로 간주하는 것이다. 두 번째 방식은 프레이밍 헤더(707)와 페이로드(708)를 합한 부분을 재전송 유니트(715)로 간주하는 것이다. 상기 두 번째 방식을 취할 경우, 송신측은 분할 재전송을 수행할 때마다 프레이밍 헤더를 새롭게 구성할 필요가 없지만, 수신측이 분할 재전송된 패킷들을 모두 수신해서 원래의 패킷으로 재구성하기 전에는 원래의 IP 패킷을 추출할 수 없다. 반면 첫 번째 방식을 취할 경우, 송신측은 분할 재전송을 수행할 때마다 프레이밍 헤더를 새롭게 구성해야 하지만, 수신측은 분할 재전송된 패킷의 프레이밍 헤더를 이용해서 원래의 IP 패킷을 추출할 수 있다.
이하에서는 페이로드(708)와 프레이밍 헤더(707)를 포함하는 재전송 유니트(715)를 사용하는 경우의 동작을 설명한다.
1차 재전송시 상기 MAC-f PDU(705)가 MAC-f PDU(720)와 MAC-f PDU(733)로 분할 재전송되고, 2차 재전송시 MAC-f PDU(720)가 MAC-f PDU(748)와 MAC-f PDU(770)로 분할 재전송된다. 그러므로 MAC-f PDU(720)와 MAC-f PDU(733)의 세그먼트 레벨은 1이고, MAC-f PDU(748)와 MAC-f PDU(770)의 세그먼트 레벨은 2이다. 그러면 분할 재전송되는 MAC-f PDU들(720,735,748,770)의 헤더 필드의 값들이 어떻게 결정되는지 아래에 설명한다.
앞서 언급한 바와 같이, 분할 재전송되는 각 MAC-f PDU는 일련번호와 하나 또는 그 이상의 부일련번호 헤더와 전체 길이 필드와 프레이밍 헤더와 페이로드를 포함하여 구성된다.
- 일련번호 필드(723, 735, 750, 775)에는 최초 전송된 MAC-f PDU의 일련번호와 동일한 값이 삽입된다. 그러므로 MAC-f PDU(720), MAC-f PDU(733), MAC-f PDU(748), MAC-f PDU(770)의 일련번호 필드(723, 735, 750, 775)에는 x가 삽입된다.
- 부일련번호 헤더(725, 740, 755, 760, 780, 785)의 수는 세그먼트 레벨에 따라 결정된다. 예를 들어 세그먼트 레벨이 1인 MAC-f PDU(720)와 MAC-f PDU(733)에는 각각 하나의 부일련번호 헤더(725, 740)가 존재한다.
- 각 부일련번호 헤더에 포함되는 부일련번호 필드(도시하지 않음)에는 분할 재전송되는 MAC-f PDU의 순서 정보가 삽입되며, 상기 순서 정보는 0에서 시작해서 1씩 단조 증가하는 정수이다. 예를 들어 MAC-f PDU(720)는 해당 세그먼트 레벨에서 첫 번째 MAC-f PDU이므로 '0'이라는 부일련번호를 가지고, MAC-f PDU(733)는 해당 세그먼트 레벨에서 두 번째 MAC-f PDU이므로 '1'이라는 부일련번호를 가진다.
- 각 부일련번호 헤더에 포함되는 LSI(도시하지 않음)는 MAC-f PDU가 해당 세그먼트 레벨에서 마지막 MAC-f PDU인지 여부를 나타내는 필드이다. '0(false)'은 마지막 MAC-f PDU가 아님을, '1(true)'은 마지막 MAC-f PDU임을 나타낸다고 하면, MAC-f PDU(720)는 해당 세그먼트 레벨에서 마지막 MAC-f PDU가 아니므로 '0'이라는 LSI 값을 가지고, MAC-f PDU(733)는 해당 세그먼트 레벨에서 마지막 MAC-f PDU이므로 '1'이라는 LSI 값을 가진다.
- 세그먼트 레벨이 2인 MAC-f PDU들(748, 770)의 경우, 각각 2개의 부일련번호 헤더들(755-760, 780-785)을 가진다. 이 때, 마지막 부일련번호 헤더(760, 785)의 부일련번호와 LSI만이 해당 세그먼트 레벨에서 유의미하며, 나머지 부일련번호 헤더(755, 780)의 부일련번호와 LSI에는 이전 세그먼트 레벨에서 사용한 값과 동일한 값들이 삽입된다. MAC-f PDU(748)를 예로 들어 설명하면, 상기 MAC-f PDU(748)의 첫 번째 부일련번호 헤더(755)의 부일련번호와 LSI는, 모 MAC-f PDU(720)의 부일련번호 헤더(725)의 부일련번호와 LSI와 동일하다. 그리고 상기 MAC-f PDU(748)의 두 번째 부일련번호 헤더(760)의 부일련번호와 LSI는, 앞서 설명한 방식에 따라 결정된다.
본 명세서에서 모 MAC-f PDU(Parent MAC-f PDU)와 자 MAC-f PDU(child MAC-f PDU)는 분할 재전송되는 MAC-f PDU들의 관계를 나타내는 용어로, 한 MAC-f PDU가 여러 개의 MAC-f PDU로 분할 재전송될 때, 원래의 MAC-f PDU를 모 MAC-f PDU, 분할된 MAC-f PDU들을 자 MAC-f PDU라고 지칭한다.
- 전체 길이 필드(706, 730, 745, 765, 790)는 전술한 바와 같이, 해당 페이로드의 크기를 바이트 단위로 나타낸 정보이기 때문에 분할 재전송되는 MAC-f PDU들마다 새로운 값이 삽입된다. 예를 들어 MAC-f PDU(705)의 전체 길이 필드(706)에는 '2000'이라는 값이 삽입되며, 상기 MAC-f PDU(705)의 자 MAC-f PDU인 MAC-f PDU(720)의 전체 길이 필드(730)에는 예를 들어 '1200'이라는 새로운 값이 삽입된다.
- 프레이밍 헤더(707)에는 전술한 바와 같이 길이 지시자가 삽입된다. 길이 지시자는 MAC-f PDU(705)에 IP 패킷의 마지막 바이트가 포함되어 있는지의 여부와, 만일 포함되어 있다면 그 위치를 나타내는 값이 삽입된다. 여기에서는 앞서 언급한 바와 같이 프레이밍 헤더(707)와 페이로드(708)를 포함하는 재전송 유니트(715)가 이용되는 경우를 도시하였으므로, 프레이밍 헤더(707)는 분할되지 않은 MAC-f PDU(705)에서만 사용되고, 각 분할된 MAC-f PDU들(720, 733, 748, 770)은 프레이밍 헤더를 포함하지 않는다. 반면 페이로드(708)만을 포함하는 재전송 유니트(710)가 이용되는 경우, 예를 들어 MAC-f PDU(705)의 프레이밍 헤더(707)에는 IP 패킷(701)과 IP 패킷(702)에 대한 2개의 길이 지시자가 포함되지만, 상기 MAC-f PDU(707)의 자(Child)인 MAC-f PDU(720)의 프레이밍 헤더(도시하지 않음)에는 IP 패킷(701)의 끝을 나타내는 길이 지시자만이 삽입된다.
이상에서 살펴본 바와 같이, 분할 재전송 시 모 MAC-f PDU의 값이 그대로 사용되는 헤더 필드와 자 MAC-f PDU에서 새롭게 삽입하는 헤더 필드가 있다. 이하 설명의 편의를 위해서 모 MAC-f PDU에서 사용된 값이 그대로 사용되는 헤더 필드를 ' 복사되는 헤더'라 하고, 필드 값이 새롭게 삽입되는 헤더 필드를 '새로 삽입되는 헤더'라고 명명한다. 그러면, 복사되는 헤더로는 일련번호 필드와, 유의미한 부일련번호 헤더를 제외한 나머지 부일련번호 헤더의 부일련번호 필드와 LSI가 있고, 새로 삽입되는 헤더로는 유의미한 부일련번호 헤더와 전체 길이 필드와 프레이밍 헤더 필드가 있다. 여기서 상기 유의미한 부일련번호 헤더는 해당 세그먼트 레벨에서 유의미한 정보를 담고 있는 부일련번호 헤더로서, 세그먼트 레벨 n에서는 n번째 부일련번호 헤더가 유의미한 부일련번호 헤더이다.
도 8은 본 발명의 제1 실시예에 따른 송신기 구조를 도시한 블록도이다.
도 8을 참조하면, 송신기는 전송 버퍼(805), 헤더 삽입 블록(815), MAC-f 제어 블록(820), 재전송 버퍼(825), 분할 재전송 블록(827), 다중화 블록(830), HARQ 블록 및 물리계층(835)으로 구성된다. 이중 전송 버퍼(805), 헤더 삽입 블록(815), MAC-f 제어 블록(820), 재전송 버퍼(825), 분할 재전송 블록(827)은 MAC-f 엔터티를 구성한다. 여기에서는 단지 하나의 MAC-f 엔터티만을 도시하였으나, 복수의 서비스들에 대한 복수의 MAC-f 엔터티가 구비될 수 있다.
전송 버퍼(805)는 상위 계층에서 전달된 IP 패킷들을, 물리 계층을 통해 전송될 때까지 저장한다. 전송 버퍼(805)는 저장된 IP 패킷들을, MAC-f 제어 블록(820)의 요구된 데이터 양 만큼 헤더 삽입 블록(815)으로 출력한다.
다중화 블록(830)은 노드 B 스케쥴러가 할당한 무선 전송 자원에 맞춰 MAC-f 엔터티 별로 다음 전송 주기에 전송할 데이터의 양을 결정해서, MAC-f 제어 블록(820)에 통보한다. MAC-f 제어 블록(820)은 최초 전송과 재전송의 우선순위에 따 라 다음 전송 주기에 전송할 데이터를 결정한다. 다음 전송 주기에 새로운 IP 패킷을 전송하기로 결정하면, 전송할 데이터의 양을 전송 버퍼(805)에 통보한다. 반면 다음 전송 주기에 재전송을 실행하기로 결정하면, 재전송 버퍼(825)에게 재전송을 명령하고, 분할 재전송 블록(827)에게 재전송할 데이터의 양을 통보한다.
전송 버퍼(805)는 상기 통보 받은 양만큼의 IP 패킷(들)을 헤더 삽입 블록(815)으로 전달한다. 이 때 전송할 데이터의 양이 한 IP 패킷의 크기와 일치하지 않으면, 전송 버퍼(805)는 한 IP 패킷을 분할해서 일부만 전달하거나, 다수의 IP 패킷들을 전달할 수도 있다.
헤더 삽입 블록(815)은 전송 버퍼(805)가 전달한 IP 패킷(들)에 SN 헤더, 전체 길이(TL), E 비트, 프레이밍 헤더를 삽입해서 MAC-f PDU를 구성한다.
상기 MAC-f PDU는 재전송 버퍼(825)와 다중화 블록(830)으로 전달된다. 재전송 버퍼(825)는 상기 MAC-f PDU를 저장하고, 상대 엔터티로부터 수신된 피드백 신호에 따라 상기 저장한 MAC-f PDU를 폐기하거나 혹은 재전송을 스케쥴한다. 구체적으로, 상대측 ARQ 엔터티로부터 긍정적 피드백 신호(Acknowledge: 이하 ACK라 칭함)가 수신되면, 재전송 버퍼(825)는 상기 ACK에 해당하는 MAC-f PDU를 재전송 버퍼(825)에서 폐기한다. 반면 상대측 ARQ 엔터티로부터 부정적 피드백 신호(Negative acknowledge: 이하 NACK라 칭함)가 수신되면, 재전송 버퍼(825)는 상기 NACK에 해당하는 MAC-f PDU에 대한 재전송을 준비한다. 즉 재전송 버퍼(825)는 MAC-f 제어 블록(820)으로부터 재전송 명령을 받으면, 상기 NACK에 해당하는 MAC-f PDU를 분할 재전송 블록(827)으로 전달한다. 상기 ACK 및/또는 NACK는 미리 정해지 는 주기에 따른 소정 발생 시점 혹은 다른 트리거링 조건에 따라 전송되는 상태 보고(STATUS REPORT)에 함께 수납될 수 있다.
분할 재전송 블록(827)은 재전송 버퍼(825)로부터의 MAC-f PDU에 대해 분할 재전송을 실행한다. 분할 재전송이 필요하지 않은 경우에는, 재전송 버퍼(825)가 전달한 MAC-f PDU는 변형 없이 다중화 블록(830)으로 전달된다. 분할 재전송이 필요한 경우에, 분할 재전송 블록(827)은 재전송 버퍼(825)로부터의 모 MAC-f PDU의 재전송 유니트를 필요한 크기로 분할한 뒤, 각 분할된 세그먼트 각각에 SN 헤더와 전체 길이 필드를 첨부하고, 필요한 경우 프레이밍 헤더를 첨부하여, 자 MAC-f PDU들을 생성한다.
구체적으로 분할 재전송 블록(827)은, 모 MAC-f PDU의 SN 헤더에 부일련번호 헤더를 추가하고, 전체 길이를 해당 자 MAC-f PDU의 페이로드 크기에 맞춰 다시 설정하고, 해당 자 MAC-f PDU에 IP 패킷의 마지막 바이트가 존재하는지 여부에 따라 프레이밍 헤더를 설정함으로써 각각의 MAC-f PDU를 생성한다. 분할 재전송 블록(827)은 자 MAC-f PDU들에 대한 재전송 버퍼의 역할도 겸한다. 즉 분할 재전송 블록(827)은 자 MAC-f PDU들에 대한 ACK들이 전달될 때까지 상기 자 MAC-f PDU들을 저장하고, ACK들이 수신되면 상기 자 MAC-f PDU를 폐기한다.
다중화 블록(830)은 다수의 MAC-f 엔터티들로부터 전달된 MAC-f PDU들을 하나의 MAC-m PDU로 다중화하고, MAC-m PDU에 다중화 헤더들을 삽입한다. 상기 MAC-m PDU는 HARQ 블록 및 물리계층(835)에 의해 HARQ 동작을 거쳐 무선 채널로 전송된다.
도 9는 본 발명의 제1 실시예에 따른 수신기 구조를 도시한 블록도이다.
도 9를 참조하면, 송신기는 조립 블록(905), 수신 버퍼(910), 재전송 관리 블록(915), 역다중화블록(920), HARQ 블록 및 물리계층(925)으로 구성된다. 이중 조립 블록(905), 수신 버퍼(910), 재전송 관리 블록(915)은 MAC-f 엔터티를 구성한다. 여기에서는 단지 하나의 MAC-f 엔터티만을 도시하였으나, 복수의 서비스들에 대한 복수의 MAC-f 엔터티가 구비될 수 있다.
HARQ 블록 및 물리계층(925)은 물리 채널을 통해 MAC-m PDU에 대한 HARQ 과정을 수행하고, HARQ 과정을 거쳐 성공적으로 수신한 MAC-m PDU를 역다중화 블록(920)으로 전달한다. 역다중화 블록(920)은 HARQ 블록 및 물리계층(925)으로부터 전달된 MAC-m PDU의 다중화 헤더들을 해석해서, 상기 MAC-m PDU를 복수의 MAC-f PDU들로 역다중화한 뒤, 역다중화된 MAC-f PDU들을 해당하는 다중화 헤더들이 가리키는 MAC-f 엔터티들로 전달한다.
수신 버퍼(910)는 역다중화 블록(920)으로부터 수신한 MAC-f PDU를 그 일련번호에 따른 위치에 저장하고, 저장된 MAC-f PDU들 중 조립이 가능한 MAC-f PDU들을 조립 블록(905)으로 전달한다. 여기서 조립이 가능한 MAC-f PDU들이라 함은, 갭(gap)이 없이 일련번호의 순서대로 정렬된 MAC-f PDU들을 의미한다.
재전송 관리 블록(915)은 수신 버퍼(910)에 저장된 MAC-f PDU들의 일련번호와 부일련번호를 검사해서, ACK/NACK를 상기 물리 계층에 의해 상대측 ARQ 엔터티로 전송하는 동작을 수행한다. 이때, NACK는 수신하지 못한 특정 MAC-f PDU의 재전송을 요청하기 위해 전송되거나, 혹은 어떤 MAC-f PDU에 대한 재전송을 요청해야 할지 모를 때 전송된다. 각 경우에 있어서 상기 NACK에 대한 상세한 설명은 후술될 것이다. ACK는, 갭이 존재하지 않은 경우에 전송될 수 있다. 조립 블록(905)은 수신 버퍼(910)에서 전달된 MAC-f PDU들의 프레이밍 헤더 등을 참조해서, 상기 MAC-f PDU들 중 분할된 MAC-f PDU들을 원래의 IP 패킷으로 재구성한 뒤, 상기 IP 패킷을 상위 계층으로 전달하는 동작을 수행한다.
도 10은 본 발명의 제1 실시예에 따른 분할 재전송 동작을 설명하기 위한 시그널링 흐름도이다.
도 10을 참조하면, 1015단계에서 송신측(1005)은 수신측(1010)으로 일련번호가 14인 MAC-f PDU (이하 PDU[14]로 표기함)를 전송한다. 1020단계에서 수신측은 PDU[14]가 성공적으로 수신되지 못하였음을 나타내는 NACK(이하 NACK[14]로 표기함)를 송신측(1005)으로 전송한다.
상기 NACK[14]에 응답하여 송신측(1005)은 PDU[14]를 재전송하고자 하지만, 허용된 무선 전송 자원의 양이 PDU[14]의 원래 크기를 전송하기에 부족하면, 1025단계에서 송신측(1005)은 PDU[14]를 분할한다. 여기서 PDU[14]는 PDU[14.0]과 PDU[14.1]로 분할된다. 이때 PDU[14.1]의 첫 번째 부일련번호 헤더의 LSI는 '1'로 설정되어서, PDU[14.1]이 PDU[14]에 관련된 마지막 세그먼트임을 표시한다. 1030단계에서 송신측(1005)은 PDU[14.0]을 전송하고, 1035단계에서 PDU[14.1]을 전송한다.
이후 1040단계에서 수신측(1010)은 송신측(1005)으로 PDU[14.1]에 대한 NACK(즉 NACK[14.1])를 전송한다. 상기 NACK[14.1]에 응답하여 송신측(1005)은 PDU[14.1]를 재전송하고자 하지만, 허용된 무선 전송 자원의 양이 PDU[14.1]를 전송하기에 부족하면, 1045단계에서 송신측(1005)은 PDU[14.1]을 다시 분할한다. 여기서 PDU[14.1]은 PDU[14.1.0], PDU[14.1.1], PDU[14.1.2], PDU[14.1.3]으로 분할된다. 상기 PDU[14.1.0], PDU[14.1.1], PDU[14.1.2], PDU[14.1.3]의 첫 번째 부일련번호 헤더는 PDU[14.1]의 첫 번째 부일련번호 헤더와 동일하며, 두 번째 부일련번호 헤더에는 새로운 부일련번호와 LSI들이 설정된다. 이때 PDU[14.1.3]의 두 번째 부일련번호 헤더의 LSI는 '1'로 설정되어서, PDU[14.1.3]이 PDU[14.1]에 관련된 마지막 세그먼트임을 표시한다. 1050, 1055, 1060, 1065 단계들에서 송신측(1005)은 상기 PDU[14.1.0], PDU[14.1.1], PDU[14.1.2], PDU[14.1.3]을 수신측(1010)으로 순차적으로 전송한다.
상기에서 보는 바와 같이 본 발명의 바람직한 실시예에서는 분할 재전송되는 MAC-f PDU들에 대해서 선택적으로 재전송을 요청하고 수행할 수 있다. 예를 들어 PDU[14]가 PDU[14.0]과 PDU[14.1]로 분할되어 전송될 때, 수신측(1010)이 PDU[14.0]은 수신하고, PDU[14.1]은 수신하지 못하였다면, PDU[14.1]에 대해서만 NACK를 전송한다. 마찬가지로 만약 수신측(1010)이 PDU[14.1.2]를 수신하지 못했다면, PDU[14.1.2]에 대한 NACK만을 전송한다.
상기와 같은 분할 재전송에 대한 재전송 요청 시 발생할 수 있는 문제점은, 수신측이 마지막 세그먼트를 수신하지 못하였으면, 수신측이 그 사실을 인지하지 못하고 결과적으로 마지막 세그먼트에 대한 NACK를 전송할 수 없다는 것이다. 이는 일련번호를 기반으로 한 ARQ 시스템에서는 동일 세그먼트 레벨의 후속 PDU를 수신 하지 않은 상태에서 이전 PDU의 미수신 여부를 판단할 수 없기 때문이다. 예를 들어 수신측(1010)은, PDU[14]를 완전히 수신하지 못하였다는 사실을, PDU[15]를 수신하는 시점에 도달하기까지는 인지할 수 없다.
그런데 분할 재전송에서는 후속 PDU를 수신하더라도, 수신하지 못한 PDU를 정확하게 인지하지 못하는 경우가 발생할 수 있다. 예를 들어 수신측(1010)이 PDU[14.1.0]과 PDU[15]를 수신하였다면, 수신측(1010)은 PDU[14.1.0]의 LSI가 '0'이므로, 수신하지 못한 세그먼트가 있다는 사실은 인지하지만, 몇 개의 세그먼트들을 더 수신해야 하는지는 알 수 없다. 그러므로 수신측(1010)은 PDU[14.1.1], PDU[14.1.2], PDU[14.1.3]에 대한 재전송을 요청해야 한다는 사실도 알 수 없다.
이러한 문제점을 해결하기 위해서 본 발명의 바람직한 실시예에서는 NACK의 포맷을 정의한다. 도 11a는 본 발명의 일 실시예에 따른 명시적(explicit) NACK의 포맷을 나타낸 것이며, 도 11b는 본 발명의 다른 실시예에 따른 암시적(Implicit) NACK의 포맷을 나타낸 것이다. 도시한 바와 같이 명시적 NACK와 암시적 NACK는 해당 타입 값으로 구별된다.
도 11a에 나타낸 명시적 NACK(1105)는 수신하지 못한 PDU를 정확하게 알고 있는 경우에 사용되는 것으로서, 타입(Type) 필드와 일련번호(SN) 필드 및 부일련번호(Sub-SN) 필드들로 구성된다. 타입 필드에는 명시적 NACK(1105)를 나타내는 고유한 타입 값이 삽입된다. 일련번호 필드와 부일련번호 필드들에는 명시적 NACK(1105)의 대상인 PDU의 일련번호 및 부일련번호가 삽입된다. 여기서 명시적 NACK(1105)로 분할되지 않은 MAC-f PDU의 재전송을 요청하고자 하는 경우 상기 부 일련번호 필드들이 포함되지 않음은 물론이다. 일련번호 필드 및 부일련번호 필드들에 각각 이어지는 E 필드에는, 다음 비트가 다른 부일련번호 필드일 경우 '1'이, 그렇지 않을 경우에는 '0'이 삽입된다.
예를 들어 PDU[14]의 재전송을 요청하기 위한 명시적 NACK의 일련번호 필드에는 '14'가 삽입되고, E 필드에는 '0'이 삽입되며 부일련번호 필드는 사용되지 않는다. PDU[14.1]의 재전송을 요청하기 위한 명시적 NACK의 일련번호 필드에는 '14', 첫 번째 E 필드에는 '1', 부일련번호 필드에는 '1', 두 번째 E 필드에는 '0'이 삽입된다. 송신측은 상기 명시적 NACK(1105)를 수신하면, 상기 명시적 NACK에 포함된 일련번호를 가지는 PDU를 재전송한다.
도 11b에 나타낸 암시적 NACK(1110)는, 수신측이 어떤 PDU에 대한 재전송을 요청해야 할지 알 수 없을 때 사용되는 것으로서 마찬가지로 타입 필드와 일련번호 필드 및 부일련번호 필드들로 구성된다. 일련번호 필드 및 부일련번호 필드들에는 각각 E 필드가 이어진다. 수신측은, 분할 재전송되는 세그먼트들의 수신 도중, LSI가 '1'로 설정된 세그먼트를 수신하지 못한 경우, 상기 암시적 NACK(1110)를 전송한다. 타입 필드에는 암시적 NACK(1110)를 나타내는 고유한 타입 값이 삽입된다. 이 값은 상기 명시적 NACK(1105)를 나타내는 타입 값과는 상이하다.
수신측은 상기 암시적 NACK(1110)의 일련번호 필드 및 부일련번호 필드들에, 해당 세그먼트 레벨에서 이미 수신된 PDU들의 일련번호들 중 가장 높은 전체 일련번호를 삽입하여 전송한다. 예를 들어 PDU[14.1.0]이 수신되고 해당 세그먼트 레벨에서 LSI가 '1'로 설정된 세그먼트가 수신되지 않은 경우, 수신측은 일련번호 '14', 첫 번째 부일련번호 '1', 두 번째 부일련번호 '0'으로 설정된 암시적 NACK(1110)를 전송한다. 송신측은 상기 암시적 NACK(1110)를 수신하면, 해당 세그먼트 레벨에서 상기 일련번호 [14.1.0]보다 큰 일련번호를 가지는 PDU들, 즉 PDU[14.1.1], PDU[14.1.2], PDU[14.1.3]을 재전송한다.
도 12는 본 발명의 제1 실시예에 따른 분할 재전송 동작을 나타낸 흐름도이다. 여기에서는 초기전송을 생략하였으며, 재전송이 수행되는 경우의 동작만을 도시하였다.
도 12를 참조하면, 1205 단계에서 다음 전송 주기의 재전송이 스케쥴되고, 재전송할 데이터의 양이 결정된다. 이하 상기 재전송될 데이터의 양을 재전송 용량이라고 칭한다.
1210 단계에서 MAC-f 엔터티는 상기 재전송 용량을, 저장된 MAC-f PDU들 중 재전송 우선순위가 가장 높은 MAC-f PDU의 크기와 비교한다. 재전송 우선순위는 다양한 기준에 의해서 설정될 수 있는데, 예를 들어 재전송 우선순위는 일련번호와 역 비례 관계를 가질 수 있다. 즉 일련번호가 낮은 MAC-f PDU일수록 높은 재전송 우선순위를 가진다. 이는 먼저 발생한 MAC-f PDU에 높은 우선순위를 주는 것으로, 가장 보편적인 기준이라고 볼 수 있다. 재전송할 MAC-f PDU가 여러 개라면, 상기와 같은 우선순위를 기준으로 재전송의 순서가 결정된다. 다른 예로서, 가장 낮지 않은 일련번호를 가지더라도 매우 적은 전송지연을 요구하는 서비스에 관련된 MAC-f PDU는 상대적으로 높은 재전송 우선순위를 가질 수 있다.
1210 단계에서 상기 재전송 용량이 상기 재전송 우선순위가 가장 높은 MAC-f PDU의 크기보다 크다면 1215 단계로, 그렇지 않다면 1220 단계로 진행한다. 상기 1215 단계에서 MAC-f 엔터티는 재전송 우선순위가 가장 높은 상기 MAC-f PDU를 MAC-m 계층으로 전달하고 1217 단계로 진행한다. 상기 1217 단계에서 MAC-f 엔터티는 재전송 용량을 아래와 같이 갱신하고, 1210 단계로 회귀한다.
재전송 용량 = (기존 재전송 용량) - (MAC-m으로 전달된 MAC-f PDU의 크기)
상기 1220 단계에서 MAC-f 엔터티는 재전송 우선순위가 가장 높은 상기 MAC-f PDU를 상기 재전송 용량에 맞춰 분할하고 1225 단계로 진행한다. 도시하지 않을 것이나 여기서 상기 재전송 우선순위가 가장 높은 MAC-f PDU를 상기 재전송 용량에 맞춰 분할하는 것이 불가능하다면, 즉, 상기 재전송 용량이 MAC-f PDU의 최소 크기보다 작게 되면, 동작을 종료한다. 여기서 MAC-f PDU의 최소 크기는 MAC-f 헤더의 크기를 의미하며, MAC-f PDU의 세그먼트 레벨에 따라 그 값이 달라진다. MAC-f PDU의 최소 크기는 예를 들어 아래와 같이 결정된다.
MAC-f PDU의 최소 크기 = (일련번호 필드 크기 + 1) + 세그먼트 레벨 * (부일련번호 필드 크기 + 2) + 전체 길이 필드 크기 + 1 + 프레이밍 헤더 크기
상기 1225 단계에서 MAC-f 엔터티는 상기 분할된 MAC-f PDU의 일련번호 헤더에 부일련번호 헤더를 삽입하고, 1230 단계에서 상기 MAC-f PDU를 MAC-m 계층으로 전달한다. 상기 MAC-f PDU는 MAC-m 계층에서 다른 MAC-f 엔터티로부터의 MAC-f PDU들과 다중화된 후 전송된다.
상기 도 12를 참조하여 분할 재전송 동작의 예를 설명한다.
재전송 버퍼에는 아래와 같은 MAC-f PDU들이 저장되어 있다.
- MAC-f PDU[10] = [SN = 10, F1 = 0, Total Length = 1000, E = 0]
- MAC-f PDU[12.1] = [SN = 12, F1 = 1, sub-SN = 1, LSI = 1 , F2 = 0, Total Length = 800]
여기서 더 낮은 일련번호를 가지는 MAC-f PDU[10]이 더 높은 재전송 우선순위를 가진다.
이후 1500 바이트의 재전송 용량이 스케쥴된다면, MAC-f 엔터티는 1210 단계에서 재전송 용량 1500과 재전송 우선순위가 가장 높은 MAC-f PDU[10]의 크기 1000을 비교한다. 재전송 용량이 크므로, 1215 단계로 진행해서 상기 MAC-f PDU[10]을 분할 없이 MAC-m 계층으로 전달한다. 상기 1217 단계에서 MAC-f 엔터티는 재전송 용량을 500으로 갱신하고, 1210 단계로 진행한다.
다음으로, 상기 1210 단계에서 상기 갱신된 재전송 용량 500과 재전송 우선순위가 두 번째로 높은 MAC-f PDU[12.1]의 크기 800을 비교한다. MAC-f PDU[12.1]의 크기가 크므로, 1220 단계로 진행해서 MAC-f PDU[12.1]은 500 바이트와 300 바이트의 MAC-f PDU들로 분할된다.
상기 1225 단계에서 MAC-f 엔터티는 상기 분할된 MAC-f PDU들에 부일련번호 [12.1.0], [12.1.1]과 LSI를 삽입한다. 이로써 아래와 같은 MAC-f PDU[12.1.0]과 MAC-f PDU[12.1.1]이 구성된다.
- MAC-f PDU[12.1.0] = [SN = 12, F1 = 1, sub-SN = 1, LSI = 1 , F2 = 1, sub-SN = 0, LSI = 0 , F2 = 0, Total Length = 500]
- MAC-f PDU[12.1.1] = [SN = 12, F1 = 1, sub-SN = 1, LSI = 1 , F2 = 1, sub-SN = 1, LSI = 1 , F2 = 0, Total Length = 300]
최종적으로 상기 1230 단계에서 MAC-f PDU[12.1.0]이 MAC-m 계층으로 전달되며, 상기 MAC-f PDU[12.1.1]은 재전송 용량이 다시 할당될 때까지 버퍼링된다.
도 13은 본 발명의 제1 실시예에 따른 수신 동작을 도시한 흐름도이다.
도 13을 참조하면, 1305단계에서 MAC-m 계층은 MAC-m PDU를 수신하고, 1310단계에서 상기 MAC-m PDU의 다중화 헤더들을 해석하여, 1315단계에서 상기 MAC-m PDU에 다중화되어 있는 MAC-f PDU들을 각각 해당 MAC-f 엔터티의 수신 버퍼로 전달한다. 하기 1320 내지 1340단계들은 어느 한 MAC-f 엔터티에 의한 동작만을 도시한 것이다.
1320단계에서 MAC-f 엔터티는 MAC-m 계층으로부터 전달된 MAC-f PDU의 일련번호 헤더를 검사해서, 상기 MAC-f PDU를 적절한 위치에 저장한다. 상기 MAC-f PDU의 저장 위치는 전체 일련번호를 기준으로 판단한다. 전체 일련번호는 일련번호와 부일련번호를 포함하는 것으로, 일련번호의 중요도는 세그먼트 레벨에 따라 결정된다. 즉, 세그먼트 레벨 1의 부일련번호가 세그먼트 레벨 2의 부일련번호 보다 높은 중요도를 가진다. 수신측은 기 저장되어 있는 MAC-f PDU들과 MAC-m 계층으로부터 전달된 MAC-f PDU의 순서를 판단할 때, 먼저 MAC-f PDU들의 일련번호들을 상호 비교한다. 만일 일련번호들이 상호 동일하면, 다음으로 세그먼트 레벨 1의 부일련번호들을 비교한다. 상기 부일련번호들이 또한 상호 동일하면, 세그먼트 레벨 2의 부일련번호를 비교하는 동작을 반복한다.
1325 단계에서 MAC-f 엔터티는 상기 저장된 MAC-f PDU들 중, 상위 레벨의 MAC-f PDU로 조립이 가능한 MAC-f PDU들이 있는지 검사해서, 가능하다면 조립한다.
1. 상기 MAC-f PDU들의 조립 가능 여부는 아래와 같이 판단한다.
1.1. 주어진 세그먼트 레벨에서, 마지막 부일련번호를 제외한 나머지 '일련번호 및 부일련번호들'이 동일한 MAC-f PDU들을 하나의 분할 MAC-f PDU 셋으로 그룹화한다. 예를 들어 MAC-f PDU[12.0.0], MAC-f PDU[12.0.1]은 동일한 분할 MAC-f PDU 셋으로 그룹화된다. 반면에 MAC-f PDU[12.0.0], MAC-f PDU[12.1.1]은 동일한 분할 MAC-f PDU 셋이 아니다. 여기서 분할 MAC-f PDU 셋이란, 상위 레벨의 MAC-f PDU로 조립 가능한 분할 MAC-f PDU들을 포함하며, 한 분할 MAC-f PDU 셋이 완전히 수집되었을 때 상기 MAC-f PDU 셋의 분할 MAC-f PDU들이 상위 MAC-f PDU로 조립된다.
1.2. 주어진 분할 MAC-f PDU 셋에 속한 MAC-f PDU들 중, 마지막 부일련번호 0의 MAC-f PDU에서 LSI가 1로 설정된 MAC-f PDU까지가 연속적인 마지막 부일련번호들을 가지면, 상기 분할 MAC-f PDU 셋은 조립이 가능하다.
2. 조립이 가능한 분할 MAC-f PDU 셋은 아래와 같이 상위 레벨의 MAC-f PDU로 조립된다.
2.1. 분할 MAC-f PDU 셋에 포함된 모든 MAC-f PDU들의 페이로드를 순서대로 연접해서 상위 레벨 MAC-f PDU의 페이로드로 한다.
2.2. 상위 레벨 MAC-f PDU의 헤더를 아래와 같이 구성한다.
2.2.1. 분할 MAC-f PDU 셋에 포함된 MAC-f PDU들 중 어느 하나를 선택해서, 상기 선택된 MAC-f PDU의 일련번호 헤더에서 마지막 부일련번호 헤더를 제거한 부 분을 상기 상위 레벨 MAC-f PDU의 일련번호 헤더로 한다.
2.2.2. 전체 길이 필드는 상기 상위 레벨 MAC-f PDU의 페이로드 크기에 맞춰 새로 계산한다.
2.2.3. 프레이밍 헤더는 상기 상위 레벨 MAC-f PDU의 페이로드에 IP 패킷이 프레이밍된 상태에 맞춰 다시 설정한다.
2.3. 상기 상위 레벨 MAC-f PDU의 헤더와 페이로드를 합치면, 상기 상위 레벨 MAC-f PDU의 조립이 완료된다.
1330 단계에서 MAC-f 엔터티는 상기 조립된 MAC-f PDU들을 이용하여 MAC SDU의 조립이 가능한지 검사한다. 아래 조건이 만족하면, MAC SDU의 조립이 가능하다.
- 수신 버퍼에 저장되어 있는 각 MAC-f PDU에 포함되어 있는 길이 지시자들 중 i 번째 길이 지시자를 LI(i)라고 한다.
- LI(i)를 가지는 MAC-f PDU와 LI(i+1)을 가지는 MAC-f PDU 사이에 미수신 MAC-f PDU가 없으면, LI(i)를 시작점으로 하고, LI(i+1)을 종료점으로 하는 MAC SDU를 조립할 수 있다.
미수신 MAC-f PDU의 존재 여부는 일련번호들의 연속성으로 판단할 수 있다. 즉 일련번호들이 연속적이면 미수신 MAC-f PDU가 존재하지 않으며, 일련번호들의 연속성이 깨지는 부분에서는 미수신 MAC-f PDU가 존재한다.
비분할 MAC-f PDU와 분할 MAC-f PDU 셋 사이, 분할 MAC-f PDU 셋과 비분할 MAC-f PDU 사이, 분할 MAC-f PDU 셋들 사이, 분할 MAC-f PDU 셋 내에서 일련번호들의 연속성은 다음과 같이 판단된다.
- 비분할 MAC-f PDU와 분할 MAC-f PDU 셋 사이의 연속성 : 비분할 MAC-f PDU와 분할 MAC-f PDU 셋의 일련번호들이 연속적이고, 분할 MAC-f PDU 셋의 첫 번째 MAC-f PDU의 모든 부일련번호 들이 0이면 연속, 아니면 불연속이다. 도 14a를 참조하면, 비분할 MAC-f PDU[11]의 일련번호가 11이고, 분할 MAC-f PDU 셋의 전체 일련번호가 12.0 및 12.1로 연속적이며, 상기 분할 MAC-f PDU 셋의 첫 번째 MAC-f PDU의 부일련번호가 0이므로, 상기 분할 MAC-f PDU 셋은 상기 비분할 MAC-f PDU의 연속이다.
- 분할 MAC-f PDU 셋과 비분할 MAC-f PDU 사이의 연속성 : 분할 MAC-f PDU 셋과 비분할 MAC-f PDU의 일련번호들이 연속적이고, 분할 MAC-f PDU 셋의 마지막 MAC-f PDU의 마지막 LSI가 1이면 연속, 아니면 불연속이다. 도 14b를 참조하면, 분할 MAC-f PDU 셋의 일련번호가 12이고, 비분할 MAC-f PDU[13]의 일련번호가 13으로 연속적이며, 분할 MAC-f PDU 셋의 마지막 MAC-f PDU[12.4]의 LSI가 1이므로, 상기 비분할 MAC-f PDU[13]은 상기 분할 MAC-f PDU 셋의 연속이다.
- 분할 MAC-f PDU 셋들 사이의 연속성 : 분할 MAC-f PDU 셋들의 일련번호들이 연속적이고, 첫 번째 분할 MAC-f PDU 셋의 마지막 MAC-f PDU의 마지막 LSI가 1이고, 두 번째 분할 MAC-f PDU 셋의 첫 번째 MAC-f PDU의 모든 부일련번호가 0이면 연속, 아니면 불연속이다. 도 14c를 참조하면, 첫 번째 분할 MAC-f PDU 셋의 일련번호가 12이고, 두 번째 분할 MAC-f PDU 셋의 일련번호가 13으로 연속적이며, 첫 번째 분할 MAC-f PDU 셋의 마지막 MAC-f PDU[12.4]의 LSI가 1이고, 두 번째 분할 MAC-f PDU 셋의 첫 번째 MAC-f PDU[13.0]의 부일련번호가 0이므로, 두 번째 분할 MAC-f PDU 셋은 첫 번째 분할 MAC-f PDU 셋의 연속이다.
- 분할 MAC-f PDU 셋 내의 연속성 : 세그먼트 레벨이 변하는 지점에서, 세그먼트 레벨이 변하기 직전 MAC-f PDU의 마지막 LSI가 1이고, 세그먼트 레벨이 변한 첫 번째 MAC-f PDU의 마지막 부일련번호가 0이면 연속, 아니면 불연속이다. 또한 마지막 부일련번호를 제외한 부일련번호들과 일련번호가 동일한 세그먼트 레벨에서, 마지막 부일련번호가 연속적인 곳은 연속, 불연속적인 곳은 불연속이다. 도 14d를 참조하면, MAC-f PDU[12.3]과 MAC-f PDU[12.4]는 동일한 일련번호 12를 가지는 세그먼트 레벨에서 마지막 부일련번호가 연속이므로, 서로 연속이다. MAC-f PDU[12.4]와 MAC-f PDU[12.5.0]의 사이는 세그먼트 레벨이 변하는 지점이며, 세그먼트 레벨이 변하기 직전 MAC-f PDU[12.4]의 LSI가 1이고, 세그먼트 레벨이 변한 첫 번째 MAC-f PDU[12.5.0]의 마지막 부일련번호가 0이므로, MAC-f PDU[12.5.0]은 MAC-f PDU[12.4]의 연속이다.
상기 1330 단계에서 조립이 가능한 MAC-f PDU들이 존재하는 것으로 판단되면, 1335 단계로 진행해서 MAC-f 엔터티는 상기 MAC-f PDU들로 MAC SDU를 조립해서 상위 계층으로 전달하고 1340 단계로 진행하여 다음 MAC-f PDU가 도착할 때까지 대기한다. 반면 상기 1330 단계에서 조립이 가능한 MAC-f PDU들이 존재하지 않은 것으로 판단되면, 1340 단계로 진행해서 다음 MAC-f PDU가 도착할 때까지 대기한다.
<<제2 실시예>>
본 발명의 제2 실시예로서, 최초 전송과 재전송 시에 일련번호를 달리 설정 하는 방안을 제시한다. 일련번호를 부여하는 방안으로는 크게 아래 두 가지 방식이 존재한다. 먼저 패킷 별로 일련번호를 부여할 수 있고, 미리 정해진 크기마다 일련번호를 부여할 수 있다. 대표적인 예로 바이트 별로 일련번호를 부여하는 것이 가능하다. 패킷 별로 일련번호를 부여하는 방안은 일련번호의 길이가 작다는 장점이 있는 반면, 분할 재전송시 부일련번호 헤더들의 개수가 일정치 않다는 단점이 있다. 바이트 단위로 일련번호를 부여할 경우, 분할 재전송시 헤더 포맷이 간단하다는 장점이 있는 반면, 일련번호의 길이가 크다는 단점이 있다.
본 발명의 제2 실시예에서는 상기 두 방식의 장점을 모두 취하기 위해서, 최초 전송 시에는 패킷 별로 일련번호를 부여하고, 분할 재전송시에는 바이트 별로 일련번호를 부여한다.
도 15는 본 발명의 제2 실시예에 따른 프레임 포맷을 도시한 것이다.
도 15를 참조하면, MAC-m PDU(1505)는 적어도 하나의 다중화 헤더(1530)와 적어도 하나의 MAC-f PDU(1510)로 구성된다. 각 다중화 헤더(1530)에는, 수납되는 각 MAC-f PDU(1510)에 대한 다중화 정보가 포함된다. 예를 들어 상기 다중화 정보는, MAC-f PDU(1510)가 속하는 MAC-f 엔터티(즉 논리채널 혹은 데이터 플로우)의 식별자를 의미하는 다중화 식별자(1515)와 MAC-f PDU(1510)의 크기를 나타내는 길이 필드(1520)와 F1 비트(1525)로 구성된다. F1 비트(1525)는 다음(following) 바이트가 또 다른 다중화 정보(1527)인지 MAC-f PDU(1510)인지를 나타내는 1 비트의 플래그이다.
각 MAC-f PDU(1510)는 MAC-f 헤더(1538)와 MAC-f 페이로드(1555)로 구성되 며, MAC-f 페이로드(1555)에는 'IP 패킷의 일부' 또는 '하나의 온전한 IP 패킷' 또는 'IP 패킷의 일부와 하나 이상의 IP 패킷' 또는 '다수의 IP 패킷들'이 수납된다.
MAC-f 헤더(1538)에는 먼저 MAC-f PDU(1510)의 일련번호(1535)와 F2 비트(1536), F3 비트(1537)가 삽입된다. F2 비트(1536)는 재전송 서브 헤더(1545)의 존재 여부를 나타내는 1 비트 플래그이다. F3 비트(1537)는 길이 지시자(1547)가 MAC-f 헤더(1538)에 포함되는지 여부를 나타내는 1 비트 플래그이다. 길이 지시자(1547)는 페이로드(1555)에 포함되는 각 IP 패킷의 종료 위치를 나타내는 정보로, MAC-f PDU(1510)의 페이로드(1555)에 IP 패킷의 마지막 부분이 포함되어 있을 경우 삽입되는 선택적 헤더 정보(optional header information)이다. 각 길이 지시자(1547)의 뒤에는, 다른 길이 지시자가 이어지는지 혹은 페이로드(1555)가 이어지는지를 나타내는 F3 비트(1550)가 존재한다.
MAC-f 헤더(1538)에 포함되는 재전송 서브 헤더(1545)는 시작 포인터(Start Pointer: SP)(1540)와 LSI(1542)로 구성된다. 시작 포인터(1540)은 해당 세그먼트가 원래 MAC-f PDU의 어떤 부분에 해당하는지를 나타내는 정보로, 원래 MAC-f PDU의 페이로드의 첫번째 바이트를 0으로 하고, 매 바이트 마다 1씩 증가하는 일련번호를 부여했을 때, 해당 세그먼트의 첫번째 바이트의 일련번호이다. 시작 포인터(1540)의 자세한 용례는 도 16에서 설명한다. 여기서 원래 MAC-f PDU란 분할되지 않은 MAC-f PDU를 의미한다. LSI(1542)는 해당 세그먼트가 마지막 세그먼트인지 여부를 나타내는 값이다.
그러면 도 16을 참조하여 제2 실시예에 따른 분할 재전송의 일 예를 설명한 다.
도시한 바와 같이, 3개의 IP 패킷(1605, 1610, 1615)은 4개의 MAC-f PDU(1620, 1625, 1630, 1635)로 프레이밍된다. 상기 MAC-f PDU들(1620 내지 1635)에는 0 ~ 3까지의 일련번호가 부여되며, 일련번호 2인 MAC-f PDU (즉 MAC-f PDU[2])(1630)는 전송에 실패해서, 분할 재전송(1660)이 실행된다. 900 바이트 크기의 MAC-f PDU[2](1630)는 500 바이트 크기의 세그먼트(1640)와 400 바이트 크기의 세그먼트(1645)로 분할된다. 첫번째 세그먼트(1640)의 일련번호는 모 MAC-f PDU(1630)와 동일하게 2로 설정되고, SP는 0으로, 길이 필드는 500으로 설정된다. 두번째 세그먼트(1645)의 일련번호는 모 MAC-f PDU(1630)와 동일하게 2로 설정되고, SP는 500으로 설정된다. 이는 두번째 세그먼트(1645)의 페이로드의 첫번째 바이트의 일련번호가 500이기 때문이다.
상기 두번째 세그먼트(1645)를 재전송할 시에도 분할 재전송(1660)이 가능하며, 이 때 마찬가지로 각 세그먼트(1650, 1655)의 일련번호는 모 MAC-f PDU(1645)의 일련번호를 취하고, SP로는 해당 세그먼트의 페이로드의 첫번째 바이트의 일련번호를 사용한다. 구체적으로 첫번째 세그먼트(1650)의 길이 필드는 300, SP는 500이며, 두번째 세그먼트(1655)의 길이 필드는 100, SP는 800이다. 각 세그먼트 레벨에서 마지막 세그먼트의 LSI는 마지막임을 나타내기 위한 값 "Y(Yes)"로 설정된다.
도 17은 본 발명의 제2 실시예에 따른 송신 동작을 도시한 것이다.
도 17을 참조하면, 1705 단계에서 다음 전송 주기의 전송이 스케줄되고, 전송할 데이터의 양이 결정된다. 이하 상기 전송될 데이터의 양을 전송 용량이라고 칭한다. 1710 단계에서 송신측 MAC-f 엔터티는, 예를 들어 이전 전송 주기에서 전송된 MAC-f PDU에 대한 ACK/NACK의 수신 여부에 따라, 재전송이 필요한지, 즉 재전송이 요청된 MAC-f PDU가 존재하는지를 검사한다. 재전송이 필요치 않다면 1715 단계로 진행하고, 필요하다면 1725 단계로 진행한다.
상기 1715 단계에서 MAC-f 엔터티는 다음 전송 주기에 전송할 MAC-f PDU를 구성하고, 상기 MAC-f PDU에 사용할 일련번호를 결정한다. MAC-f 엔터티는 초기값이 0인 VT(S)라는 변수를 관리하는데, 상기 VT(S)는 MAC-f PDU가 최초 전송될 때마다 1씩 증가한다. 다음 전송 주기에 전송할 MAC-f PDU가 구성되면, MAC-f 엔터티는 상기 VT(S)의 값으로 MAC-f PDU의 일련번호를 설정하고, 1720 단계로 진행해 VT(S)를 1 증가시킨 뒤, 1740 단계에서는 상기 MAC-f PDU를 하위 계층을 통해 상대측으로 전달한다.
반면 재전송이 필요하다면, 1725 단계로 진행해서 버퍼링된 MAC-f PDU들 중 재전송 우선순위가 가장 높은 MAC-f PDU를 선택한다. 1730 단계에서 MAC-f 엔터티는 상기 선택된 MAC-f PDU의 크기와 스케쥴에 의해 할당된 전송 용량을 비교해서 분할 재전송이 필요한지 판단한다. 상기 전송 용량이 상기 선택된 MAC-f PDU의 크기보다 크거나 같다면 분할 재전송이 필요치 않으므로 1740 단계로 진행해서 MAC-f 엔터티는 상기 선택된 MAC-f PDU를 하위 계층을 통해 상대측으로 전달한다. 반면 상기 전송 용량이 상기 선택된 MAC-f PDU의 크기보다 작다면 분할 재전송이 필요하므로 1735 단계로 진행한다.
상기 1735 단계에서 MAC-f 엔터티는 상기 선택된 MAC-f PDU를 상기 전송 용 량에 맞춰 분할한 뒤, 상기 분할된 MAC-f PDU의 헤더를 설정한다. 상기 분할된 MAC-f PDU가 원래 MAC-f PDU(분할되지 않은 최초의 MAC-f PDU)로부터 분할되는 것이라면, 원래 MAC-f PDU의 MAC-f 헤더에 시작 포인터 및 LSI로 구성되는 재전송 서브 헤더를 추가하여 상기 분할된 MAC-f PDU의 헤더로 설정한다. 상기 분할된 MAC-f PDU가 이전에 분할된 적이 있는 모 MAC-f PDU로부터 분할되는 것이라면, 상기 모 MAC-f PDU의 MAC-f 헤더에는 이미 재전송 서브 헤더가 존재하므로, 따라서 MAC-f 엔터티는 상기 재전송 서브 헤더의 시작 포인터 및 LSI 등을 갱신한다. 1740 단계에서 상기 분할된 MAC-f PDU는 하위 계층을 통해 상대측으로 전달된다.
도 18은 본 발명의 제2 실시예에 따른 수신 동작을 도시한 것이다.
도 18을 참조하면, 1805 단계에서 MAC-f PDU가 수신된 후, 1810 단계에서 수신측 MAC-f 엔터티는 상기 MAC-f PDU가 재전송 서브 헤더를 포함하는지 판단함으로써, 분할 재전송된 MAC-f PDU인지 판단한다. 만약 분할 재전송된 MAC-f PDU라면 1825 단계로, 그렇지 않다면 1815 단계로 진행한다.
상기 1815 단계에서 MAC-f 엔터티는 '상위 계층으로의 전달 조건'이 만족될 때까지 상기 MAC-f PDU를 일련번호에 맞춰 수신 버퍼에 저장하고 1845단계로 진행한다. 상기 '상위 계층으로의 전달 조건'은 경우에 따라 달리 규정된다. 예를 들어 수신 버퍼가 '순서 맞춤 전달(in-sequence delivery)'로 설정되어 있다면, 상기 '상위 계층으로의 전달 조건'은 상기 MAC-f PDU 보다 낮은 일련번호를 가지는 MAC-f PDU들 중 미수신 PDU(즉 갭)가 없을 때 충족된다. 상기 '상위 계층으로의 전달 조건'이 성립되면, 수신 버퍼는 MAC-f PDU들을 상위 계층 패킷으로 재구성한 뒤, 상 위 계층으로 전달한다. 반면에 수신 버퍼가 '순서 무시 전달(out of sequence delivery)'로 설정되어 있다면, 수신 버퍼는 수신한 MAC-f PDU들 중 상위 계층 패킷으로 재구성할 수 있는 MAC-f PDU들을 상위 계층 패킷으로 재구성한 뒤, 상위 계층으로 전달한다. 이 경우 상기 MAC-f PDU들은 상위 계층에서 재정렬(reordering)된다. 다시 말해서 '순서 맞춤 전달'에서는 상기 MAC-f PDU가 수신된 순서에 따라 상위 계층으로 전달되고, '순서 무시 전달'에서는 상기 MAC-f PDU가 수신된 순서와 관계없이 상위 계층으로 전달된다.
상기 1825 단계로 진행한 경우 MAC-f 엔터티는 상기 MAC-f PDU를 일련번호와 시작 포인터에 맞춰 수신 버퍼에 저장한다. 1830 단계에서 MAC-f 엔터티는 상기 수신 버퍼에 저장된 MAC-f PDU들의 조립이 가능한지 검사한다. 아래 조건이 만족되면 조립이 가능하다.
1. 동일한 일련번호를 가지는 MAC-f PDU들을 시작 포인터가 작은 것에서 큰 것 순서로 배열한다.
2. 상기 배열된 MAC-f PDU들 중 마지막 MAC-f PDU의 LSI가 'Y'이고, 상기 MAC-f PDU들이 연속적이면, MAC-f 엔터티는 상기 MAC-f PDU들을 모 MAC-f PDU로 조립한다.
여기서 연속적이라는 것은 아래 조건이 만족되는 것을 의미한다.
동일한 일련번호를 가지는 MAC-f PDU들을 시작 포인터들에 따라 배열했을 때, 인접한 MAC-f PDU들의 시작 포인터들과 길이들이 아래와 같으면, 상기 인접한 MAC-f PDU들은 연속적인 것이다.
SP(x+1) = SP(x) + Length(x)
여기서 SP(x+1)은, 동일한 일련번호를 가지는 MAC-f PDU들 중 x+1 번째 MAC-f PDU의 시작 포인터를 의미하며, SP(x)는 x번째 MAC-f PDU의 시작 포인터를 의미하고, Length(x)는 x 번째 MAC-f PDU의 크기를 의미한다.
상기 1830단계에서 조립이 가능한 MAC-f PDU들이 존재하지 않다면 1845 단계로 진행해서, 다음 MAC-f PDU가 도착할 때까지 대기한다. 반면 상기 1830 단계에서 조립이 가능한 MAC-f PDU들이 존재한다면 1835 단계로 진행해서, MAC-f 엔터티는 상기 동일한 일련번호를 가지는 MAC-f PDU들을 모 MAC-f PDU로 조립하고, 1840 단계에서 '상위 계층으로의 전달 조건'이 만족될 때까지 상기 모 MAC-f PDU를 일련번호에 맞춰 수신 버퍼에 저장하고 상기 1845단계로 진행한다.
<<제3 실시예>>
앞서 설명한 본 발명의 제1 실시예와 제2 실시예에서는 일련번호와 상위 계층 패킷 사이에 관계가 존재하지 않는다. 그런데, 하나의 상위 계층 패킷을 하나의 MAC-f PDU에 대응시키면 별도의 길이 지시자가 필요치 않으므로, 헤더 포맷이 간단해진다. 따라서 본 발명의 제3 실시예에서는 분할되지 않은 MAC-f PDU 하나가 하나의 상위 계층 패킷과 대응되도록 하고, 상기 상위 계층 패킷 별로 일련번호를 부여한다.
도 19는 본 발명의 제3 실시예에 따른 프레임 포맷을 도시한 것이다.
도 19를 참조하면, MAC-m PDU(1905)는 적어도 하나 이상의 다중화 헤 더(1930)와 적어도 하나의 MAC-f PDU(1910)로 구성된다. 각 다중화 헤더(1930)에는, 수납되는 각 MAC-f PDU(1910)에 대한 다중화 정보가 포함된다. 예를 들어 상기 다중화 정보는, MAC-f PDU(1910)가 속하는 MAC-f 엔터티의 식별자를 의미하는 다중화 식별자(1915)와 MAC-f PDU(1910)의 크기를 나타내는 길이 필드(1920)와 F1 비트(1925)로 구성된다. F1 비트(1925)는 다음 바이트가 또 다른 다중화 정보(1927)인지 MAC-f PDU(1910)인지를 나타내는 1 비트의 플래그이다.
각 MAC-f PDU(1910)는 MAC-f 헤더(1938)와 MAC-f 페이로드(1955)로 구성되며, MAC-f 페이로드(1955)에는 'IP 패킷의 일부' 또는 '하나의 온전한 IP 패킷'이 수납된다. MAC-f 헤더(1938)에는 먼저 MAC-f PDU(1910)의 일련번호(1935)와 분할 인덱스(1940), F2 비트(1937), LSI(1942)가 삽입된다. 여기서 F2 비트(1937)는 분할 서브 헤더(1946)의 존재 여부를 나타내는 1 비트 플래그이다. 분할 서브 헤더(1946)는 분할 인덱스(1940)와 LSI(1942)로 구성된다. 분할 인덱스(1940)는 0에서 시작해서 1씩 단조 증가하는 정수이며, 해당 세그먼트가 모 MAC-f PDU의 몇 번째 세그먼트인지를 나타낸다. 본 발명의 제1 실시예와 마찬가지로 분할은 여러 레벨에 걸쳐 이뤄질 수 있다.
LSI(1942)는 해당 세그먼트가 해당 세그먼트 레벨에서 마지막 세그먼트인지 여부를 나타내는 값이다. 각 분할 서브 헤더(1946)는, 다른 분할 서브 헤더(1948)가 이어지는지 혹은 페이로드(1955)가 이어지는지를 나타내는 F3 비트(1944)를 더 포함한다.
그러면 도 20을 참조하여 제3 실시예에 따른 분할 전송 및 분할 재전송의 일 예를 설명한다. 설명의 편의를 위해서 MAC-f (s0, s1, ..,sn)은 일련번호가 s0, 첫번째 세그먼트 레벨의 세그먼트 인덱스가 s1, n번째 세그먼트 레벨의 세그먼트 인덱스가 sn 인 MAC-f PDU를 의미하는 것으로 한다.
도시한 바와 같이, 전송하고자 하는 3개의 IP 패킷들(2005, 2010, 2015)이 존재한다. 본 발명의 제3 실시예에서는 하나의 상위 계층 패킷에 하나의 일련번호가 부여되므로, 첫번째 IP 패킷(2005)에는 일련번호 0이, 두번째 IP 패킷(2010)에는 일련번호 1이, 세번째 IP 패킷(2015)에는 일련번호 2가 부여된다. 그러면 첫번째 IP 패킷(2005)은 MAC-f PDU[0]이 되고, 두번째 IP 패킷(2010)은 MAC-f PDU[1]이 되고, 세번째 IP 패킷(2015)은 MAC-f PDU[2]이 된다.
첫번째 MAC-f PDU[0](2005)를 전송하려고 할 때, 채널 상황이 상기 MAC-f PDU[0](2005)를 전송하기에 충분하지 않다면, 송신측은 상기 MAC-f PDU[0] 을 분할하고, 분할된 부분들에 분할 서브 헤더들을 삽입하여, MAC-f PDU[0,0](2020)과 MAC-f PDU[0,1](2025)를 구성하여 전송한다. 그리고 MAC-f PDU[0,1]의 LSI는 'Y'로 설정된다.
MAC-f PDU[1](2010)의 전송 시에는 할당된 전송 자원이 충분하여 분할이 필요치 않다면 상기 MAC-f PDU[1](2010)은 분할 서브 헤더 없이, 참조번호 2030과 같이 그대로 전송된다.
MAC-f PDU[2](2015)의 전송 시에 다시 열악해진 채널 상황에 의해, MAC-f PDU[2](2015)는 5개의 세그먼트들로 분할된다. 이때, 분할 인덱스의 크기가 2 비트로 제한되었다면, 송신측은 MAC-f PDU[2](2015)를 여러 단계 걸쳐서 분할함으로써, 분할 인덱스의 한계를 극복한다.
즉, MAC-f PDU[2](2015)는 MAC-f PDU[2,0](2035), MAC-f PDU[2,1](2040), MAC-f PDU[2,2](2045)로 분할되어 전송되며, 남은 데이터는 다시 MAC-f PDU[2,3,0](2050)과 MAC-f PDU[2,3,1](2055)로 분할되어 전송된다. 이는 상기 남은 데이터 전체를 담게 되는 MAC-f PDU[2.3]의 크기가 너무 크고, 분할 인덱스가 3 이상의 값을 허용하지 못하기 때문이다.
상기 분할 전송은 재전송 시에도 동일하게 적용된다. 예를 들어 MAC-f PDU[0,0](2020)에 대한 재전송이 필요하지만, 상기 MAC-f PDU[0,0](2020)을 한꺼번에 재전송할 수 없다면, 송신측은 상기 MAC-f PDU[0,0](2020)을 MAC-f PDU[0,0,0](2060)과 MAC-f PDU[0,0,1](2065)로 분할해서 전송한다. 마찬가지로 MAC-f PDU[0.0.1](2065)의 LSI는 'Y'로 설정된다.
도 21은 본 발명의 제3 실시예에 따른 송신기 구조를 도시한 것이다.
도 21을 참조하면, 송신기는 일련번호 삽입 블록(2102), 전송 버퍼(2105), 분할 블록(2115), MAC-f 제어 블록(2120), 재전송 버퍼(2125), 다중화 블록(2130), HARQ 블록 및 물리계층(2135)으로 구성된다. 이중 일련번호 삽입 블록(2102), 전송 버퍼(2105), 분할 블록(2115), MAC-f 제어 블록(2120), 재전송 버퍼(2125)은 MAC-f 엔터티를 구성한다. 여기에서는 단지 하나의 MAC-f 엔터티만을 도시하였으나, 복수의 서비스들에 대한 복수의 MAC-f 엔터티가 구비될 수 있다.
일련번호 삽입 블록(2115)은 상위 계층에서 전달된 패킷들(예를 들어 IP 패킷들)에 일련번호를 부여하는 역할을 한다. 상기 일련번호는 IP 패킷마다 1씩 단조 증가한다. 전송 버퍼(2105)는 상기 일련번호가 삽입된 IP 패킷들을, 무선 채널을 통해 전송될 때까지 저장한다. 상기 일련번호가 삽입된 패킷은 MAC-f PDU라 칭한다.
다중화 블록(2130)은 노드 B 스케줄러가 할당한 무선 전송 자원에 맞춰 MAC-f 엔터티 별로 다음 전송 주기에 전송할 데이터의 양을 결정해서, MAC-f 제어 블록(2120)에 통보한다. MAC-f 제어 블록(2120)은 최초 전송과 재전송의 우선순위에 따라 다음 전송 주기에 전송할 데이터를 결정한다. 다음 전송 주기에 새로운 IP 패킷을 전송하기로 결정하면, MAC-f 제어 블록(2120)은 전송할 데이터의 양을 전송 버퍼(2105)에 통보한다. 다음 전송 주기에 재전송을 실행하기로 결정하면, MAC-f 제어 블록(2120)은 재전송 버퍼(2125)에게 재전송할 데이터의 양을 통보한다.
전송 버퍼(2105)는, 분할 전송이 필요치 않으면 저장된 MAC-f PDU를 재전송 버퍼(2125)와 다중화 블록(2130)으로 전달하고, 분할 전송이 필요하면 저장된 MAC-f PDU를 분할 블록(2115)으로 전달한다.
분할 블록(2115)은 상기 전송 버퍼(2105)로부터 전달받은 MAC-f PDU를 적절한 크기로 분할하고, 분할 인덱스와 LSI를 삽입한 뒤, 상기 분할된 MAC-f PDU들 중, 다음 전송 주기에 전송할 MAC-f PDU를 다중화 블록(2130)으로 전달한다. 그리고 다중화 블록(2130)으로 전달된 MAC-f PDU를 포함한 모든 분할된 MAC-f PDU들을 재전송 버퍼(2125)로 전달된다.
재전송 버퍼(2125)는 상기 MAC-f PDU들을 저장하고, MAC-f 제어 블록(2120)의 제어에 따라 상기 저장한 MAC-f PDU들을 폐기하거나 혹은 재전송을 스케줄한다.
다중화 블록(2130)은 다수의 MAC-f 엔터티들로부터 전달된 MAC-f PDU들을 하나의 MAC-m PDU로 다중화하고, MAC-m PDU에 다중화 헤더들을 삽입한다. 상기 MAC-m PDU는 HARQ 블록 및 물리계층(2135)에 의해 HARQ 동작을 거쳐 무선 채널로 전송된다.
도 22는 본 발명의 제3 실시예에 따른 수신기 구조를 도시한 블록도이다.
도 22를 참조하면, 송신기는 조립 블록(2205), 수신 버퍼(2210), 재전송 관리 블록(2215), 역다중화 블록(2220), HARQ 블록 및 물리계층(2225)으로 구성된다. 이중 조립 블록(2205), 수신 버퍼(2210), 재전송 관리 블록(2215)은 MAC-f 엔터티를 구성한다. 여기에서는 단지 하나의 MAC-f 엔터티만을 도시하였으나, 복수의 서비스들에 대한 복수의 MAC-f 엔터티가 구비될 수 있다.
HARQ 블록 및 물리계층(2225)은 물리 채널을 통해 MAC-m PDU에 대한 HARQ 과정을 수행하고, HARQ 과정을 거쳐 성공적으로 수신한 MAC-m PDU를 역다중화 블록(2220)으로 전달한다. 역다중화 블록(2220)은 HARQ 블록 및 물리계층(2225)으로부터 전달된 MAC-m PDU의 다중화 헤더들을 해석해서, 상기 MAC-m PDU를 복수의 MAC-f PDU들로 역다중화한 뒤, 역다중화된 MAC-f PDU들을 해당하는 다중화 헤더들이 가리키는 MAC-f 엔터티들로 전달한다.
수신 버퍼(2210)는 역다중화 블록(2220)으로부터 수신한 MAC-f PDU를 일련번호에 따른 위치에 저장하고, 저장된 MAC-f PDU들 중 조립이 가능한 MAC-f PDU들을 조립 블록(2205)으로 전달한다. 여기서 조립이 가능한 MAC-f PDU들이라 함은, 갭이 없이 일련번호의 순서대로 정렬된 MAC-f PDU들을 의미한다. 재전송 관리 블 록(2215)은 수신 버퍼(2210)에 저장된 MAC-f PDU들의 일련번호와 부일련번호를 검사해서, ACK/NACK를 상대측 ARQ 엔터티로 전송하는 동작을 수행한다. 이때 NACK는 수신하지 못한 특정 MAC-f PDU의 재전송을 요청하기 위해 전송되거나, 혹은 어떤 MAC-f PDU에 대한 재전송을 요청해야 할지 모를 때 전송되는 것이다. 조립 블록(2205)은 수신 버퍼(2210)에서 전달된 MAC-f PDU들의 분할 인덱스와 LSI를 참조해서, 상기 MAC-f PDU들 중 분할된 MAC-f PDU들을 원래의 IP 패킷으로 재구성한 뒤, 상기 IP 패킷을 상위 계층으로 전달하는 동작을 수행한다.
도 23은 본 발명의 제3 실시예에 따른 송신 동작을 도시한 흐름도이다.
도 23을 참조하면, 2305 단계에서 다음 전송 주기의 전송이 스케줄되고, 전송할 데이터의 양이 결정된다. 이하 상기 전송될 데이터의 양을 전송 용량이라고 칭한다. 2310 단계에서 송신측 MAC-f 엔터티는 전송 버퍼와 재전송 버퍼에 저장된 MAC- PDU들 중 전송할 MAC-f PDU를 선택한다. 즉 이전 전송 주기에서 전송된 MAC-f PDU에 대해 재전송이 필요한 경우 재전송 버퍼에 저장된 MAC-f PDU가 선택되고, 재전송이 필요하지 않은 경우 전송 버퍼에 저장된 MAC-f PDU가 선택된다.
2315 단계에서 MAC-f 엔터티는 상기 선택된 MAC-f PDU에 대해 분할이 필요한지 판단하기 위하여 상기 선택된 MAC-f PDU의 크기를 상기 전송 용량과 비교한다. 상기 전송 용량이 상기 선택된 MAC-f PDU의 크기보다 크거나 같으면 분할이 필요치 않고, 전송 용량이 선택된 MAC-f PDU 크기보다 작으면 분할이 필요하다. 분할이 필요하다면 2320 단계로 진행하고, 분할이 필요치 않다면 2330 단계로 진행하여 상기 MAC-f PDU를 하위 계층으로 전달해서 무선 채널을 통해 전송한다.
상기 2320 단계에서 MAC-f 엔터티는 상기 선택된 MAC-f PDU를 상기 전송 용량에 따른 적절한 크기로 분할하고, 2325 단계에서 상기 분할된 MAC-f PDU의 MAC-f 헤더에 분할 인덱스와 LSI로 구성된 분할 서브 헤더를 삽입한 뒤, 상기 2330 단계에서 상기 MAC-f PDU를 하위 계층으로 전달해서 무선 채널을 통해 전송한다.
도 24는 본 발명의 제3 실시예의 수신측 동작을 도시한 흐름도이다.
도 24를 참조하면, 2405 단계에서 MAC-f PDU가 수신된 후, 2410 단계에서 수신측 MAC-f 엔터티는 상기 MAC-f PDU가 분할 서브 헤더를 포함하는지 판단함으로써, 분할된 MAC-f PDU인지 판단한다. 만약 분할된 MAC-f PDU라면 2425 단계로, 그렇지 않다면 2415 단계로 진행한다.
상기 2415 단계에서 MAC-f 엔터티는 '상위 계층으로의 전달 조건'이 만족될 때까지 상기 MAC-f PDU를 일련번호에 맞춰 수신 버퍼에 저장하고 2445단계로 진행한다. 상기 '상위 계층으로의 전달 조건'은 상황에 따라 규정된다. 예를 들어 수신 버퍼가 '순서 맞춤 전달(in-sequence delivery)'로 설정되어 있다면, 상기 '상위 계층으로의 전달 조건'은 상기 MAC-f PDU 보다 낮은 일련번호를 가지는 MAC-f PDU들 중 미수신 PDU가 없을 때 충족된다. 상기 '상위 계층으로의 전달 조건'이 성립되면, 수신 버퍼는 MAC-f PDU들을 상위 계층 패킷으로 재구성한 뒤, 상위 계층으로 전달한다. 반면에 수신 버퍼가 '순서 무시 전달(out of sequence delivery)'로 동작하도록 설정되어 있다면, 수신 버퍼는 수신한 MAC-f PDU들 중 상위 계층 패킷으로 재구성할 수 있는 MAC-f PDU들을 상위 계층 패킷으로 재구성한 뒤, 상위 계층으로 전달한다. 다시 말해서 '순서 맞춤 전달'에서는 상기 MAC-f PDU가 수신된 순서 에 따라 상위 계층으로 전달되고, '순서 무시 전달'에서는 상기 MAC-f PDU가 수신된 순서와 관계없이 상위 계층으로 전달된다.
상기 2425 단계에서 MAC-f 엔터티는 상기 MAC-f PDU를 일련번호와 분할 인덱스에 맞춰 수신 버퍼에 저장한다.
2430 단계에서 MAC-f 엔터티는 상기 수신 버퍼에 저장된 MAC-f PDU들의 조립이 가능한지, 즉 조립이 가능한 MAC-f PDU들이 존재하는지 검사한다. 아래 조건이 만족되면 조립이 가능하다.
1. 주어진 세그먼트 레벨에서, 마지막 분할 인덱스를 제외한 나머지 '일련번호 및 분할 인덱스들'이 동일한 MAC-f PDU들을 하나의 분할 MAC-f PDU 셋으로 그룹화한다. 예를 들어 MAC-f PDU[12,0,0], MAC-f PDU[12,0,1]은 동일한 분할 MAC-f PDU 셋으로 그룹화된다. 반면에 MAC-f PDU[12,0,0], MAC-f PDU[12,1,1]은 동일한 분할 MAC-f PDU 셋이 아니다. 여기서 분할 MAC-f PDU 셋이란, 상위 레벨의 MAC-f PDU(즉 모 MAC-f PDU)로 조립 가능한 분할 MAC-f PDU들을 의미하며, 한 분할 MAC-f PDU 셋이 완전히 수집되었을 때 상기 MAC-f PDU 셋의 분할 MAC-f PDU들이 상위 MAC-f PDU로 조립된다.
2. 주어진 분할 MAC-f PDU 셋에 속한 MAC-f PDU들 중, 마지막 분할 인덱스가 0인 MAC-f PDU에서 LSI가 1로 설정된 MAC-f PDU까지의 마지막 분할 인덱스들이 연속적이면, 상기 분할 MAC-f PDU 셋은 조립이 가능하다.
2435 단계에서 MAC-f 엔터티는 상기 조립 가능한 MAC-f PDU들을 조립한다. 분할 MAC-f PDU 셋은 아래와 같이 상위 레벨의 MAC-f PDU로 조립된다.
1. 분할 MAC-f PDU 셋에 포함된 모든 MAC-f PDU들의 페이로드들을 순서대로 연접해서 상위 레벨의 MAC-f PDU의 페이로드로 한다.
2. 상위 레벨 MAC-f PDU의 헤더는 아래와 같이 구성한다.
2.1. 분할 MAC-f PDU 셋에 포함된 MAC-f PDU들 중 어느 하나를 선택해서, 상기 선택된 MAC-f PDU의 MAC-f 헤더에서 마지막 분할 서브 헤더를 제거한 부분을 상기 상위 레벨 MAC-f PDU의 MAC-f 헤더로 한다.
3. 상기 상위 레벨 MAC-f PDU의 헤더와 페이로드를 합치면, 상기 상위 레벨 MAC-f PDU의 조립이 완료된다.
2440 단계에서 MAC-f 엔터티는 상기 조립된 상위 레벨 MAC-f PDU를 '상위 계층으로의 전달 조건'이 만족될 때까지 수신 버퍼에 저장하고 2445단계로 진행한다. 반면 상기 2430 단계에서 조립이 가능한 MAC-f PDU들이 존재하지 않는다면, 2445 단계로 진행해서, 다음 MAC-f PDU가 도착할 때까지 대기한다.
이하에서는, 앞서 설명한 암시적 NACK의 사용에 대해 보다 상세히 설명한다.
재전송을 지원하는 시스템에 있어서, 수신측은 소정의 조건이 충족되면 상태보고(STATUS REPORT)를 발생시켜서 송신측으로 전송한다. 상기 상태보고에는, 상기 상태보고의 생성 시점까지 성공적으로 수신한 PDU의 마지막 일련번호와 재전송이 필요한 PDU(들)의 일련번호가 수납되며, 상기 재전송이 필요한 PDU의 일련번호가 NACK가 된다. 수신측은 수신된 PDU들의 일련번호들이 연속적인지를 검사해서, 일련번호들 상의 갭(gap)을 확인한다. 만일 갭이 존재하는 경우, 상기 갭에 해당하는 일련번호를 가지는 PDU는 미수신 PDU로 간주되며, 상기 상태보고는 상기 미수신 PDU에 대한 일련번호를 나타내는 NACK를 수납하여, 상기 미수신 PDU의 재전송을 송신측에게 요구한다.
그런데 PDU가 분할되는 경우에는, 수신측이 상기 일련번호들 상의 갭을 확인하지 못할 수 있다. 예를 들어 세 개의 세그먼트들 중, '마지막 세그먼트임을 나타내는 지시자', 즉 LSI가 포함된 세그먼트가 수신되지 못한 경우가 있다. 상기와 같은 경우에 수신측은 미수신 PDU가 존재한다는 것은 인지하지만, 상기 미수신 PDU의 일련번호를 알 수는 없다. 이러한 경우에 암시적 NACK가 사용된다.
도 25는 본 발명의 바람직한 실시예에 따른 암시적 NACK의 사용 예를 설명하기 위한 것이다.
도 25를 참조하면, 송신측(2505)은 수신측(2510)으로 PDU[14](2515), PDU[15.0](2520), PDU[15.1](2525), PDU[15.2](2530), PDU[15.3](2535), PDU[16](2540), PDU[17](2545)을 전송한다. 즉 PDU[15]는 어떤 이유로 인해서, 4개의 세그먼트들로 분할되었으며, PDU[15.0](2520), PDU[15.1](2525), PDU[15.2](2530), PDU[15.3](2535)은 상기 PDU[15]에 관련된 세그먼트들을 각각 포함하여, 동일한 세그먼트 셋(2585)을 형성한다. 상기 세그먼트 셋(2585)의 마지막 세그먼트를 포함하는 PDU[15.3](2535)은 '1'로 설정된 LSI를 가진다.
참조번호 2570에 나타낸 바와 같이, 일련번호 15를 가지는 세그먼트 셋(2585) 중 마지막 세그먼트를 포함하는 PDU[15.3](2535)은 수신측(2510)에 성공적으로 수신되지 못한 채 유실된다. 수신측(2510)은 PDU[15.0] 내지 PDU[15.2]를 수신하였지만, 마지막 세그먼트임을 나타내는 정보(즉 LSI)를 수신하지 못하였으므로, PDU[15.2] 보다 큰 일련번호를 가지는 적어도 하나의 미수신 PDU가 존재한다는 사실을 인지한다. 그러나 수신측(2510)은 미수신 PDU가 하나뿐인지, 아니면 보다 큰 일련번호를 가지는 2개 이상의 미수신 PDU들이 존재하는지를 알 수 없다.
이러한 경우에 수신측(2510)은 상태보고를 통해 암시적 NACK을 전송한다.
도 26은 본 발명의 바람직한 실시예에 따라 암시적 NACK를 전송하는 동작을 나타낸 흐름도이다.
도 26을 참조하면, 2605 단계에서 상태보고(STATUS REPORT)의 발생 조건이 만족된다. 상기 발생조건은 예를 들어 미리 정해지는 주기에 따른 상태 보고 발생 시점에 도달하거나, 송신측으로부터 상태 보고를 전송할 것을 명령받은 경우를 들 수 있다. 2610단계에서 수신측은 상기 상태보고의 발생 조건이 만족된 시점까지 성공적으로 수신한 PDU들의 일련번호들이 연속적인지를 검사해서 미수신 PDU의 일련번호를 확인한 후, 상기 미수신 PDU에 대한 명시적 NACK를 구성해서 상태보고에 수납한다. 2615 단계에서 수신측은 일련번호를 확인할 수 없는 미수신 PDU가 존재하는지를 검사한다. 만일 일련번호를 확인할 수 없는 미수신 PDU가 존재하면 2620 단계로 진행하고, 존재하지 않으면 2625 단계로 진행한다. 상기 2615단계에서 만일 일련번호를 확인할 수 있는 미수신 PDU가 존재한다면, 상기 2625단계에서 수신측은 상기 미수신 PDU의 일련번호를 포함하는 명시적 NACK를 생성하고, 상기 명시적 NACK를 상태보고에 실어 송신측으로 전송한다.
상기 2615 단계를 좀 더 자세히 설명하면 다음과 같다. 수신측은 수신된 후 조립이 완료되지 않은 PDU들을 포함하는 세그먼트 셋들 중, 마지막 세그먼트임을 나타내는 지시자가 '1'로 설정된 PDU가 수신되지 않은 세그먼트 셋이 있는지 검사한다. 만약 상기 조건을 만족하는 세그먼트 셋이 존재하면, 일련번호를 확인할 수 없는 미수신 PDU가 존재하는 것이므로 2620 단계로 진행한다. 상기 세그먼트 셋이란, 동일한 PDU로부터 분할된 PDU들의 집합이며, 동일한 일련번호를 공유하고, 부 일련번호들로 상호 구분된다. 만약 세그먼트가 여러 레벨에 걸쳐서 진행되었다면, 상기 세그먼트 셋에 속하는 분할된 PDU들은 일련번호와 마지막 부 일련번호를 제외한 부 일련번호들이 동일하고, 마지막 부 일련번호들로 구분된다.
2620 단계에서 수신측은 수신한 PDU들 중 상기 2615 단계의 조건을 만족한 세그먼트 셋에 속하는 가장 높은 PDU의 일련번호를 상기 암시적 NACK에 수납하고 상기 2625단계로 진행한다. 도 25의 예에서는 일련번호 [15.2]가 암시적 NACK를 통해 보고된다. 다시 말해서 아직 조립되지 못한 분할된 PDU들 중, 마지막 세그먼트임을 나타내는 분할된 PDU가 수신되지 않았다면, 상기 조립되지 못한 분할된 PDU들 중, 가장 높은 일련번호가 암시적 NACK에 수납한다.
상기 2625 단계에서 수신측은 상기 암시적 NACK를 포함하는 상태보고를 송신측으로 전송한다.
도 27은 본 발명의 바람직한 실시예에 따라 암시적 NACK를 수신하는 동작을 나타낸 흐름도이다.
도 27을 참조하면, 2705 단계에서 상태보고가 수신된 후, 2710 단계에서 송신측은 상기 상태보고에 암시적 NACK가 수납되어 있는지를 검사하고 암시적 NACK가 수납되어 있지 않다면 2720단계로 진행한다. 상기 NACK의 포맷은 상기 상태보고에 포함된 NACK의 타입 값으로부터 알 수 있다. 만일 암시적 NACK가 수납되어 있다면, 송신측은 2715 단계로 진행해서 상기 암시적 NACK에 대응하여 재전송을 스케줄링하고 상기 2720단계로 진행한다. 구체적으로 상기 2715 단계에서 송신측은, 상기 암시적 NACK에 수납된 일련번호를 확인해서, 상기 일련번호에 해당하는 세그먼트 셋에서, 상기 일련번호보다 높은 일련번호를 가지는 PDU들의 재전송을 수행한다. 여기서 특정 일련번호에 해당하는 세그먼트 셋이란, 상기 특정 일련번호를 가지는 PDU와 동일한 세그먼트 셋에 속하는 PDU들을 의미한다.
예를 들어 도 25의 경우 암시적 NACK에 일련번호 [15.2]가 수납되어 있다면, 상기 일련번호에 해당하는 세그먼트 셋은 PDU[15.0], PDU[15.1], PDU[15.2], PDU[15.3]이다. 일련번호 [15.2]보다 높은 일련번호를 가지는 PDU는 PDU[15.3]이므로, 송신측은 상기 PDU[15.3]의 재전송을 스케줄링한다.
2720 단계에서 송신측은 암시적 NACK을 제외한 나머지 상태 정보를 적절하게 처리한다. 즉, 통상적인 명시적 NACK에 대해서는 해당 일련번호들에 해당하는 PDU들의 재전송을 수행하고, ACK에 대해서는 해당 일련번호들에 해당하는 PDU들을 재전송 버퍼에서 폐기한다.
한편, 상기와 같은 암시적 NACK의 사용은 송신하고자 하는 데이터 패킷을 여러 개의 PDU들에 수납하여 전송하고, 상기 PDU들의 성공적인 수신 여부를 수신측으로부터 피드백받는 모든 종류의 시스템에 대해 적용 가능하다. 구체적인 예로서, UMTS 시스템에서 논리채널들의 설정 및 해제를 담당하는 RLC 계층은 승인 모 드(Acknowledged Mode: 이하 AM 모드라고 칭함), 비승인 모드(Unacknowledged Mode: 이하 UM 모드라고 칭함), 투과 모드(Transparent Mode: 이하 TM 모드라고 칭함)이라는 3가지 동작 모드들 중 하나로 동작할 수 있다.
이때 특히 AM으로 동작하는 RLC 계층(이하 RLC AM 계층이라 칭함)은 상위 계층에서 전달된 데이터 즉, RLC 서비스 데이터 유닛(RLC Service Data Unit: 이하 RLC SDU라 칭함)을 분할하거나 연접하거나 패딩해서 무선 채널을 통해 전송하기에 적합한 크기로 만들고, 상기 분할/연접/패딩에 대한 정보와 일련번호를 삽입해서 프로토콜 데이터 유닛(Protocol Data Unit: 이하 RLC PDU라 칭함)을 만들어, 상기 RLC PDU를 하위 계층으로 전달 한다. 수신측의 RLC AM 계층은 송신측이 전송한 RLC PDU들의 일련번호를 검사해서 수신하지 못한 PDU가 있는지 판단하고, 수신하지 못한 PDU가 존재하는 경우 재전송 요청을 수행한다.
이처럼 RLC AM 계층은 미수신 PDU를 파악하여 재전송을 수행하는 역할을 한다. 이하에서는 도 28을 참조하여 RLC AM 계층의 동작을 보다 자세히 설명한다. 여기서, 사용자 데이터의 송신을 수행하는 측을 RLC 송신 엔터티(2810)라 하고, 사용자 데이터의 수신 및 STATUS REPORT를 전송하는 측을 RLC 수신 엔터티(2805)라 한다. HSDPA의 경우 RLC 송신 엔터티(2810)는 단말에 포함되고, RLC 수신 엔터티(2805)는 RNC에 구비된다.
도 28을 참조하면, RLC 송신 엔터티(2810)는 RLC PDU라고 하는 사용자 데이터에 일련번호를 붙여서 전송한다. 이하 설명의 편의를 위해 일련번호가 x인 RLC PDU를 RLC PDU[x]로 표기한다.
RLC 수신 엔터티(2805)는 RLC 송신 엔터티(2810)가 전송한 RLC PDU들(2815, 2820, 2825, 2830)의 일련번호들을 검사해서 미수신 PDU가 있는지 판단한다. 예를 들어 RLC PDU[x+2](2825)가 전송 도중 유실되었다면, RLC 수신 엔터티(2805)는 RLC PDU[x+3](2830)을 수신한 후 RLC PDU[x+2](2825)가 유실되었다는 사실과 상기 RLC PDU[x+2](2825)에 대한 재전송을 요구해야 한다는 사실을 인지한다. 이후에 RLC 수신 엔터티(2805)는 STATUS PDU라는 피드백 정보를 RLC 송신 엔터티(2810)로 전송해서 재전송을 요구할 수 있다.
RLC 수신 엔터티(2805)는 주기적으로 또는 특정 이벤트가 발생했을 때, STATUS REPORT(2835)를 전송해서 RLC 송신 엔터티(2810)에게 수신 상황을 통보한다. STATUS REPORT(2835)에는 RLC 송신 엔터티(2810)로부터 수신한 RLC PDU들의 일련 번호들인 ACK와, 수신하지 못한 RLC PDU들의 일련 번호들인 NACK가 포함된다. RLC 송신 엔터티(2810)는 STATUS REPORT(2835)에서 NACK로 표시된 RLC PDU들에 대한 재전송을 실행해서 통신의 신뢰도를 높인다.
상기와 같이 동작하는 RLC AM 계층 동작에 있어서도 앞서 설명한 바와 같이, 수신측이 어떤 RLC PDU를 수신하지 못했는지를 정확히 알지는 못하지만 RLC PDU 유실이 발생할 가능성이 높은 경우가 존재할 수 있다. 구체적인 예로서 고속 순방향 데이터 통신을 구현하는 HSDPA(High Speed Downlink Packet Access)에 있어서, 데이터를 수신하고 있던 단말이 핸드오버를 통해 새로운 기지국에 의해 제어되는 셀(즉 타겟 셀)로 이동했을 때 상기 새로운 기지국은 이전 기지국에서 단말로 전송하지 못하고 남아 있던 데이터를 알 수 없다. 이를 해결하기 위해서, 단말이 새로운 기지국으로 이동하면 단말이 상기 새로운 기지국으로 STATUS REPORT를 전송해서 RLC 계층에서의 재전송을 실행하도록 하고 있다. 그러나 이러한 방식으로는 이전 기지국에 남아 있는 데이터에 대한 재전송이 실행되지 않는다.
도 29는 HSDPA 셀 변경 과정을 도시한 시그널링 흐름도이다.
도 29를 참조하면, 2925 단계에서 단말(UE)(2905)의 무선 자원을 제어하는 RNC(2920)는 소스 셀(source cell)(2910)로 RLC PDU들을 전송하고 있다. 셀 변경은 2930 단계에서 소스 셀(2910)보다 타겟 셀(target cell)(2915)의 채널 환경이 더욱 좋다는 단말(2905)의 측정 보고(Measurement Report)가 RNC(2920)로 전달되면서 시작된다.
상기 측정 보고를 수신한 RNC(2920)는 2935 단계에서 소스 셀(2910)로의 RLC PDU들의 전송을 중단하고, 2940 단계에서 타겟 셀(2915)에 상기 단말(2905)을 위한 새로운 통신 링크를 설정하고 소스 셀(2910)의 통신 링크를 해제한다. 소스 셀(2910)의 통신 링크가 해제되면 소스 셀(2910)에서는 상기 단말(2905)에 대한 통신이 중단되므로, 2945 단계에서 소스 셀(2910)의 전송 버퍼에는 단말(2905)에게 전송되지 않은 RLC PDU들이 남아 있을 수 있다.
RNC(2920)는 2950 단계에서 단말(2905)에게 타겟 셀(2915)로 핸드오버 할 것을 명령하고, 2955 단계에서 단말(2905)로부터 핸드오버가 완료되었다는 응답 메시지를 수신하면, 2960 단계에서 RLC PDU들을 타겟 셀(2915)로 전송하기 시작한다. 타겟 셀(2915)로 핸드오버 한 단말(2905)은 2965 단계에서 RNC(420)로 STATUS REPORT를 전송해서 소스 셀(2910)에서 수신하지 못한 RLC PDU들에 대한 RLC 레벨에 서의 재전송을 요청한다. 그러면 RNC(2920)는 2970 단계에서 상기 STATUS REPORT에서 NACK된 PDU들을 재전송한다.
그런데 상기와 같은 방식은, 소스 셀로부터의 수신 상황만을 담은 STATUS REPORT로는 소스 셀에서 전송되지 않은 PDU들에 대한 재전송을 요청할 수 없다는 단점이 있다.
도 30을 참조하여 이러한 상황을 더욱 자세하게 설명한다. 단말(3035)은 소스 셀(3020)에서 통신을 수행하다가 어떤 시점에 타겟 셀(3025)로 이동하였으며, 일련번호가 x인 RLC PDU(즉, PDU[x])까지 수신하여 수신 버퍼(3030)에 저장한 상태이다. 이때, PDU[x+1] ~ PDU[x+4]는 소스 셀(3020)의 전송 버퍼(3015)에 저장된 채 단말(3035)에게 전송되지 못하였다. 그러므로 RNC(3005)의 RLC 전송 버퍼(3010)에는 PDU[x+5]와, 일련번호가 더 큰 PDU들이 저장되어 있다.
단말(3035)이 타겟 셀(3025)로 이동하자마자 STATUS REPORT(3050)를 전송한다면, 단말(3035)의 STATUS REPORT(3050)에는 PDU[x]까지 잘 받았다는 정보만 기입되어 있다. 따라서 RNC(3005)는 단말(3035)에게 PDU[x+1] ~ PDU[x+4]를 재전송해야 한다는 사실을 인지하지 못한다.
후술되는 실시예에서는 이런 경우에 암시적 NACK를 사용하도록 한다.
도 31은 본 발명의 바람직한 실시예에 따른 핸드오버시 RLC AM 계층 동작에 사용 가능한 암시적 NACK의 예를 도시한 것이다. 여기에서는 앞서 나타낸 암시적 NACK의 포맷과는 달리 단지 하나의 일련번호 필드(3110) 만이 포함되었다.
도 31을 참조하면, 타입(TYPE) 필드(3105)에는 암시적 NACK를 의미하는 타입 값이 포함된다. 3GPP의 RLC 규격에서는 상기 타입 필드(3105)로서 4 비트를 사용하며, 이들 중 1000 ~ 1111의 용도는 정의하고 있지 않다. 그러므로 상기 사용되지 않는 타입 값들 중 하나가 암시적 NACK를 나타내는데 사용될 수 있다. 암시적 NACK의 일련번호 필드(3110)에는 RLC 수신 엔터티가 수신한 RLC PDU 중 가장 높은 일련번호가 삽입된다. 도 30의 예를 들면, x라는 일련번호가 상기 일련번호 필드(3110)에 삽입된다.
이와 같은 구성을 가지는 암시적 NACK를 수신한 RLC 송신 엔터티는 암시적 NACK의 일련번호 필드(3110)보다 높은 일련번호를 가지는 RLC PDU들에 대한 재전송을 실행한다. 도 30의 예를 들면, RLC PDU[x+1] ~ PDU[x+4]가 재전송될 것이다.
도 32는 본 발명의 바람직한 실시예에 따른 핸드오버시 RLC AM 계층의 송수신 동작을 도시한 도면이다. 여기에서는 UMTS 시스템에서의 고속 하향링크 패킷 액세스(HSDPA)에 따른 동작을 도시하였다.
도 32를 참조하면, 3220 단계에서 RNC(3215)는 단말(3205)이 타겟 셀(3210)로 핸드오버 할 것을 결정한다. 그러면 RNC(3215)는 3225 단계에서 타겟 셀(3210)이 상기 단말(3205)과 패킷 데이터 통신을 할 수 있도록 설정하고, 3230 단계에서 단말(3205)에게 타겟 셀(3210)로 핸드오버 하도록 명령한다. 상기 핸드오버 명령으로서 TRANSPORT CHANNEL RECONFIGURATION 메시지가 사용될 수 있다.
단말(3205)은 상기 TRANSPORT CHANNEL RECONFIGURATION 메시지의 설정 정보에 따라 상기 타겟 셀(3210)과 통신 링크를 설정하고, 3235 단계에서 타겟 셀(3210)에 대한 전송 채널 설정을 완료하였음을 알리는 TRANSPORT CHANNEL RECONFIGURATION COMPLETE 메시지를 RNC(3215)에게 전송한다.
이상과 같이 단말(3205)은 상기 타겟 셀(3210)로 핸드오버하면 네트워크로부터 성공적으로 수신하지 못한 알지 못하는 적어도 하나의 RLC PDU가 존재하는 것으로 간주한다. 따라서 3240 단계에서 단말(2205)은 암시적 NACK를 포함하는 STATUS REPORT를 RNC(3215)에게 전송한다.
도 33은 본 발명의 바람직한 실시예에 따른 셀 변경 시 RLC 수신 엔터티의 동작을 도시한 도면이다.
도 33을 참조하면, 3305 단계에서 단말이 타겟 셀로의 핸드오버를 완료하면, 상기 단말에 구비되는 RLC 수신 엔터티는 3310 단계에서 상기 핸드오버를 관리하는 개체로부터 STATUS REPORT를 전송할 것을 명령 받는다. 그러면 RLC 수신 엔터티는 3315단계에서 암시적 NACK을 구성한다. 상기 암시적 NACK에는 RLC 수신 엔터티가 지금까지 수신한 PDU들 중 가장 높은 일련번호를 가지는 PDU의 일련번호가 기입된다. 3320 단계에서 RLC 수신 엔터티는 상기 단말의 무선 자원을 제어하는 RNC에게 상기 암시적 NACK를 포함하는 STATUS REPORT를 전송한다. 이때 상기 STATUS REPORT는 상기 타겟 셀을 통해 상기 RNC로 전송될 수 있다.
상기와 같이 단말이 핸드오버를 완료한 직후에 암시적 NACK를 전송할 수도 있지만, 단말이 핸드오버를 실행하기 직전에, 또는 핸드오버를 실행하는 도중에도 암시적 NACK를 전송할 수 있다.
도 34는 본 발명의 다른 실시예에 따른 셀 변경시 RLC 수신 엔터티의 동작을 도시한 것이다.
도 34를 참조하면, 단말이 3405 단계에서 타겟 셀로의 핸드오버를 시작할 것으로 판단하면, 상기 단말에 구비되는 RLC 수신 엔터티는 3410 단계에서 RRC 계층으로부터 STATUS REPORT를 전송할 것을 명령 받는다. 여기서 단말의 핸드오버는 네트워크로부터 핸드오버를 실행할 것을 명령하는 메시지를 수신함으로써 시작될 수 있으며, 단말이 핸드오버가 완료되었다는 메시지를 네트워크로 전송함으로써 완료된다. 그러므로 단말의 RRC 계층은 핸드오버 명령을 수신하면, RLC 수신 엔터티로 STATUS REPORT를 전송할 것을 명령한다.
STATUS REPORT를 전송할 것을 명령받은 단말의 RLC 수신 엔터티는 3415단계에서 암시적 NACK을 구성한다. 암시적 NACK에는 RLC 수신 엔터티가 지금까지 수신한 PDU들 중 가장 높은 일련번호를 가지는 PDU의 일련번호가 기입된다. 3420 단계에서 RLC 수신 엔터티는 상기 암시적 NACK를 포함하는 STATUS REPORT를 상기 단말의 무선 자원을 제어하는 RNC에게 전송한다. 이때 상기 STATUS REPORT는 상기 소스 셀을 통해 상기 RNC로 전달될 수 있다.
도 35는 본 발명의 바람직한 실시예에 따른 셀 변경시 RLC 송신 엔터티의 동작을 도시한 것이다.
도 35를 참조하면, 3505 단계에서 RNC에 구비되는 RLC 송신 엔터티는 단말로부터 암시적 NACK를 포함하는 STATUS REPORT를 수신한다. 3510 단계에서 RLC 송신 엔터티는 상기 암시적 NACK에 기입된 일련번호보다 높은 일련번호를 가지는 패킷들에 대한 재전송을 실행한다.
하기에서는 핸드오버시 단말이 수신하지 못한 PDU를 알지 못하는 경우의 문 제점을 해소하기 위한 다른 실시예를 개시한다.
통상적으로 단말이 특정 PDU를 수신하지 못하였다는 것을 인지하기 위해서는, 상기 특정 PDU보다 높은 일련번호를 가지는 PDU를 수신하여야 한다. 즉, 도 30의 예를 참조하면, 단말은 PDU[x+1] ~ PDU[x+4]에 대한 재전송을 요청해야 한다는 사실을 인지하기 위해서는 먼저 PDU[x+5]를 수신하여야 한다.
따라서 후술되는 실시예에서는 단말이 타겟 셀로 이동한 뒤 곧바로 RNC에게 STATUS REPORT를 전송하는 것이 아니라, 타겟 셀로부터 적어도 하나의 PDU를 수신한 뒤 STATUS REPROT를 전송한다. 이를 통해 단말은 소스 셀에서 전송되지 않았던 PDU들에 대한 재전송을 효율적으로 요청할 수 있다.
도 36은 본 발명의 바람직한 실시예에 따른 셀 변경시 STATUS REPORT의 전송 동작을 나타낸 시그널링 흐름도이다.
도 36을 참조하면, 3620 단계에서 RNC(3615)는 단말(3605)이 타겟 셀(3610)로 핸드오버 할 것을 결정한다. 그러면 RNC(3615)는 3625 단계에서 타겟 셀(3610)이 상기 단말(3605)과 패킷 데이터 통신을 할 수 있도록 설정하고, 3630 단계에서 단말(3605)에게 타겟 셀(3610)로 핸드오버 하도록 명령한다. 상기 핸드오버 명령을 위해서는 TRANSPORT CHANNEL RECONFIGURATION 메시지가 사용될 수 있다.
단말(3605)은 상기 TRANSPORT CHANNEL RECONFIGURATION 메시지의 설정 정보에 따라 상기 타겟 셀(3610)과 통신 링크를 설정하고, 3635 단계에서 타겟 셀(3610)에 대한 전송 채널 설정을 완료하였음을 알리는 TRANSPORT CHANNEL RECONFIGURATION COMPLETE 메시지를 RNC(3615)에게 전송한다.
또한 단말(3605)은 상기 타겟 셀(3610)로 핸드오버 한 후 상기 타겟 셀(3610)로부터 첫 번째 RLC PDU가 도착할 때까지 대기한다. 3640 단계에서 상기 타겟 셀(3610)로부터 첫 번째 RLC PDU를 수신하면 3645 단계에서 단말(3605)은 RNC(3615)로 성공적으로 수신한 RLC PDU 및 수신에 실패한 RLC PDU를 나타내는 STATUS REPORT를 전송한다.
한편, 소스 셀에서 전송되지 못한 데이터가 마지막 데이터인 경우에는 타겟 셀로부터 새로운 데이터가 전송되지 않을 것이므로, 도 37에 도시한 단말의 동작에는 타이머를 도입해서 이러한 경우에 대비하였다.
도 37은 본 발명의 바람직한 실시예에 따른 셀 변경시 단말의 RLC 수신 엔터티의 동작을 도시한 흐름도이다.
도 37을 참조하면, 3705 단계에서 단말이 타겟 셀로의 핸드오버를 완료하면, 단말에 구비되는 RLC 수신 엔터티는 3710 단계에서 상기 핸드오버를 관리하는 개체로부터 STATUS REPORT를 전송할 것을 명령 받는다. 그러면 RLC 수신 엔터티는 3715 단계에서 미리 설정되는 소정 시간으로 설정된 타이머를 구동시킨 뒤 3720 단계로 진행한다.
상기 3720 단계에서 RLC 수신 엔터티는 타겟 셀로부터 RLC PDU를 수신하였는지 감시한다. 그런데 단말의 계층적 구조상 실제로 RLC 수신 엔터티가 타겟 셀로부터의 데이터 수신 여부를 판단하기는 어렵기 때문에, RLC 수신 엔터티는 3710 단계 이후에 수신하는 첫 번째 RLC PDU가 타겟 셀로부터 수신한 RLC PDU인 것으로 간주할 수 있다.
단말이 핸드오버 이후에 첫 번째 RLC PDU를 수신하였으면, 3730 단계로 분기해서 RLC로 STATUS REPORT를 전송한 뒤 동작을 종료한다. 반면 RLC PDU를 수신하지 못하였으면 3725 단계로 분기한다.
상기 3725 단계에서 RLC 수신 엔터티는 3715 단계에서 구동한 타이머가 만료되었는지 검사한다. 상기 타이머가 만료되었다면, 단말은 3730 단계로 진행해서 STATUS REPORT를 전송한 뒤 동작을 종료한다. 또한 상기 타이머가 만료되지 않았다면, 3720 단계로 돌아가서 RLC PDU가 수신되는지 검사한다.
앞서 설명한 실시예에서 단말은 타겟 셀로 이동하면, 상기 타겟 셀로부터 첫 번째 RLC PDU를 수신한 뒤 STATUS REPORT를 발생시킴으로써 이전 셀에 남아 있던 RLC PDU들을 성공적으로 복원한다. 그런데 만약 타겟 셀에서 전송되는 첫 번째 RLC PDU가 재전송되는 RLC PDU라면, 상기 재전송되는 RLC PDU의 일련번호는, 이전 셀에 남아 있던 RLC PDU보다 낮으므로 단말은 상기 남아 있던 RLC PDU들을 복원하지 못한다. 그러므로 후술되는 실시예에서는, 단말이 타겟 셀로 이동하면 타겟 셀로부터 재전송되는 RLC PDU가 아닌 최초로 전송되는 RLC PDU를 수신한 후에, STATUS REPORT를 발생시키도록 한다.
도 38은 본 발명의 다른 실시예에 따른 STATUS REPORT의 전송 동작을 도시한 흐름도이다.
도 38을 참조하면, 단말은 3805 단계에서 타겟 셀로의 핸드오버를 완료하면, 상기 단말에 구비되는 RLC 수신 엔터티는 3810 단계에서 상기 핸드오버를 관리하는 개체로부터 STATUS REPORT를 전송할 것을 명령 받는다.
그러면 RLC 수신 엔터티는 3815 단계에서 타겟 셀로부터 RLC PDU가 수신될 때까지 대기한다. RLC PDU가 수신되면 RLC 수신 엔터티는 3820 단계로 진행해서 상기 수신한 RLC PDU가 재전송된 것인지 검사한다. 상기 수신한 RLC PDU가 재전송된 것인지의 여부는, 상기 수신한 RLC PDU가 VR(H)를 갱신하는지 여부를 검사함으로써 판단할 수 있다. 여기서 VR(H)는 RLC 수신 엔터티가 현재 시점까지 수신한 RLC PDU들의 일련 번호들 중 가장 높은 일련 번호에 1을 더한 값을 저장하는 변수이다. RLC 수신 엔터티는 새로운 RLC PDU를 수신하면, 상기 수신한 RLC PDU의 일련 번호와 상기 저장된 VR(H)를 비교하여 상기 두 값이 동일하면 VR(H)를 1 만큼 증가시킨다. 즉 VR(H)는 새로운 값으로 갱신된다.
상기 3820 단계에서 검사한 결과 재전송된 RLC PDU라면, 즉 상기 수신한 RLC PDU가 VR(H)를 갱신하지 않는다면, RLC 수신 엔터티는 3815 단계로 분기해서 새로운 RLC PDU가 수신될 때까지 대기한다.
반면에 상기 3820 단계에서 검사한 결과 재전송된 RLC PDU가 아니라면, 즉 상기 수신한 RLC PDU가 VR(H)를 갱신한다면, RLC 수신 엔터티는 3825 단계로 진행해서 STATSU REPORT를 구성하여 RNC로 전송한 뒤 동작을 종료한다.
도 39는 본 발명의 바람직한 실시예에 따라, 셀 변경시 STATUS REPORT의 전송을 수행하는 장치의 구조를 도시한 도면이다. 도시한 바와 같이, 상기 장치는 RLC PDU 수신부(3905), STATUS REPORT 제어부(3910), MAC 계층(3915) 및 물리 계층(3920)을 포함한다.
도 39를 참조하면, 물리 계층(3920)은 상위 계층의 데이터를 무선 채널로 전 송하거나, 무선 채널의 신호를 수신해서 상위 계층으로 전달하는 역할을 담당한다. MAC 계층(3915)은 상위 계층의 데이터들을 다중화해서 물리 계층(9320)으로 전달하거나, 물리 계층(3920)이 전달한 데이터를 역다중화 해서 적절한 상위 계층으로 전달하는 역할을 한다.
RLC PDU 수신부(3905)는 MAC 계층(3920)이 전달하는 RLC PDU들을 수신해서 버퍼링하는 수신 버퍼(도시하지 않음)를 포함하며, 상기 수신 버퍼에 저장된 RLC PDU들을 RLC SDU로 재조립한 뒤 상위 계층으로 전달하는 역할을 담당한다. STATUS REPORT 제어부(3910)는 상기 수신한 RLC PDU들의 일련번호를 검사해서 수신 상태를 관리하고, 필요 시 STATUS REPORT를 만들어서 MAC 계층(9315)으로 전달하는 역할을 담당한다.
도 33의 실시예에서, STATUS REPORT 제어부(3915)는 핸드오버가 완료되었다는 지시 신호 또는 핸드오버가 시작되었다는 지시 신호를 핸드오버를 관리하는 개체로부터 수신하면 암시적 NACK을 구성하고 상기 암시적 NACK를 포함하는 STATUS REPORT를 MAC 계층(3915) 및 물리 계층(3920)을 통해 RNC로 전송한다.
도 36의 실시예에서, MAC 계층(3915)은 핸드오버 완료 여부를 감시하고, 핸드오버가 완료되면 이를 STATUS REPORT 제어부(3910)에게 통보한다. STATUS REPORT 제어부(3915)는 핸드오버가 완료되었다는 지시 신호를 수신한 뒤, 첫 번째 RLC PDU를 수신하면 해당 시점에서 성공적으로 수신한 RLC PDU 및 수신에 실패한 RLC PDU를 나타내는 STATUS REPORT를 구성해서 전송한다.
도 40은 본 발명의 바람직한 실시예에 따라, 셀 변경시 STATUS REPORT의 수 신을 수행하는 장치의 구조를 도시한 도면이다. 도 36의 실시예에서는 송신기의 역할이 종래와 동일하므로, 도 40에서는 도 33의 실시예에 따른 송신기의 구조를 도시하였다. 도시한 바와 같이 상기 장치는 RLC PDU 송신부(4005), 재전송 제어부(4010), MAC 계층(4015) 및 물리 계층(4020)을 포함한다.
도 40을 참조하면, 물리 계층(4020)은 상위 계층의 데이터를 무선 채널로 전송하거나, 무선 채널의 신호를 수신해서 상위 계층으로 전달하는 역할을 담당한다. MAC 계층(4015)은 상위 계층의 데이터들을 다중화해서 물리 계층(4020)으로 전달하거나, 물리 계층(4020)이 전달한 데이터를 역다중화 해서 적절한 상위 계층으로 전달하는 역할을 한다.
RLC PDU 송신부(4002)는 상위 계층에서 전달된 RLC SDU를 연접 혹은 분할한 후 일련번호를 삽입함으로써 적어도 하나의 RLC PDU로 만들어서 MAC 계층(4020)으로 전달하는 역할을 담당한다. 재전송 제어부(4010)는 상대측으로부터 STATUS REPORT를 수신하고, 필요한 경우 RLC PDU 송신부(4005)에게 재전송을 명령한다.
도 33의 실시예에서, 재전송 제어부(4010)는 상기 STATUS REPORT에 포함된 암시적 NACK을 수신하면 상기 암시적 NACK에 기입된 일련번호보다 높은 일련번호의 RLC PDU들에 대해서 재전송을 수행할 것을 RLC PDU 송신부(4005)에게 명령한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허 청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.