반응형

WLAN: TP LINK TL-WN722N (Atheros ath9k_htc)

OS: Raspbian Jessie



처음에는 IEEE 802.11(와이파이)로 애드혹 모드(ad-hoc mode)가 HT (High Throughput)를 지원하지 않을 거라 생각했는데, 지원하는 것 같고 설정방법도 존재하는 것을 확인했다. 다만 실제로 속도가 개선되지는 못했는데, 다른 부분에서 성능상의 bottleneck이 존재할 수도 있기 때문에 좀더 조사해 봐야 한다.


어쨌든 이 글에서는 애드혹 네트워크를 구성할 때 HT 모드를 명시적으로 지정하는 방법을 설명한다. 아쉽지만 흔히 쓰는 /etc/network/interfaces 파일에서 HT 모드를 적용하는 방법은 찾을 수 없었다.

그래서 iw를 써야 한다. 명령어가 없을 경우 apt-get install iw로 설치한다.


조사해 보니 아래와 같은 명령으로 애드혹 네트워크와 함께 설정할 수 있다. [1, 2, 3]


# iw dev [인터페이스_이름] ibss join [네트워크_이름] [채널_KHz단위] [HT_모드] [Cell_ID]

# ifconfig [인터페이스_이름] [원하는_IP_주소]


무선랜 인터페이스가 어떤 HT 모드를 지원하는지 확인하려면 iw list를 통해서 나오는 디바이스 정보를 확인한다. 디바이스 이름은 wlan 대신 phy0, phy1 등으로 표시된다. wlan 몇번이 phy 몇번인지 확인하려면 귀찮은 과정을 거쳐야 하지만, 보통 무선랜카드를 1개만 USB로 연결하면 iw list에서도 디바이스가 하나만 나오므로 확인이 어렵지 않을 것이다.


출력 결과에서 Capabilities 부분에 HT20, HT40 등의 단어가 나온다면 HT20, HT40을 지원한다는 의미이다. 어떤 rate를 지원하는지는 "HT TX/RX MCS rate indexes supported: 0-7" 이러한 문장의 끝에 적힌 숫자에서 확인할 수 있다. 그리고 "Device supports HT-IBSS." 라는 문장이 있으면 애드혹 모드에서도 HT가 될 것이다.


필자가 갖고 있는 TL-WN722N 무선랜카드는 HT20, HT40을 지원한다고 나와 있다. 

HT40은 HT40+, HT40- 두 가지가 있는데, 시도해 본 결과 HT40-일 때에만 에러 없이 설정이 되었다. 



<추가>

글을 처음 쓸 당시에는 몰랐는데, HT40은 기존의 20MHz 채널 2개를 합쳐서(aggregate) 40MHz짜리 채널을 만들기 때문에 기준 주파수에서 어느 쪽으로 추가 20MHz를 붙일지 결정하기 위해서 +, - 부호를 쓰는 것이었다. 즉, 기준 채널보다 큰 주파수에서 추가로 20MHz를 갖다붙이려면 HT40+를 쓰고, 기준 채널보다 작은 주파수에서 붙이려면 HT40-를 쓴다.


채널 11번(2462 MHz)에서 HT40+가 안됐던 이유는, 11번 채널이 와이파이가 접근 가능한 2.4GHz의 주파수 대역에서 가장 끝이기 때문이다. (물론 하드웨어에 따라서 12, 13번 채널을 허용하는 경우도 간혹 있지만, ath9k_htc는 11번까지만 쓰도록 한 것 같다.)

그래서 11번 채널에 HT40-를 적용하면 기존 20MHz (2452 ~ 2472)보다 작은 주파수에서 20MHz (2432 ~ 2452)를 가져오기 때문에, 총 40MHz 채널에 대한 중앙 주파수는 2452 MHz가 된다. $ iw [인터페이스_이름] info 명령을 쳐 보면, center1 항목에서 확인할 수 있다.


결론적으로, 채널 1번으로 설정하면 HT40+밖에 안되고, 채널 6번으로 설정하면 HT40+, HT40- 모두 설정 가능하다.



예를 들어, testRpiAdhoc 이라는 이름의 애드혹 네트워크에 무선채널 11번(2.462GHz)을 쓰고, 고정IP 주소를 192.168.3.4를 할당하는 경우, 아래와 같이 설정할 수 있다.


$ sudo iw dev wlan1 ibss join testRpiAdhoc 2462 HT40- F6:D0:8C:DD:C3:AB

$ sudo ifconfig wlan1 192.168.3.4


뒤에 Cell ID는 맥주소 형식으로 임의로 입력해도 되며, 단지 애드혹 네트워크에 참여하는 기기들이 모두 같은 값을 공유하면 되는 듯 하다. 




<참고자료>

[1] https://wireless.wiki.kernel.org/en/users/documentation/iw/replace-iwconfig#join_an_ibss_ad-hoc_network

[2] http://www.spinics.net/lists/linux-wireless/msg83366.html

[3] https://forum.openwrt.org/viewtopic.php?id=29876



반응형
블로그 이미지

Bryan_

,