이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다.
이하의 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 당업자는 본 발명이 이러한 구체적 세부사항 없이도 실시될 수 있음을 안다. 몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시된다.
상술한 바와 같이 이하의 설명은 무선랜 시스템에서 넓은 대역을 가지는 채널을 효율적으로 활용하기 위한 방법 및 이를 위한 장치에 대한 것이다. 이를 위해 먼저 본 발명이 적용되는 무선랜 시스템에 대해 구체적으로 설명한다.
도 1은 무선랜 시스템의 구성의 일례를 나타낸 도면이다.
도 1에 도시된 바와 같이, 무선랜 시스템은 하나 이상의 기본 서비스 세트(Basic Service Set, BSS)를 포함한다. BSS는 성공적으로 동기화를 이루어서 서로 통신할 수 있는 스테이션(Station, STA)의 집합이다.
STA는 매체 접속 제어(Medium Access Control, MAC)와 무선 매체에 대한 물리계층(Physical Layer) 인터페이스를 포함하는 논리 개체로서, 액세스 포인트(access point, AP)와 비AP STA(Non-AP Station)을 포함한다. STA 중에서 사용자가 조작하는 휴대용 단말은 Non-AP STA로써, 단순히 STA이라고 할 때는 Non-AP STA을 가리키기도 한다. Non-AP STA은 단말(terminal), 무선 송수신 유닛(Wireless Transmit/Receive Unit, WTRU), 사용자 장비(User Equipment, UE), 이동국(Mobile Station, MS), 휴대용 단말(Mobile Terminal), 또는 이동 가입자 유닛(Mobile Subscriber Unit) 등의 다른 명칭으로도 불릴 수 있다.
그리고, AP는 자신에게 결합된 STA(Associated Station)에게 무선 매체를 통해 분배 시스템(Distribution System, DS)으로의 접속을 제공하는 개체이다. AP는 집중 제어기, 기지국(Base Station, BS), Node-B, BTS(Base Transceiver System), 또는 사이트 제어기 등으로 불릴 수도 있다.
BSS는 인프라스트럭처(infrastructure) BSS와 독립적인(Independent) BSS(IBSS)로 구분할 수 있다.
도 1에 도시된 BBS는 IBSS이다. IBSS는 AP를 포함하지 않는 BSS를 의미하고, AP를 포함하지 않으므로, DS로의 접속이 허용되지 않아서 자기 완비적 네트워크(self-contained network)를 이룬다.
도 2는 무선랜 시스템의 구성의 다른 예를 나타낸 도면이다.
도 2에 도시된 BSS는 인프라스트럭처 BSS이다. 인프라스트럭처 BSS는 하나 이상의 STA 및 AP를 포함한다. 인프라스트럭처 BSS에서 비AP STA들 사이의 통신은 AP를 경유하여 이루어지는 것이 원칙이나, 비AP STA 간에 직접 링크(link)가 설정된 경우에는 비AP STA들 사이에서 직접 통신도 가능하다.
도 2에 도시된 바와 같이, 복수의 인프라스트럭처 BSS는 DS를 통해 상호 연결될 수 있다. DS를 통하여 연결된 복수의 BSS를 확장 서비스 세트(Extended Service Set, ESS)라 한다. ESS에 포함되는 STA들은 서로 통신할 수 있으며, 동일한 ESS 내에서 비AP STA은 끊김 없이 통신하면서 하나의 BSS에서 다른 BSS로 이동할 수 있다.
DS는 복수의 AP들을 연결하는 메커니즘(mechanism)으로서, 반드시 네트워크일 필요는 없으며, 소정의 분배 서비스를 제공할 수 있다면 그 형태에 대해서는 아무런 제한이 없다. 예컨대, DS는 메쉬(mesh) 네트워크와 같은 무선 네트워크일 수도 있고, AP들을 서로 연결시켜 주는 물리적인 구조물일 수도 있다.
계층 구조
무선랜 시스템에서 동작하는 STA의 동작은 계층(layer) 구조의 관점에서 설명할 수 있다. 장치 구성의 측면에서 계층 구조는 프로세서에 의해서 구현될 수 있다. STA는 복수개의 계층 구조를 가질 수 있다. 예를 들어, 802.11 표준문서에서 다루는 계층 구조는 주로 DLL(Data Link Layer) 상의 MAC 서브계층(sublayer) 및 물리(PHY) 계층이다. PHY은 PLCP(Physical Layer Convergence Procedure) 개체, PMD(Physical Medium Dependent) 개체 등을 포함할 수 있다. MAC 서브계층 및 PHY은 각각 MLME(MAC sublayer Management Entity) 및 PLME((Physical Layer Management Entity)라고 칭하여지는 관리 개체들을 개념적으로 포함한다. 이러한 개체들은 계층 관리 기능이 작동하는 계층 관리 서비스 인터페이스를 제공한다.
정확한 MAC 동작을 제공하기 위해서, SME(Station Management Entity) 가 각각의 STA 내에 존재한다. SME는, 별도의 관리 플레인 내에 존재하거나 또는 따로 떨어져(off to the side) 있는 것으로 보일 수 있는, 계층 독립적인 개체이다. SME의 정확한 기능들은 본 문서에서 구체적으로 설명하지 않지만, 일반적으로는 다양한 계층 관리 개체(LME)들로부터 계층-종속적인 상태를 수집하고, 계층-특정 파라미터들의 값을 유사하게 설정하는 등의 기능을 담당하는 것으로 보일 수 있다. SME는 일반적으로 일반 시스템 관리 개체를 대표하여(on behalf of) 이러한 기능들을 수행하고, 표준 관리 프로토콜을 구현할 수 있다.
전술한 개체들은 다양한 방식으로 상호작용한다. 예를 들어, 개체들 간에는 GET/SET 프리머티브(primitive)들을 교환(exchange)함으로써 상호작용할 수 있다. 프리머티브는 특정 목적에 관련된 요소(element)나 파라미터들의 세트를 의미한다. XX-GET.request 프리머티브는 주어진 MIB attribute(관리 정보 기반 속성 정보)의 값을 요청하기 위해 사용된다. XX-GET.confirm 프리머티브는, Status가 "성공"인 경우에는 적절한 MIB 속성 정보 값을 리턴하고, 그렇지 않으면 Status 필드에서 에러 지시를 리턴하기 위해 사용된다. XX-SET.request 프리머티브는 지시된 MIB 속성이 주어진 값으로 설정되도록 요청하기 위해 사용된다. 상기 MIB 속성이 특정 동작을 의미하는 경우, 이는 해당 동작이 수행되는 것을 요청하는 것이다. 그리고, XX-SET.confirm 프리머티브는 status가 "성공"인 경우에 지시된 MIB 속성이 요청된 값으로 설정되었음을 확인하여 주고, 그렇지 않으면 status 필드에 에러 조건을 리턴하기 위해 사용된다. MIB 속성이 특정 동작을 의미하는 경우, 이는 해당 동작이 수행되었음을 확인하여 준다.
또한, MLME 및 SME는 다양한 MLME_GET/SET 프리머티브들을 MLME_SAP(Service Access Point)을 통하여 교환할 수 있다. 또한, 다양한 PLME_GET/SET 프리머티브들이, PLME_SAP을 통해서 PLME와 SME 사이에서 교환될 수 있고, MLME-PLME_SAP을 통해서 MLME와 PLME 사이에서 교환될 수 있다.
링크
셋업
과정
도 3은 일반적인 링크 셋업(link setup) 과정을 설명하기 위한 도면이다.
STA이 네트워크에 대해서 링크를 셋업하고 데이터를 송수신하기 위해서는, 먼저 네트워크를 발견(discovery)하고, 인증(authentication)을 수행하고, 연관(association)을 맺고(establish), 보안(security)을 위한 인증 절차 등을 거쳐야 한다. 링크 셋업 과정을 세션 개시 과정, 세션 셋업 과정이라고도 칭할 수 있다. 또한, 링크 셋업 과정의 발견, 인증, 연관, 보안 설정의 과정을 통칭하여 연관 과정이라고 칭할 수도 있다.
도 3을 참조하여 예시적인 링크 셋업 과정에 대해서 설명한다.
단계 S510에서 STA은 네트워크 발견 동작을 수행할 수 있다. 네트워크 발견 동작은 STA의 스캐닝(scanning) 동작을 포함할 수 있다. 즉, STA이 네트워크에 액세스하기 위해서는 참여 가능한 네트워크를 찾아야 한다. STA은 무선 네트워크에 참여하기 전에 호환 가능한 네트워크를 식별하여야 하는데, 특정 영역에 존재하는 네트워크 식별과정을 스캐닝이라고 한다.
스캐닝 방식에는 능동적 스캐닝(active scanning)과 수동적 스캐닝(passive scanning)이 있다.
도 3에서는 예시적으로 능동적 스캐닝 과정을 포함하는 네트워크 발견 동작을 도시한다. 능동적 스캐닝에서 스캐닝을 수행하는 STA은 채널들을 옮기면서 주변에 어떤 AP가 존재하는지 탐색하기 위해 프로브 요청 프레임(probe request frame)을 전송하고 이에 대한 응답을 기다린다. 응답자(responder)는 프로브 요청 프레임을 전송한 STA에게 프로브 요청 프레임에 대한 응답으로 프로브 응답 프레임(probe response frame)을 전송한다. 여기에서, 응답자는 스캐닝되고 있는 채널의 BSS에서 마지막으로 비콘 프레임(beacon frame)을 전송한 STA일 수 있다. BSS에서는 AP가 비콘 프레임을 전송하므로 AP가 응답자가 되며, IBSS에서는 IBSS 내의 STA들이 돌아가면서 비콘 프레임을 전송하므로 응답자가 일정하지 않다. 예를 들어, 1번 채널에서 프로브 요청 프레임을 전송하고 1번 채널에서 프로브 응답 프레임을 수신한 STA은, 수신한 프로브 응답 프레임에 포함된 BSS 관련 정보를 저장하고 다음 채널(예를 들어, 2번 채널)로 이동하여 동일한 방법으로 스캐닝(즉, 2번 채널 상에서 프로브 요청/응답 송수신)을 수행할 수 있다.
도 3에서 도시하고 있지 않지만, 스캐닝 동작은 수동적 스캐닝 방식으로 수행될 수도 있다. 수동적 스캐닝에서 스캐닝을 수행하는 STA은 채널들을 옮기면서 비콘 프레임을 기다린다. 비콘 프레임은 IEEE 802.11에서 관리 프레임(management frame) 중 하나로서, 무선 네트워크의 존재를 알리고, 스캐닝을 수행하는 STA으로 하여금 무선 네트워크를 찾아서, 무선 네트워크에 참여할 수 있도록 주기적으로 전송된다. BSS에서 AP가 비콘 프레임을 주기적으로 전송하는 역할을 수행하고, IBSS에서는 IBSS 내의 STA들이 돌아가면서 비콘 프레임을 전송한다. 스캐닝을 수행하는 STA은 비콘 프레임을 수신하면 비콘 프레임에 포함된 BSS에 대한 정보를 저장하고 다른 채널로 이동하면서 각 채널에서 비콘 프레임 정보를 기록한다. 비콘 프레임을 수신한 STA은, 수신한 비콘 프레임에 포함된 BSS 관련 정보를 저장하고 다음 채널로 이동하여 동일한 방법으로 다음 채널에서 스캐닝을 수행할 수 있다.
능동적 스캐닝과 수동적 스캐닝을 비교하면, 능동적 스캐닝이 수동적 스캐닝보다 딜레이(delay) 및 전력 소모가 작은 장점이 있다.
STA이 네트워크를 발견한 후에, 단계 S520에서 인증 과정이 수행될 수 있다. 이러한 인증 과정은 후술하는 단계 S540의 보안 셋업 동작과 명확하게 구분하기 위해서 첫 번째 인증(first authentication) 과정이라고 칭할 수 있다.
인증 과정은 STA이 인증 요청 프레임(authentication request frame)을 AP에게 전송하고, 이에 응답하여 AP가 인증 응답 프레임(authentication response frame)을 STA에게 전송하는 과정을 포함한다. 인증 요청/응답에 사용되는 인증 프레임(authentication frame)은 관리 프레임에 해당한다.
인증 프레임은 인증 알고리즘 번호(authentication algorithm number), 인증 트랜잭션 시퀀스 번호(authentication transaction sequence number), 상태 코드(status code), 검문 텍스트(challenge text), RSN(Robust Security Network), 유한 순환 그룹(Finite Cyclic Group) 등에 대한 정보를 포함할 수 있다. 이는 인증 요청/응답 프레임에 포함될 수 있는 정보들의 일부 예시에 해당하며, 다른 정보로 대체되거나, 추가적인 정보가 더 포함될 수 있다.
STA은 인증 요청 프레임을 AP에게 전송할 수 있다. AP는 수신된 인증 요청 프레임에 포함된 정보에 기초하여, 해당 STA에 대한 인증을 허용할지 여부를 결정할 수 있다. AP는 인증 처리의 결과를 인증 응답 프레임을 통하여 STA에게 제공할 수 있다.
STA이 성공적으로 인증된 후에, 단계 S530에서 연관 과정이 수행될 수 있다. 연관 과정은 STA이 연관 요청 프레임(association request frame)을 AP에게 전송하고, 이에 응답하여 AP가 연관 응답 프레임(association response frame)을 STA에게 전송하는 과정을 포함한다.
예를 들어, 연관 요청 프레임은 다양한 능력(capability)에 관련된 정보, 비콘 청취 간격(listen interval), SSID(service set identifier), 지원 레이트(supported rates), 지원 채널(supported channels), RSN, 이동성 도메인, 지원 오퍼레이팅 클래스(supported operating classes), TIM 방송 요청(Traffic Indication Map Broadcast request), 상호동작(interworking) 서비스 능력 등에 대한 정보를 포함할 수 있다.
예를 들어, 연관 응답 프레임은 다양한 능력에 관련된 정보, 상태 코드, AID(Association ID), 지원 레이트, EDCA(Enhanced Distributed Channel Access) 파라미터 세트, RCPI(Received Channel Power Indicator), RSNI(Received Signal to Noise Indicator), 이동성 도메인, 타임아웃 간격(연관 컴백 시간(association comeback time)), 중첩(overlapping) BSS 스캔 파라미터, TIM 방송 응답, QoS 맵 등의 정보를 포함할 수 있다.
이는 연관 요청/응답 프레임에 포함될 수 있는 정보들의 일부 예시에 해당하며, 다른 정보로 대체되거나, 추가적인 정보가 더 포함될 수 있다.
STA이 네트워크에 성공적으로 연관된 후에, 단계 S540에서 보안 셋업 과정이 수행될 수 있다. 단계 S540의 보안 셋업 과정은 RSNA(Robust Security Network Association) 요청/응답을 통한 인증 과정이라고 할 수도 있고, 상기 단계 S520의 인증 과정을 첫 번째 인증(first authentication) 과정이라고 하고, 단계 S540의 보안 셋업 과정을 단순히 인증 과정이라고도 칭할 수도 있다.
단계 S540의 보안 셋업 과정은, 예를 들어, EAPOL(Extensible Authentication Protocol over LAN) 프레임을 통한 4-웨이(way) 핸드쉐이킹을 통해서, 프라이빗 키 셋업(private key setup)을 하는 과정을 포함할 수 있다. 또한, 보안 셋업 과정은 IEEE 802.11 표준에서 정의하지 않는 보안 방식에 따라 수행될 수도 있다.
매체 액세스 메커니즘
IEEE 802.11에 따른 무선랜 시스템에서, MAC(Medium Access Control)의 기본 액세스 메커니즘은 CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance) 메커니즘이다. CSMA/CA 메커니즘은 IEEE 802.11 MAC의 분배 조정 기능(Distributed Coordination Function, DCF)이라고도 불리는데, 기본적으로 "listen before talk" 액세스 메커니즘을 채용하고 있다. 이러한 유형의 액세스 메커니즘 따르면, AP 및/또는 STA은 전송을 시작하기에 앞서, 소정의 시간구간(예를 들어, DIFS(DCF Inter-Frame Space) 동안 무선 채널 또는 매체(medium)를 센싱(sensing)하는 CCA(Clear Channel Assessment)를 수행할 수 있다. 센싱 결과, 만일 매체가 유휴 상태(idle status)인 것으로 판단 되면, 해당 매체를 통하여 프레임 전송을 시작한다. 반면, 매체가 점유 상태(occupied status)인 것으로 감지되면, 해당 AP 및/또는 STA은 자기 자신의 전송을 시작하지 않고 매체 액세스를 위한 지연 기간(예를 들어, 임의 백오프 주기(random backoff period))을 설정하여 기다린 후에 프레임 전송을 시도할 수 있다. 임의 백오프 주기의 적용으로, 여러 STA들은 서로 다른 시간 동안 대기한 후에 프레임 전송을 시도할 것이 기대되므로, 충돌(collision)을 최소화시킬 수 있다.
또한, IEEE 802.11 MAC 프로토콜은 HCF(Hybrid Coordination Function)를 제공한다. HCF는 상기 DCF와 PCF(Point Coordination Function)를 기반으로 한다. PCF는 폴링(polling) 기반의 동기식 액세스 방식으로 모든 수신 AP 및/또는 STA이 데이터 프레임을 수신할 수 있도록 주기적으로 폴링하는 방식을 일컫는다. 또한, HCF는 EDCA(Enhanced Distributed Channel Access)와 HCCA(HCF Controlled Channel Access)를 가진다. EDCA는 제공자가 다수의 사용자에게 데이터 프레임을 제공하기 위한 액세스 방식을 경쟁 기반으로 하는 것이고, HCCA는 폴링(polling) 메커니즘을 이용한 비경쟁 기반의 채널 액세스 방식을 사용하는 것이다. 또한, HCF는 WLAN의 QoS(Quality of Service)를 향상시키기 위한 매체 액세스 메커니즘을 포함하며, 경쟁 주기(Contention Period; CP)와 비경쟁 주기(Contention Free Period; CFP) 모두에서 QoS 데이터를 전송할 수 있다.
도 4는 백오프 과정을 설명하기 위한 도면이다.
도 4를 참조하여 임의 백오프 주기에 기반한 동작에 대해서 설명한다. 점유(occupy 또는 busy) 상태이던 매체가 유휴(idle) 상태로 변경되면, 여러 STA들은 데이터(또는 프레임) 전송을 시도할 수 있다. 이 때, 충돌을 최소화하기 위한 방안으로서, STA들은 각각 임의 백오프 카운트를 선택하고 그에 해당하는 슬롯 시간만큼 대기한 후에, 전송을 시도할 수 있다. 임의 백오프 카운트는 패킷 번호(Packet Number) 값을 가지며, 0 내지 CW 범위의 값 중에서 하나로 결정될 수 있다. 여기서, CW는 경쟁 윈도우(Contention Window) 파라미터 값이다. CW 파라미터는 초기값으로 CWmin이 주어지지만, 전송 실패의 경우(예를 들어, 전송된 프레임에 대한 ACK을 수신하지 못한 경우)에 2 배의 값을 취할 수 있다. CW 파라미터 값이 CWmax가 되면 데이터 전송이 성공할 때까지 CWmax 값을 유지하면서 데이터 전송을 시도할 수 있고, 데이터 전송이 성공하는 경우에는 CWmin 값으로 리셋된다. CW, CWmin 및 CWmax 값은 2n-1 (n=0, 1, 2, ...)로 설정되는 것이 바람직하다.
임의 백오프 과정이 시작되면 STA은 결정된 백오프 카운트 값에 따라서 백오프 슬롯을 카운트 다운하는 동안에 계속하여 매체를 모니터링한다. 매체가 점유상태로 모니터링되면 카운트 다운을 멈추고 대기하고, 매체가 유휴 상태가 되면 나머지 카운트 다운을 재개한다.
도 4의 예시에서 STA3의 MAC에 전송할 패킷이 도달한 경우에, STA3는 DIFS 만큼 매체가 유휴 상태인 것을 확인하고 바로 프레임을 전송할 수 있다. 한편, 나머지 STA들은 매체가 점유(busy) 상태인 것을 모니터링하고 대기한다. 그 동안 STA1, STA2 및 STA5의 각각에서도 전송할 데이터가 발생할 수 있고, 각각의 STA은 매체가 유휴상태로 모니터링되면 DIFS만큼 대기한 후에, 각자가 선택한 임의 백오프 카운트 값에 따라 백오프 슬롯의 카운트 다운을 수행할 수 있다. 도 4의 예시에서는 STA2가 가장 작은 백오프 카운트 값을 선택하고, STA1이 가장 큰 백오프 카운트 값을 선택한 경우를 나타낸다. 즉, STA2가 백오프 카운트를 마치고 프레임 전송을 시작하는 시점에서 STA5의 잔여 백오프 시간은 STA1의 잔여 백오프 시간보다 짧은 경우를 예시한다. STA1 및 STA5는 STA2가 매체를 점유하는 동안에 잠시 카운트 다운을 멈추고 대기한다. STA2의 점유가 종료되어 매체가 다시 유휴 상태가 되면, STA1 및 STA5는 DIFS만큼 대기한 후에, 멈추었던 백오프 카운트를 재개한다. 즉, 잔여 백오프 시간만큼의 나머지 백오프 슬롯을 카운트 다운한 후에 프레임 전송을 시작할 수 있다. STA5의 잔여 백오프 시간이 STA1보다 짧았으므로 STA5이 프레임 전송을 시작하게 된다. 한편, STA2가 매체를 점유하는 동안에 STA4에서도 전송할 데이터가 발생할 수 있다. 이 때, STA4의 입장에서는 매체가 유휴 상태가 되면 DIFS만큼 대기한 후, 자신이 선택한 임의 백오프 카운트 값에 따른 카운트 다운을 수행하고 프레임 전송을 시작할 수 있다. 도 6의 예시에서는 STA5의 잔여 백오프 시간이 STA4의 임의 백오프 카운트 값과 우연히 일치하는 경우를 나타내며, 이 경우, STA4와 STA5 간에 충돌이 발생할 수 있다. 충돌이 발생하는 경우에는 STA4와 STA5 모두 ACK을 받지 못하여, 데이터 전송을 실패하게 된다. 이 경우, STA4와 STA5는 CW 값을 2배로 늘린 후에 임의 백오프 카운트 값을 선택하고 카운트 다운을 수행할 수 있다. 한편, STA1은 STA4와 STA5의 전송으로 인해 매체가 점유 상태인 동안에 대기하고 있다가, 매체가 유휴 상태가 되면 DIFS만큼 대기한 후, 잔여 백오프 시간이 지나면 프레임 전송을 시작할 수 있다.
STA의
센싱
동작
전술한 바와 같이 CSMA/CA 메커니즘은 AP 및/또는 STA이 매체를 직접 센싱하는 물리적 캐리어 센싱(physical carrier sensing) 외에 가상 캐리어 센싱(virtual carrier sensing)도 포함한다. 가상 캐리어 센싱은 숨겨진 노드 문제(hidden node problem) 등과 같이 매체 액세스에서 발생할 수 있는 문제를 보완하기 위한 것이다. 가상 캐리어 센싱을 위하여, 무선랜 시스템의 MAC은 네트워크 할당 벡터(Network Allocation Vector; NAV)를 이용할 수 있다. NAV는 현재 매체를 사용하고 있거나 또는 사용할 권한이 있는 AP 및/또는 STA이, 매체가 이용 가능한 상태로 되기까지 남아 있는 시간을 다른 AP 및/또는 STA에게 지시(indicate)하는 값이다. 따라서 NAV로 설정된 값은 해당 프레임을 전송하는 AP및/또는 STA에 의하여 매체의 사용이 예정되어 있는 기간에 해당하고, NAV 값을 수신하는 STA은 해당 기간동안 매체 액세스가 금지된다. NAV는, 예를 들어, 프레임의 MAC 헤더(header)의 "duration" 필드의 값에 따라 설정될 수 있다.
또한, 충돌 가능성을 감소시키기 위해서 강인한 충돌 검출(robust collision detect) 메커니즘이 도입되었다. 이에 대해서 도 5 및 도 7을 참조하여 설명한다. 실제 캐리어 센싱 범위와 전송 범위는 동일하지 않을 수도 있지만, 설명의 편의를 위해서 동일한 것으로 가정한다.
도 5는 숨겨진 노드 및 노출된 노드에 대한 설명을 위한 도면이다.
도 5(a)는 숨겨진 노드에 대한 예시이며, STA A와 STA B는 통신 중에 있고 STA C가 전송할 정보를 가지고 있는 경우이다. 구체적으로 STA A가 STA B에 정보를 전송하고 있는 상황이지만, STA C가 STA B로 데이터를 보내기 전에 캐리어 센싱을 수행할 때에 매체가 유휴 상태인 것으로 판단할 수 있다. 이는 STA A의 전송(즉, 매체 점유)을 STA C의 위치에서는 센싱하지 못할 수도 있기 때문이다. 이러한 경우에, STA B는 STA A와 STA C의 정보를 동시에 받기 때문에 충돌이 발생하게 된다. 이 때 STA A는 STA C의 숨겨진 노드라고 할 수 있다.
도 5(b)는 노출된 노드(exposed node)에 대한 예시이며, STA B는 STA A에 데이터를 전송하고 있는 상황에서, STA C가 STA D에서 전송할 정보를 가지고 있는 경우이다. 이 경우에 STA C가 캐리어 센싱을 수행하면, STA B의 전송으로 인하여 매체가 점유된 상태라고 판단할 수 있다. 이에 따라, STA C가 STA D에 전송할 정보가 있더라도 매체 점유 상태라고 센싱되기 때문에 매체가 유휴 상태가 될 때까지 기다려야 한다. 그러나, 실제로는 STA A는 STA C의 전송 범위 밖에 있으므로, STA C로부터의 전송과 STA B로부터의 전송은 STA A의 입장에서는 충돌하지 않을 수도 있으므로, STA C는 STA B가 전송을 멈출 때까지 불필요하게 대기하는 것이 된다. 이 때 STA C를 STA B의 노출된 노드라고 할 수 있다.
도 6은 RTS와 CTS를 설명하기 위한 도면이다.
도 5와 같은 예시적인 상황에서 충돌 회피(collision avoidance) 메커니즘을 효율적으로 이용하기 위해서, RTS(request to send)와 CTS(clear to send)등의 짧은 시그널링 패킷(short signaling packet)을 이용할 수 있다. 두 STA 간의 RTS/CTS는 주위의 STA(들)이 오버히어링(overhearing)할 수 있도록 하여, 상기 주위의 STA(들)이 상기 두 STA 간의 정보 전송 여부를 고려하도록 할 수 있다. 예를 들어, 데이터를 전송하려는 STA이 데이터를 받는 STA에 RTS 프레임을 전송하면, 데이터를 받는 STA은 CTS 프레임을 주위의 STA들에게 전송함으로써 자신이 데이터를 받을 것임을 알릴 수 있다.
도 6(a)는 숨겨진 노드 문제를 해결하는 방법에 대한 예시이며, STA A와 STA C가 모두 STA B에 데이터를 전송하려고 하는 경우를 가정한다. STA A가 RTS를 STA B에 보내면 STA B는 CTS를 자신의 주위에 있는 STA A와 STA C에 모두 전송을 한다. 그 결과 STA C는 STA A와 STA B의 데이터 전송이 끝날 때까지 기다리게 되어 충돌을 피할 수 있게 된다.
도 6(b)는 노출된 노드 문제를 해결하는 방법에 대한 예시이며, STA A와 STA B 간의 RTS/CTS 전송을 STA C가 오버히어링함으로써, STA C는 자신이 다른 STA(예를 들어, STA D)에게 데이터를 전송하더라도 충돌이 발생하지 않을 것으로 판단할 수 있다. 즉, STA B는 주위의 모든 STA들에게 RTS를 전송하고, 실제로 보낼 데이터가 있는 STA A만 CTS를 전송하게 된다. STA C는 RTS만을 받고 STA A의 CTS를 받지 못했기 때문에 STA A는 STC C의 캐리어 센싱 밖에 있다는 것을 알 수 있다.
전력 관리
전술한 바와 같이 무선랜 시스템에서는 STA이 송수신을 수행하기 전에 채널 센싱을 수행해야 하는데, 채널을 항상 센싱하는 것은 STA의 지속적인 전력 소모를 야기한다. 수신 상태에서의 전력 소모는 송신 상태에서의 전력 소모에 비하여 크게 차이가 나지 않으며, 수신 상태를 계속 유지하는 것도 전력이 제한된(즉, 배터리에 의해 동작하는) STA에게 큰 부담이 된다. 따라서, STA이 지속적으로 채널을 센싱하기 위해서 수신 대기 상태를 유지하면, 무선랜 처리율 측면에서 특별한 이점 없이 전력을 비효율적으로 소모하게 된다. 이러한 문제점을 해결하기 위해서, 무선랜 시스템에서는 STA의 전력 관리(power management; PM) 모드를 지원한다.
STA의 전력 관리 모드는 액티브(active) 모드 및 전력 절약(power save; PS) 모드로 나뉘어 진다. STA은 기본적으로 액티브 모드로 동작한다. 액티브 모드로 동작하는 STA은 어웨이크 상태(awake state)를 유지한다. 어웨이크 상태는, 프레임 송수신이나 채널 스캐닝 등 정상적인 동작이 가능한 상태이다. 한편, PS 모드로 동작하는 STA은 슬립 상태(sleep state) (또는 도즈(doze) 상태)와 어웨이크 상태(awake state)를 전환(switch)해가며 동작한다. 슬립 상태로 동작하는 STA은 최소한의 전력으로 동작하며, 프레임 송수신은 물론 채널 스캐닝도 수행하지 않는다.
STA이 슬립 상태로 가능한 오래 동작할수록 전력 소모가 줄어들기 때문에, STA은 동작 기간이 증가한다. 하지만 슬립 상태에서는 프레임 송수신이 불가능하기 때문에 무조건적으로 오래 동작할 수는 없다. 슬립 상태로 동작하는 STA이 AP에게 전송할 프레임이 존재하는 경우 어웨이크 상태로 전환하여 프레임을 송신할 수 있다. 한편, AP가 STA에게 전송할 프레임이 있는 경우, 슬립 상태의 STA은 이를 수신할 수 없으며 수신할 프레임이 존재하는 것도 알 수 없다. 따라서, STA은 자신에게 전송될 프레임의 존재 여부를 알기 위해(또한 존재한다면 이를 수신하기 위해) 특정 주기에 따라 어웨이크 상태로 전환하는 동작이 필요할 수 있다.
AP는 일정한 주기로 비콘 프레임(beacon frame)을 BSS 내의 STA들에게 전송할 수 있다. 비콘 프레임에는 TIM(Traffic Indication Map) 정보 요소(Information Element)가 포함될 수 있다. TIM 정보 요소는 AP가 자신과 연관된 STA들에 대한 버퍼된 트래픽이 존재하며, 프레임을 전송할 것임을 알려주는 정보를 포함할 수 있다. TIM 요소에는 유니캐스트(unicast) 프레임을 알려주는데 사용되는 TIM과 멀티캐스트(multicast) 또는 브로드캐스트(broadcast) 프레임을 알려주는데 사용되는 DTIM(delivery traffic indication map)이 있다.
도 7 내지 9는 TIM을 수신한 STA의 동작을 상세하게 설명하기 위한 도면이다.
도 7을 참조하면, STA은 AP로부터 TIM을 포함하는 비콘 프레임을 수신하기 위해 슬립 상태에서 어웨이크 상태로 전환하고, 수신한 TIM 요소를 해석하여 자신에게 전송될 버퍼된 트래픽이 있음을 알 수 있다. STA은 PS-Poll 프레임 전송을 위한 매체 액세스를 위해 다른 STA들과 경쟁(contending)을 수행한 후에, AP에게 데이터 프레임 전송을 요청하기 위하여 PS-Poll 프레임을 전송할 수 있다. STA에 의해 전송된 PS-Poll 프레임을 수신한 AP는 STA에게 프레임을 전송할 수 있다. STA은 데이터 프레임을 수신하고 이에 대한 확인응답(ACK) 프레임을 AP에게 전송할 수 있다. 이후 STA은 다시 슬립 상태로 전환될 수 있다.
도 7과 같이 AP는 STA으로부터 PS-Poll 프레임을 수신한 다음 소정의 시간(예를 들어, SIFS(Short Inter-Frame Space)) 후에 데이터 프레임을 전송하는 즉시 응답(immediate response) 방식에 따라 동작할 수 있다. 한편, AP가 PS-Poll 프레임을 수신한 후에 STA에게 전송할 데이터 프레임을 SIFS 시간 동안에 준비하지 못한 경우에는 지연된 응답(deferred response) 방식에 따라 동작할 수 있으며, 이에 대해서 도 8를 참조하여 설명한다.
도 8의 예시에서 STA이 슬립 상태에서 어웨이크 상태로 전환하여 AP로부터 TIM을 수신하고 경쟁을 거쳐 PS-Poll 프레임을 AP로 전송하는 동작은 도 7의 예시와 동일하다. AP가 PS-Poll 프레임을 수신하고도 SIFS 동안 데이터 프레임을 준비하지 못한 경우, 데이터 프레임을 전송하는 대신 ACK 프레임을 STA에게 전송할 수 있다. AP는 ACK 프레임 전송 후 데이터 프레임이 준비되면, 컨텐딩을 수행한 후 데이터 프레임을 STA에게 전송할 수 있다. STA은 데이터 프레임을 성공적으로 수신하였음을 나타내는 ACK 프레임을 AP에게 전송하고, 슬립 상태로 전환될 수 있다.
도 9는 AP가 DTIM을 전송하는 예시에 대한 것이다. STA들은 AP로부터 DTIM 요소를 포함하는 비콘 프레임을 수신하기 위해 슬립 상태에서 어웨이크 상태로 전환할 수 있다. STA들은 수신한 DTIM을 통해 멀티캐스트/브로드캐스트 프레임이 전송될 것임을 알 수 있다. AP는 DTIM을 포함하는 비콘 프레임 전송 후 PS-Poll 프레임의 송수신 동작 없이 바로 데이터(즉, 멀티캐스트/브로드캐스트 프레임)를 전송할 수 있다. STA들은 DTIM을 포함하는 비콘 프레임을 받은 후에 계속하여 어웨이크 상태를 유지하는 중에 데이터를 수신하고, 데이터 수신이 완료된 후에 다시 슬립 상태로 전환할 수 있다.
프레임 구조
도 10은 IEEE 802.11 시스템에서 사용되는 프레임 구조의 일례를 설명하기 위한 도면이다.
PPDU(Physical Layer Protocol Data Unit) 프레임 포맷은, STF(Short Training Field), LTF(Long Training Field), SIG(SIGNAL) 필드, 및 데이터(Data) 필드를 포함하여 구성될 수 있다. 가장 기본적인(예를 들어, non-HT(High Throughput)) PPDU 프레임 포맷은 L-STF(Legacy-STF), L-LTF(Legacy-LTF), SIG 필드 및 데이터 필드만으로 구성될 수 있다.
STF는 신호 검출, AGC(Automatic Gain Control), 다이버시티 선택, 정밀한 시간 동기 등을 위한 신호이고, LTF는 채널 추정, 주파수 오차 추정 등을 위한 신호이다. STF와 LTF를 합쳐서 PLCP 프리앰블(preamble)이라고 칭할 수 있고, PLCP 프리앰블은 OFDM 물리계층의 동기화 및 채널 추정을 위한 신호라고 할 수 있다.
SIG 필드는 RATE 필드 및 LENGTH 필드 등을 포함할 수 있다. RATE 필드는 데이터의 변조 및 코딩 레이트에 대한 정보를 포함할 수 있다. LENGTH 필드는 데이터의 길이에 대한 정보를 포함할 수 있다. 추가적으로, SIG 필드는 패리티(parity) 비트, SIG TAIL 비트 등을 포함할 수 있다.
데이터 필드는 SERVICE 필드, PSDU(Physical layer Service Data Unit), PPDU TAIL 비트를 포함할 수 있고, 필요한 경우에는 패딩 비트도 포함할 수 있다. SERVICE 필드의 일부 비트는 수신단에서의 디스크램블러의 동기화를 위해 사용될 수 있다. PSDU는 MAC 계층에서 정의되는 MPDU(MAC Protocol Data Unit)에 대응하며, 상위 계층에서 생성/이용되는 데이터를 포함할 수 있다. PPDU TAIL 비트는 인코더를 0 상태로 리턴하기 위해서 이용될 수 있다. 패딩 비트는 데이터 필드의 길이를 소정의 단위로 맞추기 위해서 이용될 수 있다.
MPDU는 다양한 MAC 프레임 포맷에 따라서 정의되며, 기본적인 MAC 프레임은 MAC 헤더, 프레임 바디, 및 FCS(Frame Check Sequence)로 구성된다. MAC 프레임은 MPDU로 구성되어 PPDU 프레임 포맷의 데이터 부분의 PSDU를 통하여 송신/수신될 수 있다.
MAC 헤더는 프레임 제어(Frame Control) 필드, 기간(Duration)/ID 필드, 주소(Address) 필드 등을 포함한다. 프레임 제어 필드는 프레임 송신/수신에 필요한 제어 정보들을 포함할 수 있다. 기간/ID 필드는 해당 프레임 등을 전송하기 위한 시간으로 설정될 수 있다.
MAC 헤더에 포함된 기간/ID 필드는 16 비트 길이(e.b., B0~B15)로 설정될 수 있다. 기간/ID 필드에 포함되는 콘텐츠는 프레임 타입 및 서브타입, CFP(contention free period) 동안 전송되는지, 송신 STA의 QoS 캐퍼빌리티 등에 따라서 달라질 수 있다. (i) 서브타입이 PS-Poll인 제어 프레임에서, 기간/ID 필드는 송신 STA의 AID를 포함할 수 있으며(e.g., 14 LSB 비트들을 통해), 2 MSB 비트들은 1로 설정될 수 있다. (ii) PC(point coordinator) 또는 non-QoS STA에 의해 CFP 동안 전송되는 프레임들에서, 기간/ID 필드는 고정된 값(e.g., 32768)로 설정될 수 있다. (iii) 그 밖에 non-QoS STA에 의해 전송되는 다른 프레임들 또는 QoS STA에 의해 전송되는 제어 프레임들에서, 기간/ID 필드는 각 프레임 타입별로 정의된 duration 값을 포함할 수 있다. QoS STA에 의해 전송되는 데이터 프레임 또는 매니지먼트 프레임에서, 기간/ID 필드는 각 프레임 타입에 대하서 정의된 duration 값을 포함할 수 있다. 예컨대, 기간/ID 필드의 B15=0으로 설정되면 기간/ID 필드가 TXOP Duration 을 지시하는데 사용된다는 것을 나타내며, B0~B14는 실제 TXOP Duration을 지시하는데 사용될 수 있다. B0~B14에 의해 지시되는 실제 TXOP Duration은 0~32767 중 어느 하나일 수 있으며, 그 단위는 마이크로 세컨드(us)일 수 있다. 다만, 기간/ID 필드가 고정된 TXOP Duration 값(e.g., 32768)을 지시하는 경우에는 B15=1이고, B0~B14=0으로 설정될 수 있다. 그 밖에 B14=1, B15=1로 설정되면 기간/ID 필드가 AID를 지시하기 위하여 사용되고, B0~B13은 1~2007 중 하나의 AID를 지시한다. MAC 헤더의 Sequence Control, QoS Control, HT Control 서브필드들의 구체적인 내용은 IEEE 802.11 표준 문서를 참조할 수 있다.
MAC 헤더의 프레임 제어 필드는, Protocol Version, Type, Subtype, To DS, From DS, More Fragment, Retry, Power Management, More Data, Protected Frame, Order 서브필드들을 포함할 수 있다. 프레임 제어 필드의 각각의 서브필드의 내용은 IEEE 802.11 표준 문서를 참조할 수 있다.
도 11은 CF(contention free)-END 프레임을 예시한다.
설명의 편의상 CF-END 프레임이 non-DMG(directional multi-gigabit, 11ad) STA에 의해 전송된다고 가정한다. CF-END 프레임은 TXOP duration을 절단(truncation)하기 위하여 전송될 수 있다. 따라서 CF-END 프레임에서 기간(duration) 필드는 0으로 설정된다. RA (Receiver Address) 필드는 브로드캐스트 그룹 주소로 설정될 수 있다. BSSID 필드는 AP에 포함된 STA의 주소로 설정될 수 있다. 다만, VHT STA이 VHT AP로 전송하는 non-HT 또는 non-HT duplicate 포맷의 CF-END 프레임의 경우, BSSID 필드의 Individual/Group 비트는 1로 설정될 수 있다.
HE
PPDU
구조의 예시
이하에서는 11ax를 지원하는 무선랜 시스템에서의 HE PPDU (High Efficiency Physical layer Protocol Data Unit) 포맷의 일례들을 살펴본다.
도 12는 HE PPDU의 일 예를 도시한다. 도 12를 참조하면, HE-SIG A(또는 HE-SIG1) 필드는 L-Part (e.g., L-STF, L-LTF, L-SIG) 다음에 위치하며, L-Part와 마찬가지로 20MHz단위로 반복(duplication) 된다. HE-SIG A는 STA들에 대한 공통 제어 정보 (common control information) (e.g., BW, GI 길이, BSS 인덱스, CRC, Tail 등)를 포함한다. HE-SIG A 필드는 HE PPDU를 해석하기 위한 정보를 포함하며, 따라서 HE-SIG A 필드에 포함되는 정보는 HE PPDU의 포맷(e.g., SU PPDU, MU PPDU 또는 트리거 기반의 PPDU 등)에 따라서 달라질 수 있다. 예컨대, HE SU PPDU 포맷에서, HE-SIG A 필드는, DL/UL 지시자, HE PPDU 포맷 지시자, BSS Color, TXOP Duration, BW(bandwidth), MCS, CP + LTF 길이, 코딩 정보, 스트림 수, STBC (e.g., STBC 사용 여부), 송신빔포밍(TxBF) 정보, CRC 및 Tail 중 적어도 하나를 포함할 수 있다. HE SU PPDU 포맷의 경우, HE-SIG B 필드가 생략될 수 있다. HE MU PPDU 포맷에서, HE-SIG A 필드는, DL/UL 지시자, BSS Color, TXOP Duration, BW(bandwidth), SIG B 필드의 MCS 정보, SIG B 필드의 심볼 수, HE LTF 심볼 수, 전 대역 MU-MIMO 사용 여부 지시자, CP + LTF 길이, 송신빔포밍(TxBF) 정보, CRC 및 Tail 중 적어도 하나를 포함할 수 있다. HE 트리거 기반의 PPDU 포맷에서, HE-SIG A 필드는, 포맷 지시자(e.g., SU PPDU인지 트리거 기반 PPDU인지), BSS Color, TXOP Duration, BW, CRC 및 Tail 중 적어도 하나를 포함할 수 있다.
도 13은 HE PPDU의 다른 일 예를 도시한다. 도 13을 참조하면 HE-SIG A는 상술한 공통 제어 정보(common information) 이외에, 사용자 할당 정보(user allocation information) 예컨대, PAID 또는 GID 등의 STA 식별자, 할당된 자원 정보 및 스트림 수(Nsts) 중 적어도 하나가 포함될 수도 있다. 도 13에 따르면 HE-SIG B(또는 HE-SIG2)는 OFDMA 할당 마다 전송될 수 있다. MU-MIMO인 경우, HE-SIG B는 SDM을 통해서 STA에 의해서 구별된다. HE-SIG B는 추가적인 사용자 할당 정보(user allocation information), 예컨대, MCS, Coding 정보, STBC(Space Time Block code) 정보, 송신빔포밍(TXBF) 정보 등을 포함할 수 있다.
도 14는 HE PPDU의 또 다른 일 예를 도시한다. HE-SIG B는 HE-SIG A 다음에 전송된다. HE-SIG B는 HE-SIG A의 정보 (numerology)를 기반으로, 전 대역(full band)을 통해 전송될 수 있다. HE-SIG B는 사용자 할당 정보, 예컨대, STA AID, 자원 할당 정보(e.g., 할당 크기), MCS, 스트림 수(Nsts), Coding, STBC, 송신빔포밍(TXBF) 등을 포함할 수 있다.
도 15는 HE PPDU의 또 다른 일 예를 도시한다. HE-SIG B는 일정한 단위 채널 마다 반복 전송될 수 있다. 도 15를 참조하면 HE-SIG B는 20MHz 단위로 반복 전송될 수 있다. 예컨대, 80MHz 대역폭 상에서 20MHz 당 동일한 정보가 복사됨으로써 HE-SIG B가 전송될 수 있다.
20MHz 채널 당 반복 전송되는 HE-SIGB 를 수신한 STA/AP는 20MHz 채널 당 수신한 HE-SIG B를 누적(accumulation)하여 HE-SIG B 수신에 대한 신뢰성(reliability)을 향상 시킬 수 있다.
채널당 동일한 신호(e.g., HE-SIG B)가 반복 전송되므로 누적된 신호의 이득은 신호가 반복 전송되는 채널들의 개수에 비례하여 수신 성능이 향상될 수 있다. 이상적으로는 반복 전송되기 전 신호에 비하여, 반복 전송되는 신호는 3dB X 채널 수 (number of channel)의 이득을 가질 수 있다. 따라서, 반복 전송되는 HE-SIG B는 반복 전송되는 채널의 수에 따라서 MCS 레벨을 높여 전송될 수 있다. 예를 들어, 반복 전송이 없을 때 HE-SIG B에 MCS0가 사용된다고 가정할 때, 40MHz를 이용하여 반복 전송되는 HE-SIG B에는 MCS1가 사용될 수 있다. 반복 전송을 위한 채널의 개수가 증가할 수록 보다 높은 MCS 레벨을 통해서 HE-SIG B가 전송될 수 있으므로, 단위 채널 당의 HE-SIG B의 오버헤드가 줄어들 수 있다.
도 16은 HE PPDU의 또 다른 일 예를 도시한다. 도 16을 참조하면, HE-SIG B는 20MHz 채널 단위마다 독립적인 정보를 포함할 수 있다. HE-SIG B는 레거시 파트(e.g., L-STF, L-LTF, L-SIG) 및 HE-SIG A와 동일하게 1x 심볼 구조로 전송될 수 있다. 한편, 광 대역폭(wide bandwidth)에서, “L-STF+L-LTF+L-SIG+HE-SIGA+HE-SIGB”의 길이는 모든 채널에서 동일해야 한다. 20MHz 당 전송되는 HE-SIG B는 해당 대역에 대한 할당 정보, 예컨대, 해당 대역을 이용하는 사용자 별 할당 정보, 사용자 식별자 등을 포함할 수 있다. 하지만, 각 대역 별로 지원되는 사용자 수와 각 대역에서 이용되는 자원 블록의 구성이 다르기 때문에 HE-SIG B의 정보가 대역 별로 상이할 수 있다. 따라서, HE-SIG B의 길이는 채널 별로 서로 상이할 수 있다.
도 17은 HE-STF 이전의 길이(e.g., HE-SIG B까지의 길이)를 채널 별 동일하게 구성하기 위하여 HE-SIG B에 대한 페딩 방안을 설명한다. 예컨대, 페딩 길이(padding length)만큼 HE-SIG B를 반복 시켜 HE-SIG B 길이가 정렬될 수 있다. 도 18과 같이 HE-SIG B의 처음(또는 마지막)부터 필요한 페딩길이 만큼의 HE-SIG B가 HE-SIG B에 페딩될 수 있다.
일 실시예에 따르면 대역폭이 20 MHz 보다 크지 않은 경우, 하나의 HE-SIG B 필드가 전송될 수 있다. 대역폭이 20 MHz 보다 큰 경우 20 MHz 크기의 채널들은 각각 제1 타입 HE-SIG B(이하, HE-SIG B [1]) 또는 제2 타입 HE-SIG B(이하, HE-SIG B [2]) 중 어느 하나를 전송할 수 있다. 예컨대, HE-SIG B [1]와 HE-SIG B [2]가 번갈아 가며 전송될 수 있다. 홀수 번째 20 MHz 채널은 HE-SIG B [1]를 전송하고, 짝수 번째 20 MHz 채널은 HE-SIG B [2]를 전송할 수 있다. 보다 구체적으로, 40 MHz 대역폭의 경우 HE-SIG B [1]가 첫 번째 20 MHz 채널 상에서 전송되고, HE-SIG B [2]가 두 번째 20 MHz 채널 상에서 전송된다. 80 MHz 대역폭의 경우 HE-SIG B [1]가 첫 번째 20 MHz 채널 상에서 전송되고, HE-SIG B [2]가 두 번째 20 MHz 채널 상에서 전송되고, 동일한 HE-SIG B [1]가 세 번째 20 MHz 채널 상에서 반복 전송되고, 동일한 HE-SIG B [2]가 네 번째 20 MHz 채널 상에서 반복 전송된다. 160 MHz 대역폭에서도 이와 유사하게 전송된다.
이와 같이, HE-SIG B 는 대역폭의 크기가 증가함에 따라서 반복 전송될 수 있는데, 반복 전송되는 HE-SIG B는 자신과 동일한 타입의 HE-SIG B가 전송된 20 MHz 채널로부터 20 MHz 크기만큼 주파수 도약하여 전송될 수 있다.
한편, HE-SIG B [1]와 HE-SIG B [2] 각각의 컨텐츠는 상이할 수 있다. 단, HE-SIG-B [1] 들은 모두 동일한 컨텐츠를 갖는다. 마찬가지로, HE-SIG B [2] 들은 모두 동일한 컨텐츠를 갖는다.
일 실시예에 따르면, HE-SIG B [1]는 홀수 번 20 MHz 채널들에 대한 자원 할당 정보만을 포함하고, HE-SIG B [2]는 짝수 번 20 MHz 채널들에 대한 자원 할당 정보만을 포함하도록 설정될 수 있다. 본 발명의 다른 일 실시예에 따르면, HE-SIG B [1]가 짝수 번 20 MHz 채널들 중 적어도 일부에 대한 자원 할당 정보를 포함하거나, HE-SIG B [2]가 홀수 번 20 MHz 채널들 중 적어도 일부에 대한 자원 할당 정보를 포함할 수 있다.
HE-SIG B는 공통 필드(Common field) 및 사용자 특정 필드(User specific field)를 포함할 수 있다. 공통 필드는 사용자 특정 필드에 선행할 수 있다. 공통 필드와 사용자 특정 필드는 OFDM 심볼 단위가 아니라, 비트 단위로 구분될 수 있다.
HE-SIG B의 공통 필드는 해당 대역폭에서 PPDU를 수신하도록 지정된 STA들 모두에 대한 정보를 포함한다. 공통 필드는 RU(resource unit) 할당 정보를 포함할 수 있다. HE-SIG B [1]들 간에는 컨텐츠가 모두 동일하며, 마찬가지로 HE-SIG B [2]들 간에는 컨텐츠가 모두 동일하다. 예컨대, 80 MHz를 구성하는 4개의 20 MHz 채널들을 [LL, LR, RL, RR]로 구분할 때, HE-SIG B [1]의 공통 필드에 LL 및 RL 에 대한 공통 블록이 포함되고, HE-SIG B [2]의 공통 필드에 LR 및 RR 에 대한 공통 블록이 포함될 수 있다.
HE-SIG B의 사용자 특정 필드는 다수의 사용자 필드(user field)들을 포함할 수 있으며, 각 사용자 필드들은 PPDU를 수신하도록 지정된 개별 STA에 특정적인 정보를 포함할 수 있다. 일 예로, 사용자 필드는 스테이션 ID, STA 별 MCS, 스트림 수(Nsts), Coding(e.g., LDPC 사용에 대한 지시), DCM 지시자 및 송신 빔포밍 정보 중 적어도 하나를 포함할 수 있으며 이에 한정되지 않는다.
UL MU 전송
도 19는 본 발명의 일 실시예에 따른 상향링크 다중 사용자 전송 상황을 설명하기 위한 도면이다.
상술한 바와 같이 802.11ax 시스템에서는 UL MU 전송 방식이 사용될 수 있으며, 이는 도 19에 도시된 바와 같이 AP가 복수의 STA (예를 들어, STA 1 내지 STA 4)에게 트리거 프레임(Trigger Frame)을 전송함으로써 시작될 수 있다. 트리거 프레임은 UL MU 할당 정보를 포함할 수 있다. UL MU 할당 정보는 예컨대, 자원 위치 및 크기, STA ID들 또는 수신 STA 주소들, MCS 및 MU 타입(MIMO, OFDMA 등) 중 적어도 하나를 포함할 수 있다. 구체적으로 트리거 프레임은 (i) UL MU 프레임에 대한 지속 시간(duration), (ii) 할당의 수(N) 및 (iii) 각 할당의 정보 중 적어도 하나를 포함할 수 있다. 각 할당의 정보는 사용자 별 정보(Per user Info)를 포함할 수 있다. 각 할당의 정보는 예컨대, AID (MU일 경우, STA수만큼 추가로 포함됨), 전력 조절(Power adjustment), 자원(또는 톤) 할당 정보(e.g., 비트맵), MCS, 스트림 수 (Nsts), STBC, 코딩, 송신빔포밍에 대한 정보 중 적어도 하나를 포함할 수 있다.
한편, 도 19에 도시된 바와 같이 AP는 매체에 접속하기 위해 경쟁 과정을 거쳐 트리거 프레임을 전송할 TXOP를 획득할 수 있다. 이에 대해 STA들은 트리거 프레임의 SIFS 이후 AP에 의해 지시된 포맷으로 UL 데이터 프레임을 전송할 수 있다. 이에 대응하여 본 발명의 실시예에 따른 AP는 BA (Block ACK) 프레임을 통해 UL MU 데이터 프레임에 대해 확인 응답을 수행하는 것을 가정한다.
도 20은 일 실시예에 따른 트리거 프레임 포맷을 도시한다.
도 20을 참조하면, 트리거 프레임은 프레임 제어(frame control) 필드, 길이(duration) 필드, RA(recipient STA address) 필드, TA(transmitting STA address) 필드, 공통 정보(common information) 필드, 하나 또는 둘 이상의 개별 사용자 정보(Per User Info) 필드들 및 FCS(Frame Check Sum) 중 적어도 하나를 포함할 수 있다. RA 필드는 수신 STA의 주소 또는 ID를 나타내며, 실시예에 따라서 생략될 수도 있다. TA 필드는 송신 STA의 주소를 나타낸다.
공통 정보 필드는, 길이(length) 서브필드, 캐스캐이드 지시자(Cascade Indication), HE-SIG A 정보 서브필드, CP/LTF 타입 서브필드, 트리거 타입 서브필드 및 트리거-의존 공통 정보(trigger-dependent Common Info) 서브필드 중 적어도 하나를 포함할 수 있다. 길이 서브필드는 UL MU PPDU 의 L-SIG 길이를 지시한다. 캐스캐이드 지시자는 현재 트리거 프레임 다음에 후속하는 트리거 프레임의 전송이 있는지 여부를 지시한다. HE-SIG A 정보 서브필드는 UL MU PPDU 의 HE-SIG A에 포함되는 컨텐츠를 지시한다. CP/LTF 타입 서브필드는 UL MU PPDU에 포함되는 CP와 HE LTF 타입을 지시한다. 트리거 타입 서브필드는 트리거 프레임의 타입을 지시한다. 트리거 프레임은 해당 타입 특정한 공통 정보 및 타입 특정한 개별 사용자 정보(Per User Info)를 포함할 수 있다. 트리거 타입은, 예컨대, 베이직 트리거 타입(e.g., 타입 0), 빔포밍 보고 폴 트리거(Beamforming Report Poll Trigger) 타입(e.g., 타입 1), MU-BAR(Multi-user Block Ack Request) 타입(e.g., 타입 2) 또는 MU-RTS(multi-user ready to send) 타입(e.g., 타입 3) 중 어느 하나로 설정될 수 있으며, 이에 한정되지 않는다. 트리거 타입이 MU-BAR인 경우, 트리거 의존 공통 정보 서브필드는 GCR(Groupcast with Retries) 지시자 및 GCR 주소를 포함할 수 있다.
개별 사용자 정보 필드(Per User Info field)는 사용자 식별자 서브필드, RU(resource unit) 할당 서브필드, 코딩 타입 서브필드, MCS 필드, DCM(dual sub-carrier modulation) 서브필드, SS(spatial stream) 할당 서브필드 및 트리거 의존 개별 사용자 정보(Trigger dependent Per User Info) 서브필드 중 적어도 하나를 포함할 수 있다. 사용자 식별자 서브필드는 UL MU PPDU의 MPDU를 전송하기 위하여 해당 자원 유닛(resource unit)을 사용할 STA의 AID를 지시한다. RU 할당 서브필드는 해당 STA이 UL MU PPDU를 전송하기 위한 자원 유닛을 지시한다. 코딩 타입 서브필드는 해당 STA이 전송하는 UL MU PPDU의 코딩 타입을 지시한다. MCS 서브필드는 해당 STA이 전송하는 UL MU PPDU의 MCS를 지시한다. DCM 서브필드는 해당 STA이 전송하는 UL MU PPDU의 이중 캐리어 변조에 대한 정보를 지시한다. SS 할당 서브필드는, 해당 STA이 전송하는 UL MU PPDU의 공간 스트림(spatial streams)에 대한 정보를 지시한다. 트리거 타입이 MU-BAR인 경우, 트리거 의존 개별 사용자 정보 서브필드는 BAR 제어 및 BAR 정보를 포함할 수 있다.
NAV
(network allocation vector)
NAV는 송신 STA(e.g., TXOP holder) TXOP를 보호하기 위한 일종의 타이머로 이해될 수 있다. STA은 자신에게 설정된 NAV가 유효한 기간 동안에는 채널 엑세스를 수행하지 않음으로써, 다른 STA의 TXOP를 보호할 수 있다.
현재 non-DMG STA의 경우 하나의 NAV를 지원한다. 유효한(valid) 프레임을 수신한 STA은 PSDU의 duration 필드(e.g., MAC 헤더의 duration 필드)를 통해서 NAV를 업데이트 할 수 있다. 다만, 수신된 프레임의 RA 필드가 해당 STA의 MAC 주소와 일치하는 경우, STA은 NAV를 업데이트 하지 않는다. 수신된 프레임의 duration 필드에 의해 지시된 duration이 STA의 현재 NAV 값보다 크면, STA은 수신된 프레임의 duration을 통해서 NAV를 업데이트 한다.
도 21은 NAV 설정(setting)의 일 예를 도시한다.
도 21을 참조하면, Source STA은 RTS 프레임을 전송하고, Destination은 CTS 프레임을 전송한다. 상술된 바와 같이 RTS 프레임을 통해서 수신자로 지정된 destination STA은 NAV를 설정하지 않는다. 나머지 STA들 중 일부는 RTS 프레임을 수신하여 NAV를 설정하고, 또 다른 일부는 CTS 프레임을 수신하여 NAV를 설정할 수 있다.
RTS 프레임이 수신된 시점으로부터(e.g., MAC이 RTS 프레임에 대응하는 PHY-RXEND.indication primitive를 수신한 시점) 일정 기간 내에서 CTS 프레임(e.g., PHY-RXSTART.indication primitive)이 수신되지 않는다면, RTS 프레임을 통해서 NAV를 설정 또는 업데이트한 STA들은 NAV를 리셋(e.g., 0)할 수 있다. 일정 기간은, (2*aSIFSTime + CTS_Time + aRxPHYStartDelay + 2*aSlotTime)일 수 있다. CTS_Time은 RTS 프레임이 지시하는 CTS 프레임의 길이 및 데이터 레이트에 기초하여 계산될 수 있다.
도 21에서는 편의를 위하여 RTS 프레임 또는 CTS 프레임을 통해서 NAV를 설정 또는 업데이트하는 것을 예시하였으나, NAV 설정/재설정/업데이트는 다른 다양한 프레임들 예컨대, non-HT PPDU, HT PPDU, VHT PPDU 또는 HE PPDU의 duration 필드(e.g., MAC 프레임의 MAC 헤더 내의 duration field)에 기초하여 수행될 수도 있다. 예컨대, 수신된 MAC 프레임에서 RA 필드가 자신의 주소(e.g., MAC 주소)와 일치하지 않는다면, STA은 NAV를 설정/재설정/업데이트할 수 있다.
TXOP
(Transmission Opportunity) Truncation
도 22는 TXOP truncation의 일 예를 도시한다.
TXOP holder STA은 CF-END 프레임을 전송함으로써 TXOP를 절단(truncation)할 수 있다. CF-END 프레임 또는 CF-END+CF-ACK 프레임을 수신한 STA은 NAV를 리셋(e.g., 0)할 수 있다.
EDCA를 통해서 채널 엑세스를 획득한 STA이 자신의 송신 큐(queue)를 비운 경우, CF-END 프레임을 송신할 수 있다. STA은 CF-END 프레임의 송신을 통해서 자신의 TXOP 완료를 명시적으로 지시할 수 있다. CF-END 프레임은 TXOP holder에 의해 전송될 수 있다. TXOP holder가 아닌 non-AP STA은 CF-END 프레임을 전송할 수 없다. CF-END 프레임을 수신한 STA은 CF-END 프레임이 포함된 PPDU의 종료시점에서 NAV를 리셋한다.
도 22를 참조하면, EDCA를 통해서 매체에 엑세스한 STA은 NAV 설정을 위한 시퀀스(e.g., RTS/CTS 등)를 전송한다.
SIFS 이후, TXOP holder(또는 TXOP initiator)와 TXOP responder 는 PPDU들을 송수신 한다(e.g., initiator sequence). TXOP holder는 TXOP 한도 내에서 더 이상 전송할 수 있는 데이터가 없을 경우, CF-END 프레임을 전송함으로써 TXOP를 절단(truncate)한다.
CF-END 프레임을 수신한 STA들은 자신의 NAV를 리셋하고, 더 이상의 지연 없이 매체 엑세스를 위한 경쟁(contending)을 시작할 수 있다.
상술된 바와 같이 현재 무선랜 시스템에서 TXOP duration은 MAC 헤더의 Duration 필드를 통해 설정된다. 즉, TXOP holder (e.g., Tx STA) 와 TXOP Responder (e.g., Rx STA)은 이들 간에 송수신 하는 프레임의 Duration 필드에, 프레임들의 송수신에 필요한 전체 TXOP 정보를 포함시켜 전송한다. TXOP holder나 TXOP Responder가 아닌 제 3의 STA들 (i.e., Third party STAs)은 TXOP holder와 TXOP Responder간에 교화되는 프레임의 Duration 필드를 확인하고, NAV를 설정/업데이트함으로써 NAV 기간 까지 채널 사용을 연기한다.
HE PPDU를 지원하는 11ax 시스템에서, UL MU PPDU가 HE-SIG B를 포함하지 않으면, 제 3의 STA들은 UL MU PPDU를 수신하더라도 UL MU PPDU에 포함된 MPDU를 디코딩할 수 없다. 제3의 STA들이 MPDU를 디코딩 할 수 없다면, 제3의 STA들이 MPDU의 MAC 헤더에 포함된 TXOP Duration 정보(e.g., Duration 필드)를 획득할 수 없다. 따라서, NAV 설정/업데이트가 올바르게 수행되기 어려운 문제점이 있다.
HE-SIG B를 포함하는 HE PPDU 프레임이 수신되더라도, HE-SIG B 구조가 STA별로 다르게 코딩 되고 STA들이 자신에게 할당된 HE-SIG B 컨텐츠만 읽을 수 있도록 HE-SIG B 구조가 설계되는 경우, 제 3의 STA들은 다른 STA들이 송수신하는 MAC 프레임(e.g., HE PPDU 내에 다른 STA의 MPDU)을 디코딩 할 수 없다. 따라서, 이 경우에도 제3 STA들은 TXOP 정보를 획득할 수 없는 문제점이 있다.
● HE-
SIG
A를 통한
TXOP
Duration 지시
이와 같은 문제점을 해결하기 위하여, STA은 TXOP duration 정보를 HE-SIG A에 포함시켜 전송하는 방법이 제안된다. 상술된 바와 같이 MAC 헤더의 duration 필드 중 15비트(e.g., B0~14)가 duration 정보를 지시하고, 최대 약 32.7ms(0~32767 us)를 지시 할 수 있다. MAC 헤더의 duration 필드에 포함된 15 비트의 duration 정보를 그대로 HE-SIG A에 포함시켜 전송하는 경우, 11ax third party STA이 올바르게 NAV설정/업데이트를 할 수는 있겠으나, HE-SIG A의 시그널링 오버헤드가 지나치게 증가되는 문제점이 있다. MAC 계층에서 페이로드 전송을 위한 MPDU 내에서 15비트는 상대적으로 작은 크기라 할 수 있지만, 물리 계층에서 공통 제어 정보 전송을 위한 HE-SIG A는 Compact하게 설계된 필드이므로 HE-SIG A 내에서 15 비트의 증가는 상대적으로 큰 시그널링 오버헤드에 해당한다.
따라서 본 발명의 일 실시예에서는 HE-SIG A의 오버헤드를 최소화하는 TXOP duration의 효율적인 지시 방법이 제안된다. 또한, HE-SIG A 내에 새롭게 정의된 TXOP duration을 기반으로 하는 프레임 송수신 동작이 제안된다. 이하에서, MAC 헤더의 포함된 duration 필드는 편의상 MAC duration으로 지칭될 수 있다.
이하의 실시예에서 TXOP duration 정보는 HE SIG A에 포함되어 전송되는 것을 가정하나, 본 발명의 권리범이는 이에 한정되지 않으며 다른 부분(e.g., L-SIG, HE-SIG B, HE-SIG C, …, A-MPDU나 MPDU 의 부분)를 통해서 전송될 수도 있다. 예를 들어, HE-SIG B를 통해서 TXOP duration가 전송될 경우, HE-SIG B의 공통 정보(e.g., common part) 또는 HE-SIG B에서 맨 처음(또는 맨 마지막) 부분에 전송되는 SIG B contents part(e.g., Per user Info)에서 전송될 수 있다.
이하, HE SIG 필드 내에서 TXOP duration의 구조와 이를 지시하는 실시예들에 대해서 살펴본다. 제3 STA의 NAV에 설정된 값은 TXOP holder/Responder에 대한 TXOP Duration으로 해석될 수 있다. 예컨대, Duration 필드 값은 TXOP holder/Responder의 관점에서는 프레임 송수신을 위한 TXOP이나, 제3 STA의 관점에서는 NAV 값을 의미한다. 따라서, 제3 STA들이 NAV를 설정/업데이트하는 동작은 TXOP holder/Responder에 대한 TXOP 만큼 NAV를 설정하는 것이므로, 제3 STA들이 NAV를 설정/업데이트하는 동작은 편의상 TXOP를 설정/업데이트하는 동작으로 지칭될 수도 있다. 또한, TXOP Duration의 용어는 간략히 Duration으로 지칭되거나 또는 간략히 TXOP로 지칭될 수도 있다. TXOP Duration은 경우에 따라서 프레임 내에서 필드(e.g., HE-SIG A내의 TXOP Duration 필드)를 지칭하는데 사용되거나 또는 실제 TXOP Duration 값을 지칭하는데 사용될 수도 있다.
후술하는 실시예들에 할당된 인덱스는 설명의 편의를 위한 것이므로, 서로 다른 인덱스를 갖는 실시예들이 조합됨으로써 하나의 발명이 실시될 수도 있고 또는 각각이 개별적인 발명으로 실시될 수도 있다.
TXOP
duration의
실시예
1
TXOP duration은 2N-1 (또는 2N)로 설정될 수 있다. 편의상 TXOP duration이 2N-1로 설정되었다고 가정한다. N값이 HE-SIG A의 TXOP duration 필드에서 전송될 수 있다
예컨대, N이 4비트 크기일 경우, N은 0~15의 값을 가진다. 따라서, 4비트 크기의 N을 통해서 지시되는 TXOP duration은 0~32767 us의 값을 갖을 수 있다. 이와 달리, TXOP duration이 최대 5ms를 지시하도록 설정되는 경우, N=0~13의 값만이 TXOP duration을 지시하는데 사용되고, N=14 및 15는 다른 목적을 위해서 사용될 수도 있다.
본 실시예는 X * 2Y-1 방식으로 TXOP duration을 지시하는 방법들 중 하나의 예시이고(e.g., X=1인 경우), X 및/또는 Y는 다양하게 변경될 수 있다. 또한, X 및 Y 값이 HE-SIG A 필드를 통해서 전송될 수 있다.
TXOP
duration의
실시예
2
본 발명의 일 실시예에 따르면 TXOP duration 은 XY-1(또는 XY)로 설정될 수 있다. 편의상 XY-1로 설정되었다고 가정한다. STA은 X와 Y 값을 TXOP duration 필드(e.g., HE-SIG A 내)를 통해서 전송할 수 있다.
HE-SIG A에서 전송되는 TXOP duration 필드가 총 K비트이라 가정하면, K 비트 중 n 비트(e.g., 앞의 n 비트)는 X의 값을 지시하고, m 비트(e.g., 뒤의 m 비트)는 Y의 값을 지시할 수 있다. n 비트는 MSB n 비트이거나 또는 LSB m비트 일 수 있으며, m 비트는 LSB m비트이거나 또는 MSB m 비트 일 수 있다. K, m, n 값은 다양하게 설정될 수 있다.
(i) 일 예로, K=6, n=3, m=3이라 가정한다. X∈{2~9}의 정수이고, Y∈{0~7}의 정수일 수 있다. 이 경우 TXOP duration 값은 0 ~ 4782968us을 가질 수 있다.
(ii) 다른 예로, K=5, n=2, m=3이라 가정한다. X∈{2~5}의 정수이고, Y∈{0~7}의 정수 일 수 있다. 이 경우 TXOP duration 값은 0 ~ 78124us을 가질 수 있다. 이와 달리, X∈{2, 3, 5, 6} 중 하나의 정수 이고, Y∈{0~7} 정수라면, TXOP duration 값은 0 ~ 78124us을 가질 수 있다.
(iii) 또 다른 예로, K=4, n=1, m=3이라 가정한다. X∈{2, 3} (또는 X∈{5, 6}) 중 하나의 정수이고, Y∈{0~7}의 정수 일 수 있다. TXOP duration 값은 0 ~ 279963us을 가질 수 있다.
만약, TXOP duration 필드(e.g., HE-SIG A 내)를 통해서 최대 P ms (e.g., 5ms)까지 지시하고자 하는 경우, XY-1≥ P ms (e.g., 5ms)를 만족시키는 (X, Y) 조합들 중에서 XY-1 가 최소가 되는 (X, Y) 조합이 최대 TXOP duration 값을 지시하는데 사용되고 나머지 (X, Y) 조합은 사용되지 않을 수 있다.
본 실시예는 Z * XY-1 방식으로 TXOP duration을 지시하는 방법들 중 하나의 예시이고, X, Y 및/또는 Z는 다양하게 변경될 수 있다.
TXOP
duration의
실시예
3
본 발명의 일 실시예에 따르면 TXOP duration은 X * 2Y-1(또는 X* 2Y)로 설정될 수 있다. X와 Y 값이 TXOP duration 필드를 통해서 전송될 수 있다.
HE-SIG A에서 전송되는 TXOP duration 필드가 총 K 비트이라 가정하면, K 비트 중 n 비트(e.g., 앞의 n 비트)는 X의 값을 지시하고, m 비트(e.g., 뒤의 m 비트)는 Y의 값을 지시할 수 있다. n 비트는 MSB n 비트이거나 또는 LSB m비트 일 수 있으며, m 비트는 LSB m비트이거나 또는 MSB m 비트 일 수 있다. K, m, n 값은 다양하게 설정될 수 있다.
예컨대, K=6, n=3, m=3 이라고 가정한다. X∈{1, 5, 10, 20, 30, 40, 50, 60}이고 Y∈{0~7}일 수 있다. 이 경우, TXOP duration 값은 0 ~ 7680us을 가지게 될 것이다.
만약, TXOP duration 필드(e.g., HE-SIG A 내)를 통해서 최대 P ms (e.g., 5ms)까지 지시하고자 하는 경우, X * 2Y-1≥ P ms (e.g., 5ms)를 만족시키는 (X, Y) 조합들 중에서 X * 2Y-1가 최소가 되는 (X, Y) 조합이 최대 TXOP duration을 지시하는데 사용하고 나머지 (X, Y) 조합은 사용되지 않을 수 있다.
본 실시예는 X * ZY-1 방식으로 TXOP duration을 지시하는 방법들 중 하나의 예시이고, X, Y 및/또는 Z는 다양하게 변경될 수 있다.
TXOP
duration의
실시예
4
일 실시예에 따르면, TXOP Duration은, 1 마이크로 세컨드(us) 대신에 다른 단위(e.g., 더 큰 단위 또는 심볼 단위)로 설정될 수도 있다. 예를 들어, 4us,8us, 10 us, 16us, 32us, 50us, 64us, 100us, 128us, 256us, 500us, 512us, 1024us,… 등과 같이 더 큰 단위가 사용될 수 있다. 이 경우, TXOP duration의 값은 unit (e.g., 64us) * value of TXOP duration field 로 결정될 것이다. 예를 들어, 32us단위일 때, TXOP Duration (1) = 32us, TXOP Duration (2)= 64us, TXOP Duration (3) = 96us, … 될 수 있다.
한편, TXOP Duration은 8ms까지 최대 값을 가지는 것이 바람직하다. 따라서, 단일 단위(unit)가 사용될 때, 아래와 같은 TXOP Duration field 옵션들이 고려될 수 있다.
- 옵션 1: 32 us unit이 사용되고, 8 비트 크기의 TXOP Duration 필드가 정의된다. 이 때, 최대(maximum) TXOP duration 값은 8192us일 수 있다.
- 옵션 2: 64us unit이 사용되고, 7 비트 크기의 TXOP Duration 필드가 정의된다. 이 때, maximum TXOP duration 값은 8192us일 수 있다.
TXOP field의 크기가 8비트 보다 좀 더 크게 설정된다면(e.g, 9~11 bits), 다음과 같은 TXOP Duration field 구조가 사용될 수도 있다.
- 옵션 가-1: 16us unit, ~32ms, 11 bits
- 옵션 가-2: 16us unit, ~16ms, 10 bits
- 옵션 가-3: 16us unit, ~8ms, 9 bits
- 옵션 나-1: 32us unit, ~32ms, 10 bits
- 옵션 나-2: 32us unit, ~16ms, 9 bits
- 옵션 다-1: 64us unit, ~16ms, 9 bits
또한, 하나 이상의 단위(unit)들의 조합(e.g., (16us, 512us) or (8us, 128us), etc.) 을 사용해서 사용할 수 있다. 또는, us 대신에 1x symbol 또는 4x symbol 단위가 사용되거나 또는 N * 1x symbol, N * 4x symbol 단위 (N은 자연수)로 표시될 수 있다.
표 1은 4x symbol 단위로 지시되는 TXOP Duration을 예시한다.
[표 1]
상술된 실시예 1/2/3 중 하나와 실시예 4의 조합을 통해서 TXOP duration이 지시될 수도 있다.
TXOP
duration의
실시예
5
일 실시예에 따르면 TXOP Duration 필드는 사전 정의된 값을 가질 수 있다. 예컨대, TXOP duration 필드에 설정되는 값(e.g., TXOP duration 인덱스)과 실제 TXOP duration 값을 맵핑하는 테이블이 사전 정의될 수 있다. 표 2는 TXOP duration 인덱스를 예시한다.
[표 2]
일 실시예에 따르면 TXOP Duration의 일부 범위는 제1 함수 형태로 표현되고, 다른 범위는 제2 함수 형태로 표현/구성 될 수 있다. 예를 들어, 특정 값까지는 TXOP Duration이 지수(exponential) 함수 형태로 증가하고, 특정 값 다음부터는 uniform distribution 함수 형태로 증가하도록 설정될 수 있다.
표 3은 TXOP Duration 필드가 4비트로 설정된 경우를 예시한다. 표 3을 참조하면 32us ~ 512us (또는 1024us) 까지는 TXOP Duration가 지수적으로 증가하고, 512us (1024us) 부터는 512us(약0.5ms)씩 증가한다.
[표 3]
표 4는 TXOP Duration 필드가 5비트로 설정된 경우를 예시한다. 표 4를 참조하면 32us ~ 256us (또는 512us) 까지는 TXOP Duration가 지수적으로 증가하고, 256us (512us) 부터는 256us(약0.25ms)씩 증가한다.
[표 4]
TXOP
duration의
실시예
6
일 실시예에 따르면, TXOP Duration은 X비트의 크기의 scaling factor와 Y비트 크기의 duration 값을 통해서 설정될 수 있다. 예컨대, TXOP duration은 값은 Scaling factor (X bits) * Duration (Y bits)에 기초하여 설정될 수 있다. 구체적으로 TXOP duration = Scaling factor (X bits) * Duration (Y bits)일 수 있다. 또는, TXOP duration = Scaling factor (X bits) * Duration (Y bits) + a이고, a는 소정의 상수일 수 있다(e.g., a=1).
TXOP duration 필드의 크기는 X + Y bits로 설정될 수 있다.
예컨대, Duration 값의 단위는 scaling factor에 의해서 1us, 4 us, 16 us 들 중 하나로 설정될 수 있다. Y bits의 길이는 다양하게 설정될 수 있다.
X비트의 scaling factor 인덱스 0은 실제 scaling factor=0을 지시할 수 있다. 표 5의 Case A 및 Case B는 각각 2bits 크기의 Scaling factor의 일례들을 나타낸다.
[표 5]
표 6은 3bits 크기의 Scaling factor의 일례를 나타낸다.
[표 6]
한편, Duration 값은 2Y형태로 표현될 수도 있다.
TXOP
duration의
실시예
7
일 실시예에 따르면 TXOP Duration은 X비트의 크기의 scaling factor와 Y비트 크기의 duration 값, Z비트 크기의 duration 단위 정보를 통해서 지시될 수 있다. TXOP duration은 ‘Scaling factor (X bits) * (Duration (Y bits) us * Duration unit (Z bits)us)’일 수 있다. TXOP duration field의 크기는 (X + Y + Z )bits로 설정될 수 있다.
Z비트 크기의 duration 단위는 전송되는 duration 정보의 단위를 나타낸다. 예를 들어 Z 비트 크기가 1비트 일 때, 0은 4us단위를 지시하고, 1은 16us단위를 지시할 수 있으며, 이에 한정되지 않는다.
●
TXOP
Termination / Truncation 방안
한편, 상술된 실시예에 따르면, HE-SIG A의 TXOP duration 필드는 상대적으로 큰 granularity 기반으로 TXOP duration이 설정될 수 있다. 예를 들어, MAC 헤더에 포함되는 Duration 필드는 1 us granularity 기반으로 지시될 수 있는데 비하여, HE-SIG A의 TXOP duration 필드는 그보다 더 큰 granularity 기반으로 TXOP duration값을 지시하도록 설정될 수도 있다.
이와 같이 HE-SIG A의 TXOP duration 필드에 의해 상대적으로 큰 granularity 기반으로 TXOP duration이 설정되면 실제 frame 전송에 사용되는 것보다 더 긴 시간이 TXOP duration으로 설정될 수 있다. 따라서, 다른 STA들이 HE-SIG A에 기초하여 잘못된 NAV를 설정하여 특정시간 동안 채널 사용을 못 할 수 있고, 채널 효율성이 떨어질 수 있다.
이와 같은 문제점을 해결하기 위하여, TXOP의 조기 종료(Early termination) 을 위한 정보가 전송될 수 있다. 예컨대, TXOP holder/responder는 TXOP 구간 동안에 마지막 프레임(e.g., ACK, Block ACK, Multi-STA BA)을 전송할 때, TXOP를 조기 종료 한다는 것을 지시하는 정보를 마지막 프레임에 포함시켜 전송할 수 있다. TXOP 조기 종료(termination)는, TXOP truncation으로 표현되거나 또는 간략히 (early) termination/truncation으로 표현될 수도 있다. 이하, TXOP를 종료하는 방안들을 살펴본다.
(1) CF-END 프레임을 사용하는 방안
TXOP holder/responder는 TXOP 구간 동안에 마지막 프레임을 전송한 후, CF-END 프레임을 전송함으로써 TXOP을 종료(termination) 할 수 있다.
(2) 조기 종료 지시자(Early termination indicator)를 사용하는 방안
일 실시예에 따르면 STA은 조기 종료 지시자(Early termination indicator)를 프레임의 일부(e.g., HE-SIG A, HE-SIG B의 common part, etc.)에 포함시켜 전송할 수 있다. 예컨대, STA은 Early termination indicator= 1로 설정하면, TXOP가 조기 종료됨을 지시할 수 있다. TXOP는 Early termination indicator=1을 포함하는 프레임 이후에 즉시 종료될 수 있다. 한편, Early termination indicator는 Duration과 조합되어 사용될 수도 있다. 예를 들어, Early termination indicator=1이면 Duration 이 지시하는 시간에서 TXOP 가 종료된다는 것이 지시될 수 있다. Duration = 0이면 해당 프레임 후에 TXOP이 종료되고, Duration이 0 이상의 값이면 Duration이 지시하는 시간에서 TXOP가 종료될 수 있다.
(i) TXOP 조기 종료 지시자로서 MD (More data) 필드 또는 ESOP 필드가 재사용될 수도 있다.
(ii) DL frame일 경우, 조기 종료 지시자는 설정된 TXOP 의 마지막 프레임을 통해 전송될 수 있다. 예컨대, 마지막 프레임에서 조기 종료 지시자와 함께 TXOP Duration이 업데이트되어 전송될 수 있다. TXOP Duration은 기존의 TXOP Duration 보다 작은 값으로 설정되고, 조기 종료 지시자를 통해서 TXOP의 종료가 지시될 수 있다.
(iii) TXOP 정보의 업데이트가 필요한 경우 STA(e.g., TXOP holder/responder)은 프레임을 전송할 때 업데이트 되는 TXOP을 설정하여 프레임을 전송한다. TXOP를 업데이트하는 프레임에서 조기 종료 지시자(Early termination indicator)는 TXOP 업데이트 지시자로 사용된다. 예컨대, TXOP가 업데이트 될 때마다, 조기 종료 지시자=1로 설정되어 전송될 수 있다. 조기 종료 지시자=1로 설정된 프레임을 수신한 STA(e.g., third party)은 해당 STA의 TXOP를 업데이트 한다(e.g., NAV 업데이트).
(iv) 단일 프레임(e.g., PPDU) 전송의 경우는, ACK/BA의 크기로 TXOP duration이 설정될 수 있다. 다중 프레임 전송의 경우, 다중 프레임 및 ACK/BA전송을 위해 TXOP duration이 설정될 수 있다.
(v) UL MU 전송: 트리거 프레임이 non-HT PPDU(e.g., 11a format)로 전송된다면, 트리거 프레임의 콘텐츠에서 정확한 TXOP duration이 지시되므로 레거시 STA(e.g., 11ax를 지원하지 않는 STA)이라도 TXOP duration을 올바르게 설정할 수 있다(e.g., NAV 설정/업데이트). 또한 UL MU 프레임에서는 ACK/BA 프레임의 전송 길이만큼 TXOP duration을 지시하므로 NAV 설정/업데이트는 문제되지 않는다.
하지만, 11ax format이 사용되고, HE-SIG A에 설정된 TXOP duration과 프레임의 컨텐츠에 포함된 TXOP duration 정보(e.g., MAC 헤더의 TXOP duration)가 다른 경우가 문제된다. 예컨대, 일부 STA(e.g., third party)은 HE-SIG A만 읽고, 다른 STA들(e.g., third party)은 HE-SIG A 및 프레임 콘텐츠를 모두 읽었을 수 있다.
둘 다 읽은 STA들은 프레임 콘텐츠(e.g., MAC header)의 Duration 정보를 통해서 TXOP를 설정한다. 예컨대, 둘 다 읽은 STA들은, HE-SIG A에 포함된 duration 정보를 가지고 있다가, MAC 헤더의 Duration (또는 Contents의 duration)을 읽고 나면, STA들은 HE-SIG A의 duration 대신에 MAC 헤더의 duration (또는 contents의 duration)에 기초하여 최종 TXOP duration을 결정하여 NAV를 업데이트 한다.
HE-SIG A만 읽은 STA들은 HE-SIG A에 포함된 TXOP duration에 기초하여 NAV를 업데이트 한다. 이 경우에도, 실제 MAC 헤더의 TXOP duration 보다 긴 TXOP duration 설정 문제 될 수 있다. 예컨대, UL MU 프레임에 대한 ACK/BA/M-BA 프레임이 전송될 때 STA은 HE-SIG A/B 또는 MAC header에 포함된 TXOP duration 정보를 통해서 TXOP을 업데이트 하되(e.g., NAV 업데이트), 조기 종료 지시 (또는 TXOP 업데이트 지시자)가 1로 설정되면 TXOP를 해당 시점에서 종료 할 수 있다.
(vi) 한편, TXOP의 종료(Termination)는 BSS color에 기초하여 수행될 수도 있다. 예를 들어, STA(e.g., third party)은 자신의 BSS color에 해당하는 프레임을 통해서 TXOP 종료가 지시 된 경우에 만, TXOP를 종료하도록 설정될 수도 있다. STA(e.g., third party)은 프레임에 포함된 BSS color를 확인한다. 만약 BSS Color가 Other BSS임을 나타내는 경우 해당 프레임이 TXOP의 종료를 지시하더라도 STA(e.g., third party)은 TXOP를 종료시키지 않는다. 따라서 STA(e.g., third party)은 자신의 BSS의 프레임이 TXOP 종료를 지시하는 경우(e.g., 명시적 지시자 또는 duration이 0으로 설정되는 암묵적 지시)에만 TXOP을 종료(termination/truncation)할 수 있다. 다만, Other BSS에 대한 해당 STA의 엑세스 기회 손실이 발생할 수는 있다.
(vi) 일 실시예에 따르면, STA은 (e.g., TXOP holder/responder)가 TXOP 내에서 11ax 프레임을 전송함에 있어서, 마지막 프레임에는 반드시 TXOP 종료(termination/truncation) 정보를 포함시켜 전송할 수 있다. 한편, 11a 프레임의 경우에는 MAC 헤더의 duration을 통해서 TXOP가 설정되기 때문에, 정확한 TXOP 가 설정될 수 있다. 일 실시예에 따르면 HE-SIG A의 TXOP duration에 MAC header의 duration이 덮어 쓰여질 수도 있다.
(3) 마지막 프레임의 Duration
field값을
이용하는 방안
일 실시예에 따르면, STA(e.g., TXOP holder/responder)은 명시적인 TXOP 종료 지시자를 사용하는 대신에, 마지막 프레임의 Duration field값을 특정 값으로 설정(e.g., 0 또는 모든 비트를 1로 설정)하여 TXOP 조기 종료(early termination/truncation)를 지시할 수도 있다. 따라서, STA(e.g., third party)이 Duration = 특정 값(e.g., 0)을 지시하는 프레임을 수신하면, 해당 프레임 이후에 TXOP duration이 종료(termination /truncation)되었다고 판단할 수 있다. 이는, CF-END 프레임과 유사한 역할로 이해될 수 있다.
(4)
TXOP
duration 종료를 위한
NAV
업데이트
/리셋
기존의 NAV 설정/업데이트 방식에 따르면, 수신된 프레임의 TXOP Duration 값이 STA(e.g., third party)에 현재 설정된 NAV 값 보다 큰 경우에만 NAV 업데이트가 수행되었다. TXOP의 조기 종료를 위해서는, STA에 현재 설정된 NAV 값보다 수신된 프레임의 TXOP duration 값이 작은 경우에도 NAV가 업데이트될 필요가 있다. 일 실시예에 따르면 STA은 상술한 TXOP 종료/업데이트 지시자(truncation/termination/update indicator)에 기초하여, STA에 현재 설정된 NAV 값 보다 작은 TXOP duration으로 NAV를 업데이트 할 수도 있다. 단, 현재 설정된 NAV 값 보다 작은 TXOP duration으로 NAV를 업데이트하는 것은 내 BSS(my BSS) 프레임에 포함된 TXOP 종료/업데이트 지시자에만 기초하여 수행되도록 설정될 수도 있다.
●
NAV
관리
도 23은 기존 NAV 관리 방법에 따른 문제점을 예시한다.
레거시 무선랜 시스템(e.g., 11a/b/g/n/ac)에서 STA은 하나의 NAV를 유지한다. STA은 프레임(e.g., 자신을 수신자로 지시하지 않는 프레임)을 수신하면, 프레임의 MAC 헤더 내에 duration 필드(e.g., MAC duration)에 의해서 계산된 NAV가 자신에 설정된 현재 NAV보다 큰지를 판단한다. MAC duration에 의해서 계산된 NAV가 현재 NAV 보다 더 크면 STA은 MAC duration을 통해서 NAV를 업데이트 한다.
이와 같이 하나의 NAV 만을 관리하는 STA의 현재 NAV가 0 이 아닐 때에 STA이 CF-END 프레임을 수신하면, STA은 NAV를 리셋(e.g., NAV 타이머를 0으로 설정)한다. 하지만, NAV 리셋 이전에 해당 NAV가 다중의 프레임들에 의해 업데이트 되어왔다면, CF-END에 의한 NAV 리셋은 다른 프레임 전송에 영향을 미칠 수 있다.
도 23을 참조하면, AP2와 STA 3는 상호 프레임을 송수신하고 있으며, 이를 위하여 STA 2에는 NAV가 설정되었다고 가정한다. 또한, AP 2와 STA 3는 서로 프레임을 교환하는데 있어서, AP 1 및 STA 1에 영향을 주지 않는다고 간주한다. 예컨대, (AP2, STA 3)의 채널 엑세스와 (AP1, STA 1)의 채널 엑세스 간에는 상호 간에 영향이 없다고 가정한다.
따라서, AP 2 및 STA 3가 프레임(e.g., 데이터/ACK)을 교환하는 동안에도, AP 1과 STA 1이 RTS, CTS 프레임을 교환할 수 있다. 예컨대, AP 1은 STA 1을 수신자로 지정하여 RTS 프레임을 전송한다. STA 1은 RTS에 대한 응답으로, CTS 프레임을 AP 1에 전송한다. CTS 프레임의 RA 필드는 RTS 프레임의 TA 필드와 동일하게 설정되고, CTS 프레임의 Duration은 RTS 프레임의 Duration으로부터 획득될 수 있으며, CTS 프레임에서는 TA 필드가 생략될 수 있다.
STA 2는 AP 1의 RTS 프레임을 수신하지는 못하였지만, STA 1의 CTS 프레임을 수신하였다고 가정한다. STA 1의 CTS 프레임을 수신한 STA 2는 자신이 CTS 프레임의 수신자로 지정되지 않았음을 파악하고, CTS 프레임이 지시하는 Duration에 기초하여 NAV를 업데이트한다. 예컨대, STA 2의 현재 NAV 값보다 CTS 프레임이 지시하는 Duration이 더 크면, STA 2는 NAV를 업데이트 한다.
AP 2는 STA 3로부터 ACK를 수신하면, TXOP truncation을 위하여 CF-END 프레임을 전송한다. CF-END 프레임을 전송하는 AP 2는, STA 2의 NAV가 STA 1의 CTS 프레임에 의해 업데이트 되었다는 사실은 알 수 없다.
STA 2는 AP 2로부터 수신한 CF-END 프레임에 기초하여, NAV 를 리셋한다. 예컨대, STA 2의 경우 AP 1/STA 1의 TXOP 보호를 위하여 NAV를 업데이트 하였음에도, AP2 로부터 CF-END 프레임이 수신되면 NAV 리셋을 수행한다. 기존의 NAV 관리 동작에 따르면 CF-END/RTS/CTS 등의 제어 프레임이 수신되면, STA은 해당 제어 프레임의 RA(receiver address)와 자신의 주소 간의 동일성을 판별한다. STA의 주소와 일치하지 않는 프레임들에 대해서 STA은, TXOP holder/responder에 관계 없이 하나의 NAV를 관리한다.
NAV 를 리셋한 STA 2는 채널에 엑세스가 가능하므로, AP 2에 데이터를 전송할 수 있다. 하지만 STA 2의 데이터 프레임 전송은, AP1과 STA 1의 데이터/ACK 송수신에 영향을 미친다.
이와 같이 NAV가 TXOP holder/responder 1(e.g., AP1/STA1)을 통해서 업데이트 되고 해당 NAV가 끝나지 않은 상태에서 TXOP holder/responder 2(e.g., AP2/STA3)에 의해 NAV가 리셋되었다고 가정하면, NAV 리셋은 TXOP holder/responder 1의 데이터 송수신에 영향을 줄 수 있다.
상술한 기존의 NAV 관리 동작의 문제점을 해결하기 위한 NAV 관리(e.g., 설정, 업데이트 및/또는 리셋) 방안들을 살펴본다.
본 발명의 일 실시예에 따르면 STA은 BSS를 고려하여 NAV를 관리할 수 있다.
일 예로 STA은 BSS color별로 NAV를 설정 및 유지할 수도 있다. BSS color별로 NAV를 설정한 STA은, TXOP truncation 을 지시하는 프레임이 수신되면, 수신된 프레임이 지시하는 BSS Color에 해당하는 NAV의 TXOP를 truncation할 수 있다.
또한, NAV 설정 및 관리의 복잡성을 저감하기 위하여, STA은 내 BSS(my BSS) NAV와 Other BSS NAV(e.g., 내 BSS가 아닌 BSS 또는 my BSS를 지시하지 않는 프레임)로 두 가지 NAV를 설정 및 유지할 수도 있다. 내 BSS NAV의 용어는 인트라 BSS NAV로 지칭될 수 있다. Other BSS NAV의 용어는 인터(inter) BSS NAV 또는 정규(regular) NAV, 또는 비-인트라 BSS NAV로 지칭될 수도 있으며, 이에 한정되지 않는다.
NAV
관리의
실시예
1
일 실시예에 따르면 STA은 {RA(Receiver Address), TA(Transmitter Address)}의 조합 또는 {SA(Source Address), DA(Destination Address)}의 조합을 통해서 NAV를 유지/관리 할 수 있다.
예를 들어, STA이 각각의 {RA, TA} 조합을 통해서 NAV를 관리한다면, 서로 다른 {RA, TA} 조합을 가진 프레임들에 대해서는 다른 NAV를 유지해야 한다. 이러한 방법은 11ax와 같이 밀집된(dense) 환경을 고려한다면, STA이 유지해야 되는 NAV 리스트가 많아지게 된다. 따라서, STA이 각 NAV를 관리하고 업데이트 하는데 복잡도가 증가하여 11ax에서는 비효율적일 수도 있다. 표 7은 {RA, TA} 조합에 따른 NAV 리스트를 예시한다. 예컨대, 각 NAV는 {RA, TA} 조합에 의해 인덱스 된다.
[표 7]
NAV
관리의
실시예
2
본 발명의 일 실시예에 따르면 STA은 BSS별로 (예를 들어, BSSID 또는 BSS Color 별로), NAV를 유지/관리 할 수 있다.
예를 들어, BSSID별로 NAV를 유지/관리하는 STA이, 동일한 BSSID를 갖는 서로 다른 프레임들을 수신하고, 해당 프레임들 중 나중에 수신된 프레임에 의해 지시된 duration (e.g., TXOP duration 및/또는 MAC duration)이 현재 NAV (e.g., 해당 BSSID에 대한 현재 NAV)보다 길다고 가정한다. STA은 해당 BSSID에 대한 NAV를 수신된 프레임의 duration을 사용하여 업데이트 한다.
BSSID를 가지지 않는 프레임(e.g., ACK or CTS)에 대해서는 별도의 NAV가 설정될 수 있다. 예컨대, BSSID를 가지지 않는 프레임에 대해서 STA은 특정 BSSID 값(e.g., 실제 BSSID가 아니라 BSSID 포맷을 갖는 가상의 BSSID)을 사용하여 NAV를 관리할 수 있다. 이와 같은 특정 BSSID 값은 CTS 프레임, ACK 프레임 또는 (CTS&ACK) 프레임에 대응될 수 있다. 따라서, STA은 CF-END를 수신하더라도, CTS/ACK/(CTS&ACK)에 해당하는 NAV는 그대로 유지한다. 또한, STA은 CF-END를 수신하면, CF-END에 포함된 BSSID에 해당하는 NAV만 리셋할 수 있다.
표 8은 BSSID에 기반하여 설정되는 NAV 를 예시한다.
[표 8]
표 8에서, CTS&ACK에 해당하는 BSSID(e.g., Z)에 대하여 NAV(e.g., L)가 설정되는 경우, BSSID X/BSSID Y에 대한 NAV J/K는 별도로 설정되지 않을 수도 있다. 예컨대, BSSID Z로 인덱스된 NAV L을 통해서 CTS&ACK, CTS 및 ACK 프레임의 TXOP가 통합적으로 관리될 수도 있다.
편의상 ACK 프레임 및 CTS 프레임을 예시하였으나, 본 발명은 이에 한정되지 않으며 다른 제어 프레임 또는 관리 프레임에 대응하는 BSSID 및/또는 NAV가 설정될 수도 있다.
한편, STA은 ACK/CTS에 포함된 RA가 표 8의 NAV 테이블의 BSSID 리스트 중 하나와 일치하면, 해당 BSSID에 대한 NAV를 수신된 ACK/CTS프레임의 duration으로 업데이트 하고, CTS/ACK전용 NAV를 업데이트 하지 않을 수도 있다. 예컨대, RA 필드에 설정된 BSSID 값을 갖는 BSS에 대해서 NAV가 존재하면, STA은 해당 NAV에 대한 업데이트를 우선적으로 수행한다. 하지만, RA 필드에 설정된 BSSID 값을 갖는 BSS에 대해서 NAV가 존재하지 않는다면 CTS/ACK전용 NAV를 업데이트 할 수 있다.
수신된 프레임에 BSS Color 정보만 존재하고(e.g., BSSID 정보가 존재하지 않는 프레임), 해당 BSS Color에 맵핑된 BSSID가 있다면, STA은 맵핑된 BSSID를 사용하여 NAV를 추가하거나 업데이트 할 수 있다. 만약, 해당 BSS Color에 대해서 맵핑된 BSSID가 없을 경우, STA은 해당 BSS Color에 대해 하나의 BSSID를 할당하여 이를 유지할 수 있다. STA이 프레임에서 BSS Color와 BSSID를 둘 다 읽을 수 있으면, 해당 BSSID에 대응하는 NAV를 업데이트할 수 있다.
표 9는 BSS color 별로 설정된 NAV를 예시한다.
[표 9]
STA이 각 BSS Color에 대해 맵핑된 BSSID 정보를 알고 있고, BSS Color를 포함하지 않는 프레임(e.g., 11a/b/g/n/11ac(DL) 등의 레거시 프레임)에 BSSID정보 포함된 경우, 해당 프레임의 duration을 사용하여 STA은 BSSID에 맵핑된 BSS Color에 대한 NAV를 추가 또는 업데이트를 한다. STA은, ACK/CTS와 같이 BSS Color 및 BSSID가 포함되지 않는 프레임이 레거시 PPDU 포맷으로 수신되면, 해당 프레임들에 대해서는 특정의 BSS Color 값을 맵핑하여 NAV를 유지 및 관리(e.g., 추가 및 업데이트) 할 수 있다.
본 발명의 일 실시예에 따르면 NAV는 {BSSID, BSS Color}의 조합을 통해서 관리될 수도 있다. 표 10은 {BSSID, BSS Color}의 조합으로 식별되는 NAV를 예시한다.
[표 10]
NAV
관리의
실시예
3
본 발명의 일 실시예에 따르면 STA은 하나의 NAV(e.g., 하나의 NAV 타이머)를 유지하고 관리할 수 있다. STA은 NAV를 업데이트함에 있어서, NAV가 어떤 것에 의해서 업데이트되었는지에 대한 정보를 유지할 수 있다.
표 11은 본 발명의 일 실시예에 따라서 NAV의 최종 업데이트에 사용된 ID 를 예시한다.
[표 11]
NAV의 최종 업데이트에 사용된 ID(Identification used for updating the latest NAV)가 해당 NAV가 NAV에 맵핑될 수 있다. NAV의 최종 업데이트에 사용된 ID 는 예컨대, BSS Color, BSSID, {BSSID, BSS Color}, RA, TA, SA, DA, {RA, TA}, {RA, SA}, {DA, SA} 및 {DA, TA} 중 적어도 하나일 수 있으며, 이에 한정되지 않는다.
표 12는 {RA, TA}조합이 사용되는 경우를 예시한다.
[표 12]
표 13은 BSSID가 사용되는 경우를 예시한다.
[표 13]
만약, STA이 해당 ID 정보를 포함하지 않는 프레임들에 의해서 NAV를 업데이트 하는 경우, 상술된 NAV 관리 실시예 2에서 언급된 방법들 중 하나를 사용할 수 있다. 예를 들어, 표 13과 같이 BSSID가 사용되고, ACK/CTS 프레임에 BSSID (또는 BSSID와 맵핑된 정보)가 없으면, STA은 ACK/CTS 프레임에 특정 BSSID(e.g., 가상의 BSSID)를 맵핑하여 NAV 업데이트를 수행할 수 있다. 예를 들어, ACK/CTS용 BSSID가 X라고 시스템에서 정해지고, STA이 ACK이나 CTS를 수신하면 NAV 테이블의 NAV의 최종 업데이트에 사용된 ID(e.g., BSSID 항목)을 X로 업데이트 할 수 있다.
이와 같이 NAV에 대응하는 ID가 NAV와 함께 유지되고, STA이 TXOP truncation을 가리키는 프레임(e.g., CF-END)을 수신 하면, STA은 프레임의 ID정보들(e.g., RA, TA, BSS Color, BSSID 등) 중 하나가 NAV에 대응하는 ID와 일치하는 경우에만, TXOP을 truncation 할 수 있다. 예를 들어, 표 13과 같이 BSSID에 기반하여 NAV가 관리 될 때, STA은 CF-END 프레임이 현재 NAV의 BSSID에 해당하는 정보를 포함하는 경우에만 TXOP을 truncation할 수 있다. 만약, 현재 NAV의 BSSID에 해당하는 정보가 CF-END프레임에 포함되지 않은 경우, STA은 TXOP을 truncation 시키지 않을 수 있다.
본 발명의 실시예를 위해서, STA은 전송되는 프레임들을 오버히어링 함으로써, {BSS Color, BSSID}들의 리스트를 유지할 수도 있다. BSS Color만 포함하거나 또는 BSSID만 포함하는 프레임이 수신되면 STA은, {BSS Color, BSSID}리스트를 사용해서 BSS Color에 대응하는 BSSID 또는 BSSID에 대응하는 BSS Color 정보를 획득할 수도 있다.
표 14는 {BSSID, BSS Color}의 조합이 사용되는 경우를 예시한다.
[표 14]
STA은 내 BSSID에 대한 BSS Color를 다양한 방법들(e.g., 비콘, 프로브 응답 등의 관리 프레임)을 통해서 획득할 수 있다. 따라서, STA은 내 BSS에서 전송된 프레임을 수신한 경우 해당 프레임이 레거시 PPDU인지 아니면 HE(i.e., 11ax) PPDU인지에 상관 없이, BSS Color와 BSSID를 같이 업데이트 할 수 있다. 예를 들어, STA이 내 BSS Color를 포함하는 11ax PPDU를 수신 한 경우에, NAV를 업데이트할 때 BSS Color 및 내 BSSID를 같이 업데이트 할 수 있다. STA이 내 BSSID정보를 포함하는 레거시 PPDU를 수신한 경우에, NAV를 업데이트할 때 BSSID 및 BSS Color를 같이 업데이트할 수 있다.
STA이 TXOP Truncation을 지시하는 프레임(e.g., CF-END, duration =0인 프레임 등)을 수신하고, 해당 프레임에 포함된 정보들(e.g., BSS Color, BSSID, TA, RA 등) 중 하나 이상이 현재 NAV에 맵핑된 BSSID 또는 BSS Color 와 일치하면, STA은 NAV를 truncation 할 수 있다. 프레임에 포함된 정보와 현재 NAV에 맵핑된 BSSID/BSS color가 일치하지 않으면, STA은 해당 NAV를 truncation하지 않을 수 있다.
만약, STA에 {BSSID, BSS Color} 리스트가 없는 경우에, Other BSS의 프레임을 수신하거나 또는 11ax PPDU에 대해서 BSS Color만 획득하면, STA은 NAV에 맵핑되는 BSSID를 0으로 설정할 수 있다. 또한, legacy PPDU가 수신되고 STA이 BSS Color 없이 BSSID만 획득한 경우, NAV에 맵핑되는 BSS Color를 0으로 설정할 수도 있다.
STA이 제어 프레임을 수신하고, 제어 프레임이 내 BSS Color나 내BSSID 중 하나 이상과 일치하는 정보를 포함하면, STA은 NAV에 맵핑된 {BSSID, BSS Color} 정보를 NAV와 같이 업데이트할 수 있다.
만약, 제어 프레임 내에서 NAV에 맵핑된 {BSSID, BSS Color}와 일치하는 정보가 없을 경우(e.g., other BSS 제어 프레임), STA은 해당 제어 프레임에 대해서는 NAV에 {RA, TA} 조합을 맵핑할 수 있다. 이 후 TXOP Truncation 을 지시하는 프레임이 수신되고, 해당 프레임이 NAV에 맵핑된 ID정보(e.g., {BSS Color, BSSID} 또는 {RA, TA})와 일치하는 ID정보를 포함하면, STA은 TXOP을 truncation할 수 있다, 만약, 수신된 프레임이 NAV 에 맵핑된 ID 정보를 포함하지 않으면 STA은 TXOP을 truncation 시키지 않을 수 있다.
한편, STA은 NAV에 맵핑된 ID가 {BSS Color, BSSID} 조합인지, 아니면 {RA, TA} 조합인지를 나타내는 ID Type정보를 해당 NAV에 맵핑할 수도 있다. STA은 ID Type을 통해서 어떠한 ID가 NAV에 맵핑되었는지를 파악할 수 있다. 표 15는 일 실시예에 따르면 ID 타입 정보를 예시한다.
[표 15]
NAV
관리의
실시예
4
본 발명의 일 실시예에 따르면 STA들은 TXOP를 개시(initiation)하는 프레임을 수신 하면, TXOP holder 주소를 저장할 수 있다.
예를 들어, RTS프레임에서는 TA (Address 2, Transmitter address)가 TXOP holder 주소를 나타내고, CTS에서는 RA(Address 1, Receiver address)가 TXOP holder 주소룰 나타낸다.
STA은 해당 프레임들에 기초하여 NAV를 업데이트 하면서, TXOP holder 주소를 같이 저장할 수 있다. 이 후, TXOP truncation 을 지시하는 CF-END 프레임이 수신되면, STA은 CF-End의 TA와 NAV에 맵핑된 TXOP holder 주소를 비교한다. 만약, CF-END 프레임의 TA가 NAV에 맵핑된 TXOP holder 주소와 일치하면, STA은 TXOP truncation 을 수행한다. 하지만, F-END 프레임의 TA가 NAV에 맵핑된 TXOP holder 주소와 일치하지 않으면, STA은 NAV를 그대로 유지할 수 있다.
한편, 본 발명의 일 실시예에 따르면 STA은 NAV 업데이트 전의 NAV 정보를 유지할 수 있다. NAV 업데이트되기 전에 NAV 정보는, 예컨대, 업데이트 전의 NAV 값 및 업데이트 전의 TXOP holder의 정보 중 적어도 하나를 포함할 수 있다.
예컨대, STA은 현재 NAV에 대한 TXOP Holder 주소만 유지하는 것이 아니라, 이전 NAV 값 및 이전 NAV에 대한 TXOP Holder 주소를 유지할 수도 있다. STA은 이전 NAV 값을 유지하기 위하여, NAV update시에 이전 NAV 타이머를 저장하거나, 또는 이전 NAV값을 계산 할 수 있는 정보로서 NAV 차이 값(NAV difference value)를 저장 할 수 있다. 예컨대, 프레임을 수신하여 NAV를 업데이트할 때, STA은 {해당 프레임에서 지시된 Duration - 현재의 NAV 값}을 NAV 차이값으로 저장할 수 있다.
이후 CF-End 프레임이 수신되고, CF-End 프레임의 TA와 현재 NAV의 TXOP 홀더 주소와 일치하면 STA은 NAV를 리셋하는 대신에, 이전 NAV의 TXOP holder 주소와 CF-End 프레임의 TA를 비교한다. 이전 NAV 의 TXOP holder 주소와 CF-End프레임의 TA가 일치하면, STA은 NAV를 리셋한다. 하지만, 이전 NAV의 TXOP holder 주소와 CF-End프레임의 TA가 일치하지 않으면, 현재 NAV를 리셋하지 않고 이전 NAV 값을 복원한다(e.g., NAV 차이 값을 이용). CF-End 프레임의 TA가 현재 NAV의 TXOP holder 주소와 일치하지 않으면, STA은 현재 NAV를 유지한다.
일 실시예에 따르면, STA이 TXOP을 개시(initiation)하는 프레임을 수신하고 TXOP holder 주소를 저장하는 것은, 해당 STA이 어소시에이션(association)한 BSS의 TXOP holder의 주소인 것으로 한정될 수도 있다. 또는, STA은 자신이 어소시에이션한 AP의 주소만을 TXOP holder 주소로 저장하는 것으로 한정될 수 있다. 예를 들어, AP가 RTS와 같은 TXOP을 개시(initiation)하는 프레임을 전송했을 때, TXOP holder 주소는 TA (Address 2)이다. STA에 의해 전송된 CTS의 경우, AP의 RA(Address 1, AP address)가 TXOP holder 주소이다.
상술된 바와 같이, STA (e.g., AP or non-AP STA)은 프레임을 수신 했을 때, TXOP holder address(또는 STA이 어소시에이션된 TXOP holder의 address) 및/또는 BSS color (STA이 어소시에이션된 BSS의 Color)를 저장할 수 있다. 예컨대, STA이 어소시에이션된 BSS로부터 프레임을 수신한 경우, STA은 해당 BSS의 {TXOP holder address, BSS Color}를 저장할 수 있다. 만약, BSS color가 없는 프레임(e.g., RTS/CTS/Trigger frame/ACK/Block ACK 등과 같이 BSS color가 없는 legacy PPDU를 사용해서 전송되는 프레임)을 수신되고, 해당 프레임에 포함된 TXOP holder address가 자신이 어소시에이션한 AP의 MAC address 와 일치하면, STA은 자신이 사전에 알고 있는 해당 AP에 대한 BSS Color를 TXOP holder address와 같이 저장할 수 있다.
수신된 MU-RTS/RTS 프레임의 RA에 자신의 address/ID(e.g., AID or Partial AID)가 없고, TA에 자신이 associate한 BSS의 TXOP holder address가 포함되어 있으면, STA은 NAV 값과 함께 {TXOP holder address, BSS color}를 저장한다. STA은 MU-RTS/RTS에 의해 설정된 NAV를 리셋해야 되는 경우, BSS Color를 확인하여 NAV 리셋을 수행할 수 있다.
NAV
관리의
실시예
5
기존의 NAV 업데이트 방식에 따르면, OBSS(other BSS) 프레임에 의해서 NAV가 설정된 후, 내 BSS 프레임이 수신되고, 내 BSS 프레임의 NAV 값이 현재 NAV 값(e.g., OBSS 프레임에 의해 설정된 NAV)보다 크면, STA은 내 BSS 프레임에 기초하여 NAV을 업데이트 한다. 예컨대, STA이 NAV 업데이트(e.g., 변경, 리셋, 취소 등)을 요구하는 프레임(e.g., CF-End/트리거 프레임/CTS/ACK/BA 등)을 내 BSS의 STA/AP로부터 수신하면, STA은 해당 프레임을 수신하여 NAV을 업데이트 한다.
도 24는 UL MU 전송에 관련된 기존의 NAV 관리를 예시한다. STA 1, 2, 3는 AP에 어소시에이션(association)되어 있고, STA3는 OBSS 프레임을 수신하여 NAV을 설정한 상태에서 내 AP가 전송하는 TF(Trigger frame) 1을 수신하였다고 가정한다.
도 24를 참조하면, TF1에는 STA3에 대한 자원 할당 정보가 없기 때문에, TF1의 duration값이 STA 3에 설정된 현재 NAV보다 크면, STA 3는 TF1의 duration값을 통해 NAV를 업데이트 한다.
이 후, 내 AP가 TF2를 전송하여 STA3에게 UL 자원을 할당한다. STA3에는 내 BSS에 의해서 NAV가 설정되어 있으므로, STA 3는 NAV을 무시하고 UL 전송을 수행할 수 있다. 하지만 이와 같은 STA 3의 UL 전송은 OBSS에 영향을 줄 수 있다.
(1)
NAV
관리
실시예
5-1:
NAV
차이 값
이와 같은 문제를 해결하기 위한 방법 중 하나로서, OBSS NAV 차이 값을 사용하는 방안을 고려할 수 있다. OBSS NAV 차이 값은 간략히 NAV 차이 값으로 지칭될 수도 있다.
예컨대, STA은 하나의 NAV 타이머를 유지하되, OBSS 프레임에 의해서 설정된 NAV를 내 BSS 프레임에 기초하여 업데이트 할 때, STA은 OBSS NAV 차이 값을 계산하여 저장한할 수 있다. OBSS NAV 차이 값은 {수신된 내 BSS 프레임의 NAV 타이머 - 현재 NAV 타이머 (e.g., OBSS에 의해서 가장 최근에 업데이트 된 NAV 타이머)}와 같이 계산될 수 있다.
OBSS NAV 차이 값을 저장한 STA은 내 BSS프레임에 의해서 NAV가 업데이트 될 때(e.g., 현재 NAV가 리셋되거나, 내 AP로부터 수신된 트리거 프레임의 지시에 따라서 현재 NAV가 무시되거나 또는 고려되지 않을 때), NAV 차이 값을 이용하여 현재 시점에서 OBSS NAV가 유효한지 여부를 판단할 수 있다.
만약, OBSS NAV가 유효하다면, STA은 OBSS NAV을 고려한다(e.g., OBSS NAV가 종료되기 전까지 채널 엑세스를 보류). STA은 현재 시점에서 {현재 NAV 타이머 - NAV 차이 값}을 계산하여 OBSS NAV이 유효한지 여부를 체크 할 수 있다. 예를 들어, {현재 NAV 타이머 - NAV 차이 값}이 OBSS NAV 유효 임계치 (e.g., 0)보다 크면, STA은 OBSS NAV가 유효하다고 판단할 수 있다. 만약, {현재 NAV 타이머 - NAV 차이 값}이 0보다 작거나 같으면 STA은 OBSS NAV가 유효하지 않다고 판단할 수 있다. STA은 OBSS NAV가 유효하지 않다면, NAV 차이 값을 더 이상 유지하지 않거나 0으로 설정할 수 있다. 또한, STA은, NAV 차이 값이 없거나 0으로 설정되어 있으면, OBSS NAV를 고려하지 않고 채널 엑세스를 수행할 수 있다. STA이 NAV을 고려한다면 채널이 혼잡(busy)하다고 가정하고 프레임 전송을 시도 하지 않는다는 것을 의미할 수 있다.
STA에 저장된 NAV 차이 값은, 내 BSS 프레임에 의해서 NAV 업데이트가 없었더라면 STA에 유지되었을 OBSS NAV 타이머가 현재 시점에서 만료되었는지 아니면 잔여 시간이 있는지를 판단하기 위하여 사용될 수 있다.
도 25는 NAV 차이 값을 이용하여 NAV를 관리하는 방법을 예시한다.
도 25를 참조하면, STA3는 OBSS에 의해서 설정된 NAV을 유지하고 있다가, 내 BSS(또는 인트라 BSS) STA인 AP로부터 TF1을 수신한다. STA 3는 TF1의 NAV(e.g., duration)이 현재 NAV(e.g., OBSS NAV)보다 크면, TF1에 기반하여 자신의 NAV를 업데이트 한다. 이 때, STA3는 NAV 차이 값 (e.g., TF 1의 duration 값 - 현재 NAV 타이머)를 계산하여 저장할 수 있다.
STA3의 스케줄링 정보가 포함된 TF2가 수신되면, STA3는 TF 2에 기초한 전송을 수행하기 이전에, OBSS NAV가 유효한지 검사한다. 예컨대 {현재 NAV 타이머 - NAV 차이 값}이 OBSS NAV 유효 임계치(e.g., 0)를 초과하면, STA 3는 OBSS NAV가 유효하다고 간주할 수 있다. OBSS NAV가 유효한 동안 STA3는 TF 2에 기초한 프레임 전송을 보류할 수 있다.
한편, OBSS NAV 차이 값은 NAV가 내 BSS의 프레임(e.g., 인트라 BSS 프레임)에 의해서 업데이트 될 때, 유효하지 않을 수도 있다.
도 26는 내 BSS의 프레임에 기초한 NAV 업데이트를 예시한다.
도 26을 참조하면 STA3는 OBSS 프레임을 통해서 설정된 NAV를 TF1(e.g., STA 3가 어소시에이션된 AP로부터 수신)을 통해서 업데이트 한다. STA 3는 TF 1을 통해서 NAV를 업데이트 하는데 있어서, NAV 차이 값(e.g., 수신된 프레임의 duration에 의한 NAV 값 - 현재 NAV 값)을 계산 및 저장할 수 있다.
STA 3는 TF2를 수신하고 NAV를 업데이트 한다.
STA 3가 TF3를 통해서 UL 자원 할당을 받으면, STA3는 NAV 차이 값을 이용하여 OBSS NAV가 유효한지를 검사한다. 하지만, NAV 차이 값은 이전 NAV(e.g., TF 1)을 기반으로 계산 되었던 것이기 때문에, STA3에 저장된 NAV 차이 값은 TF 3를 수신한 시점에서는 부정확한 값이 될 수 있고, OBSS NAV 유효성 검사에 적합하지 않을 수 있다.
(2)
NAV
관리
실시예
5-2:
NAV
차이 값의
업데이트
상술된 문제점을 해결하기 위한 한 방법으로서, STA의 NAV가 업데이트 될 때, STA은 NAV 차이 값도 함께 업데이트 할 수 있다.
예컨대, STA은 NAV를 업데이트 할 때, NAV 차이 값을 이용하여 OBSS NAV가 유효한지 여부를 검사한다. 예를 들어, {현재 NAV 값 -NAV 차이 값}을 계산 한 결과가 OBSS NAV 유효 임계치 (e.g., 디폴트 값은 0)를 초과하면, STA은 OBSS NAV가 유효하다고 간주한다.
OBSS NAV가 유효하지 않으면, STA은 NAV 차이 값을 0으로 설정할 수 있다. 예컨대, OBSS NAV 차이 값=0 은 OBSS NAV가 유효하지 않음을 나타낼 수 있다.
OBSS NAV가 유효하면, STA은 NAV 차이 값을 업데이트할 수 있다. STA은 NAV 업데이트에 사용되는 해당 프레임의 duration 을 통해서 NAV 차이 값을 업데이트할 수 있다. 예컨대, STA은 {해당 프레임에 의한 NAV 값(e.g., duration) - (현재 NAV 값 -NAV 차이 값)} 값으로 NAV 차이 값을 업데이트 하고, 자신의 NAV 도 업데이트할 수 있다.
도 27은 NAV 차이 값의 업데이트를 예시한다. TF 1 수신 이전에 STA3는 OBSS 프레임에 의해 업데이트 된 NAV를 갖는다고 가정한다.
STA 3는 자신의 AP로부터 TF1을 수신하고 NAV를 업데이트 한다. STA 3는 TF1의 duration을 사용하여 NAV를 업데이트 하기 전에, STA3는 NAV 차이 값을 계산하여 저장한다.
STA 3는 TF2를 수신하여 NAV 업데이트를 수행하는데 있어서, OBSS NAV가 유효 한지 여부를 검사한다. OBSS NAV가 유효하다면, STA 3은 NAV 차이 값을 현재 수신된 프레임(e.g., TF2)의 duration을 기반으로 업데이트 할 수 있다. 예컨대, NAV 차이 값을 {수신된 프레임에 의한 NAV 값 - (현재 NAV 값 -저장된 NAV 차이 값)}으로 업데이트 할 수 있다. 이어서 STA 3는, TF 2를 통해서 NAV를업데이트 할 수 있다.
STA 3에 대한 UL 자원 할당을 포함하는 TF3가 수신되면, STA3는 NAV 차이 값을 사용하여 OBSS NAV가 유효한지 여부를 검사한다. 편의상 OBSS NAV가 유효하지 않다고 가정한다. 따라서, STA3는 TF 3에 응답하여 UL MU 프레임을 전송한다.
한편 NAV 차이 값의 업데이트는 OBSS NAV가 또 다른 OBSS 프레임들에서 의해 업데이트 될 때에도 수행될 수 있다. 예컨대, STA이 OBSS 프레임을 수신하였고 현재 OBSS NAV가 유효하다고 가정한다. STA은 NAV 차이 값을 사용하여, 수신된 OBSS 프레임에 의한 NAV값이 현재 OBSS NAV(=현재 NAV 값 - 저장된 NAV 차이 값)보다 큰지를 확인한다.
수신된 OBSS 프레임에 의한 NAV값이 현재 OBSS NAV 보다 크다면, STA은 NAV 차이 값을 {현재 NAV 값 - 수신된 OBSS 프레임에 의한 NAV값}으로 업데이트 한다. 이 때, STA은 자신의 NAV(e.g., 현재 NAV 값)을 그대로 유지할 수 있다. 이와 같은 NAV 차이 값 업데이트는, STA이 수신된 OBSS 프레임을 통해서 현재의 NAV는 업데이트 하지 않고, OBSS NAV를 업데이트 하기 위함이다.
도 28은 본 발명의 다른 일 실시예에 따른 NAV 차이 값 업데이트를 예시한다. STA 3는 OBSS 프레임 1에 의해 NAV를 업데이트 하였으며, 이후 자신의 AP로부터 TF1을 수신하여 NAV를 업데이트 한다고 가정한다.
STA 3는 TF1의 duration을 사용하여 NAV를 업데이트 하기 전에, NAV 차이 값을 계산 한다. 예컨대, NAV 차이 값은 {수신된 프레임에 의한 NAV (i.e., 프레임의 duration 값) -현재 NAV 타이머}일 수 있다. STA은 계산된 NAV 차이 값을 저장한다.
STA 3는 TF2를 수신하지만, NAV 업데이트는 수행되지 않으며 따라서, 현재 NAV 타이머가 유지된다고 가정한다.
이 후 STA 3는, OBSS STA로부터 OBSS 프레임 2를 수신하고, OBSS NAV가 유효한지를 검사한다. OBSS NAV가 유효하다고 가정한다. STA3는 수신된 OBSS 프레임 2에 의한 NAV(e.g., duration)이 OBSS NAV보다 큰 지를 확인한다.
OBSS 프레임 2에 의한 NAV가 OBSS NAV보다 큰 경우, STA 3는 OBSS 프레임의 duration을 사용하여 NAV 차이 값을 다시 계산한다(e.g., 업데이트). 예컨대, STA 3는 NAV 차이 값을 { 현재 NAV 타이머 -OBSS 프레임 2에 의한 OBSS NAV}로 계산하고, STA3는 계산된 NAV 차이 값을 저장할 수 있다.
이 후, STA 3는 TF3를 수신하고, TF 3를 통해 UL 자원을 할당 받는다. STA3는 UL 전송을 수행하기 이전에 NAV 차이 값을 이용하여 OBSS NAV가 유효한지를 검사한다. 편의상 OBSS NAV가 유효하다고 가정한다. 따라서, STA3는 OBSS NAV가 만료되기 전에는 UL MU 프레임을 전송하지 않는다.
NAV
관리의
실시예
6
이하에서는 앞서 도 24를 통해서 살펴본 기존의 NAV 관리 방법의 문제점을 해결하기 위한 또 다른 실시예들을 살펴본다.
(1)
NAV
관리의
실시예
6-1: 다수의
NAV
타이머
본 발명의 일 실시예에 따르면 STA은 내 BSS(e.g., 인트라 BSS) NAV 타이머와 OBSS(e.g., 인터 BSS) NAV 타이머를 각각 유지/관리할 수 있다. 내 BSS 프레임에 의해서 NAV 업데이트가 필요하면, STA은 내 BSS NAV 타이머를 업데이트 할 수 있다. OBSS 프레임에 의해서 NAV 업데이트가 필요하면, STA은 OBSS NAV 타이머를 업데이트할 수 있다.
도 29는 본 발명의 일 실시예에 따른 NAV 설정을 예시한다.
도 29를 참조하면, STA 3는 OBSS 프레임을 수신하면, OBSS NAV 타이머를 업데이트(e.g., 여기서 업데이트는 설정, 변경, 최소/리셋 중 하나를 의미할 수 있다)하고, 내 BSS NAV 타이머는 업데이트하지 않는다.
STA3는 내 BSS 프레임을 수신하면, 내 BSS NAV 타이머를 설정 또는 업데이트 하고, OBSS NAV 타이머를 업데이트 하지 않는다.
STA은 내 BSS NAV와 OBSS NAV 둘 중에 하나라도 0 이상의 값을 갖는다면, STA은 채널 엑세스를 수행하지 않는다.
STA은 내 BSS NAV 타이머 대신에 기존과 같은 NAV 타이머를 유지할 수도 있다. 예컨대, STA은 기존과 같은 방식으로 동작하는 NAV 타이머와 OBSS NAV 타이머를 유지할 수 있다. 예컨대, 기존 NAV 타이머는 인트라 BSS / 인터 BSS 프레임의 구분 없이 업데이트 되고(e.g., 기존과 같이), OBSS NAV 타이머는 OBSS (인터 BSS) 프레임에 의해서만 업데이트 될 수 있다.
따라서, 기존의 NAV 타이머가 인트라 BSS STA이 전송하는 프레임에 의해서 업데이트가 되었더라도, OBSS NAV 타이머가 유효하면 STA은 OBSS NAV을 고려하여 UL MU 프레임을 전송하지 않을 수 있다. 또한, STA은 OBSS NAV 타이머가 OBSS NAV 유효 임계값(e.g., 디폴트 값은 0)보다 큰 값일 경우, OBSS NAV가 유효하다고 판단할 수 있다.
한편, OBSS NAV 유효 임계값은 시스템에 의해 결정될 수 있으며, 비콘과 같은 브로드캐스트/멀티캐스트 프레임 또는 유니캐스트 프레임을 통해서 STA에 전달 될 수 있다.
(2)
NAV
관리의
실시예
6-2: 하나의
NAV
타이머
본 발명의 일 실시예에 따르면 STA은 기존처럼 하나의 NAV 타이머를 유지하되, OBSS 프레임에 의해서 설정된 NAV이 내 BSS 프레임에 의해서 업데이트 될 때, STA은 OBSS NAV 차이 값을 계산하여 저장할 수 있다. OBSS NAV 차이 값은 {수신된 프레임의 NAV 타이머 -현재 NAV 타이머}로 계산될 수 있다. 예컨대, 수신된 프레임의 NAV 타이머는 수신된 프레임의 duration을 통해 계산될 수 있고, 현재 NAV 타이머는 OBSS에 의해서 가장 최신에 업데이트 된 NAV 타이머일 수 있다. OBSS NAV 차이 값은 간략히 NAV 차이 값으로 지칭될 수 있다.
STA은 현재 NAV을 리셋(e.g., CF-End수신)하거나, 또는 현재 NAV을 고려하지 않고 프레임 전송을 시도(e.g., 트리거 프레임에 기반하여 UL 프레임을 전송하는 경우)할 때, 저장된 NAV 차이 값을 사용하여 OBSS NAV이 유효한지 검사할 수 있다.
예컨대, STA은 해당 시점에 {현재 NAV 타이머 - OBSS NAV 차이 값}의 값을 계산하여 OBSS NAV이 유효한지를 체크 할 수 있다. 예를 들어, {현재 NAV 타이머 - NAV 차이 값}의 값이 OBSS NAV 유효 임계치(e.g., 디폴트는 0, 하지만 0 보다 큰 값으로 설정될 수 있다.)보다 크면, STA은 OBSS NAV이 유효하다고 판단 한다. 만약, {현재 NAV 타이머 - NAV 차이 값}이 0보다 작거나 같으면 STA은 OBSS NAV 차이 값을 유지하지 않거나 0으로 설정할 수 있다. NAV 차이 값이 없거나 0으로 설정되어 있으면, OBSS NAV을 유효하지 않다는 것을 나타낼 수 있으며, STA은 OBSS NAV을 고려하지 않을 수 있다.
OBSS NAV이 유효하면, STA은 OBSS NAV을 고려하여 동작할 수 있다. 예컨대, STA은 OBSS NAV이 유효하면 NAV 리셋시점에서 NAV을 리셋하지 않거나, 프레임 전송시점에는 프레임을 전송하지 않을 수 있다.
STA이 NAV을 고려한다는 말은 채널이 혼잡(busy)하다고 가정하고 프레임 전송을 시도 하지 않는다는 것을 가리키거나, 또는 OBSS NAV을 리셋하지 않는 것을 의미할 수 있다.
도 30은 본 발명의 일 실시예에 따른 NAV 관리 방법을 예시한다.
STA3은 OBSS에 의해서 설정된 NAV을 유지하고 있다고 가정한다.
STA 3는 내 BSS의 AP로부터 TF1을 수신한다. TF 1의 NAV이 현재 NAV보다 크다고 가정한다. STA 3는 TF1에 기초하여 NAV를 업데이트 한다. 이 때, STA3는 NAV 차이 값 {TF 1의 NAV 타이머 - 현재 NAV 타이머}을 계산 및 저장한다.
이 후, STA 3는 TF 2를 수신한다. TF 3는 STA3의 스케줄링 정보를 포함한다. STA 3는 TF 2에 기초한 UL 전송을 시도하기 전에, OBSS NAV이 유효한지를 추가로 검사한다. 한편, STA 3의 현재 NAV이 인트라 BSS STA에 의해서 설정되어 있기 때문에, STA 3는 현재의 NAV는 고려하지 않을 수 있다.
만약, {현재 NAV 타이머 - NAV 차이 값}이 OBSS NAV 유효 임계치를 초과하면, STA3는 OBSS NAV이 유효하다고 간주할 수 있다. STA 3는 OBSS NAV가 유효한 동안 UL 프레임을 전송하지 않는다.
한편, 도 28에서 설명된 바와 같이, STA은 MyBSS (또는 인트라 BSS) 에 의해서 설정된 NAV이 OBSS (또는 인트라 BSS)에 의해서 업데이트 될 때에도 NAV 차이 값을 계산 및 저장하는 동작을 수행 할 수 있다. 예를 들어, 이후, 인터 BSS 프레임에 의해서 NAV가 업데이트 (e.g., 리셋/취소) 될 때에, STA은 MyBSS NAV이 유효한지를 체크한다. MyBSS NAV이 유효할 경우, STA은 MyBSS NAV을 고려하여 동작할 수 있다. NAV 차이 값을 계산하고, 유효 여부를 검사하는 방법은 상술된 내용과 중복되므로 설명이 생략된다.
(3)
NAV
관리의
실시예
6-3: CF-END 프레임
이하에서는 TXOP truncation을 위한 CF-End를 수신한 경우 NAV 업데이트 방법을 살펴본다.
현재 NAV 이 인트라 BSS 프레임에 의해서 업데이트 된 것이고, OBSS NAV이 유효하다면, STA이 인트라 BSS STA으로부터 CF-End프레임의 수신에 따라서 현재의 NAV을 OBSS NAV으로 업데이트 할 수 있다.
상술된 NAV 관리의 실시예 6-1에서와 같이, STA이 OBSS NAV 타이머를 추가로 유지하고 있으면, STA은 OBSS NAV 타이머값을 확인함으로써 OBSS NAV이 유효한지 를 알 수 있다. OBSS NAV가 유효하다면 STA은 현재의 NAV을 OBSS NAV 타이머값으로 설정한다.
상술된 NAV 관리의 실시예 6-2에서와 같이, STA이 OBSS NAV 차이 값을 계산하여 저장하고 있다면, STA은 OBSS NAV 차이 값을 사용하여 OBSS NAV이 유효한지 를 알 수 있다. OBSS NAV가 유효하다면 STA은, OBSS NAV 차이 값을 사용하여 현재의 NAV을 OBSS NAV으로 설정할 수 있다. NAV 관리의 실시예 6-2에서 설명된 바와 같이, 현재의 NAV가 OBSS 프레임에 의해서 업데이트 될 때, STA은 OBSS NAV 차이 값 {수신된 프레임의 NAV 타이머 - 현재의 NAV 타이머}을 계산할 수 있다. STA은, OBSS NAV 유효성 검사 시점에, {현재의 NAV 타이머 - OBSS NAV 차이 값}이 OBSS NAV 유효 임계치를 초과하면, OBSS NAV이 유효하다고 판단하고 현재의 NAV을 OBSS NAV(= 현재의 NAV 타이머 - OBSS NAV 차이 값)으로 업데이트 할 수 있다.
(4)
NAV
관리의
실시예
6-4:
NAV
업데이트
지시자
본 발명의 일 실시예에 따르면, 현재의 NAV이 과거의 NAV 값에서 업데이트 된 것인지, 아니면 새롭게 설정된 것인지 여부에 따라서, STA이 NAV을 고려하거나 또는 NAV을 리셋할 수 있다.
예컨대, 현재 NAV 바로 이전 NAV가 zero였는지 non-zero였는지에 따라서 NAV의 리셋 여부가 결정될 수 있다. STA은 NAV을 설정 또는 업데이트할 때, 이전의 NAV에 대한 정보(e.g., NAV 업데이트 지시자)를 저장할 수 있다. 예컨대, NAV가 non-zero 값으로부터 업데이트 되면, NAV 업데이트 지시자=1로 설정되고, NAV가 zero 값에서 초기 설정되었다면, NAV 업데이트 지시자=0으로 설정될 수 있다.
STA이 자신의 AP로부터 트리거 프레임을 수신하여 UL MU 프레임을 전송하는데 있어서, 현재 NAV이 인트라 BSS STA이 전송한 프레임에 의한 것이면, STA은 NAV 업데이트 지시자를 확인한다. NAV 업데이트 지시자=0이면, STA은 현재 NAV이 새롭게 설정(e.g., NAV=0으로부터 초기 설정)되었다고 판단하고, 설정된 NAV을 고려하지 않는다(e.g., UL 프레임 전송). 만약, NAV 업데이트 지시자= 1이면, STA은 현재 NAV이 non-zero값으로부터 업데이트 된 것이라고 판단하고, 설정된 NAV을 고려할 수 있다(e.g., NAV 만료 전에는 UL 프레임 전송하지 않음).
STA이 인트라 BSS STA(e.g., AP)로부터 CF-End를 수신하였을 때, 현재 NAV이 인트라 BSS 프레임에 의한 것이면, STA는 NAV 업데이트 지시자를 확인한다. NAV 업데이트 지시자=0이면, STA은 현재 NAV이 초기 설정된 것이라고 판단하고, NAV을 리셋할 수 있다. NAV 업데이트 지시자= 1이면, STA은 현재 NAV이 non-zero값으로부터 업데이트 된 것이라고 판단하여, NAV을 리셋하지 않을 수 있다.
RTS 또는 MU-RTS프레임을 수신한 STA(e.g., third party)이 지정된 시간 안에 프레임(e.g., CTS)을 수신하지 못했을 때, NAV 업데이트 지시자를 확인할 수 있다. NAV 업데이트 지시자= 0이면, STA은 현재 NAV이 초기 설정된 것이라고 판단하고, NAV을 리셋할 수 있다. NAV 업데이트 지시자=1이면, STA은 현재 NAV이 non-zero값으로부터 업데이트 된 것이라고 판단하여, 설정된 NAV을 리셋하지 않을 수 있다.
(5)
NAV
관리의
실시예
6-5: 내
BSS
NAV
차이 값
상술된 방법들은 인트라 BSS (또는 내BSS) NAV에서 인터 BSS (또는 OBSS) NAV으로 업데이트 될 때에도 사용 될 수 있다. 이 경우, STA이 계산 하고 저장하는 값은 NAV 업데이트 지시자 대신에 인트라 BSS NAV 차이 값 또는 내 BSS NAV 차이 값으로 명칭될 수 있으며, 이에 한정되지 않는다. 편의상 내 BSS NAV 차이 값이라 지칭하기로 한다.
인트라 BSS NAV (i.e., 인트라 BSS 프레임을 수신하여 설정/업데이트 된 NAV을 가리킴)을 유지하던 STA이 인터 BSS 프레임을 수신하여 NAV을 업데이트 하는 경우, STA은 내 BSS NAV 차이 값을 계산한다. 내 BSS NAV 차이 값은 상술한 OBSS NAV 차이 값과 유사한 방식으로 계산될 수 있다. 예컨대, 내 BSS NAV 차이 값은 {현재 수신된 OBSS 프레임에 의해 계산된 NAV 값 - 현재의 NAV 값(e.g., 내 BSS NAV value)} 으로 계산될 수 있다. NAV 업데이트에 의해, 내 NAV은 OBSS NAV으로 변경된다. STA은 저장된 내 BSS NAV 차이 값을 사용하여 MyBSS NAV이 유효한지를 검사할 수 있다. 예컨대, OBSS NAV이 OBSS STA에 의해서 전송된 프레임(e.g., CF-End)에 의해서 NAV이 리셋되어야 하는 경우에, STA은 내 BSS NAV가 유효한지를 검사할 수 있다. 내 BSS NAV이 유효하다면, STA은 현재 NAV(e.g., OBSS NAV)를 내 BSS NAV으로 업데이트한다.
한편, STA은 내 BSS NAV 차이 값이 특정 임계치 (e.g., 디폴트 값은 0) 이상이면, 내 BSS NAV이 유효한지 검사할 필요가 있다고 판단 할 수 있다.
내 BSS NAV가 유효한지를 검사하는데 있어서 STA은 {현재 NAV 값 - 내 BSS NAV 차이 값}이 특정 임계값 (e.g., 디폴트 값은 0) 이상일 경우, 내 BSS NAV이 유효하다고 간주할 수 있다.
이 때, 내 BSS NAV은 {현재 NAV 값 - 내BSS NAV 차이 값}일 수 있다.
NAV
관리의
실시예들의
요약
상술된 바와 같이, STA이 OBSS STA으로부터 CF-END 프레임을 수신하면, STA은 현재의 NAV 가 (e.g., 가장 최근의 NAV 업데이트/설정)가 인트라 BSS 프레임에 의한 것인지 여부를 고려하여야 한다. 만약, 가장 최근의 NAV 업데이트가 인트라 BSS 프레임에 의한 것이면, STA은 OBSS로부터의 CF-END 프레임에 기초하여 NAV를 리셋하지 않는다(e.g., 인트라 BSS NAV의 보호).
또한, 인트라 BSS NAV 뿐 아니라, 인터 BSS NAV 도 보호될 필요가 있다. 예를 들어, 인트라 BSS STA으로부터 CF-END 프레임이 수신되면, STA은 현재의 NAV(e.g., 가장 최근의 NAV 업데이트/설정)가 인터 BSS 프레임에 의한 것인지 여부를 고려하여야 한다. 만약, 가장 최근의 NAV 업데이트가 인터 BSS 프레임에 의한 것이면, STA은 내 BSS로부터의 CF-END 프레임에 기초하여 NAV를 리셋하지 않을 수 있다(e.g., 인터 BSS NAV의 보호).
아울러, OBSS에 의해 설정된 NAV가 인트라 BSS 프레임에 의해서 업데이트되는 경우에 있어서, 인트라 BSS 프레임에 의한 TXOP truncation이 고려될 필요가 있다. 이하에서는 상술된 논의들을 바탕으로 인트라 BSS 프레임에 의한 TXOP truncation 방법 및/또는 UL MU 프레임 응답(e.g., 트리거 프레임에 기초한 전송)에 사용 가능한 방법들을 더 살펴본다.
도 31은 인트라 BSS 프레임에 의한 TXOP truncation을 예시한다. STA의 NAV는 OBSS에 의해서 설정된 것이라고 가정한다. STA은 자신의 AP로부터 프레임(e.g., TF 또는 CTS 등)을 수신하면, NAV를 업데이트 한다. 이후, AP가 CF-END 프레임을 전송하면 STA은 NAV를 리셋한다. NAV 리셋 이후 STA이 UL 프레임을 전송하는 경우, OBSS의 NAV가 보호될 수 없는 문제점이 있다.
도 32는 도 31의 문제점을 해결하기 위한 본 발명의 일 실시예에 따른 NAV 관리 방안을 예시한다. 도 31과 중복되는 설명은 생략한다.
도 32를 참조하면, STA이 자신의 AP로부터 CF-END 프레임을 수신하면, STA은 NAV를 리셋하기 이전에, OBSS NAV가 유효한지 여부를 먼저 판단하여야 한다. OBSS NAV가 유효하다면 STA은 NAV를 리셋하지 않을 수 있다. 예컨대, OBSS NAV가 유효하다면 STA은 현재의 NAV를 OBSS NAV로 업데이트(e.g., 복원)할 수 있다.
도 33은 NAV 차이 값을 설명하기 위한 예시이다.
OBSS NAV가 인트라 BSS 프레임에 의해서 업데이트 되는 경우, STA은 NAV 차이 값을 계산 및 저장할 수 있다. NAV 차이 값은 {수신된 프레임(e.g., 인트라 BSS 프레임)에 의한 NAV 값 - 현재 NAV 값}일 수 있다.
이후에, STA은 CF-END 프레임을 자신의 AP로부터 수신한다. STA은 NAV를 리셋하기 이전에 OBSS NAV가 유효한지 여부를 체크한다. OBSS NAV의 유효성은 NAV 차이 값에 기초하여 계산될 수 있다. 예컨대, {현재(e.g., OBSS NAV 유효성 체크 시점) NAV 값 X - NAV 차이 값 Y }가 0보다 큰 경우, STA은 OBSS NAV가 유효하다고 판단할 수 있다. 예컨대, 인트라 BSS 프레임에 의한 NAV 업데이트가 없었다는 가정하에 잔여 OBSS NAV가 존재한다면 STA은 OBSS NAV가 여전히 유효한 것이라고 판단할 수 있다.
OBSS NAV가 유효하다면, STA은 유효한 OBSS NAV 값으로 현재의 NAV를 업데이트 할 수 있다(e.g., CF-END 프레임 수신 등을 원인으로 내 BSS NAV가 더 이상 보호될 필요가 없는 경우). OBSS NAV 값을 통한 NAV 업데이트는, 인트라 BSS 프레임에 의해서 NAV가 업데이트되지 않았더라면 계속되었을 OBSS NAV 값을 복원하는 것으로 이해될 수 있다.
OBSS NAV가 유효하지 않다면, STA은 NAV를 리셋 할 수 있다(e.g., OBSS NAV 및 내 BSS NAV 모두 보호될 필요가 없는 경우).
도 34는 본 발명의 일 실시예에 따른 NAV 업데이트를 설명하기 위한 예시이다. STA 5에는 OBSS NAV가 설정되었다고 가정한다.
STA 5는 TF1(e.g., 인트라 BSS 프레임)을 통해 NAV(e.g., OBSS NAV)를 업데이트 할 때, NAV 차이 값을 계산 및 저장한다.
STA 5는 TF 2를 수신한다. TF 2에 의한 NAV 업데이트는 없으며, TF 2는 STA 5에 대한 자원 할당 정보를 포함한다고 가정한다.
STA 5는 TF 2에 기초하여 UL 프레임을 전송하기 이전에, NAV 차이 값을 이용하여 OBSS NAV가 유효한지 여부를 체크한다. 예컨대, {현재(e.g., OBSS NAV 체크 시점) NAV 값 - NAV 차이 값}이 0보다 크다면, STA 5는 OBSS NAV가 유효하다고 가정할 수 있다.
OBSS NAV가 유효한 동안 STA 5는 TF 2에 기초한 UL 프레임 전송을 수행하지 않는다(e.g., OBSSS NAV 고려).
(i) 하나의
NAV
타이머를 이용한 다수의
NAV들
관리
한편, STA은 하나의 NAV 타이머를 통해서 다수의 NAV들(e.g., 2개의 NAV) 관리할 수 있다. 다수의 NAV 들은 인트라 BSS NAV 및 비-인트라 BSS NAV를 포함할 수 있다. 인트라 BSS NAV는 인트라 BSS 프레임에 의해 업데이트 되는 NAV일 수 있다. 비-인트라 BSS NAV는 인트라 BSS 프레임이 아닌 프레임 또는 인트라 BSS 프레임으로 결정할 수 없는 프레임(e.g., 인터 BSS 프레임, 또는 CTS/ACK 등과 같이 인터 BSS 프레임인지 아니면 인트라 BSS 프레임인지를 구별할 수 없는 프레임)에 의해 업데이트 되는 NAV 일수 있다. 비-인트라 BSS NAV는 레귤러 NAV로 지칭될 수도 있다.
현재의 NAV(e.g., 하나의 NAV 타이머)가 인트라 BSS NAV에 의해 설정된 것이고, 인트라 BSS 프레임이 아닌 프레임에 의해서 업데이트되는 경우(또는 그 반대의 경우), STA은 NAV 차이 값을 계산하여 저장할 수 있다. NAV 차이 값은 {수신된 프레임에 의한 NAV 값 - 인트라 BSS NAV} 이거나 또는 {수신된 프레임에 의한 NAV 값 -인터 BSS NAV}일 수 있다.
이후 STA은 자신의 NAV(e.g., 하나의 NAV 타이머)를 인터 BSS 프레임의 duration을 통해 업데이트 할 수 있다. 따라서, STA의 현재의 NAV는 인터 BSS NAV로 볼 수 있다.
NAV 차이 값이 0인 경우, 두 개의 NAV들이 모두 유효하지 않거나 또는 현재 NAV만 유효한 경우 일 수 있다.
만약 NAV 의 체크가 필요한 경우(e.g., UL MU 프레임을 전송하기 전에 또는 NAV 리셋하기 전에), STA은 2개의 NAV들이 유효한지 여부를 체크할 수 있다. 예컨대, 2 개 NAV들의 값들이 모두 0이 아니라면, 2 개의 NAV들이 모두 유효하다고 판단된다. NAV 값이 0인 NAV는 유효하지 않다고 판단된다. 2개의 NAV들의 유효성을 판단하기 위하여 NAV 차이 값이 이용될 수 있다. 예를 들어, {현재 NAV 값(e.g., 하나의 NAV 타이머)- NAV 차이 값}이 0보다 큰 경우에는 2 개의 NAV들이 유효하다고 판단된다(e.g., 현재 NAV 값도 0이 아니므로). 그러나 {현재의 NAV 값- NAV 차이 값}이 0 보다 크지 않다면, 오직 1개의 NAV(e.g., 인트라 BSS NAV 또는 인터 BSS NAV)만 유효한 것으로 판단된다.
만약, 2개의 NAV들이 모두 유효하다면, STA은 2개의 NAV들을 모두 고려하여 동작한다. 현재의 NAV (e.g., 인트라 BSS NAV 또는 인터 BSS NAV) 만 유효하다면 STA은 해당 NAV 만 고려하여 동작할 수 있다.
현재의 NAV(e.g., 하나의 NAV 타이머)가 인트라 BSS NAV이고, STA이 인트라 BSS STA으로부터 CF-END 프레임을 수신한 경우를 가정한다. 만약, 2 NAV들이 모두 유효하다면 STA은 현재의 NAV(e.g., 하나의 NAV 타이머)를 비-인트라 NAV(e.g., 현재의 NAV 값- NAV 차이 값)로 업데이트 한다. 2 NAV 들이 모두 유효하지 않은 경우에는, STA은 CF-END 프레임에 기초하여 현재의 NAV(e.g., 하나의 NAV 타이머)를 리셋한다.
현재의 NAV(e.g., 하나의 NAV 타이머)가 인트라 BSS NAV이고, STA이 인터 BSS STA으로부터 CF-END 프레임을 수신한 경우를 가정한다. 만약, 2 NAV들이 모두 유효하다면 STA은 인트라 BSS에 해당하는 현재의 NAV(e.g., 하나의 NAV 타이머)를 리셋하지 않는다. 그러나, STA은 비-인트라 NAV는 리셋할 수 있다. 비-인트라 NAV의 리셋은 NAV 차이 값을 0으로 설정하는 것을 의미할 수 있다.
현재의 NAV(e.g., 하나의 NAV 타이머)가 비-인트라 BSS NAV이고, STA이 인터 BSS STA으로부터 CF-END 프레임을 수신한 경우를 가정한다. 만약, 2 NAV들이 모두 유효하다면 STA은 비-인트라 BSS에 대응하는 현재의 NAV(e.g., 하나의 NAV 타이머)를 인트라 NAV(e.g., 현재의 NAV 값- NAV 차이 값)로 업데이트 한다. 2 NAV 들이 모두 유효하지 않은 경우에는, STA은 CF-END 프레임에 기초하여 현재의 NAV(e.g., 하나의 NAV 타이머)를 리셋한다.
현재의 NAV(e.g., 하나의 NAV 타이머)가 비-인트라 BSS NAV이고, STA이 인트라 BSS STA으로부터 CF-END 프레임을 수신한 경우를 가정한다. 만약, 2 NAV들이 모두 유효하다면 STA은 비-인트라 BSS에 해당하는 현재의 NAV(e.g., 하나의 NAV 타이머)를 리셋하지 않는다. 그러나, STA은 인트라 NAV는 리셋할 수 있다. 인트라 NAV의 리셋은 NAV 차이 값을 0으로 설정하는 것을 의미할 수 있다.
(ii) 다수의
NAV
타이머를 이용한 다수의
NAV들
관리
이와 같이, STA은 UL MU 프레임 등을 전송하는데 있어서 NAV를 고려할 수 있으며, 특히 STA은 다수 NAV들(e.g., 인트라 BSS NAV / 비-인트라 BSS NAV)을 관리할 수 있다. 다수의 NAV들을 관리하기 위하여, STA은 하나의 NAV 타이머를 설정하는 방법(e.g., NAV 차이 값 이용)외에 다수의 NAV 타이머들을 설정할 수도 있다. 예컨대, 인트라 BSS NAV 및 비-인트라 BSS NAV 각각에 대하여 별도의 NAV 타이머가 설정될 수 있다.
예컨대, 인트라 BSS NAV 타이머는 인트라 BSS 프레임/PPDU에 의해서 업데이트되는 NAV 타이머일 수 있다. 비-인트라 BSS NAV 타이머는, 인트라 BSS 프레임이 아니거나, 인트라 BSS인지 인터 BSS인지를 구별할 수 없는 프레임에 의해서 업데이트되는 NAV 타이머 일 수 있다.
STA은 트리거 프레임에 대응하여 UL MU 프레임을 전송하기 이전에 비-인트라 BSS NAV 타이머를 고려하여야 한다.
또한, STA은 인트라 BSS로부터 CF-END 프레임이 수신되면 인트라 BSS NAV를 리셋하고, 인터 BSS로부터 CF-END 프레임이 수신되면 비-인트라 BSS NAV를 리셋할 수 있다.
도 35는 본 발명의 일 실시예에 따른 2개의 NAV 타이머들을 예시한다.
도 35를 참조하면, STA은 OBSS STA으로부터 TF 또는 CTS 등의 프레임을 수신하여 비-인트라 BSS NAV 타이머를 설정한다.
STA은 자신의 AP로부터 TF 또는 CTS 프레임을 수신하고, 인트라 BSS NAV 타이머를 시작한다. STA은 자신의 AP로부터 CE-END 프레임을 수신하면 인트라 BSS NAV 타이머를 리셋한다.
하나의 NAV 타이머를 통해서 2개의 NAV들을 관리하는 실시예에서 STA은 현재 NAV 타이머가 값이 어느 하나의 NAV에서 다른 하나의 NAV로 변경될 때마다 NAV 차이값을 계산하여 저장할 수 있다.
2개의 NAV 타이머들을 통해서 2개의 NAV들을 관리하는 실시예에서 STA은 UL MU 프레임 전송이전에 비-인트라 BSS NAV를 고려하여야 하며, CF-END 프레임이 수신되면 해당 NAV 타이머를 리셋한다.
도 36은 본 발명의 일 실시예에 따른 NAV 관리 방법을 예시한다. 상술된 설명과 중복되는 설명은 생략된다.
도 36을 참조하면 STA은 구간(duration) 정보를 포함하는 프레임을 수신한다(S3605). 구간 정보는 HE-SIG A 필드에 포함된 TXOP duration 필드가 지시하는 TXOP duration 값이거나 또는 MAC 헤더에 포함된 duration 필드가 지시하는 MAC duration 값일 수 있으며, 이에 한정되지 않는다.
예컨대, 프레임은, RTS, CTS 등의 제어 프레임, 관리 프레임, 트리거 프레임 또는 HE-PPDU 기반의 프레임 또는 Non-HE PPDU 기반의 프레임일 수 있으며, 이에 한정되지 않는다.
STA은 다수의 NAV 들 중 소정의 NAV를 선택한다(S3610).
예컨대, STA은 다수의 NAV들을 갖을 수 있다. 다수의 NAV들은, 인트라 BSS NAV 및 비-인트라 BSS NAV를 포함할 수 있다. 비-인트라 BSS NAV는, OBSS(other BSS) 프레임을 위한 것일 수 있다. 추가적으로, 비-인트라 BSS NAV는 BSS를 특정 할 수 없는 프레임을 위한 것일 수도 있다. BSS를 특정할 수 없는 프레임은 예컨대, RA 필드 또는 TA 필드 등에서 BSSID 정보를 갖지 않는 프레임 일 수 있다 (e.g., ACK, CTS 등).
소정의 NAV는, 해당 프레임이 STA이 속하는 BSS(basic service set)로부터 수신된 것인지 여부에 기초하여 선택될 수 있다. 예컨대, STA은 프레임이 내 BSS로부터 수신되었는지 여부를 판단할 수 있다.
STA은 프레임이 STA이 속한 BSS로부터 수신된 것으로 결정되면 제1 NAV(e.g., 인트라 BSS NAV)를 선택하고, 프레임이 STA이 속하지 않는 BSS로부터 수신된 것으로 결정되면 제2 NAV를 선택(e.g., 비-인트라 BSS NAV)할 수 있다. 추가적으로, STA은 프레임이 어느 BSS로부터 수신된 것인지를 결정할 수 없는 경우에도 제2 NAV를 선택(e.g., 비-인트라 BSS NAV)할 수 있다.
STA은 프레임의 구간 정보에 기초하여 소정의 NAV를 관리할 수 있다(S3615). NAV 관리는, NAV 초기 설정, NAV 업데이트 또는 NAV 리셋 중 어느 하나일 수 있으며, 이에 한정되지 않는다.
다수의 NAV들 중 어느 하나라도 0 보다 큰 값을 갖는 경우, STA은 채널 엑세스를 보류할 수 있다.
일 실시예에 따르면, STA은 다수의 NAV들에 대응되는 다수의 NAV 타이머들을 설정할 수 있다.
다른 일 실시예에 따르면, STA은 하나의 NAV 타이머만 설정할 수도 있다. 예컨대, 다수의 NAV들은, 다수의 NAV들 간의 차이 값과 하나의 NAV 타이머를 통해서 관리될 수 있다. 하나의 NAV 타이머의 값이 제1 NAV로부터 제2 NAV로 변경되거나 또는 제2 NAV로부터 제1 NAV로 변경되는 경우, 다수의 NAV들 간의 차이 값이 업데이트될 수 있다. 또한, STA은 하나의 NAV 타이머에 맵핑된 어느 하나 NAV의 현재 값과 다수의 NAV들 간의 차이 값을 이용하여 다른하나의 NAV의 유효성을 판단할 수도 있다.
도 37은 상술한 바와 같은 방법을 구현하기 위한 장치를 설명하기 위한 도면이다.
도 37의 무선 장치(800)은 상술한 설명의 특정 STA, 그리고 무선 장치(850)은 상술한 설명의 AP에 대응할 수 있다.
STA (800)은 프로세서(810), 메모리(820), 송수신기(830)를 포함할 수 있고, AP (850)는 프로세서(860), 메모리(870) 및 송수신기(880)를 포함할 수 있다. 송수신기(830 및 880)은 무선 신호를 송신/수신하고, IEEE 802.11/3GPP 등의 물리적 계층에서 실행될 수 있다. 프로세서(810 및 860)은 물리 계층 및/또는 MAC 계층에서 실행되고, 송수신기(830 및 880)와 연결되어 있다. 프로세서(810 및 860)는 상기 언급된 UL MU 스케줄링 절차를 수행할 수 있다.
프로세서(810 및 860) 및/또는 송수신기(830 및 880)는 특정 집적 회로(application-specific integrated circuit, ASIC), 다른 칩셋, 논리 회로 및/또는 데이터 프로세서를 포함할 수 있다. 메모리(820 및 870)은 ROM(read-only memory), RAM(random access memory), 플래시 메모리, 메모리 카드, 저장 매체 및/또는 다른 저장 유닛을 포함할 수 있다. 일 실시 예가 소프트웨어에 의해 실행될 때, 상기 기술한 방법은 상기 기술된 기능을 수행하는 모듈(예를 들어, 프로세스, 기능)로서 실행될 수 있다. 상기 모듈은 메모리(820, 870)에 저장될 수 있고, 프로세서(810, 860)에 의해 실행될 수 있다. 상기 메모리(820, 870)는 상기 프로세스(810, 860)의 내부 또는 외부에 배치될 수 있고, 잘 알려진 수단으로 상기 프로세스(810, 860)와 연결될 수 있다.
상술한 바와 같이 개시된 본 발명의 바람직한 실시형태에 대한 상세한 설명은 당업자가 본 발명을 구현하고 실시할 수 있도록 제공되었다. 상기에서는 본 발명의 바람직한 실시 형태를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 상술한 설명으로부터 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명은 여기에 나타난 실시형태들에 제한되려는 것이 아니라, 여기서 개시된 원리들 및 신규한 특징들과 일치하는 최광의 범위를 부여하려는 것이다.