4. 0
Overview
Napster 이야기
Sean Fanning, Sean Parker 등으로부터 1999년 서비스 시작
최대 8천만 명의 등록 유저
미공개 음원 유통으로 Metallica 로부터 “너 고소”
Dr. Dre 의 저작물 삭제 요청 무시로 “너 고소”
유저들의 저작권 위반 방조 이유로 A&M Records 로부터 “너 고소”
… (연속 고소미 콤보)
유저의 저작권 위반 행위를 적극적으로 방지하라는 법원 명령에
2001년 서비스 종료
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
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 모델
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
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 게임 구현은 힘듦