본 출원은 참조로서 그 전체 내용이 본 명세서에 포함된 2004년 8월 10일에 출원된 미국 가출원 제60/600,413호의 이익을 청구한다.
당업자는 도면의 구성요소가 간단함과 명료함을 위해 도시되었으며 반드시 크기에 비례하여 도시되지 않았음을 알 것이다. 예를 들면, 도면에서 일부 구성요소의 차원은 본 발명의 실시예의 이해를 강화하기 위해서 다른 구성요소에 비해 크게 될 수 있다.
본 발명에 따른 실시예를 상세하게 기술하기 전에, 실시예는 무선망에서 다중 유형의 라디오가 공통 무선 라우팅 프로토콜을 사용하여 동작할 수 있도록 무선 통신망, 구체적으로 무선 애드혹 피어 대 피어 통신망의 물리 계층의 추상화(abstraction)를 제공하는 것과 관련된 방법 단계 및 장치 구성요소의 조합에 주로 있음을 보아야 한다. 따라서, 장치 구성요소 및 방법 단계는 본 명세서의 설명의 이익을 가지고 당업자에게 용이하게 자명해질 상세부를 가진 개시를 불명료하게 하지 않도록 본 발명의 실시예를 이해하는데 관계 있는 특정 상세설명을 도시하는 것으로서 도면에서 종래의 심볼에 의해 적절하게 표현되었다.
본 명세서에서, 제1 및 제2, 상부 및 하부 등과 같은 관계성 용어는 단지 하나의 주체 또는 행동을 다른 주체 또는 행동과 구별하기 위해서 이러한 주체 또는 행동 사이의 어떠한 실제 이러한 관계 또는 순서를 반드시 요구하거나 의미하지 않 고 사용될 수 있다. "포함한다", "포함하는" 또는 모든 다른 그 파생어는 배타적이지 않은 포함을 커버하기 위해 의도되어, 구성요소의 목록을 포함하는 프로세스, 방법, 구조물 또는 장치는 단지 이 구성요소들만 포함하는 것이 아니라 나열되지 않은 또는 이러한 프로세스, 방법, 구조물 또는 장치에 고유한 다른 구성요소를 포함할 수 있다. 다른 제약없이 "하나의 ...을 포함한다"에 주어진 구성요소는 구성요소를 포함하는 프로세스, 방법, 구조물 또는 장치의 추가적인 동일 구성요소의 존재를 배제하는 것은 아니다.
본 명세서에 기술된 본 발명의 실시예는 하나 이상의 종래의 프로세서 및 본 명세서에 기술된 것처럼 무선망에서 다중 유형의 라디오가 공통 무선 라우팅 프로토콜을 사용하여 동작할 수 있도록 무선 통신망의 물리 계층의 추상화를 제공하기 위한 일정 비프로세서 회로, 일부, 대부분 또는 전체 기능과 결합하여 구현하기 위한 하나 이상의 프로세서를 제어하는 저장된 고유 프로그램 명령을 포함할 수 있음을 알 것이다. 비프로세서 회로는 이에 한정되지는 않지만 라디오 수신기, 라디오 전송기, 신호 드라이버, 클럭 회로, 전원 회로, 사용자 입력 장치를 포함할 수 있다. 이로서, 이러한 기능은 무선망에서 다중 유형의 라디오가 공통 무선 라우팅 프로토콜을 사용하여 동작할 수 있도록 무선 통신망의 물리 계층의 추상화를 제공하기 위한 동작을 수행하기 위한 방법의 단계로서 해석될 수 있다. 대안적으로, 일부 또는 모든 기능은 저장된 프로그램 명령이 없는 상태 머신으로서 또는 일정 기능의 각 기능 또는 일부 조합이 주문형 로직으로서 구현되는 하나 이상의 주문형 집적 회로(ASIC)로서 구현될 수 있다. 물론, 두 방법의 결합이 사용될 수도 있다. 그러므로, 이러한 기능을 위한 방법 및 수단이 본 명세서에 기술되었다. 또한, 예를 들면 사용할 수 있는 시간, 현재 기술, 경제적 고려사항에 의해 동기부여되는 상당한 노력 및 많은 설계 선택사항에도 불구하고 당업자는 본 명세서에 개시된 개념 및 원리에 의해 유도될 때 이러한 소프트웨어 명령 및 프로그램 및 IC를 최소한의 실험으로 용이하게 생성할 수 있을 것이다.
이하 더 상세하게 설명되는 것처럼, 본 발명은 무선 통신망, 구체적으로 무선 애드혹 피어 대 피어 통신망의 물리 계층의 추상화를 생성할 수 있고, 무선망의 이러한 라디오 주파수(RF) 단말 등과 같은 다중 유형의 라디오가 공통 무선 라우팅 프로토콜을 사용하여 동작할 수 있도록 물리 계층으로부터의 피드백을 정규화(normalize)하는 시스템 및 방법을 제공한다. 이 라우팅 프로토콜은 실제로 라우트를 선택하거나 이러한 링크 품질 정보를 분배하는 방법에 상관없이 최선의 라우트를 판정하기 위해서 링크 품질 메트릭을 사용한다. 생성된 라우팅 메트릭은 그 상대적 성능 또는 그 MAC 기술에 상관없이 임의의 라디오를 위해 얻어질 수 있다. 본 시스템 및 방법은 무선 통신망의 모든 유형의 라디오에 대해, 예를 들면 데이터 레이트 선택, 전력 제어 및 단편화인 링크 적응도 용이하게 한다.
하드에어 추상화 계층은 정규화된 통계를 물리 계층으로부터 수집하고, 사용되는 물리 계층에 특정한 파라미터의 값을 판정하고, 라우트 및 채널 접속 기법을 선택하기 위해 이러한 통계 및 파라미터를 사용하기 위한 소프트웨어 기초 또는 알고리즘 프레임워크를 더 제공한다.
도 1은 본 발명의 실시예를 사용하는 애드혹 패킷 교환 무선 통신망(100)의 예를 도시하는 블럭도이다. 구체적으로, 망(100)은 복수의 이동 무선 사용자 단말(102-1 내지 102-n)[일반적으로 노드(102) 또는 이동 노드(102)로 지칭됨]을 포함하고, 이에 한정되지는 않지만 노드(102)에 고정망(104)으로의 접속을 제공하기 위한 복수의 접속점(106-1, 106-2, ..., 106-n)[일반적으로 노드(106) 또는 접속점(106)으로 지칭됨]을 구비한 고정망(104)을 포함할 수 있다. 고정망(104)은 망 노드에 다른 애드혹 망, 공중 교환 전화망(PSTN) 및 인터넷과 같은 다른 망으로의 접속을 제공하기 위한, 예를 들면 코어 로컬 접속망(LAN) 및 복수의 서버 및 게이트웨이 라우터를 포함할 수 있다. 망(100)은 다른 노드(102, 106 또는 107) 사이에서 데이터 패킷을 라우팅하기 위한 복수의 고정 라우터(107-1 내지 107-n)[일반적으로 노드(107) 또는 고정 라우터(107)로 지칭됨]를 더 포함할 수 있다. 이러한 설명을 목적으로, 전술된 노드는 집합적으로 노드(102, 106, 107) 또는 단순히 "노드"로 지칭될 수 있음을 주의하자.
당업자가 알 수 있는 것처럼, 앞서 참조된 미국 특허 출원 제09/897,790호 및 미국 특허 제6,807,165호, 미국 특허 제6,873,839호에 기술된 것처럼 노드(102, 106, 107)는 서로 직접 또는 노드 사이에서 전송되는 패킷을 위한 라우터 또는 라우터들로서 동작하는 하나 이상의 다른 노드(102, 106 또는 107)를 통해 통신할 수 있다.
도 2에 도시된 것처럼, 각 노드(102, 106, 107)는 안테나(110)에 연결되고 제어기(112)의 제어 아래에서 노드(102, 106 또는 107)와 패킷화된 신호와 같은 신호를 수신 및 전송할 수 있는 트랜시버 또는 모뎀(108)을 포함한다. 패킷화된 데 이터 신호는, 예를 들면 음성, 데이터 또는 멀티미디어 정보, 및 노드 갱신 정보를 포함하는 패킷화된 제어 신호를 포함할 수 있다.
각 노드(102, 106, 107)는 여러 가지 것 중에서 망(100)에 있는 자신과 다른 노드에 관한 정보를 저장, 라우팅할 수 있는 랜덤 액세스 메모리(RAM)와 같은 메모리(114)를 더 포함한다. 도 2에 더 도시된 것처럼, 일정한 노드, 구체적으로 이동 노드(102)는 노트북 컴퓨터 단말, 이동 전화 유닛, 이동 데이터 유닛 또는 임의의 다른 적절한 장치와 같은 임의의 수의 장치를 포함할 수 있는 호스트(116)를 포함할 수 있다. 각 노드(102, 106, 107)는 그 목적이 당업자에 의해 용이하게 이해될 수 있는 인터넷 프로토콜(IP) 및 주소 결정 프로토콜(ARP)을 수행하기 위한 적절한 하드웨어 및 소프트웨어도 포함한다. 전송 제어 프로토콜(TCP) 및 사용자 데이터그램 프로토콜(UDP)을 수행하기 위한 적절한 하드웨어 및 소트프웨어도 포함될 수 있다.
도 3은 본 발명의 실시예에 따라 도 1에 도시된 망(100)에서 사용된 하드웨어 추상화 및 정규화 계층(200)의 기능을 도시하는 도면이다. 구체적으로, 도 3은 물리 계층/매체 접촉 계층(PHY/MAC) 계층(202)과 라우팅 계층(208)(도 4 참조) 사이의 추상화 및 정규화 계층(200)의 예를 도시하고, 물리 계층/MAC 인터페이스 정보(204) 및 링크/이웃 기술자(Link/Neighbor Descriptor) 정보(206)를 라우팅 계층(208)에 제공한다. PHY/MAC 계층(202)은 대안적으로 MAC/PHY 계층으로도 지칭될 수 있음을 알자. 예를 들면 데이터 레이트 또는 전송 전력이 선택될 때, 데이터는 PHY/MAC 계층(202)을 향해 반대 방향으로 흐르기도 한다. 도면에 예시된 802.11a 및 802.11g 유형 계층 및 블루투스(Bluetooth) 계층과 같은 각각의 예시된 PHY/MAC 계층(202)은 작은 패킷을 위해 전송된 전송 요청 메시지(RTS) 없음 등과 같은 특정한 구성 및 재시도의 수, 수신 신호 세기, 할당된 시간 슬롯 수 등과 같은 특정 피드백 특성은 물론 RTS의 길이, 데이터 레이트, 패킷 실패 벌칙, 슬롯 간격, 듀티 사이클 등과 같은 특정한 특성을 가진다. 이러한 파라미터 전부는 라우팅 계층(208)에 의해 해석될 수 있는 정보로 번역된다. 이 정보는, 예를 들면 이하 더 상세하게 설명될 처리 요약 및 오버헤드 표에 의해 제공된다.
PHY/MAC 계층(202) 및 라우팅 계층(208) 사이의 통합의 다른 예가 도 4에 도시되어 있고, 3개의 다른 이벤트, 즉 데이터가 전송되어야 할 때 전송 요청, 전송이 성공하거나 실패했을 때 전송 완료, 도 1에 관해 전술된 노드(102, 106, 107)와 같은 노드에 의해 데이터가 수신되었을 때 수신인 이벤트의 사용에 의해 용이하게 된다. 이 구조는 여러 계층을 완전히 통합하는 것은 아니고, 오히려 본 명세서에 설명된 본 발명의 실시예의 목적을 위해 구조는 모든 환경에서 동작할 수 있는 방식으로 여러 계층을 부분적으로 통합하는 것으로 충분하다. 또한, 이 구조는 직교 주파수 분할 다중화(OFDM) 또는 주파수 호핑 확산 스펙트럼(FHSS) 라디오, 캐리어 센스 다중 접속(CSMA) 또는 시간 분할 다중 접속 매체 접속 제어(TDMA MAC) 또는 애드혹 온디맨드(ad-hoc on-demand) 거리 벡터(AODV) 또는 데이터 시그널링 레이트(DSR) 라우팅 프로토콜과 같은 특정 유형의 계층이 사용되어야 하는 것으로 가정하지 않고, 오히려 계층이 어느 정도의 유연성을 가지고 함께 동작할 수 있게 한다. 구조는 목표 완료 레이트 또는 신호 대 잡음 비(SNR)와 같은 주요 파라미터의 조정을 위한 능력도 제공한다.
표시한 것처럼, 구조는, 예를 들면 링크 품질 라이브러리(212) 및 레이트 선택 라이브러리(214)와 같은 라우팅 라이브러리의 조건을 고려할 수 있는 운영체계(OS) 추상화 계층(216) 및 하드웨어 추상화 계층(218)을 사용하여 PHY/MAC 계층(202)을 라우팅 계층(208) 및 망 계층(210)과 통합한다. 이 예에 표시된 것처럼, 망 계층(210)에서 PHY/MAC 계층(202)으로의 전송(Tx)(222)은 라우팅 계층(208) 및 레이트 선택 라이브러리(214)와 같은 라우팅 계층 라이브러리로부터 얻은 정보와 협동하여 하드웨어 추상화 계층(218)을 통해 일어날 수 있다. 마찬가지로, 데이터 프레임의 수신을 표시하는 수신 메시지(Rx)(220)는 라우팅 계층(208) 및 링크 품질 라이브러리(212)와 협동하여 하드웨어 추상화 계층(218)을 통해 PHY/MAC 계층(202)에 의해 망 계층(210)에 발행될 수 있다. 전송 콜백 메시지(Tx_Cb)(226)는 라우팅 계층에 의해 직접 발행되고 망의 하나 이상의 다른 노드에 분배를 위해 MAC/PHY 계층에 전송될 수 있다. 전송 콜백 메시지 Tx_Cb는 통상적으로 온디맨드 라우팅 프로토콜에서 사용되는 것과 같은 헬로우 메시지, 라우트 요청, 라우트 응답 등을 포함하는 것인 토폴로지 데이터베이스를 구축하기 위해 라우팅 계층에 의해 사용되는 메시지이다. 마찬가지로, 수신 콜백 메시지 Rx_Cb(224)는 전송 요청 Tx(222)이 직접 응답되어야 하면 망 계층에 응답으로 라우팅 계층에 의해 직접 발행될 수 있다. 수신 콜백 메시지 Rx_Cb는 라우팅 프로토콜이 이러한 응답을 제공하려고 의도된 것이면 주소 결정 프로토콜(ARP)과 같은 망 계층 특정 패킷에 대한 응답을 통상 포함한다(아니면 라우팅 프로토콜은 MAC/PHY 계층에 망 계층 특정 패킷을 전달할 수 있다). 전송 완료 메시지 Tx_complete(228)는 표시된 것처럼 MAC/PHY 계층으로부터 링크 품질 모듈로 전송된다. 이는 링크 품질 모듈이 MAC/PHY 계층에서 다양한 데이터 통신 링크의 성능을 측정하게 허용한다. 전송 완료(Tx_complete) 메시지(228) 및 수신(Rx) 메시지(220)는 처리 요약에 의해 달성될 수 있는데 이는 이하 설명된다.
하드웨어 추상화 계층(218)은 PHY/MAC 계층(202)의 유형에 독립적으로 모든 라우팅 라이브러리의 사용을 더 허용한다. 즉, 라우팅 라이브러리는 계층이 전술한 전송 완료 메시지 Tx_complete(228) 및 수신 메시지 Rx(220)와 같은 적은 세트의 피드백 정보를 생성할 수 있으면 모든 유형의 PHY/MAC 계층(202)을 지원한다. 라우팅 라이브러리는 PHY/MAC 계층(202)의 위 인터넷 프로토콜(IP) 계층(미도시) 아래의 중간 계층에 위치할 수 있다. 라우팅 계층(208)은 로컬 스택에 들어오는 데이터 패킷 및 PHY/MAC 계층(202)으로 나가는 패킷을 인터셉트한다. 패킷 인터셉트 외에, 라우팅 라이브러리는 상위 계층, 하위 계층을 제어하는데 필요한 대로 들어오는 패킷 및 나가는 패킷을 공급하고, 물리적으로 분리된 장치 위 라우팅 라이브러리 구현예와 통신할 수 있다.
라우팅 계층(208)은 들어오는 트래픽 및 나가는 트래픽을 인터셉트할 때, 라우팅 계층(208)은 예를 들면 도 5에 도시된 것처럼 그 자신의 라우팅 헤더를 데이터 패킷에서 제거하고 추가할 수 있다. 더 표시된 것처럼, 다른 계층도 그 각자의 헤더를 트래픽이 이러한 계층을 통과할 때 추가한다. 예를 들면, 트래픽이 망 계층(210)을 통과할 때, 망 계층(210)은 데이터(232)에 망 헤더(230)를 추가한다. 데이터 패킷이 라우팅 계층(208)을 통과할 때, 이 예에서 라우팅 계층(208)은 라우팅 헤더(234)를 망 헤더(230)에 첨부한다. 데이터 패킷이 그리고 나서 PHY/MAC 계층(202)으로 진행할 때, 이 예에서 MAC 계층부는 MAC 헤더(236)를 라우팅 헤더(234)에 첨부하고, 이와 같이 PHY 계층부는 PHY 헤더(238)를 MAC 헤더(236)에 첨부한다.
전술한 처리의 다른 예는 도 6-10의 흐름도에 도시되어 있다.
구체적으로, 도 6은 도 1 및 2에 관해 전술한 것과 같은 임의의 유형의 노드(102, 106 또는 107)일 수 있는 발신 노드 및 임의의 유형의 노드(102, 106, 107)일 수 있는 착신 노드의 망 계층, 라우팅 계층, PHY/MAC 계층 사이에서 일어나는 전송을 도시한다. 표시된 것처럼, 전송 패킷이 인터셉트될 때 라우팅 특정 헤더를 추가한 후, 라우팅 계층은 MAC 계층으로부터 전송 완료 표시도 수신한다.
즉, 이 예에서, 전송(Tx) 패킷(258)은 발신 노드 망 계층(250)으로부터 라우팅 헤더(262)가 추가되는 발신 노드 라우팅 계층(252)에 흐름 방향(260)을 따라 제공된다. Tx 패킷(258)은 Tx 패킷이 전송 패킷(266)으로 전송하기 위해 준비되는 발신 노드 PHY/MAC 계층(254)으로 흐름 방향(264)을 따라 제공된다.
당업자에게 이해되는 것처럼, 전송을 수행하기 위해서, 전송 요청(RTS) 메시지는 착신 노드(256)로 전송(268)에서 전송된다. 착신 노드(256)에 의해 전송 허가(CTS) 메시지가 전송되지 않으면, 제2 전송 시도가 전송(270)에서 다른 RTS 메시지를 전송하여 이루어진다. 이 시도 후, 수신 처리(272)에서 표시된 것처럼 RTS가 착신 노드(256)에 의해 수신되고, 착신 노드(256)는 전송(274)에서 발신 노드 PHY/MAC 계층(254)에 전송 허가(CTS) 메시지를 전송한다. CTS 메시지를 수신한 후, 발신 노드의 PHY/MAC 계층(254)은 전송(276)에서 착신 노드(256)에 전송 패킷을 전송한다. 전송 패킷을 수신한 후, 착신 노드(256)는 발신 노드 PHY/MAC 계층(254)에 전송(278)을 따라 확인통지 메시지(ACK)를 전송한다. 이 ACK 메시지는 흐름 방향(280)을 따라 발신 노드 라우팅 계층(252)으로 전달되고, 발신 노드 라우팅 계층(252)은 동작(282)에서 라우팅 계층 위에서, 구체적으로 라우팅 계층의 링크 품질 라이브러리에서 피드백 요약 메시지(즉, 전송이 성공적으로 완료되었음을 표시하는 메시지)의 효과를 계산한다.
도 7에 도시된 것처럼, 라우팅 계층은 자신의 트래픽의 발신지로서 동작할 수 있다. 구체적으로, 이 예에서 표시된 것처럼, 발신 노드 라우팅 계층(252)은 발신 노드 PHY/MAC 계층(254)에 흐름 경로(302)를 따라 발신 라우팅 트래픽(300)을 전송할 수 있다. 이 라우팅 트래픽은 발신 노드 PHY/MAC 계층(254)에서 전송 패킷(304)으로서 전송하기 위해 준비된다.
당업자가 이해할 수 있는 것처럼, 전송을 수행하기 위해서, 전송 요청(RTS) 메시지가 착신 노드(256)로 전송(306)에서 전송된다. 전송 허가(CTS) 메시지가 착신 노드(256)에 의해 전송되지 않으면, 제2 전송 시도가 전송(308)에서 다른 RTS 메시지에 의해 이루어진다. 이 시도 후, RTS는 수신 처리(310)에 표시된 것처럼 착신 노드(256)에 의해 수신되고, 착신 노드(256)는 전송 허가(CTS) 메시지를 발신 노드 PHY/MAC 계층(254)에 전송(312)에서 전송한다. CTS 메시지를 수신하면, 발신 노드의 PHY/MAC 계층(254)은 전송(314)에서 착신 노드(256)에 전송 패킷을 전송한 다. 전송 패킷을 수신하면, 착신 노드(256)는 확인통지 메시지(ACK)를 전송(316)을 따라 발신 노드 PHY/MAC 계층(254)으로 전송한다. 이 ACK 메시지는 흐름 방향(318)을 따라 발신 노드 라우팅 계층(252)으로 전달되고, 발신 노드 라우팅 계층(252)은 동작(320)에서 라우팅 계층 위에서, 구체적으로 라우팅 계층의 링크 품질 라이브러리 위에서 피드백 요약 메시지(즉, 전송이 성공적으로 완료되었음을 표시하는 메시지)의 효과를 계산한다.
도 8의 예에 도시된 것처럼, 최종 착신지에서 수신된 트래픽(즉, 최종 착신에서 들어오는 트래픽)에 대해, 라우팅 계층이 라우팅 헤더를 제거하고 수신 피드백을 처리하고 망 계층에 패킷을 전달할 것이다. 즉, 전술한 것처럼 임의의 타입의 노드(102, 106 또는 107)일 수 있는 발신 노드(350)는 임의의 타입의 노드(102, 106 또는 107)일 수 있는 착신 노드의 PHY/MAC 계층(352)에 흐름 경로(360)를 따라 데이터 패킷을 전송한다. 착신 노드 PHY/MAC 계층(352)은 착신 노드 라우팅 계층(354)에 흐름 경로(362)를 따라 수신된 데이터를 전송하고, 동작(364)에서 이는 수신된 데이터 패킷에서 헤더를 제거한다. 수신된 데이터 패킷은 착신 노드 망 계층(356)에 흐름 경로(366)를 따라 전송된다.
도 9의 예에서 도시된 것처럼, 그 최종 착신에 도착된 들어오는 라우팅 트래픽에 대해, 라우팅 계층은 수신 데이터 패킷을 소모할 것이다. 즉, 착신 노드가 경로를 따라 있는 중간 노드가 아니고 라우팅 패킷을 위한 최종 착신지일 때, 착신 노드는 라우팅 패킷 위에서 동작할 것이다. 표시된 것처럼, 전술한 것처럼 임의의 타입의 노드(102, 106 또는 107)일 수 있는 발신 노드(350)는 전술한 것처럼 임의 의 타입의 노드(102, 106 또는 107)일 수 있는 착신 노드의 PHY/MAC 계층(352)에 흐름 경로(370)를 따라 라우팅 패킷을 전송한다. 착신 노드 PHY/MAC 계층(352)은 흐름 경로(372)를 따라 수신 데이터를 착신 노드 라우팅 계층(354)에 전송하고, 이는 동작(374)에서 라우팅 패킷을 소모한다.
도 10은 전달 노드, 즉 발신 노드에서 착신 노드까지 경로를 따라 있는 중간 노드에서 일어나는 처리의 예를 도시한다. 이 예에서, 발신 노드(400)는 데이터 패킷을 중간 전달 노드를 경유하여 착신 노드(404)로 전송한다. 발신 노드, 착신 노드, 전달 노드는 전술한 것처럼 임의의 유형의 노드(102, 106 또는 107)일 수 있다.
표시된 것처럼, 발신 노드(400)는 전송(Tx) 패킷(460)을 전송 경로(462)를 따라 전달 노드의 PHY/MAC 계층(452)에 전송한다. 전달 노드 PHY/MAC 계층(452)은 동작(466)에서 다음 홉(hop) 노드를 룩업하는 전달 노드 라우팅 계층(454)에 수신 데이터 메시지를 흐름 경로(464)를 따라 전송한다. 전달 노드 라우팅 계층(454)은 전달 노드 PHY/MAC 계층(452)에 흐름 경로(468)를 따라 전송 데이터를 전송하고, 이는 RTS 메시지를 전송(470)에서 착신 노드(404)로 전송한다. 이 예에서, 착신 노드(404)는 전달 노드의 PHY/MAC 계층(452)에서 수신된 CTS 메시지를 전송(472)에서 전송한다. PHY/MAC 계층(452)은 전송(474)에서 데이터 패킷을 착신 노드(404)로 전송이고, 이는 데이터 패킷의 최종 착신지로서 동작(476)에서 패킷을 수신한다. 착신 노드(404)는 전달 노드 PHY/MAC 계층(452)에 전송(478)에서 ACK 메시지를 전송하고, 이는 전달 노드 라우팅 계층(454)에 흐름 경로(480)를 따라 전송 완 료 메시지를 전송한다. 전달 노드 라우팅 계층(454)은 동작(482)에서 전송의 효과를 계산한다.
오버헤드 정보 및 정규화된 피드백
처리에서 교환된 전술된 오버헤드 정보 및 피드백 정보의 예에 대한 상세한 설명이 이하 기술된다.
오버헤드 표
링크 적응 알고리즘 및 라우팅 프로토콜이 하위 계층 규격에 독립적인 것을 보장하기 위해서, 데이터 전송 오버헤드 정보는 추상화될 수 있다. 데이터 전송 오버헤드 표는, 예를 들면 시그널링 시간, 확인정보(ACK) 처리 시간, ACK 시간, ACK 타임아웃, 백오프 시간, 처리 순조 시간, 혼잡 시간에 관한 정보를 포함한다. 오버헤드 정보는 전체 전송 시간(각 데이터 레이트 및 양자화된 패킷 크기에 대해) 및 추가 전송 지연(각 데이터 레이트 및 양자화된 패킷 크기에 대해)을 사용하여 컴파일된다. 링크 적응 목적을 위해, 이 오버헤드는 최대 유효 쓰루풋 값으로 번역되고 이는 다시 조정 파라미터로 번역될 수 있다. 이 조정 파라미터는 MAC/물리 계층 의존적이지만, 링크 적응 알고리즘 및 라우팅 판단에 대한 그 효과는 일관되도록 하는 방식으로 추상화된다(예, 두 개의 MAC/물리 계층이 특정 데이터 레이트 및 패킷 크기에 대해 500 Kbps 쓰루풋을 제공하면, 실제 데이터 레이트 및 패킷 크기가 다르더라도, 그 조정 값은 동일할 것이다). 오버헤드 정보는 유효 쓰루풋 대신에 지연을 최적화하기 위해 사용될 수 있음을 알자.
정규화된 피드백
링크 적응 알고리즘 및 라우팅 판단이 하위 계층 규격에 독립적임을 보장하는 제2 단계는 피드백 정보를 정규화하는 것이다. 이는, 예를 들면 신호 강도 정보를 표준화된 값으로 변환하여 수행된다. 또한, MAC 규정 이벤트는 이벤트 카테고리로 그룹화되는데, 즉 성공적 및 비성공적 데이터로 그룹화되거나 제어 패킷 전송이 독립적으로 고려된다. 정규화된 피드백은 이하 설명되는 처리 요약을 통해 제공된다.
당업자가 이해할 수 있는 것처럼, 하드웨어 추상화 계층(218)(도 4 참조)과 결합하여 사용될 수 있는 링크 적응 알고리즘은 측정된 성공 레이트에 기초한다. 이러한 알고리즘에서, 기대 성공 레이트는 필요하면 MAC 규격 또는 망 이웃의 크기와 같은 외부 요인에 의존할 수 있다. 이 하드웨어 추상화 계층을 사용하는 링크 적응 기법의 예는 참조로서 그 전체 내용이 본 명세서에 포함된 2005년 5월 24일에 출원된 발명의 명칭이 "Method and System for Controlling the Transmission Power of at Least One Node in a Wireless Network"인 Guenael Strutt 등의 미국 특허 출원 제11/138,241호, 2005년 6월 24일에 출원된 발명의 명칭이 "An Adaptive Rate Selection Algorithm For Wireless Systems"인 Guenael Strutt 등의 미국 특허 출원 제11/166,578호에 설명되어 있다.
한편, 본 명세서에 기술된 본 발명의 실시예에 따른 기술은 계산 복잡도를 제한하면서 메트릭을 판정하기 위한 오버헤드 표와 결합하여 물리 계층으로부터의 피드백 정보를 정규화한다.
처리 요약
당업자가 알 수 있는 것처럼, 대부분의 노드(102, 106, 107)는 전송 및 수신 통계를 수집한다. 이러한 통계는, 예를 들면 노드의 제어기(112) 및 그 연관 하드웨어에 의해 수집되고, 컴파일되고, 분석될 수 있다. 본 명세서에 기술된 필드는 반드시 모든 통계에서 제공되어야 하는 것은 아니다. 즉, 정보의 특정 부분이 없으면, 라우팅 프로토콜은 특정 디폴트 값이 사용된다고 가정하고 데이터를 처리할 수 있을 것이다.
전송 시도를 기술하는 값은 데이터 레이트, 전송 전력, 프레임 길이와 같은 전송기에 의해 규정된 절대 파라미터를 포함한다. 그들은 수신된 전력 수준, 비트 에러 레이트 또는 신호 품질과 같은 수신기 노드에 의해 취해진 측정값도 포함할 수 있다. 수신기 노드에서 이루어진 측정값은 확인통지 메시지를 통해 전송기 노드에 다시 놓일 수 있다. 이러한 다시 놓인 측정값은 "통지된" 측정값으로서 지칭된다.
전송 및 수신 통계는 다수의 결정적 기능, 특히 링크 적응 및 링크 품질 추정을 수행한다. 이러한 기능은 향후 데이터 레이트의 결정, 링크 품질/라우팅 메트릭 결정, 전송 전력 결정을 포함한다. 전술한 것으로부터 알 수 있는 것처럼, 링크 적응 및 링크 품질 추정은 물리 계층의 파라미터에 독립적이다. 또한, 이러한 태스크 각각은 리던던트 정보를 사용한다. 특정 데이터 구조는 한번에 모든 가치있는 통계, 즉 처리 요약 보고를 수집하기 위해 사용된다. 처리 요약 보고의 특성의 예는 이하 기술된다.
처리 요약 보고
frameType |
제어 또는 메시지 |
frameSize |
프레임 크기(바이트) |
txFailCount |
이 프레임/레이트/전력에 대한 실패 수 |
txSuccessCount |
이 프레임/레이트/전력에 대한 성공 수 |
txRate |
변조, FEC 및 시그널링 레이트의 조합으로서, 전송 데이터 레이트(레이트 표에 대한 인덱스) |
xPower |
사용된 전송 전력(dBm) |
xRSSI |
수신 신호 강도 표시(dBm) |
xSNR |
신호 대 잡음비(dB) |
xPSQ |
인지된 신호 품질 |
xNoise |
잡음(dBm) |
xBER |
비트 에러 레이트 |
xAntenna |
안테나 구성 |
xChannel |
코드/주파수 채널 또는 코드/주파수 결합 |
xSlot |
시간 슬롯 또는 시간 슬롯 결합 |
도 1에 도시된 노드(102, 106 또는 107)가 데이터를 전송하거나 수신할 때, 도 4에 도시된 통합 동작은 링크 평가 시스템을 드라이브하기 위해 결과에 피드백을 제공한다. 이러한 결과는 하나 이상의 처리 요약 객체를 사용하여 제공된다. 제어기(112) 및 그 연관 하드웨어는 임의의 특정 노드(102, 106, 107)에서 처리 요약 보고를 생성할 수 있다.
이하 기술하는 것처럼, 전송 및 수신 피드백 경로 모두는 어레이로 된 다중 처리 요약 객체를 제공한다. 다중 처리는 단일 패킷 수신 또는 전송에 해당하는 제어 및 메시지 처리를 기술하기 위해 사용될 수 있다. 그들은 다중 프래그먼트 패킷 전송의 각 부분의 개별 결과를 규정하기 위해 사용될 수도 있다.
전송 피드백을 제공할 때:
프레임의 전송기는 프레임이 그를 이용하여 전송된 파라미터를 무조건적으로 알고 있다. 전송기는 그러므로 frameType 및 frameSize를 규정해야 한다. 또한 이는 프레임에 대한 성공 및 실패를 카운트하여 전송의 결과를 제공해야 한다. txFailCount는 규정된 레이트 및 전력에서 실패한 시도의 수의 표시를 제공한다. txSuccessCount는 성공한 시도의 수의 표시를 제공한다. 다중 성공은, 예를 들면 동일한 프레임 크기의 성공적으로 전송된 프래그먼트를 표시하기 위해 사용될 수 있다. 임의의 이벤트에서, txSuccessCount 더하기 txFailCount는 유효한 처리에 대해 최소한 1이어야 한다. 전송의 레이트 및 전력은 그들이 제공될 수 없으면 "INVALID"로 명확하게 규정 또는 표시될 수 있다. 라디오 플랫폼 및 프로토콜이 수신기의 측정치(ACK 프레임을 통한 피드백과 같이)를 알게되는 전송기를 제공하면, 임의의 공지된 측정치는 "rx" 필드에 규정될 수 있다. 아니면, 그들은 INVALID로 설정되어야 한다. 또한, 다중 성공이 표시되면, "rx" 필드는 성공의 주어진 수에 대한 평균으로서 해석되어야 함을 알자.
수신 피드백이 제공될 때:
프레임의 수신기는 frameType 및 frameSize를 무조건적으로 알고 있고 이들을 이와 같이 제공해야 한다. 수신 실패는 임의의 특정 전송기를 추적할 수 없고 알고리즘에서 사용되지 않으므로, txFailCount는 무시된다. txSuccessCount는 규정된 프레임 유형 및 크기의 성공적인 수신의 수를 표시할 수 있지만, 다시 "rx" 측정치는 평균으로서 해석될 것이다. 수신기에 알려지면, txRate 및 txPower는 규정될 수 있지만, 아니면 INVALID로 설정되어야 한다. 수신기에 의해 이루어진 모든 측정치는 "rx" 필드에 제공되거나, 측정되지 않거나 사용할 수 없으면 INVALID로 설정될 수 있다.
처리 요약의 특징
처리 요약 보고의 특징의 예는 이하 기술된다.
처리 요약의 시간 독립성
망 계층 또는 더 구체적으로 링크 적응 계층(시스템이 구현된 방법에 의존적)이 물리적으로 PHY/MAC 계층과 물리적으로 구별될 수 있으면(예를 들면 망 및 링크 적응 계층은 호스트 컴퓨터의 운영체계 내 드라이버에서 실행하고 PHY/MAC 계층은 이러한 PC 카드와 같은 주변장치에서 실행하면), 피드백이 제공될 때 지연이 있을 것이다. 이는 피드백이 전송시 물리 계층에 초기에 제공된 파라미터를 포함하면 수렴 문제를 일으키지 않을 것이다. 이는 처리 요약 보고 내에서 필요한 피드백(RSSI 및 ACK/NACK)과 함께 원래 선택된 데이터 레이트를 리턴하여 수행될 수 있다. 이 방법의 유리함은 피드백이 즉시되어야 할 필요가 없다는 점이다. 지연된 피드백은 링크 적응/링크 품질 추정 알고리즘이 동시에 수렴하게 할 것이다.
처리 요약의 계산 효율
도 11은 데이터 레이트 선택 처리(데이터 레이트를 조정하기 위해 처리 요약을 사용하는 것)의 블럭도를 도시한다. 조정 파라미터를 결정하는 것과 같은 계산적으로 집약적인 계산은(예를 들면, 유효 쓰루풋을 추정하는 방식으로) 전술한 것처럼 오버헤드 표를 통해 오프라인으로 제공된다. 그러므로, 실시간 계산은 최소로 감소되어야 한다.
따라서, 도 11에 도시된 것처럼, 데이터 레이트 선택 처리(500)는 노드와 연관된 드라이버 또는 펌웨어(510)에 관한 정보에 기초하여 수행된다. 이러한 정보는 추상화된 오버헤드 정보(506)로서 오프라인으로 계산된 구성 및 규격 정보(514)를 포함할 수 있다. 추상화된 오버헤드 정보(506)는, 예를 들면 표시된 것처럼 동 작(504)에서 레이트 임계치를 조정하기 위해 사용될 수 있다. 동작(504)에서 조정된 레이트 임계치는 따라서 동작(502)에서 레이트 선택 처리에 영향을 줄 것이다. 선택된 데이터 레이트는 그 선택된 데이터 레이트에서 데이터 패킷의 전송을 제어하기 위해서 노드의 모뎀(520)[도 2에 도시된 트랜시버(108) 안]의 PHY/MAC 계층(522)에 제공된다. ACK 메시지와 같은 모뎀(520)에서 수신된 정보는 표시된 것처럼 향후 레이트 임계치를 조정하기 위해 사용될 피드백 정보(512)로서 제공된다.
추상화된 라우팅 메트릭
라우팅을 무선 채널에서 수행하기 위해 추상화 계층을 사용하는 기본적인 유리함은 물리 계층 규격의 유리함을 취하는 메트릭을 사용하는 능력이다. 당업자가 알 수 있는 것처럼, 다른 것이 스케쥴링된 전송 및 신뢰성 있는 링크를 가지고(즉, 셀룰러 유형 라디오) 낮은 데이터 레이트를 제공하는 반면, 일정한 모뎀/라디오 인터페이스는 상당한 경합 및 신뢰성 없는 링크(즉, 802.11b)를 가지고 높은 데이터 레이트를 제공한다. 그러므로, 메트릭은 이러한 편차를 고려해야 한다. 예를 들면, 태그화된 패킷을 위한 단말 대 단말 지연에 기초한 메트릭이 사용될 수 있다.
여기서 ts,i 및 te,i는 하드웨어 추상화 계층이 그 기능을 수행하기 위해서 시스템 적분기에 의해 제공되어야 하는 노드 i의 파라미터이다. ts,i는 노드 i+1로 전송할 때 노드 i의 전체 전송 시간(전체 오버헤드 및 처리 시간을 포함)이고 te,i는 전송이 실패할 때 노드 i에 의해 추가되는 추가 시간이다. tq,i는 노드 i의 대기 지연인데, 이는 국지적 혼잡도 및 아마도 노드의 우선순위 또는 트래픽 유형에 따라 변할 것이다. 패킷 완료 레이트는 참조로서 그 전체 내용이 본 명세서에 포함된 2004년 6월 7일에 출원된 발명의 명칭이 "A Method to Provide a Measure of Link Reliability to a Routing Protocol in an Ad Hoc Wireless Network"인 Guenael T. Strutt의 미국 특허 출원 제10/863,069호에 설명된 기술을 사용하여 측정될 수 있다. 이 기술은 전송 요약 구조로 타이트하게 통합된다. 데이터 레이트는 메트릭이 결정된 시간에 사용된 정확한 데이터 레이트이거나 과거 샘플의 수에 기초한 평균 데이터 레이트일 수 있다.
링크 적응 및 링크 품질 결정을 수행하는데 사용되는 모든 파라미터는 전송 요약 및 오버헤드 표를 통해 사용할 수 있다. 그러므로, 라우팅 메트릭은 라우트를 설정하는데 사용된 물리 링크의 성질에 따라 라우트의 성능을 점검할 수 있다.
다중 라디오 라우팅 프로토콜
간략하게 전술한 것처럼, 이동 애드혹 망을 위한 라우팅 프로토콜은 IETF의 MANET 워킹 그룹에 의해 표준화되고 있다. 이 그룹은 실험적 RFC로서 3개의 라우팅 프로토콜, 즉 참조로서 그 전체 내용이 본 명세서에 포함되고 http://www.ietf.org/rfc/rfc3561.txt에서 찾을 수 있는 애드혹 온디맨드 거리 벡터(AODV) 라우팅(RFC 3561), http://www.ietf.org/rfc/rfc3626.txt에서 찾을 수 있는 최적화된 링크 상태 라우팅 프로토콜(RFC 3626), http://www.ietf.org/rfc/rfc3684.txt에서 찾을 수 있는 역경로 전달에 기초한 토폴로지 분배(TBRPF)(RFC 3684)를 현재 제안하였다. 이 세 가지 라우팅 프로토콜은 계층 3에서 동작하는데, 즉 그들은 망에서 라우팅을 위한 IP 주소를 사용하고 그들이 다중 인터페이스를 지원하는 방식으로(즉, 그들이 다중 라디오를 지원하는 방식으로) 규정되었다. 예를 들면, AODV는 그것을 통해 패킷, 특히 라우팅 패킷이 도착하는 특정 인터페이스(또는 라디오)에 관해 라우팅 계층에 알리기 위한 프로토콜 스택을 요구한다. 이 인터페이스(또는 라디오)는 모든 다른 적절한 라우팅 정보와 함께 특정 노드[예, 도 1에 도시된 노드(102, 106 또는 107)]를 위한 라우팅 표 엔트리에 기록된다. 이 방식으로 라우팅 계층은 이를 통해 착신지에 도달할 수 있는 특정 인터페이스(또는 라디오)를 알게 된다.
그러므로, 본 명세서에 언급된 모든 추상화는 전술된 라우팅 프로토콜의 변형된 버전을 사용하는 임의의 프로토콜 스택에 용이하게 사용될 수 있다. 이러한 라우팅 프로토콜은 라우트를 비교하기 위한 메트릭으로서 "홉"을 사용하기 때문에 간단하게 "홉"을 메트릭으로서 사용하면 참조로서 전체 내용이 본 명세서에 포함된 2003년 9월 캘리포니아 샌디에고 제9회 이동 계산 및 망화에 관한 ACM 국제 학술대회(MobiCom '03)의 프로시딩에 있는 제목이 "A High-Throughput Path Metric for Multi-Hop Wireless Routing"인 Douglas S. J. De Couto, Daniel Aguayo, John Bicket, Robert Morris의 문서에서 볼 수 있는 것처럼 성능이 나빠지므로 변형이 요구된다. 반대로, 전술한 본 발명의 실시예는 일관된 라우트 메트릭을 계산하기 위해서 균일한 인터페이스를 여러 통신 장치에 제공하고 물리 계층 파라미터를 추 상화하므로 이러한 변형된 프로토콜에 대해 특히 유용하다.
전술한 명세서에서, 본 발명의 특정 실시예가 기술되었다. 그러나, 당업자는 이하 청구의 범위에 기술된 것과 같은 본 발명의 범위를 벗어나지 않으면서 다양한 변형예 및 변경예가 이루어질 수 있음을 알 것이다. 따라서, 명세서 및 도면은 한정적인 의미가 아니라 도시적인 것으로 고려되어야 하고, 모든 이러한 변형예는 본 발명의 범위 내에 포함되는 것으로 의도된다. 모든 이익, 유리함 또는 해결책을 내거나 더 두드러지게 할 수 있는 이익, 유리함, 문제의 해결책, 모든 구성요소는 임의의 또는 모든 청구의 범위의 결정적이거나, 요구되거나, 필수적인 형태 또는 구성요소로 고려되어서는 안 된다. 본 발명은 본 출원의 계류 동안 이루어진 모든 보정 및 발행되는 그 청구의 범위의 모든 등가물을 포함하는 첨부된 청구의 범위에 의해서만 정의된다.