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

Weitere ähnliche Inhalte

Was ist angesagt?

실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략YEONG-CHEON YOU
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceXionglong Jin
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들Hyunjik Bae
 
게임 디자이너와 게임 서버
게임 디자이너와 게임 서버게임 디자이너와 게임 서버
게임 디자이너와 게임 서버ByungChun2
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기Brian Hong
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architectureJongwon Kim
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree AlgorithmMerry Merry
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)Seungmo Koo
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지강 민우
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버iFunFactory Inc.
 
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012devCAT Studio, NEXON
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013devCAT Studio, NEXON
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현YEONG-CHEON YOU
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019devCAT Studio, NEXON
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCHo Gyu Lee
 
게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가Seungmo Koo
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화Jaeseung Ha
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기Sang Heon Lee
 

Was ist angesagt? (20)

실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들
 
게임 디자이너와 게임 서버
게임 디자이너와 게임 서버게임 디자이너와 게임 서버
게임 디자이너와 게임 서버
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architecture
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree Algorithm
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버
 
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기
 

Andere mochten auch

Unity에서 회전하는 cube 만드는 법
Unity에서 회전하는 cube 만드는 법Unity에서 회전하는 cube 만드는 법
Unity에서 회전하는 cube 만드는 법Hyunjik Bae
 
프라우드넷의 IL2CPP 적응 기록-정종채
프라우드넷의 IL2CPP 적응 기록-정종채프라우드넷의 IL2CPP 적응 기록-정종채
프라우드넷의 IL2CPP 적응 기록-정종채Hyunjik Bae
 
KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론Hyunjik Bae
 
라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성Hyunjik Bae
 
ProudNet 1.7 소개
ProudNet 1.7 소개ProudNet 1.7 소개
ProudNet 1.7 소개Hyunjik Bae
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직Hyunjik Bae
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조Hyunjik Bae
 

Andere mochten auch (7)

Unity에서 회전하는 cube 만드는 법
Unity에서 회전하는 cube 만드는 법Unity에서 회전하는 cube 만드는 법
Unity에서 회전하는 cube 만드는 법
 
프라우드넷의 IL2CPP 적응 기록-정종채
프라우드넷의 IL2CPP 적응 기록-정종채프라우드넷의 IL2CPP 적응 기록-정종채
프라우드넷의 IL2CPP 적응 기록-정종채
 
KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론KGC 2014: 분산 게임 서버 구조론
KGC 2014: 분산 게임 서버 구조론
 
라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성
 
ProudNet 1.7 소개
ProudNet 1.7 소개ProudNet 1.7 소개
ProudNet 1.7 소개
 
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
KGC 2014: 클라이언트 개발자를 위한 컴퓨터 네트워크 기초 배현직
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 

Ähnlich wie 프라우드넷의 연결 유지 기능과 홀펀칭-윤현민

[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가NAVER D2
 
글로벌 모바일 네트워크 환경 이해 Understanding global mobile network situation
글로벌 모바일 네트워크 환경 이해 Understanding global mobile network situation글로벌 모바일 네트워크 환경 이해 Understanding global mobile network situation
글로벌 모바일 네트워크 환경 이해 Understanding global mobile network situationJonghyon Sohn
 
모니터링 영역의 변천사_클라우드, 디지털 경험까지)
모니터링 영역의 변천사_클라우드, 디지털 경험까지)모니터링 영역의 변천사_클라우드, 디지털 경험까지)
모니터링 영역의 변천사_클라우드, 디지털 경험까지)IMQA
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항Ji-Woong Choi
 
장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327호상 장
 
[1D5]모바일 p2p 미디어 스트리밍 방법
[1D5]모바일 p2p 미디어 스트리밍 방법[1D5]모바일 p2p 미디어 스트리밍 방법
[1D5]모바일 p2p 미디어 스트리밍 방법NAVER D2
 
SDN - 2018 Zeropage Devil's Camp
SDN - 2018 Zeropage Devil's CampSDN - 2018 Zeropage Devil's Camp
SDN - 2018 Zeropage Devil's CampMookeunJi
 
웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD활 김
 
1st SDN Interest Group Seminar - Session1 (121017)
1st SDN Interest Group Seminar - Session1 (121017)1st SDN Interest Group Seminar - Session1 (121017)
1st SDN Interest Group Seminar - Session1 (121017)NAIM Networks, Inc.
 
장애 분석 절차 (서영일)
장애 분석 절차 (서영일)장애 분석 절차 (서영일)
장애 분석 절차 (서영일)WhaTap Labs
 
스마트폰 위의 딥러닝
스마트폰 위의 딥러닝스마트폰 위의 딥러닝
스마트폰 위의 딥러닝NAVER Engineering
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선NAVER D2
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면Byeongsu Kang
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos uEngine Solutions
 
Oracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewOracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewTaewan Kim
 
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉iFunFactory Inc.
 
SoftLayer에서 VM 생성해보기!
SoftLayer에서 VM 생성해보기!SoftLayer에서 VM 생성해보기!
SoftLayer에서 VM 생성해보기!IBM Korea
 

Ähnlich wie 프라우드넷의 연결 유지 기능과 홀펀칭-윤현민 (20)

[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
 
글로벌 모바일 네트워크 환경 이해 Understanding global mobile network situation
글로벌 모바일 네트워크 환경 이해 Understanding global mobile network situation글로벌 모바일 네트워크 환경 이해 Understanding global mobile network situation
글로벌 모바일 네트워크 환경 이해 Understanding global mobile network situation
 
모니터링 영역의 변천사_클라우드, 디지털 경험까지)
모니터링 영역의 변천사_클라우드, 디지털 경험까지)모니터링 영역의 변천사_클라우드, 디지털 경험까지)
모니터링 영역의 변천사_클라우드, 디지털 경험까지)
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
 
장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327장호상, 유재우 제안서 130327
장호상, 유재우 제안서 130327
 
[1D5]모바일 p2p 미디어 스트리밍 방법
[1D5]모바일 p2p 미디어 스트리밍 방법[1D5]모바일 p2p 미디어 스트리밍 방법
[1D5]모바일 p2p 미디어 스트리밍 방법
 
SDN - 2018 Zeropage Devil's Camp
SDN - 2018 Zeropage Devil's CampSDN - 2018 Zeropage Devil's Camp
SDN - 2018 Zeropage Devil's Camp
 
웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD
 
1st SDN Interest Group Seminar - Session1 (121017)
1st SDN Interest Group Seminar - Session1 (121017)1st SDN Interest Group Seminar - Session1 (121017)
1st SDN Interest Group Seminar - Session1 (121017)
 
장애 분석 절차 (서영일)
장애 분석 절차 (서영일)장애 분석 절차 (서영일)
장애 분석 절차 (서영일)
 
스마트폰 위의 딥러닝
스마트폰 위의 딥러닝스마트폰 위의 딥러닝
스마트폰 위의 딥러닝
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
Oracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker OverviewOracle Container Cloud Service & Docker Overview
Oracle Container Cloud Service & Docker Overview
 
201702-Oracle Container Cloud Service
201702-Oracle Container Cloud Service201702-Oracle Container Cloud Service
201702-Oracle Container Cloud Service
 
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
 
SoftLayer에서 VM 생성해보기!
SoftLayer에서 VM 생성해보기!SoftLayer에서 VM 생성해보기!
SoftLayer에서 VM 생성해보기!
 

프라우드넷의 연결 유지 기능과 홀펀칭-윤현민

  • 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년도 모바일 데이터 사용률 통계
  • 16. 따라서 개발자는 셀룰러  WiFi 핸드오버를 감안하고 프로그램을 개발 해야 합니다!
  • 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
  • 23. 연결 유지 기능 시연 동영상
  • 24. 앞으로 해결 해야 될 문제점 • WiFi 수신 감도가 낮아 졌을 때. • L4 스위치 or 로드 밸런서 지원 - 현재 ACR 은 기존에 접속했던 서버 머신 에서만 정상 작동 합니다.