※ 본 게시글에는 잘못된 정보가 인용되었을 수 있습니다.
※ 오류를 발견하셨다면 부디 정정댓글 부탁드립니다. 감사합니다!
흔히 무선 신호가 좋다 나쁘다를 말할 때 우리는 RSSI(Received Signal Strength Indication) 값을 가지고 얘기합니다. 영어로 써놨지만 한글로 풀이하면 수신 신호 세기 지표 정도로 해석하면 되겠네요.
실제로 스마트폰이나 PC 등에서 무선 네트워크를 사용할 때 표시되는 무선 신호 세기 막대 아이콘들(Bar Icon)은 RSSI를 기반으로 표시해줍니다. 이에 막대 개수 별 정확한 신호 세기값을 찾아보고자 했는데, 좀처럼 정확한 정보가 보이질 않네요.
그래서 최소한 스마트폰의 Wi-Fi 기반 정보라도 확인해보고자 AOSP(Android Open Source Project)에서 안내하는 코드베이스 기반 기본값은 다음과 같습니다.
adb shell settings put global wifi_score_params \ [rssi2|rssi5]=<bad>:<entry>:<low>:<good> adb shell settings put global wifi_score_params \ rssi2=-85:-85:-73:-60,rssi5=-82:-82:-70:-57
아무래도 실제 기준값은 제조사마다 다를 수 있지만, 적어도 AOSP에서 설정해둔 Wi-Fi Score의 기준값은 저러합니다. 이는 Android OS에서 Wi-Fi 네트워크 전환을 시도할 때 참조되는 값으로 알고 있습니다.
한편으로 본래 목적이었던 무선 신호 세기 아이콘의 막대 개수 표시 기준값은 Google Git에 올라와 있는 요 항목을 통해 미루어볼 수 있는 듯합니다. 최대 개수[4칸]가 -55dBm을 기준으로 하고 -100dBm을 최소 개수[0칸]의 기준으로 삼는다는 주석이 있네요.
/** Anything worse than or equal to this will show 0 bars. */ private static final int MIN_RSSI = -100; /** Anything better than or equal to this will show the max bars. */ private static final int MAX_RSSI = -55; public static int calculateSignalLevel(int rssi, int numLevels) { if (rssi <= MIN_RSSI) { return 0; } else if (rssi >= MAX_RSSI) { return numLevels - 1; } else { float inputRange = (MAX_RSSI - MIN_RSSI); float outputRange = (numLevels - 1); return (int)((float)(rssi - MIN_RSSI) * outputRange / inputRange); } }
Wi-Fi 신호 세기 관련해서는 코드로 대강 분석해볼 수 있었는데, 통신사 기지국들을 통한 데이터 사용 방식인 Celluar(셀룰러)의 경우에는 어떠할까요?
Simbase라는 해외 기업의 사이트 중에 2G, 3G, 4G(LTE) 별로 신호 품질을 설명해둔 자료가 있으니 참고하시면 되겠네요. 본문에 적기에는 내용의 방향성이 이미 엇나간 듯하여 기회가 된다면 별도 게시글로 작성하겠습니다.
아무튼 본래 방향성으로 돌아와서, 일반적으로 RSSI 기반으로 무선 환경이 쓸만하다고 보는 기준은 -67dBm 이하로 보시면 됩니다. 이는 VoIP(Voice over IP) 사용에 큰 지장이 없는 신호 세기입니다. 한편으로, 고품질 화상 회의 등을 위해 무선 환경이 좋다고 보는 기준은 -60dBm 이하로 생각해주시면 됩니다.
참고로 -72dBm는 가벼운 웹서핑이 무난히 동작하는 수준인데, VoIP가 매번 끊기는 등 딱 그것뿐인 성능이 나옵니다. 그러니 쓸만한 무선 환경을 구축하고 싶다면 RSSI -67dBm을 최소한의 기준점으로 잡으면 되겠습니다.
뭔가…이런 내용을 적으려던 게 아닌데, 본래 목적과는 다른 내용을 적게 되었네요 -_-;
답글 남기기