이와 같은 기술적 과제를 해결하기 위한 본 발명에 따른 무선 네트워크 환경에서 데이터를 효율적으로 재전송하는 방법은 적어도 하나의 데이터 프레임을 포함하는 블록을 전송하는 단계; 상기 전송된 블록에 대한 수신 확인 응답을 수신하는 단계; 및 상기 수신 확인 응답에 기초하여 전송되지 않은 데이터 프레임을 포함하는 블록을 상기 블록을 수신한 단말에 재전송하는 단계를 포함한다.
상기 또 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 무선 네트워크 환경에서 데이터를 효율적으로 재전송하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
이와 같은 다른 기술적 과제를 해결하기 위한 본 발명에 따른 무선 네트워크 환경에서 데이터를 효율적으로 수신하는 방법은 적어도 하나의 데이터 프레임을 포함하는 블록을 수신하는 단계; 상기 블록에 포함된 데이터 프레임 중 수신되지 않은 데이터 프레임을 나타낸 수신확인 응답을 전송하는 단계; 상기 수신 확인 응답을 수신한 단말로부터 상기 수신 되지 않은 데이터 프레임을 포함하는 블록을 재수신하는 단계를 포함한다.
상기 또 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 무선 네트워크 환경에서 데이터를 효율적으로 수신하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
이와 같은 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른 무선 네트워크 환경에서 데이터를 효율적으로 재전송하는 장치는 적어도 하나의 데이터 프레임을 포함하는 블록을 생성하는 블록 생성부; 상기 블록 생성부에서 생성한 블록을 전송하는 전송부; 상기 블록을 수신한 단말로부터 수신 확인 응답을 수신하는 수신부; 상기 수신확인 응답을 기초로 전송되지 않은 데이터 프레임를 확인하는 전송 확인부; 및 상기 블록 생성부는 상기 전송 확인부의 전송 확인을 기초로 전송되지 않은 데이터 프레임을 포함한다.
이와 같은 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른 무선 네트워크 환경에서 데이터를 효율적으로 수신하는 장치는 적어도 하나의 데이터 프레임을 포함하는 블록을 수신하는 수신부; 상기 수신부에서 수신한 블록에 포함되어 있는 데이터 프레임의 수신을 확인하는 수신 확인부; 상기 수신 확인부의 데이터 프 레임의 수신 확인을 기초로 수신 확인 응답을 생성하는 수신 확인 응답 생성부; 및 상기 수신 확인 응답 생성부에서 생성된 수신 확인 응답을 상기 블록을 전송한 단말로 전송하는 전송부를 포함한다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다.
도 3은 본 발명의 일 실시예에 따른 블록들의 구조를 설명하는 도면이다.
본 발명에서 전송하고자 하는 데이터 프레임들(11, 12, 13, 14, 15, 16, 17, 18, 19)은 다수의 블록들(100, 200, 300)로 구성된다. 송신 장치(1000)는 상기 다수의 블록들(100, 200, 300)을 수신 장치(2000)로 연속적으로 전송하고, 상기 다수의 블록들(100, 200, 300)이 전송 완료된 사실의 통보 및 수신 장치(2000)로부터 수신 확인 응답을 요청하기 위한 BA Req.(Block Acknowledge Request)(400)을 전송한다. 이에 대응하여 수신 장치(2000)는 비트맵 형태의 정보를 가진 블록 ACK 프레임(500)을 사용하여 응답한다.
본 발명의 일 실시예에 따른 블록(100)은 PHY 헤더(10), MAC 헤더(20), 다수의 데이터 프레임(11, 12, 13) 및 다수의 구분자(delimiter; 30)로 이루어지며, MAC 헤더 및 데이터 프레임의 FCS(Frame check sequence)를 포함할 수 있다. PHY 헤더(10)는 IEEE 802.11 계열의 규격에 따르지만, 이에 한정되지는 않는다. MAC 헤더(20)는 IEEE 802.11 규격과 동일한 구조를 가질 수 있다. MAC 헤더(20)는 Frame Control 필드와, Duration/ID 필드와, 적어도 하나이상의 주소 필드(Address 1 내지 4)와, Sequence Control 필드를 포함할 수 있다. 각 필드의 정의와 세부 구조는 상기 IEEE 802.11 표준에 정의된 바와 동일하다. 데이터 프레임(11)은 1 이상의 데이터 유닛으로 구성된 데이터를 의미한다. 즉, 단 하나의 데이터 유닛으로 구성될 수도 있고, 다수의 데이터 유닛이 결합되어 구성될 수 있으나, 다수의 데이터 유닛 중 하나라도 에러가 발생할 경우 데이터 프레임(11) 전체의 오류로 간주한다. 또한, 이와 같은 데이터 유닛은 MPEG-2 규격에 따른 전송 스트림(Transport Stream)이 이용되나 이에 한정되지는 않는다. 구분자(30)는 각 데이터 프레임(11,12,13) 사이에 위치하여 각 데이터 프레임(11,12,13)을 식별하는 기능 정보로서, 데이터 프레임(11,12,13)을 구분할 수 있는 데이터 프레임의 번호 정보, 에러 검출을 위한 체크섬 정보 및 동기화를 위한 정보(예: time stamp)를 포함할 수 있다.
본 발명에서 BA Req.(Block Acknowledge Request)(400)은 PHY 헤더(10), MAC 헤더(20) BAR Control field, Block Ack Starting sequence Control field 및 FCS(Frame check sequence)(22)로 구성되어, 데이터 정보의 수신 확인을 요청한다. 이와 같은 데이터 정보의 수신 확인 요청은 더 이상 전송할 데이터 정보가 없고, 데이터 전송이 완료되었음을 수신 장치에 통지하는 것으로, 이에 대응하여 수신 장치는 수신 확인 응답을 송신 장치로 전송한다. 이때, 데이터 정보의 수신 확인에 대한 요청 정보는 상기 MAC 헤더 field의 Frame Type에 존재하며, 이는 IEEE 802.11 e의 규격에 따른다.
또한 본 발명에서, 상기 다수 블록의 연속적인 전송에 대한 수신 확인 응답은 하나의 블록 ACK 프레임(500)에 의하여 각 데이터 프레임 단위로 이루어지는 것으로 한다. 왜냐하면, 하나의 블록에 포함된 복수의 데이터 프레임(11, 12, 13) 각 각에 대하여 수신 확인이 필요하기 때문이다.
블록 ACK 프레임(500)에는 해당 데이터 프레임(11,12,13)에 대한 에러 여부를 표시하는 비트맵이 실리게 되는데, 송신 장치(1000)는 이 비트맵 정보에 따라서 재전송할 데이터 프레임을 판단하게 된다. 블록 ACK 프레임(500)은 PHY 헤더(10)와, MAC 헤더(20)와, 비트맵 필드(31)를 포함하여 이루어진 것을 특징으로 한다.
도 4는 도 3의 블록의 내부 구성을 보다 상세히 나타낸 도면이다.
하나의 블록 프레임(40)은 Packet No. 필드(41)와, PN CRC 필드(42)와, Time Stamp 필드(43)와, CRC 필드(44)와 결합하여 하나의 반복 단위를 이룬다.
Packet No. 필드(41)에는 블록 바디 부분에 실리는 데이터 프레임의 시퀀스 번호가 기록된다. 도 7에서 보면, 상위 계층으로부터 MAC 계층에 도달하는 순서대로 프레임 1부터 프레임 5까지 총 5개의 프레임에 대하여 순서대로 1부터 5(또는 0부터 4)의 일련번호가 순차적으로 Packet No. 필드(41)에 기록될 것이다. 이렇게 순차적으로 기록된 일련번호대로 데이터 프레임은 전송된다.
PN CRC 필드(42)는 Packet No. 필드(41)에 에러가 있는지를 검사하기 위한 검사합(checksum)이 기록된다. 검사합 방법으로는 순환형 중복 검사, 즉 CRC(Cyclic Redundancy Check)가 일반적으로 많이 사용되나 꼭 이에 한정되지는 않는다. 이러한 Packet No. 필드(41)에 에러는 해당 데이터 프레임의 전송에 문제가 있음을 나타낸다.
Time Stamp 필드(43)에는 상위 계층으로부터 MAC 계층에 데이터 유닛이 도달한 시각이 태그 값으로서 기록된다. Time Stamp 필드(43)는 TS와 같은 등시적 데이 터(isochronous data)를 전송하기 위하여 사용되며, 비동기 데이터(asynchronous data) 유닛의 전송에는 사용되지 않아도 된다.
CRC 필드(44)에는 프레임 데이터(40)에 에러가 있는지를 검사하기 위한 검사합이 기록된다. 상기 검사합을 구하는 방법으로는 순환형 중복 검사 방법이 주로 많이 사용된다. 다른 예로서, CRC 필드(44)에는 Time Stamp 필드(43) 및 프레임 데이터(40)의 에러 여부에 대한 검사합이 기록될 수도 있다. 한편, MAC 헤더(20)의 에러 여부를 나타내는 검사합을 기록한 HDR CRC 필드(45)도 프레임 바디에 포함되도록 할 수 있다. 이러한 CRC 필드(44)를 통해 전송 여부를 확인할 수 있다.
도 5는 도 3의 Block Acknowledge Request의 구성을 보다 상세히 나타낸 도면이다. Block Acknowledge Request (400)은 PHY 헤더(10)와, MAC 헤더(20)와, BA Req. 필드(21) 및 FCS(Frame check sequence) 필드(22)를 포함한다. IEEE 802.11 규격에 의하면, Block Acknowledge Request의 경우에 MAC 헤더(20)는 Frame control 필드와, Duration/ID 필드와, 수신 디바이스의 주소(receiver address)가 기록되는 RA 필드와, 송신 디바이스(transmitter address)가 기록되는 TA 필드로 구성된다.
BA Req. 필드 (21)는 BAR control field와, Block Ack Starting sequence Control field을 포함하여 구성된다. BAR control field에서는 상기 Block Acknowledge Request이BA Req.에 관한 내용임을 나타내고, Block Ack Starting sequence Control field는 각각 데이터 프레임 번호를 순차적으로 나타낸다.
도 6는 도 3의 블록 ACK 프레임의 구성을 보다 상세히 나타낸 도면이다. 블 록 ACK 프레임(500)은 PHY 헤더(10)와, MAC 헤더(20)와, 비트맵 필드(31) 및 FCS(Frame check sequence) 필드(32)를 포함한다. IEEE 802.11 규격에 의하면, ACK 프레임의 경우에 MAC 헤더(20)는 Frame control 필드와, Duration/ID 필드와, 수신 디바이스의 주소(receiver address)가 기록되는 RA 필드와, 송신 디바이스(transmitter address)가 기록되는 TA 필드로 구성된다.
비트맵 필드(31)는 BA control field와, Block Ack Starting sequence Control field와, Block Ack Bitmap을 포함하여 구성된다. BA control field에서는 상기 블록 ACk 프레임이 BA ACK에 관한 내용임을 나타내고, Block Ack Starting sequence Control field는 각각 데이터 프레임 번호를 순차적으로 나타낸다. Block Ack Bitmap의 각각의 비트는 Packet No. 필드(50)에 기록되는 각각의 데이터 프레임 번호에 순차적으로 대응된다. 따라서, 수신된 순서대로 비트맵을 작성할 수 있다. 상기 비트맵에서 각 비트는 순차적으로 대응되는 데이터 프레임이 정상적으로 수신 장치(2000)에 수신되었는가 여부가 표시된다. 예를 들어, 상기 비트가 1이면 정상적으로 수신된 것을, 0이면 정상적으로 수신되지 않은 것을 의미하도록 정의할 수 있다.
도 7은 본 발명의 일 실시예에 따른 데이터 재전송 과정을 나타낸 도면이다. 도 7은 특히, 본 발명에 의한 무선 장치 간의 데이터 송/수신 과정에서 데이터 전송이 실패하거나 에러가 발생하였을 경우 송신 장치 및 수신 장치에서 데이터 재전송 처리과정을 나타낸 도면이다.
50 단계에서 송신 장치(1000)는 데이터 프레임 1, 데이터 프레임 2 및 데이 터 프레임 3을 결합하여 생성한 첫 번째 블록을 수신 장치(2000)로 전송한다.
51 단계에서 수신 장치(2000)는 전송한 첫 번째 블록의 3개의 데이터 프레임 중에서 데이터 프레임 2 및 3에서 에러가 발생한 경우, 전체적인 에러로 간주하여 수신된 데이터 프레임 1을 상위 계층으로 전달 없이 버퍼에 저장하고, 블록 넘버 필드, 프레임 넘버 필드로 구성된 비트맵을 작성한다. 이와 같은 경우에 데이터 프레임 1은 블록 넘버 1 필드, 프레임 넘버 1 필드에 대응하여 저장되고, 데이터 프레임 2는 블록 넘버 1 필드, 프레임 넘버 2 필드에 저장되고, 데이터 프레임 3은 블록 넘버 1 필드, 프레임 넘버 3 필드에 저장된다. 이 경우 수신된 데이터 프레임 1은 “1”로 설정하고, 에러가 발생한 데이터 프레임 2 및 3은 “0”으로 설정할 수 있다.
52 단계에서 송신 장치(1000)는 데이터 프레임 4, 데이터 프레임 5 및 데이터 프레임 6을 결합하여 생성한 두 번째 블록을 수신 장치(2000)로 전송한다.
53 단계에서 수신 장치(2000)는 두 번째 블록의 3개의 데이터 프레임 4, 5, 6이 모두 수신 장치(2000)에 오류 없이 수신된 경우, 각 데이터 프레임은 블록 넘버 2 필드 및 대응되는 각 프레임 넘버 필드에 저장되어 비트맵을 작성한다. 이 경우 상기 데이터 프레임 1, 데이터 프레임 2 및 데이터 프레임 3의 경우와 같이 수신된 데이터 프레임을 “1”으로 할 경우, 데이터 프레임 4, 데이터 프레임 5 및 데이터 프레임 6은 모두 “1”으로 저장된다.
54 단계에서 송신 장치(1000)는 데이터 프레임 7, 데이터 프레임 8 및 데이터 프레임 9를 결합하여 생성한 세 번째 블록을 수신 장치(2000)로 전송한다.
55 단계에서 수신 장치(2000)는 세 번째 블록의 데이터 프레임 7, 데이터 프레임 8 및 데이터 프레임 9에서 데이터 프레임 7, 데이터 프레임 9만이 수신 장치(2000)로 수신된 경우, 수신된 데이터 프레임 1 내지 6의 경우와 마찬가지로 데이터 프레임 7, 데이터 프레임 8 및 데이터 프레임 9는 블록 넘버 3 필드 및 각 프레임 넘버 필드에 따라 프레임 7 및 데이터 프레임 9는 “1”으로 저장하고, 데이터 프레임 8은 “0”으로 저장한다.
56 단계에서 송신 장치(1000)는 데이터 프레임이 모두 전송된 사실을 통지하고, 수신 확인 응답을 요청하는 BA Req.(Block Acknowledge Request)를 전송한다.
57 단계에서 수신 장치(2000)는 상기 비트맵 작성 절차(51단계, 53 단계, 55 단계)에 의해 작성한 비트맵을 송신 장치(1000)로 전송한다.
58 단계에서 송신 장치(1000)는 비트맵에서 “0”으로 표시된 에러 발생 부분을 처음 전송했던 블록 형태로 재전송한다. 이 때 에러가 발생한 데이터 프레임은 데이터 프레임 2, 데이터 프레임 3 및 데이터 프레임 8이며, 데이터 프레임 2 및 데이터 프레임 3을 하나의 블록 형태로 수신 장치(2000)로 전송한다.
59 단계에서 수신 장치(2000)는 이에 최초 데이터 수신 시 비트맵 작성 절차와 동일한 방법으로 비트맵을 작성하므로, 오류 없이 수신된 데이터 프레임 2 및 데이터 프레임 3에 대해 “0”으로 저장된 데이터 프레임 2 및 데이터 프레임 3의 비트맵을 “1”으로 수정하여 비트맵에 저장한다.
60 단계에서 송신 장치(1000)는 에러가 발생한 데이터 프레임 8을 하나의 블록 형태로 수신 장치(2000)로 전송한다.
61 단계에서 수신 장치(2000)는 최초 데이터 수신 시 비트맵 작성 절차와 동일한 방법에 의해 “0”으로 저장된 데이터 프레임 8의 비트맵을 “1”으로 수정하여 저장한다.
62 단계에서 송신 장치(1000)는 데이터 프레임이 모두 재전송된 사실을 통지하고, 수신 확인 응답을 요청하는 BA Req.(Block Acknowledge Request)를 수신 장치(2000)로 전송한다.
63 단계에서 수신 장치(2000)는 재전송에 의해 모든 데이터 프레임이 송신 장치(1000)에서 수신 장치(2000)로 오류 없이 수신되었으므로, 모든 데이터가 오류 없이 수신되었음을 나타내는 비트맵을 송신 장치(1000)로 전송한다. 이 경우 모든 데이터는 “1”으로 나타내어 전송된다. 모든 데이터가 오류 없이 수신 장치(2000)로 전송되었음을 확인한 송신 장치(2000)는 더 이상 데이터를 재전송 하지 않는다. 즉, 오류 없이 수신되었음을 나타낸 수신 확인 응답을 수신한 송신 장치(1000)는 더 이상 재전송을 하지 않는다.
도 7을 참조하면 3개의 데이터 프레임이 하나의 블록을 형성하므로, 총 9개의 데이터 프레임이 3개의 블록을 형성하고, 송신 장치(1000)는 상기 블록들을 일정 시간 간격으로 연속적으로 수신 장치에 전송할 수 있다.(50 단계, 52 단계, 54 단계). 이 때, 연속적으로 전송되는 시간 간격은 IEEE 802.11 규격에서 가장 짧은 시간 간격인 SIFS(Short Inter Frame Space)으로 정할 수 있고, 일정 주기로 전송할 수 있다. 이와 같이 SIFS(Short Inter Frame Space)를 시간 간격으로 정한 경우에는 전송 간격이 짧아 여러 블록들을 한번에 보내는 것과 같은 효과를 얻을 수 있 다.
도 8은 본 발명의 일 실시예에 따른 데이터 송신/수신 장치를 나타낸 도면이다.
도 8을 참조하면, 본 실시예에 따는 송신 장치(1000)는 블록 생성부(110), 전송부(120), 수신부(130), 비트맵 추출부(140) 및 수신 확인부(150)로 구성된다.
블록 생성부(110)는 적어도 하나의 데이터 프레임을 포함하는 블록을 생성하고 이를 전송부(120)로 전달한다. 또한 수신 확인부(150)에서 전달 받은 비트맵을 기초로 수신 장치(2000)로 수신되지 않은 데이터 프레임을 포함한 블록을 생성하여 블록을 생성하고, 전송부(120)에 전달한다.
전송부(120)는 블록 생성부(110)가 생성한 블록을 블록 생성부(110)로부터 전달받고, 이를 수신 장치(2000)로 전송한다.
수신부(130)는 수신 장치(2000)로부터 수신 확인 응답을 수신 받고, 이를 비트맵 추출부(140)로 전달한다.
비트맵 추출부(140)는 전달 받은 수신 확인 응답에서 각 데이터 프레임의 수신 여부를 나타낸 비트맵을 추출하고, 이를 수신 확인부(150)에 전달한다.
수신 확인부(150)는 비트맵 추출부(140)로부터 비트맵을 전달 받고, 각 데이터 프레임이 수신 장치(2000)로 수신되었는지를 판단하여 블록 생성부(110)에 전달한다.
또한 도 8을 참조하면, 본 실시예에 따는 수신 장치(2000)는 수신부(210), 수신 확인부(220), 비트맵 작성부(230), 수신 확인 응답 생성부(240) 및 전송부(250)로 구성된다.
수신부(210)는 적어도 하나의 데이터 프레임을 포함한 블록을 수신한 후에 이를 수신 확인부(220)에 전달한다.
수신 확인부(220)는 데이터 프레임이 오류없이 수신 장치(2000)에 수신 되었는지 여부를 판단하고, 판단 결과를 비트맵 작성부(230)에 전달한다.
비트맵 작성부(230)는 각 데이터 프레임의 수신 여부에 따라 이를 구별하여 나타내는 비트맵을 작성하고, 수신 확인 응답 생성부(240)에 전달한다.
수신 확인 응답 생성부(240)에서는 전달 받은 비트맵을 기초로 수신 장치(2000)로 수신된 데이터 프레임과 수신 되지 않은 데이터 프레임을 구별하여 한 블록 형태의 수신 확인 응답을 생성하고 이를 전송부(250)로 전달한다.
전송부(250)는 수신 확인 응답 생성부(240)로부터 수신확인 응답을 전달 받고, 이를 전송 장치(1000)로 전송한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록 매체에 여러 수단을 통하여 기록될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록 매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한 다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 특히 본 발명의 실시예들은 WLAN 환경의 IEEE 802.11을 표준으로 작
성되었으나, 본 발명은 이에 한정되지 않고 PLC(Power Line Control)등과 같은 이종 네트워크 환경에도 적용될 수 있다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.