[igc 2016] 아이펀팩토리 문대경 - pc와 모바일에서의 p2p 게임 구현에서의...

49
PC 와 와와와와와와 P2P 와와 와와와와와 와와와 와와 와와와와와와 와와와 ([email protected] m) Inven Game Conference

Upload: -

Post on 15-Apr-2017

201 views

Category:

Career


3 download

TRANSCRIPT

Page 1: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교아이펀팩토리 문대경 (d-

[email protected])

Inven Game Confer-ence

Page 2: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

왕년에 CD/DVD 좀 구워 보셨습니까 ?

Page 3: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

그렇다면 이 프로그램들도 기억하시겠네욤

Page 4: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

Napster 이야기

Sean Fanning, Sean Parker 등으로부터 1999 년 서비스

시작

최대 8 천만 명의 등록 유저

미공개 음원 유통으로 Metallica 로부터 “너 고소”

Dr. Dre 의 저작물 삭제 요청 무시로 “너 고소”

유저들의 저작권 위반 방조 이유로 A&M Records 로부터

“너 고소”

… ( 연속 고소미 콤보 )

유저의 저작권 위반 행위를 적극적으로 방지하라는 법원

명령에

2001 년 서비스 종료

Page 5: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

Napster 동작 방식

냅스터의인덱싱 서버

① 보유한 MP3 파일명과 자신의 IP 주소 등록

② 노래 검색

③ 저장된 파일명 DB 를 이용해 검색 매칭 후 MP3 보유 컴퓨터 IP 반환

④ 파일 전송 요청

Page 6: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

기존 서비스 구성 방법의 특징

• Centralized: 모든 정보는 중앙에 집중됨

• Managed: 전담 관리자가 서비스를

관리함

Page 7: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

Napster 의 클라이언트 - 서버 통신 부분

냅스터의인덱싱 서버

클라이언트 - 서버 통신

Page 8: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

Napster 의 사용자간 통신 부분 (P2P)

냅스터의인덱싱 서버

사용자간 통신

Page 9: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

기존 서비스 아키텍처와의 차이점

Decentralized: 정보는 흩어져 있음

Unmanaged: 전담 관리자가 존재하지

않음

Page 10: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

기존 서비스 아키텍처와의 차이점

Decentralized: 정보는 흩어져 있음

Unmanaged: 전담 관리자가 존재하지

않음

변화의 동기

운영 비용 문제

Page 11: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

Client-Server Model

Page 12: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

Client-Server Model

Pros

Centralized: 서비스 변경이

쉬움

Managed: 안정적인 서비스

가능

Page 13: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

Client-Server Model

Pros

Centralized: 서비스 변경이

쉬움

Managed: 안정적인 서비스

가능

Cons

서버 과부하

네트워크 과부하

Page 14: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

Peer-to-Peer Model

Page 15: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

Peer-to-Peer Model

→ 참여자간 품앗이

Page 16: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 응용의 확장

파일 공유

Page 17: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 응용의 확장

파일 공유 컴퓨팅 파워 공유( 분산 처리 )

Page 18: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 응용의 확장

파일 공유 컴퓨팅 파워 공유( 분산 처리 )

네트워크 공유( 라우팅 )

Page 19: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 의 라우팅에서의 응용

인터넷 inter + net ( 망 사이의 연결 )

망 사이의 연결 규칙= 정책 기반 라우팅 (policy-based routing)= 효율성과 관계없이 정책에 따라 패킷을 보냄 ( 특정 국가를 우회하거나 , 특정 망 사업자를 선호하거나 ..)

망사업자 A

망사업자 C

망사업자 B

망사업자 D

Page 20: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 를 통한 정책 기반 라우팅 극복

망사업자 A

서버

클라

쓰리쿠숀 클라( 라우터로 동작 )

망사업자 B

망사업자 C

망사업자 D

망사업자 E

기본 라우팅 규칙에 따른 경로

P2P 로 다른 클라 에게패킷을 릴레이 하는 경우 경로

Page 21: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 의 라우팅에서의 응용

망사업자 A

망사업자 C

망사업자 B

망사업자 D

서버

클라

클라

클라들이 같은 망 사업자에 연결된 경우도 당연히 유용하다 .

서버까지 갔다오는 경로

직접 클라로 가는 경로

Page 22: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

2000 년대 중반까지의 P2P 연구 전성기

라우팅 우회라는 네트워크적 효용성으로

2000 년대 중반까지 P2P 관련 수많은 연구가 쏟아짐

(CAN, Pastry, Tapestry, Chord, Kademila, BitTorrent, …)

Page 23: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제들

P2P 프로토콜 설계 / 구현에서의 난제들

1. 통신할 상대방 찾기 (resource discovery)2. 참여자의 들락날락거림 처리 (churn handling)3. 품앗이에서 치팅 방지 (fairness enforcement)4. 통신 채널 보장하기 (NAT traversal)

Page 24: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #1 - 통신할 상대방 찾기

전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ? Approach 1. Directory (e.g., Napster)

인덱싱 서버

① 보유한 MP3 파일명과 자신의 IP 주소 등록

② 노래 검색

③ 저장된 파일명 DB 를 이용해 검색 매칭 후 MP3 보유 컴퓨터 IP 반환

④ 파일 전송 요청

Page 25: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #1 - 통신할 상대방 찾기

전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?

인덱싱 서버

① 보유한 MP3 파일명과 자신의 IP 주소 등록

② 노래 검색

③ 저장된 파일명 DB 를 이용해 검색 매칭 후 MP3 보유 컴퓨터 IP 반환

④ 파일 전송 요청

Approach 1. Directory (e.g., Napster)

Pros: Simplicity ( 통신 방식이 단순함 ) Cons: Single point of failure ( 디렉토리에 과부하나 오류 발생한다면 ?)

Page 26: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #1 - 통신할 상대방 찾기

전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ? Approach 2. Broadcasting (e.g., Gnutella)

박효신

Page 27: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #1 - 통신할 상대방 찾기

전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?

박효신

Approach 2. Broadcasting (e.g., Gnutella)

Page 28: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #1 - 통신할 상대방 찾기

전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?

박효신

Approach 2. Broadcasting (e.g., Gnutella)

Page 29: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #1 - 통신할 상대방 찾기

전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?

박효신

저요 !Approach 2. Broadcasting (e.g., Gnutella)

Page 30: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #1 - 통신할 상대방 찾기

전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?

박효신

저요 !Approach 2. Broadcasting (e.g., Gnutella)

Page 31: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #1 - 통신할 상대방 찾기

전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?

Approach 2. Broadcasting (e.g., Gnutella)

Page 32: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #1 - 통신할 상대방 찾기

전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?

박효신

Approach 2. Broadcasting

Pros: Simplicity ( 별도의 state 관리가 필요없음 ) Cons: Query storms ( 사용자는 모든 쿼리를 다 받는다 )

Page 33: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #1 - 통신할 상대방 찾기

전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ? Approach 3. Cascaded directory

Approach 4. Distributed Hash Table (DHT)

Page 34: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #2 – Churn 처리

유동적 사용자 이동에 어떻게 계속 통신할 것인가 ? Case 1: 중간 노드가 죽었다면 ?

박효신

저요 !

?

Page 35: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #2 – Churn 처리

유동적 사용자 이동에 어떻게 계속 통신할 것인가 ? Case 2: 새 노드가 들어왔다면 ?

문대경

저요 ! ?

Page 36: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #2 – Churn 처리

유동적 사용자 이동에 어떻게 계속 통신할 것인가 ?

문대경

저요 ! ?

Churn 처리는 결국 state 관리를 의미한다 .

Churn 의 영향을 줄이기 위해서는 가급적 적은 state 만 관리해야 된다 .

그러나 discovery 속도를 올리기 위해서는 가급적 많은 state 가 유리하다 .

따라서 churn 처리와 discovery 성능 둘을 동시에 만족시키는 것은 매우 어렵다 .

Page 37: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #3 – 치팅 방지하기

이기적인 사용자가 있는 경우 어떻게 처리해야될까 ?

Page 38: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 연구의 난제 #3 – 치팅 방지하기

이기적인 사용자가 있는 경우 어떻게 처리해야될까 ?

P2P 는 품앗이 방식으로 동작한다 . 따라서 모든 사용자가 이기적으로 행동할 경우

service collapse 가 발생한다 . 이기적인 행동을 제재하거나

정당하게 행동하도록 동기부여가 필요하다 .

그런데 어떻게 ? -_-

Page 39: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

Peer-to-Peer Model

→ 참여자간 품앗이

Page 40: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

Peer-to-Peer Model

→ 참여자간 품앗이

Pros

서버 부하 감소라는 확실한

이점

라우팅 우회라는 잠재적 이점

Page 41: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

Peer-to-Peer Model

→ 참여자간 품앗이

Pros

서버 부하 감소라는 확실한

이점

라우팅 우회라는 잠재적 이점

Cons

Discovery, Churn, Fairness

어려움

NAT traversal 표준의 부재

Page 42: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

게임에 P2P 의 도입

Page 43: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

유선 환경에서 게임에 P2P 적용

Discovery: 룸 - 로비 방식의 게임에 주로 사용됨 따라서 discovery 는 결국 matchmaking 과 동일함 이 부분만 directory service 를 이용하는 client-server 모델을 주로 활용

Churn: 유선 네트워크는 연결이 끊기는 일이 거의 없음 . 따라서 갑자기 나가는 경우에 대한 처리는 방폭 형태로 처리 만들어진 방에 난입하는 기획이 아닌 한 갑자기 들어올 수도 없음 .

Fairness: 사용자가 치팅을 하지 않도록 유도하는 것은 불가능함 . 그러나 안정적인 유선 네트워크 특성상 작은 이상 행동도 확인 가능

NAT Traversal: 가정용 공유기의 NAT 구현은 복잡도가 크지 않음 .

Page 44: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

모바일 망에서 게임에 P2P 적용

Discovery: 유선 환경과 마찬가지로 , 룸 - 로비 방식의 게임에 주로 사용됨

Churn: 모바일 망은 기지국 간 이동 , WiFi 로의 전환 등으로 수시로 네트워크 단절이 가능함 . 따라서 유선처럼 방폭 형태로 처리할 경우 게임 진행이 힘들어짐 . 의도치 않게 서버 역할의 클라가 떠날 경우에 대한 처리가 필요함 . 그러나 게임처럼 딜레이에 민감한 응용에서 이런 state replication 은 굉장히 어려움 .

Fairness: 모바일 망은 딜레이나 단절에 더 관대한 처리를 해야 되는데 , 이 틈을 이용해 치팅이 가능해짐 .

NAT Traversal: 이동통신사는 주파수 자원의 효율적 운용을 위해 더욱 복잡한 NAT 를 사용 . 기존의 홀펀칭으로는 NAT 사용 불가능 . 랑데부 방식의 릴레이 사용은 추가적인 딜레이를 유발함 .

Page 45: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 관련 잘못된 믿음 #1

P2P 는 사용자들끼리 통신하는 것이다 .

Page 46: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 관련 잘못된 믿음 #1

P2P 는 사용자들끼리 통신하는 것이다 .

클러스터링을 위해 서버간 P2P 망을 구성할 수도 있다 .

예 ) 로그인한 유저 정보를 REDIS 에 몰아서 저장하기 vs. 로그인한 유저 정보를 서버들 각각이 저장하기

P2P 는 중앙집중 요소를 없애는 범용 테크닉임

Page 47: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 관련 잘못된 믿음 #2

P2P 가 더 빠르다 .

Page 48: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

0 Overview

P2P 관련 잘못된 믿음 #2

P2P 가 더 빠르다 .

망사업자 C

망사업자 B

망사업자 A

서버

클라 클라

Topology 에 따라 그럴 수도 있고 아닐 수도 있다 .

Page 49: [IGC 2016] 아이펀팩토리 문대경 - PC와 모바일에서의 P2P 게임 구현에서의 차이점 비교

감사합니다아이펀팩토리

문대경