SlideShare a Scribd company logo
1 of 80
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
아이펀팩토리 문대경
(dkmoon@ifunfactory.com)
Inven Game Conference
0
Overview
왕년에 CD/DVD 좀 구워 보셨습니까?
0
Overview
그렇다면 이 프로그램들도 기억하시겠네욤
0
Overview
Napster 이야기
 Sean Fanning, Sean Parker 등으로부터 1999년 서비스 시작
 최대 8천만 명의 등록 유저
 미공개 음원 유통으로 Metallica 로부터 “너 고소”
 Dr. Dre 의 저작물 삭제 요청 무시로 “너 고소”
 유저들의 저작권 위반 방조 이유로 A&M Records 로부터 “너 고소”
 … (연속 고소미 콤보)
 유저의 저작권 위반 행위를 적극적으로 방지하라는 법원 명령에
2001년 서비스 종료
0
Overview
Napster 동작 방식
냅스터의
인덱싱 서버
① 보유한 MP3 파일명과
자신의 IP 주소 등록
② 노래 검색
③ 저장된 파일명 DB를 이용해 검색 매칭 후
MP3 보유 컴퓨터 IP 반환
④ 파일 전송 요청
1
Client-Server Model vs. Peer-to-Peer Model
기존 서비스 구성 방법의 특징
• Centralized:
모든 정보는 중앙에 집중됨
• Managed:
전담 관리자가 서비스를 관리함
1 Napster 의 클라이언트-서버 통신 부분
냅스터의
인덱싱 서버
클라이언트-서버 통신
Client-Server Model vs. Peer-to-Peer Model
1 Napster 의 사용자간 통신 부분 (P2P)
냅스터의
인덱싱 서버
사용자간 통신
Client-Server Model vs. Peer-to-Peer Model
1 기존 서비스 아키텍처와의 차이점
 Decentralized:
정보는 흩어져 있음
 Unmanaged:
전담 관리자가 존재하지 않음
Client-Server Model vs. Peer-to-Peer Model
1 기존 서비스 아키텍처와의 차이점
 Decentralized:
정보는 흩어져 있음
 Unmanaged:
전담 관리자가 존재하지 않음
변화의 동기
 운영 비용 문제
Client-Server Model vs. Peer-to-Peer Model
1 Client-Server Model
Client-Server Model vs. Peer-to-Peer Model
1 Client-Server Model
Pros
 Centralized: 서비스 변경이 쉬움
 Managed: 안정적인 서비스 가능
Client-Server Model vs. Peer-to-Peer Model
1 Client-Server Model
Pros
 Centralized: 서비스 변경이 쉬움
 Managed: 안정적인 서비스 가능
Cons
 서버 과부하
 네트워크 과부하
Client-Server Model vs. Peer-to-Peer Model
1 Peer-to-Peer Model
Client-Server Model vs. Peer-to-Peer Model
1 Peer-to-Peer Model
→ 참여자간 품앗이
Client-Server Model vs. Peer-to-Peer Model
1 P2P 관련 잘못된 믿음 #1
P2P 는 사용자들끼리 통신하는 것이다.
Client-Server Model vs. Peer-to-Peer Model
1 P2P 관련 잘못된 믿음 #1
P2P 는 사용자들끼리 통신하는 것이다.
 클러스터링을 위해 서버간 P2P 망을 구성할 수도 있다.
예) 로그인한 유저 정보를 REDIS 에 몰아서 저장하기
vs.
로그인한 유저 정보를 서버들 각각이 저장하기
 P2P 는 중앙집중 요소를 없애는 범용 테크닉임
Client-Server Model vs. Peer-to-Peer Model
2
Peer-to-Peer Application
P2P 응용의 확장
파일 공유
2
Peer-to-Peer Application
P2P 응용의 확장
파일 공유 컴퓨팅 파워 공유
(분산 처리)
2
Peer-to-Peer Application
P2P 응용의 확장
파일 공유 컴퓨팅 파워 공유
(분산 처리)
네트워크 공유
(라우팅)
3
Overlay Network by P2P
P2P의 라우팅에서의 응용
인터넷 inter + net (망 사이의 연결)
망 사이의 패킷 전달 규칙
= 정책 기반 라우팅 (policy-based routing)
= 효율성과 관계없이 정책에 따라 패킷을 보냄
(특정 국가를 우회하거나, 특정 망 사업자를 선호하거나..)
망사업자
A
망사업자
C
망사업자
B
망사업자
D
3
Overlay Network by P2P
P2P 를 통한 정책 기반 라우팅 극복
A
서버
클라
쓰리쿠숀 클라
(라우터로 동작)
B C
D
E
기본 라우팅 규칙에 따른 경로
P2P 로 다른 클라 에게
패킷을 릴레이 하는 경우 경로
3
Overlay Network by P2P
P2P의 라우팅에서의 응용
A
CB
D
서버
클라
클라
클라들이 같은 망 사업자에 연결된 경우도 당연히 유용하다.
서버까지 갔다 오는 경로
직접 클라로 가는 경로
0 P2P 관련 잘못된 믿음 #2
P2P 가 더 빠르다.
Overlay Network by P2P
 Topology 에 따라 그럴 수도 있고 아닐 수도 있다.
0 P2P 관련 잘못된 믿음 #2
P2P 가 더 빠르다.
CB
A
서버
클라 클라
Overlay Network by P2P
3
Overlay Network by P2P
2000 년대 중반까지의 P2P 연구 전성기
라우팅 우회라는 네트워크적 효용성으로
2000년대 중반까지 P2P 관련 수많은 연구가 쏟아짐
(CAN, Pastry, Tapestry, Chord, Kademila, BitTorrent, …)
참고: 물리 네트워크 위에 다시 논리 네트워크를 만든 것 같다 하여
오버레이 네트워크 (Overlay Network) 이라 함
4
Issues Related to Peer-to-Peer Approach
P2P 연구의 난제들
P2P 프로토콜 설계/구현에서의 난제들
1. 통신할 상대방 찾기 (resource discovery)
2. 참여자의 들락날락거림 처리 (churn handling)
3. 품앗이에서 치팅 방지 (fairness enforcement)
4. 통신 채널 보장하기 (NAT traversal)
4 P2P 연구의 난제 #1 - 통신할 상대방 찾기
Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
Approach 1. Directory (e.g., Napster)
인덱싱 서버
① 보유한 MP3 파일명과
자신의 IP 주소 등록
② 노래 검색
③ 저장된 파일명 DB를 이용해 검색 매칭 후
MP3 보유 컴퓨터 IP 반환
④ 파일 전송 요청
Issues Related to Peer-to-Peer Approach
4 P2P 연구의 난제 #1 - 통신할 상대방 찾기
인덱싱 서버
① 보유한 MP3 파일명과
자신의 IP 주소 등록
② 노래 검색
③ 저장된 파일명 DB를 이용해 검색 매칭 후
MP3 보유 컴퓨터 IP 반환
④ 파일 전송 요청
Approach 1. Directory (e.g., Napster)
Pros: Simplicity (통신 방식이 단순함)
Cons: Single point of failure (디렉토리에 과부하나 오류 발생한다면?)
Issues Related to Peer-to-Peer Approach
Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
4 P2P 연구의 난제 #1 - 통신할 상대방 찾기
Approach 2. Broadcasting (e.g., Gnutella)
…
…
박효신
Issues Related to Peer-to-Peer Approach
Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
4 P2P 연구의 난제 #1 - 통신할 상대방 찾기
…
…
박효신
Approach 2. Broadcasting (e.g., Gnutella)
Issues Related to Peer-to-Peer Approach
Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
4 P2P 연구의 난제 #1 - 통신할 상대방 찾기
…
…
박효신
Approach 2. Broadcasting (e.g., Gnutella)
Issues Related to Peer-to-Peer Approach
Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
4 P2P 연구의 난제 #1 - 통신할 상대방 찾기
…
…
박효신
저요!
Approach 2. Broadcasting (e.g., Gnutella)
Issues Related to Peer-to-Peer Approach
Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
4 P2P 연구의 난제 #1 - 통신할 상대방 찾기
…
…
박효신
저요!
Approach 2. Broadcasting (e.g., Gnutella)
Issues Related to Peer-to-Peer Approach
Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
4 P2P 연구의 난제 #1 - 통신할 상대방 찾기
…
…
Approach 2. Broadcasting (e.g., Gnutella)
Issues Related to Peer-to-Peer Approach
Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
4 P2P 연구의 난제 #1 - 통신할 상대방 찾기
…
…
박효신
Approach 2. Broadcasting
Pros: Simplicity (별도의 state 관리가 필요없음)
Cons: Query storms (사용자는 모든 쿼리를 다 받는다)
Issues Related to Peer-to-Peer Approach
Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
4 P2P 연구의 난제 #1 - 통신할 상대방 찾기
Approach 3. Cascaded directory
Approach 4. Distributed Hash Table (DHT)
…
Issues Related to Peer-to-Peer Approach
Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
4 P2P 연구의 난제 #2 – Churn 처리
Q2. 사용자 풀 변화에도 어떻게 계속 통신할 것인가?
Case 1: 중간 노드가 죽었다면?
…
…
박효신
저요!
?
Issues Related to Peer-to-Peer Approach
4 P2P 연구의 난제 #2 – Churn 처리
Case 2: 새 노드가 들어왔다면?
…
…
문대경
저요!
?
Issues Related to Peer-to-Peer Approach
Q2. 사용자 풀 변화에도 어떻게 계속 통신할 것인가?
4 P2P 연구의 난제 #2 – Churn 처리
…
…
문대경
저요!
?
 Churn 처리는 결국 state 관리를 의미한다.
 Churn 의 영향을 줄이기 위해서는 가급적 적은 state 만 관리해야 된다.
 그러나 discovery 속도를 올리기 위해서는 가급적 많은 state 가 유리하다.
 따라서 churn 처리와 discovery 성능 둘을 동시에 만족시키는 것은 매우 어렵다.
Issues Related to Peer-to-Peer Approach
Q2. 사용자 풀 변화에도 어떻게 계속 통신할 것인가?
4 P2P 연구의 난제 #3 – 치팅 방지하기
Q3. 이기적인 사용자가 있는 경우 어떻게 할까?
Issues Related to Peer-to-Peer Approach
4 P2P 연구의 난제 #3 – 치팅 방지하기
 P2P 는 품앗이 방식으로 동작한다.
 따라서 모든 사용자가 이기적으로 행동할 경우
service collapse 가 발생한다.
 이기적인 행동을 제재하거나
정당하게 행동하도록 동기부여가 필요하다.
그런데 어떻게? -_-
Issues Related to Peer-to-Peer Approach
Q3. 이기적인 사용자가 있는 경우 어떻게 할까?
4 P2P 연구의 난제 #3 – 치팅 방지하기
 P2P 는 품앗이 방식으로 동작한다.
 따라서 모든 사용자가 이기적으로 행동할 경우
service collapse 가 발생한다.
 이기적인 행동을 제재하거나
정당하게 행동하도록 동기부여가 필요하다.
그런데 어떻게? -_-
Issues Related to Peer-to-Peer Approach
Q3. 이기적인 사용자가 있는 경우 어떻게 할까?
4 P2P 연구의 난제 #3 – 치팅 방지하기
 P2P 는 품앗이 방식으로 동작한다.
 따라서 모든 사용자가 이기적으로 행동할 경우
service collapse 가 발생한다.
 이기적인 행동을 제재하거나
정당하게 행동하도록 동기부여가 필요하다.
그런데 어떻게? -_-
Issues Related to Peer-to-Peer Approach
Q3. 이기적인 사용자가 있는 경우 어떻게 할까?
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Q4. 사용자간 연결은 어떻게 보장하나?
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Q4. 사용자간 연결은 어떻게 보장하나?
IPv4 주소는 32bit 를 사용하므로 2^32 = 약 40억개만 사용 가능하다.
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Q4. 사용자간 연결은 어떻게 보장하나?
128bit 주소 체계인 IPv6 도입이 지지부진한 틈을 타 NAT 장비를 통한 “사설 IP” 가 일반화됨
그리고 NAT 는 외부에서의 선진입을 허용하지 않는다.
이미지 출처: iptime
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Q4. 사용자간 연결은 어떻게 보장하나?
128bit 주소 체계인 IPv6 도입이 지지부진한 틈을 타 NAT 장비를 통한 “사설 IP” 가 일반화됨
그리고 NAT 는 외부에서의 선진입을 허용하지 않음
이미지 출처: iptime
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Hole Punching: NAT 에 구멍 뚫기
이미지 출처: iconfinder.com
클라 A 클라 B
NAT (공유기)
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Hole Punching: NAT 에 구멍 뚫기
이미지 출처: iconfinder.com
클라 A 클라 B
NAT (공유기)
NAT traversal server
(E.g., STUN)
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Hole Punching: NAT 에 구멍 뚫기
이미지 출처: iconfinder.com
클라 A 클라 B
사설 IP
공인 IP
NAT (공유기)
NAT traversal server
(E.g., STUN)
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Hole Punching: NAT 에 구멍 뚫기
이미지 출처: iconfinder.com
클라 A 클라 B
사설 IP
공인 IP
NAT (공유기)
NAT traversal server
(E.g., STUN)
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Hole Punching: NAT 에 구멍 뚫기
이미지 출처: iconfinder.com
클라 A 클라 B
사설 IP
공인 IP
NAT (공유기)
NAT traversal server
(E.g., STUN)
① 외부로 나갈 때 사설 IP, port 가
공인 IP, port 로 변환됨
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Hole Punching: NAT 에 구멍 뚫기
이미지 출처: iconfinder.com
클라 A 클라 B
사설 IP
공인 IP
NAT (공유기)
NAT traversal server
(E.g., STUN) A 공인 IP, port 기록
② 디렉토리 서버는
패킷으로부터
A 의 공인 IP, port 기록
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Hole Punching: NAT 에 구멍 뚫기
이미지 출처: iconfinder.com
클라 A 클라 B
사설 IP
공인 IP
NAT (공유기)
NAT traversal server
(E.g., STUN) A 공인 IP, port 기록
③ B 는 디렉토리 서버에서
A 의 공인 IP, port 파악
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Hole Punching: NAT 에 구멍 뚫기
이미지 출처: iconfinder.com
클라 A 클라 B
사설 IP
공인 IP
NAT (공유기)
NAT traversal server
(E.g., STUN) A 공인 IP, port 기록
④ B 는 A 의 공인 IP, port 로 접속
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
NAT 의 문제: 표준이 없음
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
이미지 출처: iconfinder.com
클라 A 클라 B
사설 IP
공인 IP
NAT (공유기)
NAT traversal server
(E.g., STUN)
① 외부로 나갈 때 사설 IP, port 가
공인 IP, port 로 변환됨
NAT 의 문제: 표준이 없음
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Full cone NAT
Address-restricted conn NAT
Port-restricted conn NAT
Symmetric NAT
NAT 의 문제: 표준이 없음
4 P2P 연구의 난제 #4 – 연결 보장하기
Issues Related to Peer-to-Peer Approach
Full cone NAT
Address-restricted conn NAT
Port-restricted conn NAT
Symmetric NAT모두 각각의 NAT 뒤에
있을 때 P2P 통신 불가
NAT 의 문제: 표준이 없음
4
Issues Related to Peer-to-Peer Approach
둘 다 NAT 뒤에 있으면 랑데부 방식의 릴레이 서버를 이용한다
클라 A 클라 B
NAT (공유기)
릴레이 서버 (e.g., TURN)
NAT (공유기)
P2P 관련 잘못된 믿음 #3
4
Issues Related to Peer-to-Peer Approach
둘 다 NAT 뒤에 있으면 랑데부 방식의 릴레이 서버를 이용한다
P2P 관련 잘못된 믿음 #3
① 동작
② 판정
③ 결과전송③ 결과전송
클라이언트 클라이언트
게임 서버
① 동작
② 판정
③ 결과전송
클라이언트 클라이언트 (리슨 서버)
게임 서버
① 동작 ② 전달(동작)
③ 판정
③ 전달(결과)④ 결과
전송
클라이언트 클라이언트 (리슨 서버)
릴레이 서버
1. 클라이언트-서버 모델 2. 직접 통신 가능한 P2P 모델 3. 릴레이를 통하는 P2P 모델
4 Peer-to-Peer 요약
→ 참여자간 품앗이
Issues Related to Peer-to-Peer Approach
4 Peer-to-Peer 요약
→ 참여자간 품앗이
Pros
 서버 부하 감소라는 확실한 이점
 라우팅 우회라는 잠재적 이점
Issues Related to Peer-to-Peer Approach
4 Peer-to-Peer 요약
→ 참여자간 품앗이
Pros
 서버 부하 감소라는 확실한 이점
 라우팅 우회라는 잠재적 이점
Cons
 Discovery, Churn, Fairness 어려움
 NAT traversal 표준의 부재
Issues Related to Peer-to-Peer Approach
5
Peer-to-Peer in Gaming
게임에 P2P 의 도입
상업적으로 성공한 첫 P2P 게임
5
Peer-to-Peer in Gaming
게임에 P2P 의 도입
BnB 클라 BnB 클라
BnB 서버
① P2P 가능 시
이동 패킷 전송
① 검증용으로
서버에도 전송
② 검증
③ 위치 보정에
참고
5
Peer-to-Peer in Gaming
PC 온라인 게임과 모바일 게임의 네트워크적 가정의 차이
PC 온라인 게임 모바일 게임
동작 환경 유선 초고속 인터넷
3G/LTE 모바일 망
WiFi
연결 안정성 끊김 드묾
망 간 이동에 따른
끊김 빈번
대역폭 xDSL, FTTH, Giga lan 3G, LTE
딜레이 < 100 msec RTT 왔다갔다하는 RTT (jitter)
NAT 제약 저가 가정용 공유기 고가 이통사 장비
PC 온라인 게임 모바일 게임
동작 환경 유선 초고속 인터넷
3G/LTE 모바일 망
WiFi
연결 안정성 끊김 드묾
망 간 이동에 따른
끊김 빈번
대역폭 xDSL, FTTH, Giga lan 3G, LTE
딜레이 < 100 msec RTT 왔다갔다하는 RTT (jitter)
NAT 제약 저가 가정용 공유기 고가 이통사 장비
5
Peer-to-Peer in Gaming
PC 온라인 게임과 모바일 게임의 네트워크적 가정의 차이
네트워크적 가정의 차이로 모바일에서의 P2P 게임 개발은 PC 온라인과는 크게 다름!!
보다 정확히는 모바일 망에서의 P2P 개발은 유선망과 다름을 의미
PC 온라인 게임 모바일 게임
동작 환경 유선 초고속 인터넷
3G/LTE 모바일 망
WiFi
연결 안정성 끊김 드묾
망 간 이동에 따른
끊김 빈번
대역폭 xDSL, FTTH, Giga lan 3G, LTE
딜레이 < 100 msec RTT 왔다갔다하는 RTT (jitter)
NAT 제약 저가 가정용 공유기 고가 이통사 장비
5
Peer-to-Peer in Gaming
PC 온라인 게임과 모바일 게임의 네트워크적 가정의 차이
네트워크적 가정의 차이로 모바일에서의 P2P 게임 개발은 PC 온라인과는 크게 다름!!
보다 정확히는 모바일 망에서의 P2P 개발은 유선망과 다름을 의미
5
Peer-to-Peer in Gaming
유선 환경에서의 P2P 대응
룸-로비 방식의 게임에 주로 사용됨
따라서 discovery 는 결국 matchmaking 과 동일함
이 부분만 directory service 를 이용하는 client-server 모델을 주로 활용
Discovery
5
Peer-to-Peer in Gaming
유선 환경에서의 P2P 대응
룸-로비 방식의 게임에 주로 사용됨
따라서 discovery 는 결국 matchmaking 과 동일함
이 부분만 directory service 를 이용하는 client-server 모델을 주로 활용
유선 네트워크는 연결이 끊기는 일이 거의 없음
따라서 갑자기 나가는 경우에 대한 처리는 방폭 형태로 처리
만들어진 방에 난입하는 기획이 아닌 한 갑자기 들어올 수도 없음
Discovery
Churn
5
Peer-to-Peer in Gaming
유선 환경에서의 P2P 대응
룸-로비 방식의 게임에 주로 사용됨
따라서 discovery 는 결국 matchmaking 과 동일함
이 부분만 directory service 를 이용하는 client-server 모델을 주로 활용
유선 네트워크는 연결이 끊기는 일이 거의 없음
따라서 갑자기 나가는 경우에 대한 처리는 방폭 형태로 처리
만들어진 방에 난입하는 기획이 아닌 한 갑자기 들어올 수도 없음
사용자가 치팅을 하지 않도록 유도하는 것은 불가능함
그러나 안정적인 유선 네트워크 특성상 작은 이상 행동도 확인 가능
Discovery
Churn
Fairness
5
Peer-to-Peer in Gaming
유선 환경에서의 P2P 대응
룸-로비 방식의 게임에 주로 사용됨
따라서 discovery 는 결국 matchmaking 과 동일함
이 부분만 directory service 를 이용하는 client-server 모델을 주로 활용
유선 네트워크는 연결이 끊기는 일이 거의 없음
따라서 갑자기 나가는 경우에 대한 처리는 방폭 형태로 처리
만들어진 방에 난입하는 기획이 아닌 한 갑자기 들어올 수도 없음
사용자가 치팅을 하지 않도록 유도하는 것은 불가능함
그러나 안정적인 유선 네트워크 특성상 작은 이상 행동도 확인 가능
가정용 공유기의 NAT 구현은 복잡도가 크지 않음
Discovery
Churn
Fairness
NAT Traversal
5
Peer-to-Peer in Gaming
모바일 망 환경에서의 P2P 대응
유선 환경과 마찬가지로, 룸-로비 방식의 게임에 주로 사용됨Discovery
5
Peer-to-Peer in Gaming
모바일 망 환경에서의 P2P 대응
유선 환경과 마찬가지로, 룸-로비 방식의 게임에 주로 사용됨
수시로 네트워크 단절 가능
따라서 유선처럼 방폭 형태로 처리할 경우 게임 진행 불가
서버 역할의 클라 단절에 대비한 state replication 필요
그러나 게임처럼 딜레이에 민감한 응용에서 이는 어려움
Discovery
Churn
5
Peer-to-Peer in Gaming
모바일 망 환경에서의 P2P 대응
유선 환경과 마찬가지로, 룸-로비 방식의 게임에 주로 사용됨
수시로 네트워크 단절 가능
따라서 유선처럼 방폭 형태로 처리할 경우 게임 진행 불가
서버 역할의 클라 단절에 대비한 state replication 필요
그러나 게임처럼 딜레이에 민감한 응용에서 이는 어려움
모바일 망은 딜레이나 단절에 더 관대한 처리를 해야 되는데,
이 틈을 이용해 치팅이 가능해짐
Discovery
Churn
Fairness
5
Peer-to-Peer in Gaming
모바일 망 환경에서의 P2P 대응
유선 환경과 마찬가지로, 룸-로비 방식의 게임에 주로 사용됨
수시로 네트워크 단절 가능
따라서 유선처럼 방폭 형태로 처리할 경우 게임 진행 불가
서버 역할의 클라 단절에 대비한 state replication 필요
그러나 게임처럼 딜레이에 민감한 응용에서 이는 어려움
모바일 망은 딜레이나 단절에 더 관대한 처리를 해야 되는데,
이 틈을 이용해 치팅이 가능해짐
이통사는 주파수 자원의 효율적 운용을 위해 더욱 복잡한 NAT 를 사용
기존의 홀펀칭으로는 NAT 극복 불가능
랑데부 방식의 릴레이 사용은 추가적인 딜레이를 유발
Discovery
Churn
Fairness
NAT Traversal
6
Summary
결론
 P2P 는 파일 공유에서 일반적으로 활용된 기법
 부하 분산이라는 강력한 특성을 가지고 있음
 라우팅 우회라는 특성 덕분에 overlay 등의 네트워크 응용에 활용
 게임에서도 이런 네트워크적 특성때문에 도입
 그러나 P2P 가 반드시 빠른 연결을 보장하지는 않음
 또한 모바일 망 환경에서 P2P 게임 구현은 힘듦
감사합니다
아 이 펀 팩 토 리
문 대 경

More Related Content

What's hot

[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)Heungsub Lee
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012Esun Kim
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019devCAT Studio, NEXON
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버준철 박
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건강 민우
 
게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱Seungmo Koo
 
프라우드넷의 연결 유지 기능과 홀펀칭-윤현민
프라우드넷의 연결 유지 기능과 홀펀칭-윤현민프라우드넷의 연결 유지 기능과 홀펀칭-윤현민
프라우드넷의 연결 유지 기능과 홀펀칭-윤현민Hyunjik Bae
 
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)Kay Kim
 
게임 개발자가 되고 싶어요
게임 개발자가 되고 싶어요게임 개발자가 되고 싶어요
게임 개발자가 되고 싶어요Lee Sangkyoon (Kay)
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCHo Gyu Lee
 
個人からトリプル A タイトルのゲーム開発者まで。Azure PlayFab で LiveOps しよう
個人からトリプル A タイトルのゲーム開発者まで。Azure PlayFab で LiveOps しよう個人からトリプル A タイトルのゲーム開発者まで。Azure PlayFab で LiveOps しよう
個人からトリプル A タイトルのゲーム開発者まで。Azure PlayFab で LiveOps しようDaisuke Masubuchi
 
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hostingiFunFactory Inc.
 
어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?Lee Sangkyoon (Kay)
 
게임 디자이너와 게임 서버
게임 디자이너와 게임 서버게임 디자이너와 게임 서버
게임 디자이너와 게임 서버ByungChun2
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들영욱 오
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceXionglong Jin
 
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들강 민우
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architectureJongwon Kim
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀승명 양
 
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점Ryan Park
 

What's hot (20)

[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건
 
게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱
 
프라우드넷의 연결 유지 기능과 홀펀칭-윤현민
프라우드넷의 연결 유지 기능과 홀펀칭-윤현민프라우드넷의 연결 유지 기능과 홀펀칭-윤현민
프라우드넷의 연결 유지 기능과 홀펀칭-윤현민
 
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
 
게임 개발자가 되고 싶어요
게임 개발자가 되고 싶어요게임 개발자가 되고 싶어요
게임 개발자가 되고 싶어요
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
個人からトリプル A タイトルのゲーム開発者まで。Azure PlayFab で LiveOps しよう
個人からトリプル A タイトルのゲーム開発者まで。Azure PlayFab で LiveOps しよう個人からトリプル A タイトルのゲーム開発者まで。Azure PlayFab で LiveOps しよう
個人からトリプル A タイトルのゲーム開発者まで。Azure PlayFab で LiveOps しよう
 
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
 
어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?
 
게임 디자이너와 게임 서버
게임 디자이너와 게임 서버게임 디자이너와 게임 서버
게임 디자이너와 게임 서버
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architecture
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점
 

Similar to PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교

[IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교
[IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교[IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교
[IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교강 민우
 
NAT and Hole Punching_SYS4U I&C
NAT and Hole Punching_SYS4U I&CNAT and Hole Punching_SYS4U I&C
NAT and Hole Punching_SYS4U I&Csys4u
 
NAT Traversal and P2P
NAT Traversal and P2PNAT Traversal and P2P
NAT Traversal and P2PJungIn Jung
 
Opensource contributor 회고_ver_0.6
Opensource contributor 회고_ver_0.6Opensource contributor 회고_ver_0.6
Opensource contributor 회고_ver_0.6명준 김
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)Heungsub Lee
 
[1D5]모바일 p2p 미디어 스트리밍 방법
[1D5]모바일 p2p 미디어 스트리밍 방법[1D5]모바일 p2p 미디어 스트리밍 방법
[1D5]모바일 p2p 미디어 스트리밍 방법NAVER D2
 
서비스 발견을 위한 패턴언어
서비스 발견을 위한 패턴언어서비스 발견을 위한 패턴언어
서비스 발견을 위한 패턴언어eva
 
캡스톤1문헌조사
캡스톤1문헌조사캡스톤1문헌조사
캡스톤1문헌조사Sinyeol An
 
[ETHCon Korea 2019] Kim hyojun 김효준
[ETHCon Korea 2019] Kim hyojun 김효준[ETHCon Korea 2019] Kim hyojun 김효준
[ETHCon Korea 2019] Kim hyojun 김효준ethconkr
 

Similar to PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교 (10)

[IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교
[IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교[IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교
[IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교
 
NAT and Hole Punching_SYS4U I&C
NAT and Hole Punching_SYS4U I&CNAT and Hole Punching_SYS4U I&C
NAT and Hole Punching_SYS4U I&C
 
NAT Traversal and P2P
NAT Traversal and P2PNAT Traversal and P2P
NAT Traversal and P2P
 
컴퓨터개론11
컴퓨터개론11컴퓨터개론11
컴퓨터개론11
 
Opensource contributor 회고_ver_0.6
Opensource contributor 회고_ver_0.6Opensource contributor 회고_ver_0.6
Opensource contributor 회고_ver_0.6
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
 
[1D5]모바일 p2p 미디어 스트리밍 방법
[1D5]모바일 p2p 미디어 스트리밍 방법[1D5]모바일 p2p 미디어 스트리밍 방법
[1D5]모바일 p2p 미디어 스트리밍 방법
 
서비스 발견을 위한 패턴언어
서비스 발견을 위한 패턴언어서비스 발견을 위한 패턴언어
서비스 발견을 위한 패턴언어
 
캡스톤1문헌조사
캡스톤1문헌조사캡스톤1문헌조사
캡스톤1문헌조사
 
[ETHCon Korea 2019] Kim hyojun 김효준
[ETHCon Korea 2019] Kim hyojun 김효준[ETHCon Korea 2019] Kim hyojun 김효준
[ETHCon Korea 2019] Kim hyojun 김효준
 

More from iFunFactory Inc.

2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표iFunFactory Inc.
 
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTOiFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석iFunFactory Inc.
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 iFunFactory Inc.
 
[아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP [아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP iFunFactory Inc.
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트iFunFactory Inc.
 
유니티 쉐이더 단기속성
유니티 쉐이더 단기속성유니티 쉐이더 단기속성
유니티 쉐이더 단기속성iFunFactory Inc.
 
게임 서버 성능 분석하기
게임 서버 성능 분석하기게임 서버 성능 분석하기
게임 서버 성능 분석하기iFunFactory Inc.
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버iFunFactory Inc.
 
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기iFunFactory Inc.
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기iFunFactory Inc.
 
게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여iFunFactory Inc.
 

More from iFunFactory Inc. (20)

2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
 
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
 
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
 
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
 
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
 
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
 
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
 
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
 
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
 
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
 
[아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP [아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
 
유니티 쉐이더 단기속성
유니티 쉐이더 단기속성유니티 쉐이더 단기속성
유니티 쉐이더 단기속성
 
게임 서버 성능 분석하기
게임 서버 성능 분석하기게임 서버 성능 분석하기
게임 서버 성능 분석하기
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버
 
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
 
게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여
 

Recently uploaded

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Wonjun Hwang
 
[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and AdoptionSeung-chan Baeg
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'Hyundai Motor Group
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 

Recently uploaded (7)

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 

PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교

  • 1. PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교 아이펀팩토리 문대경 (dkmoon@ifunfactory.com) Inven Game Conference
  • 2. 0 Overview 왕년에 CD/DVD 좀 구워 보셨습니까?
  • 4. 0 Overview Napster 이야기  Sean Fanning, Sean Parker 등으로부터 1999년 서비스 시작  최대 8천만 명의 등록 유저  미공개 음원 유통으로 Metallica 로부터 “너 고소”  Dr. Dre 의 저작물 삭제 요청 무시로 “너 고소”  유저들의 저작권 위반 방조 이유로 A&M Records 로부터 “너 고소”  … (연속 고소미 콤보)  유저의 저작권 위반 행위를 적극적으로 방지하라는 법원 명령에 2001년 서비스 종료
  • 5. 0 Overview Napster 동작 방식 냅스터의 인덱싱 서버 ① 보유한 MP3 파일명과 자신의 IP 주소 등록 ② 노래 검색 ③ 저장된 파일명 DB를 이용해 검색 매칭 후 MP3 보유 컴퓨터 IP 반환 ④ 파일 전송 요청
  • 6. 1 Client-Server Model vs. Peer-to-Peer Model 기존 서비스 구성 방법의 특징 • Centralized: 모든 정보는 중앙에 집중됨 • Managed: 전담 관리자가 서비스를 관리함
  • 7. 1 Napster 의 클라이언트-서버 통신 부분 냅스터의 인덱싱 서버 클라이언트-서버 통신 Client-Server Model vs. Peer-to-Peer Model
  • 8. 1 Napster 의 사용자간 통신 부분 (P2P) 냅스터의 인덱싱 서버 사용자간 통신 Client-Server Model vs. Peer-to-Peer Model
  • 9. 1 기존 서비스 아키텍처와의 차이점  Decentralized: 정보는 흩어져 있음  Unmanaged: 전담 관리자가 존재하지 않음 Client-Server Model vs. Peer-to-Peer Model
  • 10. 1 기존 서비스 아키텍처와의 차이점  Decentralized: 정보는 흩어져 있음  Unmanaged: 전담 관리자가 존재하지 않음 변화의 동기  운영 비용 문제 Client-Server Model vs. Peer-to-Peer Model
  • 11. 1 Client-Server Model Client-Server Model vs. Peer-to-Peer Model
  • 12. 1 Client-Server Model Pros  Centralized: 서비스 변경이 쉬움  Managed: 안정적인 서비스 가능 Client-Server Model vs. Peer-to-Peer Model
  • 13. 1 Client-Server Model Pros  Centralized: 서비스 변경이 쉬움  Managed: 안정적인 서비스 가능 Cons  서버 과부하  네트워크 과부하 Client-Server Model vs. Peer-to-Peer Model
  • 14. 1 Peer-to-Peer Model Client-Server Model vs. Peer-to-Peer Model
  • 15. 1 Peer-to-Peer Model → 참여자간 품앗이 Client-Server Model vs. Peer-to-Peer Model
  • 16. 1 P2P 관련 잘못된 믿음 #1 P2P 는 사용자들끼리 통신하는 것이다. Client-Server Model vs. Peer-to-Peer Model
  • 17. 1 P2P 관련 잘못된 믿음 #1 P2P 는 사용자들끼리 통신하는 것이다.  클러스터링을 위해 서버간 P2P 망을 구성할 수도 있다. 예) 로그인한 유저 정보를 REDIS 에 몰아서 저장하기 vs. 로그인한 유저 정보를 서버들 각각이 저장하기  P2P 는 중앙집중 요소를 없애는 범용 테크닉임 Client-Server Model vs. Peer-to-Peer Model
  • 19. 2 Peer-to-Peer Application P2P 응용의 확장 파일 공유 컴퓨팅 파워 공유 (분산 처리)
  • 20. 2 Peer-to-Peer Application P2P 응용의 확장 파일 공유 컴퓨팅 파워 공유 (분산 처리) 네트워크 공유 (라우팅)
  • 21. 3 Overlay Network by P2P P2P의 라우팅에서의 응용 인터넷 inter + net (망 사이의 연결) 망 사이의 패킷 전달 규칙 = 정책 기반 라우팅 (policy-based routing) = 효율성과 관계없이 정책에 따라 패킷을 보냄 (특정 국가를 우회하거나, 특정 망 사업자를 선호하거나..) 망사업자 A 망사업자 C 망사업자 B 망사업자 D
  • 22. 3 Overlay Network by P2P P2P 를 통한 정책 기반 라우팅 극복 A 서버 클라 쓰리쿠숀 클라 (라우터로 동작) B C D E 기본 라우팅 규칙에 따른 경로 P2P 로 다른 클라 에게 패킷을 릴레이 하는 경우 경로
  • 23. 3 Overlay Network by P2P P2P의 라우팅에서의 응용 A CB D 서버 클라 클라 클라들이 같은 망 사업자에 연결된 경우도 당연히 유용하다. 서버까지 갔다 오는 경로 직접 클라로 가는 경로
  • 24. 0 P2P 관련 잘못된 믿음 #2 P2P 가 더 빠르다. Overlay Network by P2P
  • 25.  Topology 에 따라 그럴 수도 있고 아닐 수도 있다. 0 P2P 관련 잘못된 믿음 #2 P2P 가 더 빠르다. CB A 서버 클라 클라 Overlay Network by P2P
  • 26. 3 Overlay Network by P2P 2000 년대 중반까지의 P2P 연구 전성기 라우팅 우회라는 네트워크적 효용성으로 2000년대 중반까지 P2P 관련 수많은 연구가 쏟아짐 (CAN, Pastry, Tapestry, Chord, Kademila, BitTorrent, …) 참고: 물리 네트워크 위에 다시 논리 네트워크를 만든 것 같다 하여 오버레이 네트워크 (Overlay Network) 이라 함
  • 27. 4 Issues Related to Peer-to-Peer Approach P2P 연구의 난제들 P2P 프로토콜 설계/구현에서의 난제들 1. 통신할 상대방 찾기 (resource discovery) 2. 참여자의 들락날락거림 처리 (churn handling) 3. 품앗이에서 치팅 방지 (fairness enforcement) 4. 통신 채널 보장하기 (NAT traversal)
  • 28. 4 P2P 연구의 난제 #1 - 통신할 상대방 찾기 Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가? Approach 1. Directory (e.g., Napster) 인덱싱 서버 ① 보유한 MP3 파일명과 자신의 IP 주소 등록 ② 노래 검색 ③ 저장된 파일명 DB를 이용해 검색 매칭 후 MP3 보유 컴퓨터 IP 반환 ④ 파일 전송 요청 Issues Related to Peer-to-Peer Approach
  • 29. 4 P2P 연구의 난제 #1 - 통신할 상대방 찾기 인덱싱 서버 ① 보유한 MP3 파일명과 자신의 IP 주소 등록 ② 노래 검색 ③ 저장된 파일명 DB를 이용해 검색 매칭 후 MP3 보유 컴퓨터 IP 반환 ④ 파일 전송 요청 Approach 1. Directory (e.g., Napster) Pros: Simplicity (통신 방식이 단순함) Cons: Single point of failure (디렉토리에 과부하나 오류 발생한다면?) Issues Related to Peer-to-Peer Approach Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
  • 30. 4 P2P 연구의 난제 #1 - 통신할 상대방 찾기 Approach 2. Broadcasting (e.g., Gnutella) … … 박효신 Issues Related to Peer-to-Peer Approach Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
  • 31. 4 P2P 연구의 난제 #1 - 통신할 상대방 찾기 … … 박효신 Approach 2. Broadcasting (e.g., Gnutella) Issues Related to Peer-to-Peer Approach Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
  • 32. 4 P2P 연구의 난제 #1 - 통신할 상대방 찾기 … … 박효신 Approach 2. Broadcasting (e.g., Gnutella) Issues Related to Peer-to-Peer Approach Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
  • 33. 4 P2P 연구의 난제 #1 - 통신할 상대방 찾기 … … 박효신 저요! Approach 2. Broadcasting (e.g., Gnutella) Issues Related to Peer-to-Peer Approach Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
  • 34. 4 P2P 연구의 난제 #1 - 통신할 상대방 찾기 … … 박효신 저요! Approach 2. Broadcasting (e.g., Gnutella) Issues Related to Peer-to-Peer Approach Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
  • 35. 4 P2P 연구의 난제 #1 - 통신할 상대방 찾기 … … Approach 2. Broadcasting (e.g., Gnutella) Issues Related to Peer-to-Peer Approach Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
  • 36. 4 P2P 연구의 난제 #1 - 통신할 상대방 찾기 … … 박효신 Approach 2. Broadcasting Pros: Simplicity (별도의 state 관리가 필요없음) Cons: Query storms (사용자는 모든 쿼리를 다 받는다) Issues Related to Peer-to-Peer Approach Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
  • 37. 4 P2P 연구의 난제 #1 - 통신할 상대방 찾기 Approach 3. Cascaded directory Approach 4. Distributed Hash Table (DHT) … Issues Related to Peer-to-Peer Approach Q1. 전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가?
  • 38. 4 P2P 연구의 난제 #2 – Churn 처리 Q2. 사용자 풀 변화에도 어떻게 계속 통신할 것인가? Case 1: 중간 노드가 죽었다면? … … 박효신 저요! ? Issues Related to Peer-to-Peer Approach
  • 39. 4 P2P 연구의 난제 #2 – Churn 처리 Case 2: 새 노드가 들어왔다면? … … 문대경 저요! ? Issues Related to Peer-to-Peer Approach Q2. 사용자 풀 변화에도 어떻게 계속 통신할 것인가?
  • 40. 4 P2P 연구의 난제 #2 – Churn 처리 … … 문대경 저요! ?  Churn 처리는 결국 state 관리를 의미한다.  Churn 의 영향을 줄이기 위해서는 가급적 적은 state 만 관리해야 된다.  그러나 discovery 속도를 올리기 위해서는 가급적 많은 state 가 유리하다.  따라서 churn 처리와 discovery 성능 둘을 동시에 만족시키는 것은 매우 어렵다. Issues Related to Peer-to-Peer Approach Q2. 사용자 풀 변화에도 어떻게 계속 통신할 것인가?
  • 41. 4 P2P 연구의 난제 #3 – 치팅 방지하기 Q3. 이기적인 사용자가 있는 경우 어떻게 할까? Issues Related to Peer-to-Peer Approach
  • 42. 4 P2P 연구의 난제 #3 – 치팅 방지하기  P2P 는 품앗이 방식으로 동작한다.  따라서 모든 사용자가 이기적으로 행동할 경우 service collapse 가 발생한다.  이기적인 행동을 제재하거나 정당하게 행동하도록 동기부여가 필요하다. 그런데 어떻게? -_- Issues Related to Peer-to-Peer Approach Q3. 이기적인 사용자가 있는 경우 어떻게 할까?
  • 43. 4 P2P 연구의 난제 #3 – 치팅 방지하기  P2P 는 품앗이 방식으로 동작한다.  따라서 모든 사용자가 이기적으로 행동할 경우 service collapse 가 발생한다.  이기적인 행동을 제재하거나 정당하게 행동하도록 동기부여가 필요하다. 그런데 어떻게? -_- Issues Related to Peer-to-Peer Approach Q3. 이기적인 사용자가 있는 경우 어떻게 할까?
  • 44. 4 P2P 연구의 난제 #3 – 치팅 방지하기  P2P 는 품앗이 방식으로 동작한다.  따라서 모든 사용자가 이기적으로 행동할 경우 service collapse 가 발생한다.  이기적인 행동을 제재하거나 정당하게 행동하도록 동기부여가 필요하다. 그런데 어떻게? -_- Issues Related to Peer-to-Peer Approach Q3. 이기적인 사용자가 있는 경우 어떻게 할까?
  • 45. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Q4. 사용자간 연결은 어떻게 보장하나?
  • 46. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Q4. 사용자간 연결은 어떻게 보장하나? IPv4 주소는 32bit 를 사용하므로 2^32 = 약 40억개만 사용 가능하다.
  • 47. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Q4. 사용자간 연결은 어떻게 보장하나? 128bit 주소 체계인 IPv6 도입이 지지부진한 틈을 타 NAT 장비를 통한 “사설 IP” 가 일반화됨 그리고 NAT 는 외부에서의 선진입을 허용하지 않는다. 이미지 출처: iptime
  • 48. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Q4. 사용자간 연결은 어떻게 보장하나? 128bit 주소 체계인 IPv6 도입이 지지부진한 틈을 타 NAT 장비를 통한 “사설 IP” 가 일반화됨 그리고 NAT 는 외부에서의 선진입을 허용하지 않음 이미지 출처: iptime
  • 49. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Hole Punching: NAT 에 구멍 뚫기 이미지 출처: iconfinder.com 클라 A 클라 B NAT (공유기)
  • 50. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Hole Punching: NAT 에 구멍 뚫기 이미지 출처: iconfinder.com 클라 A 클라 B NAT (공유기) NAT traversal server (E.g., STUN)
  • 51. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Hole Punching: NAT 에 구멍 뚫기 이미지 출처: iconfinder.com 클라 A 클라 B 사설 IP 공인 IP NAT (공유기) NAT traversal server (E.g., STUN)
  • 52. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Hole Punching: NAT 에 구멍 뚫기 이미지 출처: iconfinder.com 클라 A 클라 B 사설 IP 공인 IP NAT (공유기) NAT traversal server (E.g., STUN)
  • 53. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Hole Punching: NAT 에 구멍 뚫기 이미지 출처: iconfinder.com 클라 A 클라 B 사설 IP 공인 IP NAT (공유기) NAT traversal server (E.g., STUN) ① 외부로 나갈 때 사설 IP, port 가 공인 IP, port 로 변환됨
  • 54. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Hole Punching: NAT 에 구멍 뚫기 이미지 출처: iconfinder.com 클라 A 클라 B 사설 IP 공인 IP NAT (공유기) NAT traversal server (E.g., STUN) A 공인 IP, port 기록 ② 디렉토리 서버는 패킷으로부터 A 의 공인 IP, port 기록
  • 55. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Hole Punching: NAT 에 구멍 뚫기 이미지 출처: iconfinder.com 클라 A 클라 B 사설 IP 공인 IP NAT (공유기) NAT traversal server (E.g., STUN) A 공인 IP, port 기록 ③ B 는 디렉토리 서버에서 A 의 공인 IP, port 파악
  • 56. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Hole Punching: NAT 에 구멍 뚫기 이미지 출처: iconfinder.com 클라 A 클라 B 사설 IP 공인 IP NAT (공유기) NAT traversal server (E.g., STUN) A 공인 IP, port 기록 ④ B 는 A 의 공인 IP, port 로 접속
  • 57. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach NAT 의 문제: 표준이 없음
  • 58. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach 이미지 출처: iconfinder.com 클라 A 클라 B 사설 IP 공인 IP NAT (공유기) NAT traversal server (E.g., STUN) ① 외부로 나갈 때 사설 IP, port 가 공인 IP, port 로 변환됨 NAT 의 문제: 표준이 없음
  • 59. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Full cone NAT Address-restricted conn NAT Port-restricted conn NAT Symmetric NAT NAT 의 문제: 표준이 없음
  • 60. 4 P2P 연구의 난제 #4 – 연결 보장하기 Issues Related to Peer-to-Peer Approach Full cone NAT Address-restricted conn NAT Port-restricted conn NAT Symmetric NAT모두 각각의 NAT 뒤에 있을 때 P2P 통신 불가 NAT 의 문제: 표준이 없음
  • 61. 4 Issues Related to Peer-to-Peer Approach 둘 다 NAT 뒤에 있으면 랑데부 방식의 릴레이 서버를 이용한다 클라 A 클라 B NAT (공유기) 릴레이 서버 (e.g., TURN) NAT (공유기) P2P 관련 잘못된 믿음 #3
  • 62. 4 Issues Related to Peer-to-Peer Approach 둘 다 NAT 뒤에 있으면 랑데부 방식의 릴레이 서버를 이용한다 P2P 관련 잘못된 믿음 #3 ① 동작 ② 판정 ③ 결과전송③ 결과전송 클라이언트 클라이언트 게임 서버 ① 동작 ② 판정 ③ 결과전송 클라이언트 클라이언트 (리슨 서버) 게임 서버 ① 동작 ② 전달(동작) ③ 판정 ③ 전달(결과)④ 결과 전송 클라이언트 클라이언트 (리슨 서버) 릴레이 서버 1. 클라이언트-서버 모델 2. 직접 통신 가능한 P2P 모델 3. 릴레이를 통하는 P2P 모델
  • 63. 4 Peer-to-Peer 요약 → 참여자간 품앗이 Issues Related to Peer-to-Peer Approach
  • 64. 4 Peer-to-Peer 요약 → 참여자간 품앗이 Pros  서버 부하 감소라는 확실한 이점  라우팅 우회라는 잠재적 이점 Issues Related to Peer-to-Peer Approach
  • 65. 4 Peer-to-Peer 요약 → 참여자간 품앗이 Pros  서버 부하 감소라는 확실한 이점  라우팅 우회라는 잠재적 이점 Cons  Discovery, Churn, Fairness 어려움  NAT traversal 표준의 부재 Issues Related to Peer-to-Peer Approach
  • 66. 5 Peer-to-Peer in Gaming 게임에 P2P 의 도입 상업적으로 성공한 첫 P2P 게임
  • 67. 5 Peer-to-Peer in Gaming 게임에 P2P 의 도입 BnB 클라 BnB 클라 BnB 서버 ① P2P 가능 시 이동 패킷 전송 ① 검증용으로 서버에도 전송 ② 검증 ③ 위치 보정에 참고
  • 68. 5 Peer-to-Peer in Gaming PC 온라인 게임과 모바일 게임의 네트워크적 가정의 차이 PC 온라인 게임 모바일 게임 동작 환경 유선 초고속 인터넷 3G/LTE 모바일 망 WiFi 연결 안정성 끊김 드묾 망 간 이동에 따른 끊김 빈번 대역폭 xDSL, FTTH, Giga lan 3G, LTE 딜레이 < 100 msec RTT 왔다갔다하는 RTT (jitter) NAT 제약 저가 가정용 공유기 고가 이통사 장비
  • 69. PC 온라인 게임 모바일 게임 동작 환경 유선 초고속 인터넷 3G/LTE 모바일 망 WiFi 연결 안정성 끊김 드묾 망 간 이동에 따른 끊김 빈번 대역폭 xDSL, FTTH, Giga lan 3G, LTE 딜레이 < 100 msec RTT 왔다갔다하는 RTT (jitter) NAT 제약 저가 가정용 공유기 고가 이통사 장비 5 Peer-to-Peer in Gaming PC 온라인 게임과 모바일 게임의 네트워크적 가정의 차이 네트워크적 가정의 차이로 모바일에서의 P2P 게임 개발은 PC 온라인과는 크게 다름!! 보다 정확히는 모바일 망에서의 P2P 개발은 유선망과 다름을 의미
  • 70. PC 온라인 게임 모바일 게임 동작 환경 유선 초고속 인터넷 3G/LTE 모바일 망 WiFi 연결 안정성 끊김 드묾 망 간 이동에 따른 끊김 빈번 대역폭 xDSL, FTTH, Giga lan 3G, LTE 딜레이 < 100 msec RTT 왔다갔다하는 RTT (jitter) NAT 제약 저가 가정용 공유기 고가 이통사 장비 5 Peer-to-Peer in Gaming PC 온라인 게임과 모바일 게임의 네트워크적 가정의 차이 네트워크적 가정의 차이로 모바일에서의 P2P 게임 개발은 PC 온라인과는 크게 다름!! 보다 정확히는 모바일 망에서의 P2P 개발은 유선망과 다름을 의미
  • 71. 5 Peer-to-Peer in Gaming 유선 환경에서의 P2P 대응 룸-로비 방식의 게임에 주로 사용됨 따라서 discovery 는 결국 matchmaking 과 동일함 이 부분만 directory service 를 이용하는 client-server 모델을 주로 활용 Discovery
  • 72. 5 Peer-to-Peer in Gaming 유선 환경에서의 P2P 대응 룸-로비 방식의 게임에 주로 사용됨 따라서 discovery 는 결국 matchmaking 과 동일함 이 부분만 directory service 를 이용하는 client-server 모델을 주로 활용 유선 네트워크는 연결이 끊기는 일이 거의 없음 따라서 갑자기 나가는 경우에 대한 처리는 방폭 형태로 처리 만들어진 방에 난입하는 기획이 아닌 한 갑자기 들어올 수도 없음 Discovery Churn
  • 73. 5 Peer-to-Peer in Gaming 유선 환경에서의 P2P 대응 룸-로비 방식의 게임에 주로 사용됨 따라서 discovery 는 결국 matchmaking 과 동일함 이 부분만 directory service 를 이용하는 client-server 모델을 주로 활용 유선 네트워크는 연결이 끊기는 일이 거의 없음 따라서 갑자기 나가는 경우에 대한 처리는 방폭 형태로 처리 만들어진 방에 난입하는 기획이 아닌 한 갑자기 들어올 수도 없음 사용자가 치팅을 하지 않도록 유도하는 것은 불가능함 그러나 안정적인 유선 네트워크 특성상 작은 이상 행동도 확인 가능 Discovery Churn Fairness
  • 74. 5 Peer-to-Peer in Gaming 유선 환경에서의 P2P 대응 룸-로비 방식의 게임에 주로 사용됨 따라서 discovery 는 결국 matchmaking 과 동일함 이 부분만 directory service 를 이용하는 client-server 모델을 주로 활용 유선 네트워크는 연결이 끊기는 일이 거의 없음 따라서 갑자기 나가는 경우에 대한 처리는 방폭 형태로 처리 만들어진 방에 난입하는 기획이 아닌 한 갑자기 들어올 수도 없음 사용자가 치팅을 하지 않도록 유도하는 것은 불가능함 그러나 안정적인 유선 네트워크 특성상 작은 이상 행동도 확인 가능 가정용 공유기의 NAT 구현은 복잡도가 크지 않음 Discovery Churn Fairness NAT Traversal
  • 75. 5 Peer-to-Peer in Gaming 모바일 망 환경에서의 P2P 대응 유선 환경과 마찬가지로, 룸-로비 방식의 게임에 주로 사용됨Discovery
  • 76. 5 Peer-to-Peer in Gaming 모바일 망 환경에서의 P2P 대응 유선 환경과 마찬가지로, 룸-로비 방식의 게임에 주로 사용됨 수시로 네트워크 단절 가능 따라서 유선처럼 방폭 형태로 처리할 경우 게임 진행 불가 서버 역할의 클라 단절에 대비한 state replication 필요 그러나 게임처럼 딜레이에 민감한 응용에서 이는 어려움 Discovery Churn
  • 77. 5 Peer-to-Peer in Gaming 모바일 망 환경에서의 P2P 대응 유선 환경과 마찬가지로, 룸-로비 방식의 게임에 주로 사용됨 수시로 네트워크 단절 가능 따라서 유선처럼 방폭 형태로 처리할 경우 게임 진행 불가 서버 역할의 클라 단절에 대비한 state replication 필요 그러나 게임처럼 딜레이에 민감한 응용에서 이는 어려움 모바일 망은 딜레이나 단절에 더 관대한 처리를 해야 되는데, 이 틈을 이용해 치팅이 가능해짐 Discovery Churn Fairness
  • 78. 5 Peer-to-Peer in Gaming 모바일 망 환경에서의 P2P 대응 유선 환경과 마찬가지로, 룸-로비 방식의 게임에 주로 사용됨 수시로 네트워크 단절 가능 따라서 유선처럼 방폭 형태로 처리할 경우 게임 진행 불가 서버 역할의 클라 단절에 대비한 state replication 필요 그러나 게임처럼 딜레이에 민감한 응용에서 이는 어려움 모바일 망은 딜레이나 단절에 더 관대한 처리를 해야 되는데, 이 틈을 이용해 치팅이 가능해짐 이통사는 주파수 자원의 효율적 운용을 위해 더욱 복잡한 NAT 를 사용 기존의 홀펀칭으로는 NAT 극복 불가능 랑데부 방식의 릴레이 사용은 추가적인 딜레이를 유발 Discovery Churn Fairness NAT Traversal
  • 79. 6 Summary 결론  P2P 는 파일 공유에서 일반적으로 활용된 기법  부하 분산이라는 강력한 특성을 가지고 있음  라우팅 우회라는 특성 덕분에 overlay 등의 네트워크 응용에 활용  게임에서도 이런 네트워크적 특성때문에 도입  그러나 P2P 가 반드시 빠른 연결을 보장하지는 않음  또한 모바일 망 환경에서 P2P 게임 구현은 힘듦
  • 80. 감사합니다 아 이 펀 팩 토 리 문 대 경