iOS / Hotspot Study

2018-05-09

Original

Hotspot Network Subsystem Programming Guide

번역

About the Hotspot Network Subsystem

The Hotspot Network Subsystem allows a Hotspot Helper application to participate in the process of classifying and authenticating to Wi-Fi hotspot networks. This programming guide is a companion to Apple’s NEHotspotHelper Class Reference, which describes the Hotspot Helper API.

  • 핫스팟 네트워크 서브시스템은 핫스팟 헬퍼앱이 와이파이 핫스팟 네트워크를 분류하거나 인증하는 절차에 참여할 수 있게 합니다. 핫스팟 헬퍼 API를 설명하기 위해 NEHotspotHelper 클래스 참고문서를 따릅니다.

A Hotspot Helper application receives commands to be processed and provides a response to a command after it has been processed. In most instances, application command processing occurs while the application is running in the background.

  • 핫스팟 헬퍼

The application receives commands to process as part of two main functions: authentication and scan list filtering. These functions and their recommended implementations are described in the following sections:

  • ㅇㅐ플리케이션은 2개의 주요 기능의 부분으로 처리할 명령을 받음: 인증과 스캔목록 필터링. 이러한 함수와 구현방법은 다음 절에서 설명.

Authentication State Machine

One main function of the Hotspot Helper is to participate in the authentication state machine summarized in Figure 1-1. This state machine incorporates feedback from the helpers at various times after associating to a Wi-Fi network.

  • 주요기능 중 하나는 핫스팟헬퍼가 인증상태 시스템에 참여하는 것입니다. 상태 시스템은 Wi-Fi 네트워크에 연결한 후에 헬퍼로부터 피드백을 여러번 받습니다.

The state machine maintains a cache of results for each network that is visited, which lets it remember which helper was last chosen for a given network.

  • 상태 시스템은 각각의 네트워크에 방문했을 때의 결과를 캐시에 남기므로, 주어진 네트워크에서 마지막으로 선택된 헬퍼를 기억합니다. To help understand how the state machine works, consider the typical sequences of events for the following scenarios.
  • 상태 시스템이 어떻게 동작하는지 이해하기 위해서, 다음 시나리오에서 일반적인 이벤트의 순차를 볼 필요가 있습니다.

Sequence When Network Is Captive

네트워크가 Captive 상태일 때 순서

  1. State machine is in Inactive state.
    • 상태시스템이 Inactive 상태이다.
  2. Associate to Wi-Fi network.
    • Wi-Fi 네트워크에 연결한다.
  3. IP connectivity is established.
    • IP 접속가능성을 평가한다.
  4. State machine moves to Evaluating state.
    • 상태시스템이 평가상태로 바뀐다.
  5. Sends Evaluate command to each Hotspot Helper.
    • Evaludate 커맨드를 각 핫스팟헬퍼에게 전송
  6. Each Hotspot Helper processes the Evaluate command and determines whether the network is captive (it requires authentication).
    • 각 핫스팟 헬퍼가 Evaluate 커맨드를 처리하고, 네트워크가 captive 상태인지 결정한다. (인증이 필요함)
  7. Results from Evaluate indicate that network is captive; the “best” Hotspot Helper is chosen (best_helper).
    • Evaluate 결과로 captive 네트워크를 나타낸다. 가장 좋은 핫스팟 헬퍼를 선택한다.
  8. State machine moves to Authenticating state; cache entry is created specifying best_helper.
    • 상태시스템이 Authenticating 상태로 바뀐다. 캐시엔트리가 생성되어 베스트헬퍼가 특정된다.
  9. Sends Authenticate command to best_helper.
    • Authenticate 커맨드를 베스트헬퍼에게 보낸다.
  10. best_helper performs necessary operation to authenticate to the network and returns kNEHotspotHelperResultSuccess.
    • 베스트헬퍼는 네트워크인증을 위한 필수동작을 수행하고, kNEHotstpoHelperResultSuccess를 반환한다.
  11. State machine moves to Authenticated state and sets a Maintaining timer.
    • 상태시스템은 Authenticated 상태로 바뀌고, 유지시간을 설정한다.
  12. Timer fires; State machine moves to Maintaining state.
    • 유지시간 시작; 상태머신은 Maintaining 상태로 바뀐다.
  13. Sends Maintain command to best_helper.
    • Maintain 커맨드를 베스트헬퍼로 전송한다.
  14. best_helper processes command and returns kNEHotspotHelperResultSuccess.
    • 베스트헬퍼는 Maintain 커맨드를 처리하고, kNEHotstpoHelperResultSuccess를 반환한다.
  15. Repeat steps 11 though 14.
    • 11-14번 단계를 반복한다.

Sequence When Network Is Not Captive

네트워크가 Not Cative 일 때 순서

  1. State machine is in Inactive state.
    • 상태시스템은 Inactive 상태이다.
  2. Associate to Wi-Fi network.
    • Wi-Fi네트워크에 연결한다.
  3. IP connectivity is established.
    • IP 접속가능성을 평가한다.
  4. State machine moves to Evaluating state.
    • 상태시스템을 Evaludating 상태로 바꾼다.
  5. Sends Evaluate command to each Hotspot Helper.
    • Evaluate 커맨드를 각 핫스팟헬퍼에 전송한다.
  6. Each helper processes the Evaluate command to determine whether the network is captive.
    • 각 헬퍼는 Evaluate 커맨드를 처리하기 위해 네트워크가 captive인지 결정한다.
  7. Results from Evaluate indicate the network is not captive.
    • Evaluate 결과로 network가 not captive인 걸 표시한다.
  8. State machine moves to Authenticated state; cache entry is created indicating network not captive
    • 상태시스템이 Autenticated 상태로 바뀐다. 캐시엔트리가 생성되어 not captive 네트워크로 표시됨.
iosnetworkhotspot

iOS / In-App Purchase 기록

iOS / PHILIPS HUE SDK 2 ; Controller