[igc 2016] 아이펀팩토리 문대경 - pc와 모바일에서의 p2p 게임 구현에서의...
TRANSCRIPT
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 반환
④ 파일 전송 요청
0 Overview
기존 서비스 구성 방법의 특징
• Centralized: 모든 정보는 중앙에 집중됨
• Managed: 전담 관리자가 서비스를
관리함
0 Overview
Napster 의 클라이언트 - 서버 통신 부분
냅스터의인덱싱 서버
클라이언트 - 서버 통신
0 Overview
Napster 의 사용자간 통신 부분 (P2P)
냅스터의인덱싱 서버
사용자간 통신
0 Overview
기존 서비스 아키텍처와의 차이점
Decentralized: 정보는 흩어져 있음
Unmanaged: 전담 관리자가 존재하지
않음
0 Overview
기존 서비스 아키텍처와의 차이점
Decentralized: 정보는 흩어져 있음
Unmanaged: 전담 관리자가 존재하지
않음
변화의 동기
운영 비용 문제
0 Overview
Client-Server Model
0 Overview
Client-Server Model
Pros
Centralized: 서비스 변경이
쉬움
Managed: 안정적인 서비스
가능
0 Overview
Client-Server Model
Pros
Centralized: 서비스 변경이
쉬움
Managed: 안정적인 서비스
가능
Cons
서버 과부하
네트워크 과부하
0 Overview
Peer-to-Peer Model
0 Overview
Peer-to-Peer Model
→ 참여자간 품앗이
0 Overview
P2P 응용의 확장
파일 공유
0 Overview
P2P 응용의 확장
파일 공유 컴퓨팅 파워 공유( 분산 처리 )
0 Overview
P2P 응용의 확장
파일 공유 컴퓨팅 파워 공유( 분산 처리 )
네트워크 공유( 라우팅 )
0 Overview
P2P 의 라우팅에서의 응용
인터넷 inter + net ( 망 사이의 연결 )
망 사이의 연결 규칙= 정책 기반 라우팅 (policy-based routing)= 효율성과 관계없이 정책에 따라 패킷을 보냄 ( 특정 국가를 우회하거나 , 특정 망 사업자를 선호하거나 ..)
망사업자 A
망사업자 C
망사업자 B
망사업자 D
0 Overview
P2P 를 통한 정책 기반 라우팅 극복
망사업자 A
서버
클라
쓰리쿠숀 클라( 라우터로 동작 )
망사업자 B
망사업자 C
망사업자 D
망사업자 E
기본 라우팅 규칙에 따른 경로
P2P 로 다른 클라 에게패킷을 릴레이 하는 경우 경로
0 Overview
P2P 의 라우팅에서의 응용
망사업자 A
망사업자 C
망사업자 B
망사업자 D
서버
클라
클라
클라들이 같은 망 사업자에 연결된 경우도 당연히 유용하다 .
서버까지 갔다오는 경로
직접 클라로 가는 경로
0 Overview
2000 년대 중반까지의 P2P 연구 전성기
라우팅 우회라는 네트워크적 효용성으로
2000 년대 중반까지 P2P 관련 수많은 연구가 쏟아짐
(CAN, Pastry, Tapestry, Chord, Kademila, BitTorrent, …)
0 Overview
P2P 연구의 난제들
P2P 프로토콜 설계 / 구현에서의 난제들
1. 통신할 상대방 찾기 (resource discovery)2. 참여자의 들락날락거림 처리 (churn handling)3. 품앗이에서 치팅 방지 (fairness enforcement)4. 통신 채널 보장하기 (NAT traversal)
0 Overview
P2P 연구의 난제 #1 - 통신할 상대방 찾기
전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ? Approach 1. Directory (e.g., Napster)
인덱싱 서버
① 보유한 MP3 파일명과 자신의 IP 주소 등록
② 노래 검색
③ 저장된 파일명 DB 를 이용해 검색 매칭 후 MP3 보유 컴퓨터 IP 반환
④ 파일 전송 요청
0 Overview
P2P 연구의 난제 #1 - 통신할 상대방 찾기
전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?
인덱싱 서버
① 보유한 MP3 파일명과 자신의 IP 주소 등록
② 노래 검색
③ 저장된 파일명 DB 를 이용해 검색 매칭 후 MP3 보유 컴퓨터 IP 반환
④ 파일 전송 요청
Approach 1. Directory (e.g., Napster)
Pros: Simplicity ( 통신 방식이 단순함 ) Cons: Single point of failure ( 디렉토리에 과부하나 오류 발생한다면 ?)
0 Overview
P2P 연구의 난제 #1 - 통신할 상대방 찾기
전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ? Approach 2. Broadcasting (e.g., Gnutella)
…
…
박효신
0 Overview
P2P 연구의 난제 #1 - 통신할 상대방 찾기
전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?
…
…
박효신
Approach 2. Broadcasting (e.g., Gnutella)
0 Overview
P2P 연구의 난제 #1 - 통신할 상대방 찾기
전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?
…
…
박효신
Approach 2. Broadcasting (e.g., Gnutella)
0 Overview
P2P 연구의 난제 #1 - 통신할 상대방 찾기
전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?
…
…
박효신
저요 !Approach 2. Broadcasting (e.g., Gnutella)
0 Overview
P2P 연구의 난제 #1 - 통신할 상대방 찾기
전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?
…
…
박효신
저요 !Approach 2. Broadcasting (e.g., Gnutella)
0 Overview
P2P 연구의 난제 #1 - 통신할 상대방 찾기
전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?
…
…
Approach 2. Broadcasting (e.g., Gnutella)
0 Overview
P2P 연구의 난제 #1 - 통신할 상대방 찾기
전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ?
…
…
박효신
Approach 2. Broadcasting
Pros: Simplicity ( 별도의 state 관리가 필요없음 ) Cons: Query storms ( 사용자는 모든 쿼리를 다 받는다 )
0 Overview
P2P 연구의 난제 #1 - 통신할 상대방 찾기
전체 사용자 풀에서 어떻게 통신 대상을 찾아낼 것인가 ? Approach 3. Cascaded directory
Approach 4. Distributed Hash Table (DHT)
…
0 Overview
P2P 연구의 난제 #2 – Churn 처리
유동적 사용자 이동에 어떻게 계속 통신할 것인가 ? Case 1: 중간 노드가 죽었다면 ?
…
…
박효신
저요 !
?
0 Overview
P2P 연구의 난제 #2 – Churn 처리
유동적 사용자 이동에 어떻게 계속 통신할 것인가 ? Case 2: 새 노드가 들어왔다면 ?
…
…
문대경
저요 ! ?
0 Overview
P2P 연구의 난제 #2 – Churn 처리
유동적 사용자 이동에 어떻게 계속 통신할 것인가 ?
…
…
문대경
저요 ! ?
Churn 처리는 결국 state 관리를 의미한다 .
Churn 의 영향을 줄이기 위해서는 가급적 적은 state 만 관리해야 된다 .
그러나 discovery 속도를 올리기 위해서는 가급적 많은 state 가 유리하다 .
따라서 churn 처리와 discovery 성능 둘을 동시에 만족시키는 것은 매우 어렵다 .
0 Overview
P2P 연구의 난제 #3 – 치팅 방지하기
이기적인 사용자가 있는 경우 어떻게 처리해야될까 ?
0 Overview
P2P 연구의 난제 #3 – 치팅 방지하기
이기적인 사용자가 있는 경우 어떻게 처리해야될까 ?
P2P 는 품앗이 방식으로 동작한다 . 따라서 모든 사용자가 이기적으로 행동할 경우
service collapse 가 발생한다 . 이기적인 행동을 제재하거나
정당하게 행동하도록 동기부여가 필요하다 .
그런데 어떻게 ? -_-
0 Overview
Peer-to-Peer Model
→ 참여자간 품앗이
0 Overview
Peer-to-Peer Model
→ 참여자간 품앗이
Pros
서버 부하 감소라는 확실한
이점
라우팅 우회라는 잠재적 이점
0 Overview
Peer-to-Peer Model
→ 참여자간 품앗이
Pros
서버 부하 감소라는 확실한
이점
라우팅 우회라는 잠재적 이점
Cons
Discovery, Churn, Fairness
어려움
NAT traversal 표준의 부재
0 Overview
게임에 P2P 의 도입
0 Overview
유선 환경에서 게임에 P2P 적용
Discovery: 룸 - 로비 방식의 게임에 주로 사용됨 따라서 discovery 는 결국 matchmaking 과 동일함 이 부분만 directory service 를 이용하는 client-server 모델을 주로 활용
Churn: 유선 네트워크는 연결이 끊기는 일이 거의 없음 . 따라서 갑자기 나가는 경우에 대한 처리는 방폭 형태로 처리 만들어진 방에 난입하는 기획이 아닌 한 갑자기 들어올 수도 없음 .
Fairness: 사용자가 치팅을 하지 않도록 유도하는 것은 불가능함 . 그러나 안정적인 유선 네트워크 특성상 작은 이상 행동도 확인 가능
NAT Traversal: 가정용 공유기의 NAT 구현은 복잡도가 크지 않음 .
0 Overview
모바일 망에서 게임에 P2P 적용
Discovery: 유선 환경과 마찬가지로 , 룸 - 로비 방식의 게임에 주로 사용됨
Churn: 모바일 망은 기지국 간 이동 , WiFi 로의 전환 등으로 수시로 네트워크 단절이 가능함 . 따라서 유선처럼 방폭 형태로 처리할 경우 게임 진행이 힘들어짐 . 의도치 않게 서버 역할의 클라가 떠날 경우에 대한 처리가 필요함 . 그러나 게임처럼 딜레이에 민감한 응용에서 이런 state replication 은 굉장히 어려움 .
Fairness: 모바일 망은 딜레이나 단절에 더 관대한 처리를 해야 되는데 , 이 틈을 이용해 치팅이 가능해짐 .
NAT Traversal: 이동통신사는 주파수 자원의 효율적 운용을 위해 더욱 복잡한 NAT 를 사용 . 기존의 홀펀칭으로는 NAT 사용 불가능 . 랑데부 방식의 릴레이 사용은 추가적인 딜레이를 유발함 .
0 Overview
P2P 관련 잘못된 믿음 #1
P2P 는 사용자들끼리 통신하는 것이다 .
0 Overview
P2P 관련 잘못된 믿음 #1
P2P 는 사용자들끼리 통신하는 것이다 .
클러스터링을 위해 서버간 P2P 망을 구성할 수도 있다 .
예 ) 로그인한 유저 정보를 REDIS 에 몰아서 저장하기 vs. 로그인한 유저 정보를 서버들 각각이 저장하기
P2P 는 중앙집중 요소를 없애는 범용 테크닉임
0 Overview
P2P 관련 잘못된 믿음 #2
P2P 가 더 빠르다 .
0 Overview
P2P 관련 잘못된 믿음 #2
P2P 가 더 빠르다 .
망사업자 C
망사업자 B
망사업자 A
서버
클라 클라
Topology 에 따라 그럴 수도 있고 아닐 수도 있다 .
감사합니다아이펀팩토리
문대경