안녕하세요.
루나틱하모니입니다.
곧 대학교 개강입니다.
해도 느껴질 정도로 길어졌더군요.
개강을 하면 여러 강의가 시작되고 출석 체크와 대리 출석도 시작되겠죠.
이 때 학부생들 자동 출석 시스템이 있으면 편하지 않을까하고 몇가지 코딩을 하고 있었습니다.
코딩을 위한 실험 중 재미있는 데이터를 발견합니다.
3DS가 주기적으로 무언가를 찾으려는 메시지를 보내고 있었습니다.
Probe Request라는 단어가 보이는데 저건 `주위에 내가 연결할 수 있는 AP(공유기)가 있나요?'하고 물어보는 겁니다.
혹시 몰라서 MAC주소(각 기기별로 고유의 주소가 있습니다. 설정 - 인터넷 설정에서 확인하실 수 있습니다.)를 블러처리해두었습니다.
위의 사진은 2개의 MAC주소가 보이고 있습니다.
제 연구실에는 제것을 포함 4대의 3DS가 있어서 여러개의 MAC주소가 보입니다.
저는 저것이 공유기에 연결하려는 메시지인가 살펴보았습니다.
그런데 `3DS 설정 - 인터넷 설정 - MAC 주소 확인'에서 보이는 MAC 주소랑은 다른 주소입니다.
무선 통신을 꺼보기도 하고 4대의 기기를 껐다키면서 확인을 해보았습니다.
그러자 공유기와 연결하는 MAC 주소와 위의 메시지를 보내는 MAC 주소가 보이더군요!
아마 3DS에는 최소 2개의 무선 통신 모듈이 있는 것 같습니다.
저 메시지는 `엇갈림통신'을 메시지인 것 같습니다.
화면을 열어두면 안 보이고 닫으면 보이기 시작하더군요.
그리고 실험중 결정적인 증거물(?)이 기록됩니다.
바로 `Probe Request'가 엇갈리는 순간 `Probe Response'를 날린 후 서로 통신을 하는 장면이었습니다.
오오- 신기해라.
3DS는 이런식으로 엇갈림을 진행하고 있더군요.
그런데 여기서 하나 이상한 느낌이 듭니다.
측정 실험할 때 주위를 확인하는 메시지가 굉장히 빠르게 확인됩니다.
왜 이렇게 자주 주위를 확인하지?
혹시 몰라 사전조사도 해둡니다.
사람은 걸을 때 평균 1.4m/s 를 걷습니다(위키: https://en.wikipedia.org/wiki/Preferred_walking_speed).
측정 및 저장한 데이터를 분석할 간단한 코딩을 합니다(깃헙: https://github.com/munhyunsu/Hobby/tree/master/3DSAnalyzer).
그 후 중간값, 분산을 출력해봅니다(온라인 그래프: http://www.alcula.com/calculators/statistics/).
통계 정보는 이렇습니다.
Sample size: 113
Median: 0.26404404640197754
Minimum: 0.2614779472351074
Maximum: 1.9148118495941162
First quartile: 0.26387846469879
Third quartile: 0.52766251564026
Interquartile Range: 0.26378405094147
Outliers: 1.9148118495941162 1.649350881576538 1.0551629066467285
보통 무선 인터페이스는 사용할 때 전기가 들어갔다가 대기 상태일 때에는 적은양의 전기가 들어가게 됩니다.
그런데 유휴상태에서 활성화상태까지의 시간과 전력 소모가 있어서 유휴상태를 오고가는 것보다 지속적으로 사용하는게 나을 때도 있습니다.
닌텐도 3DS에서 사용하는 무선 통신 모듈이 무엇인지 모르겠습니다.
편하게 위의 그래프에서 나온 3G 모듈과 비슷하다고 생각했을 때 유후상태로 들여보내지 않기 위해서 자주 메시지를 보내는 것인가 하는 생각을 했습니다.
(참고: Falaki, Hossein, et al. "A first look at traffic on smartphones." Proceedings of the 10th ACM SIGCOMM conference on Internet measurement. ACM, 2010.
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.397.2172&rep=rep1&type=pdf)
그래도 여전히 조금 찝찝합니다.
1.4m/s의 속도로 움직이는데 0.2~0.5초 사이로 메시지를 날려야하는건가?
이렇게 동작하면 전력소모가 많을 것 같은데...
아직 내공이 부족해서 모르겠습니다.
조금 더 분석하고 조사해보면 더 나은 결론이 나올 수 있을 것 같기도한데 `자동 출석기' 개발이 더 급해보입니다.
그래서 여기까지만 기록하기로 했습니다.
<결론(추측)>
1. 3DS에는 최소 2개의 무선 인터페이스가 있는 것 같다.
2. 0.2~0.5초 사이로 엇갈림통신 메시지를 보낸다.
그럼 좋은 하루 되세요.
뿅.
흥미롭네요. 저도 궁금했는데 의문이 약간 해소되었습니다. 생각보다 자주 신호를 쏘는군요
엇갈림통신은 블루투스를 사용하는 것으로 아는데 켜두면 전력소모가 심할까요 ? 항상 켜두고 다녀서 체감은 못했네요.
3ds에는 블루투스칩셋이 없고 wifi 신호를 주고 받으면서 엇갈림통신을 합니다. 공유기역할하면서 주고 받는거 같아요 http://www.nintendo.co.kr/3DS/new/spec/index.html
https://www.ifixit.com/Teardown/Nintendo+3DS+XL+2015+Teardown/36346 에 구큰다수 칩셋이름과 분해 순서가 나와있어요
뭔가 신기하군요. 3DS 사용하면서 아쉬운 부분이 대기모드의 전력소비량이었는데, 저런 부분이 작용하는 바도 있겠다싶은 글이네요