Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
프라우드넷의 연결 유지 기능과 홀펀칭-윤현민
1. 2015. 09. 10 / 넷텐션㈜
혁신 / 정도 / 인내
피어간 통신 & 연결 유지 기능
개발팀 / 윤현민
2. 프라우드넷의 피어간 통신 Overview
• Peer to Peer 그룹 기능
• Just In Time(JIT) 홀펀칭
• 메시지 통신 경로 제어
• Reliable UDP(RUDP)
3. Peer To Peer 그룹이란?
• Peer 간 통신을 위하여 그룹 개념을
사용합니다.
• 클라이언트들은 원하는 그룹에 가입하여
피어간 Direct 통신을 할 수 있습니다.
(Default 로 다른 Peer에게 메시지를 전송
하면 서버를 통하여 전송 됩니다.)
• 개발자는 걱정 없이 그룹 가입 직후 바로
통신을 하여도 됩니다.
5. Just In Time(JIT) 홀펀칭
Unreliable 메시지 송신
Background 로 홀펀칭 시작
UDP 홀펀칭 랑데뷰서버 역할
홀펀칭 과정중에도 통신 가능!
6. 메시지 통신 경로 제어
• 메시지 통신 경로 제어는 제일 윗 단에서
동작합니다.
• Relay, Direct P2P 통신의 속도를 실시간으
로 검사하여 최적의 경로로 통신을 합니다.
★ Relay 통신이 많아지면 서버의 부하 가 따를 수 있습니다.
이런 제어 옵션도 개발자에게 제공이 되어 On/Off 만으로
쉽게 사용할 수 있습니다.
7. Reliable UDP(RUDP)
• 다른 Peer에게 Reliable 메시지 전송 시
흔히 말하는 RUDP 를 내부적으로
사용합니다.
• TCP Stack을 그대로 구현 하였습니다.
- Slow Start
- Sliding Window
- Congestion Control
- Fast retransmission
- Etc.
8. 이것만 알면 됩니다!
• 다른 Peer 에게 Reliable 메시지 전송 시
(P2P Group)
RUDP 로 송/수신
서로간 P2P 그룹 원인 상태
9. 이것만 알면 됩니다!
• 다른 Peer 에게 Reliable 메시지 전송 시
(Non P2P Group)
서로간 P2P 그룹 원이 아닌 상태
To Server Relay 송/수신
10. 피어간 통신 Q&A
Q. P2P 그룹에 여러 클라이언트가 있다면,
각 클라이언트마다 UDP 소켓이 할당 되나요?
A. Peer 간 UDP 소켓은 한 개만 사용 합니다.
11. 피어간 통신 Q&A
Q. P2P 그룹의 Peer 간 Reliable 메시지 통신 중에
UDP 에 문제가 생기면 어떻게 되나요?
A. UDP 의 로스율이 심해지고 레이턴시가 심해지면
자동으로 Relay 통신으로 전환이 되므로
안심 하셔도 됩니다.
12. 간단하게 보는 프라우드넷
메시지 처리 계층도
Message Route Control Layer
(메시지 통신 경로 제어)
ProudNet Protocol Layer
(RUDP, UDP Congestion Control, TCP Custom Layer 등
자체 개발 송/수신 프로토콜 처리)
Fallbackable Layer
(To Server TCP, UDP 통신 경로 제어)
13. 1.7 신기능 연결 유지 기능
(Auto Connection Recovery – ACR)
14. 연결 유지 기능 Overview
• 모바일 데이터 사용률 추이
• 셀룰러 WiFi 전환 시 문제점
• 연결 유지 기능(ACR) 이란?
• 앞으로 해결 해야 될 문제점
15. 모바일 데이터 사용률 추이
• 무제한 요금제가 있지만 아직 WiFi 사용률이 더 높습니다.
• WiFi 의 신호 영역은 생각 외로 좁습니다.
2014년도 모바일 데이터 사용률 통계
17. 셀룰러 WiFi 전환 시 문제점
• 네트워크 핸드오버가 일어날 시에
응용 프로그램의 소켓은 모두 일제히
끊겨 버립니다.
• 더욱 큰 문제는 WiFi 의 신호가 약해져
셀룰러로 전환이 될 때, PC 의 랜선이
뽑힌 현상과 비슷한 상황이 연출 됩니다.
• 더 골치 아픈 건, 이 현상이 폰 기종마다
상이 하다는 겁니다!
18. 개발 진행 중 문제점
• WiFi <-> 셀룰러 핸드오버 시, OS 는
네트워크 전환이 일어났지만
어플리케이션에서 일정시간 새로운
이더넷을 감지 하지 못합니다.
이 일정시간은 같은 OS 라 하더라도 폰 기종
마다 상이 합니다.
20. 연결 유지 기능(ACR) 이란?
• 프라우드넷 내부에서 네트워크 감지 기능으로 새로운
네트워크 전환 시 빠르게 재 접속을 시도 합니다.
• 연결이 끊겨 있던 상태에서 보냈던 메시지들도
재 접속 되었을 때, 송신을 보장 합니다.
• P2P 그룹 정보도 유지가 되며, 서버에
재 접속이 완료 되면 자동으로 홀펀칭을 시도 합니다.
• 개발자는 잠깐 레이턴시가 길어 졌다 생각하면 됩니
다.
21. 연결 유지 기능(ACR) 이란?
약간의 전송 지연
Message Keeping,
Reconnection,
Authentication
User Layer
ProudNet
Layer
1. 네트워크 전환
User Layer
ProudNet
Layer
2. 재 연결
3. 재 인증 요청
4. 인증 확인
5. 전송 하지 못했던 패킷들 재전송
22. 이 모든 것이 자동으로 동작 하며,
개발자는 이벤트 처리만 해주면 됩니다!
Client Event Method
Server Event Method