본문 바로가기

아이폰 와이파이 호환성 문제(myLG070 AP)

by 솜씨제이 2009. 12. 29.

아이폰이 Wi-Fi 무선랜 환경에서 호환성 때문인지 특정 AP나 무선 공유기와 접속이 원활하지 않은 경우가 있습니다. 특히 myLG070에서 제공하고 있는 AP(실은 유무선공유기)의 경우 연결이 자주 끊어집니다. 아이팟터치에서도 동일한 증상이 발생했었고 아이폰도 마찬가지네요.
주로 한 페이지에서 오래 머무르는 등 특정 시간 동안 데이터 전송이 없는 경우 연결이 끊어지게 되는데 이 경우 연결이 완전히 끊어지는 것이 아니라 분명 상태표시는 무선랜으로 연결이 되어 있다고 나오지만 실제 인터넷 연결은 안 되는 상태가 됩니다. 이 상태로 사파리에서 특정 사이트에 접속하려고 하면 무한루프 상태가 되기도 하고 인터넷 연결이 필요한 프로그램에서는 연결 오류가 발생하기도 합니다.

가장 좋은 해결 방법은 AP 제조사인 애니게이트(AnyGate)에서 아이폰/아이팟터치 관련 패치 펌웨어를 제공하거나 아이폰의 펌웨어가 업데이트 되는 것이지만 아이폰 펌웨어는 당분간 업데이트 예정이 없는 것 같고 AP의 경우도 일반 공유기가 아닌 까닭에 해결이 쉽지는 않을 듯 하네요.

임시방편으로 AP의 무선설정(고급 설정 부분)에서 RTS Threshold값을 변경하면 괜찮아진다는 얘기가 있어 몇가지 값으로 변경해보았으나 큰 효과가 없었는데 DTIM값을 2로 변경하니 괜찮은 결과를 보여주네요.(-> 최종적으로 DTIM값을 1로 변경했습니다.)

RTS Threshold(Request to Send Threshold)는 무선 클라이언트 간에 서로를 인식하지 못한 상태에서 AP로 데이터를 전송할 경우 서로 충돌이 일어나기 때문에 해당 크기 이상의 패킷을 전송하는 경우 미리 AP로 전송할 것임을 알리도록 하는 것입니다. AP 입장에서는 이미 모든 클라이언트를 알고 있는 상태이기 때문에 큰 의미가 없다는 얘기도 있습니다. myLG070 AP의 기본값인 2347은 RTS를 사실상 비활성화하는 값입니다.
DTIMBeacon(TIM)은 비슷한 역할을 합니다. 모두 무선랜을 동기화하기 위해서 AP에서 보내는 패킷으로 Beacon은 buffered unicast data의 존재를 DTIM은 buffered multicast/broadcast data의 존재를 알려줍니다. Beacon Interval은 Beacon을 보내는 간격으로 밀리초 단위이고 DTIM값은 몇 번의 Beacon 당 DTIM을 보낼지를 나타냅니다.
그 외에 Preamble은 패킷 전송을 동기화하기 위한 헤더의 크기로 Long은 144 bit, Short는 72 bit입니다. 당연히 Short가 오버헤드가 적지만 오래된 디바이스와 호환성 문제가 있어서 기본값은 Long이라고 합니다.

참고로 현재 제가 사용하는 설정값은 RTS Threshold = 2347, Beacon Interval = 100, DTIM = 2, DTIM = 1, Preamble = Short 입니다. 확실히 속도도 빠르고 끊김 현상도 거의 없습니다.
혹시 다른 변동 사항이 생기면 다시 포스팅하도록 할께요.

2009.12.31 추가) DTIM을 1로 변경했습니다. DTIM이 2에서도 사용 중에는 안정적이지만 가끔 슬립모드에서 깨어날 때 접속이 불안정한 경우가 있어서 변경했는데 더 나아진 듯 하네요. 처음 적용할 때는 DTIM을 3으로 했었는데 결국 1까지 내려 왔네요. 결론적으로 DTIM을 1~3 사이의 적당한 값으로 적용하면 되겠습니다. 1로 하면 연결 상태는 가장 안정적인 반면 아마도 전력소모와 전송 오버헤드가 조금 더 있을 듯 합니다.

댓글