170 likes | 314 Views
7. 확장성. 7. 확장성 (Scalability) 7.1 사회적 네트워크 1967, Harvard professor Stanley Milgram 사람들 (2 억 명 ) 을 통과하기 위하여 메시지가 얼마나 많은 social hops 를 갖는지를 알기 위한 미국 내에서 사회적 - 네트워킹 실험을 수행 . Omaha, Nebraska 에 살고있는 무작위로 선택된 사람에게 160 개 편지를 공표하고 , Boston, Massachusetts 에 사는 아는 주식중매인에게 그 편지를 전달하는 것을 요구하였다 . 규칙
E N D
7. 확장성 • 7. 확장성(Scalability) • 7.1 사회적 네트워크 • 1967, Harvard professor Stanley Milgram • 사람들(2억 명)을 통과하기 위하여 메시지가 얼마나 많은 social hops를 갖는지를 알기 위한 미국 내에서 사회적-네트워킹 실험을 수행. • Omaha, Nebraska에 살고있는 무작위로 선택된 사람에게 160개 편지를 공표하고, Boston, Massachusetts에 사는 아는 주식중매인에게 그 편지를 전달하는 것을 요구하였다. • 규칙 • 이름에 기초하여 알고있는 중개자에만 편지를 전달한다. • 그 편지를 그 주식중매인에게 더 가까이 가져가기 위하여 그러한 중개자는 지능적으로 선택되어야 한다 (예, 지리적으로 boston에 가까운 누군가를 알 수 있다). • 그 편지가 그 주식중개인에게 도착할 때 까지 그 친구는 같은 방식으로 다른 친구에게 그 편지를 전달한다. Scalability
Boston Omaha 7. 확장성 • 42 letters made it !! • Average of 5.5 hops • Demonstrated the small • world effect’ • Proved that the social network of the United States is indeed connected with a path-length (number of hops) of around 6 – The 6 degrees of separation ! Scalability
7. 확장성 • 7.2 P2P 네트워크 • P2P 네트워크는 사회적 네트워크와 다수의 유사성을 갖는다. • 사람은 피어일 수 있고 Milgram의 실험에서 중개자는 P2P 네트워크에서 게이트웨이, 허브, 브릿지 또는 랑데부 노드로 볼 수 있다. • 소스로부터 목적지로 편지를 전달하는데 사용된 중개자의 수는 P2P 망에서 홉의 개수가 될 수 있다. • 7.2.1 P2P 망의 성능 • P2P 네트워크의 성능은 비결정적이다. • P2P 네트워크는 애드 혹 방식으로 자주 구축되고 그것의 성질과 그것의 협력하는 피어들의 일시적인 가용성에 기인하여, 최적 성능을 갖도록 망을 안정화 시키는 것이 불가능하다. • P2P 망의 성능은 정확하게 측정할 수 없다. 그것은 오히려 다음과 같은 경험적 측정을 포한다. • 특별한 파일을 찾는데 얼마나 긴 시간이 걸리는가? Scalability
7. 확장성 • 질의가 얼마나 많은 대역폭을 소비하는가? • 내 패키지가 네트워크의 반대쪽의 어떤 피어를 도착하기 위하여 얼마나 많은 홉들을 거치는가? • 그 네트워크에서 어떤 피어가 추가되거나 제거될지라도 그 망은 아직 결함 포용인가? • 많은 피어를 추가로 망은 확장될 수 있는가? 그러한 망은 수백 피어에서 수천 또는 수백만 피어로 빨리 확장될 수 있다. • P2P 네트워크는 피어들이 끊임없이 연결되고 단절되는 비신뢰적 환경에서 동작한다. • 그러한 환경에서, 네트워크 코어의 끊임없이 재구축을 처리할 수 있는 알고리즘이 필요하다. • P2P 네트워크는 성능 저하의 상반관계로 중복성을 촉진하는 방법으로 설계되어야 한다. • P2P 망을 성능 문제에 더 민감하게 만드는 3가지 주요 요소가 있다. • 통신 • 검색 • 피어 부하 균등 Scalability
7. 확장성 • 7.3 피어 위상 • P2P 망에서 사용할 수 있는 위상의 종류 • Core • Centralized • Ring • Hierarchical • Decentralized • Hybrid • Centralized/Ring • Centralized/Centralized • Centralized/Decentralized Scalability
7. 확장성 • 7.3.1 Centralized • 통신은 하나의 서버에 직접 연결하는 다수의 클라이언트들로 완전히 집중된다. • 예) 웹 서버, 데이터베이스, SET@Home 등 Scalability
7. 확장성 • 7.3.2 Ring • 점-대-점 링크로 구성된 물리적 폐쇄 루프이고 집중형 서비스를 분산 서버로 작동하도록 스케일 하는 일반적인 방법이다. • 하나의 서버에 동일한 기능을 제공하는 노드의 그룹을 설립하나 중복성 기능과 부하 균등화 기능을 통합한다. Scalability
7. 확장성 • 7.3.3 Hierarchical • 계층적 위상은 트리-유사 구조를 가지고 일관된 방식으로 구성된 정보를 통해 극도로 빠른 검색 방법을 제공한다. • 예) 이진 트리 • 가장 잘 알려진 계층적 시스템은 DNS(Domain Name Server)이다. 여기서 권한은 루트 네임 서버로부터 등록된 네임에 대한 서버까지 흐르고 3번째-단계 서버까지 자주 내려간다. Scalability
7. 확장성 • 7.3.4 Decentralized • 제어의 하나의 포인터가 없다. • 피어들은 대칭적으로 통신하고 동등한 역할을 갖는다. • 예) Gnutella • 순수한 분산 네트워크는 랜덤 피어 고장에 대해 아주 결함 포용력이 있으나 가격에서 문제가 생긴다. Scalability
7. 확장성 • 7.4 Hybrid 위상 • 피어들은 역할을 일반적으로 바꾸고 복합 위상간의 게이트웨이로서 역할을 한다. • 7.4.1 Centralized/Ring • 강건한 웹 서버들은 부하 균등과 중복성을 위해 서버들의 링을 자주 갖는다. Scalability
7. 확장성 • 7.4.2 Centralized/Centralized • 제어의 중앙 포인트가 있으나 막후 기능들은 하나 또는 그 이상의 다른 서버들에 걸쳐 분산되어진다. • 웹 브라우저는 웹 서버와 접촉하고, 그 웹 서버는 그 요청을 만족시키기 위하여 다수의 다른 노드들과 접촉한다. 그 웹 서버는 웹 링크의 분산 데이터베이스와 접촉할 수도 있다. Scalability
7. 확장성 • 7.4.3 Centralized/Decentrailzed • 다수의 집중형 시스템들은 분산 방식으로 연결된다. • 다수의 인기 있는 P2P 파일-공유 시스템에 의해 채택되어졌다. • 파일 공유에서, 분산 피어를 슈퍼 노드 또는 Gnutella reflector 노드라 한다. 슈퍼 노드는 연결된 클라이언트들에 대한 캐싱 서버 역할을 한다. Scalability
C F1.mp3 0 F1.mp3 – ID0:F1.mp3 … F2.mp3 1 F3.mp3 2 7. 확장성 • 7.5 Napster와 Gnutella의 융합 • Gnutella와 Napster는 centralized/decentralized 위상으로 융합 되고 있다. • Gnutella는 분산 시스템으로 시작되었고, Napster는 브로커 통신을 갖는 집중형 검색 구조로 시작되었다. • Gnutella는 슈퍼 피어를 삽입하였고, Napster는 확장성을 위해 집중형 검색 엔진을 중복시켰다. 그 결과 유사한 설계 위상을 가지게 되었다. • Gnutella Reflector는 Gnutella를 더 확장성 있게 만들기 위하여 설계된 프락시와 인덱스 서비스(연결된 사용자들의 캐시 파일 목록이 인덱스로 관리)이다. Scalability
N3 User N2 Napster Gnutella Super Peers: Napster Duplicated Servers 7. 확장성 Gnutella Napster User Napster.com = 1. Natural?? 2. Reflector (clip2.com) Scalability
7. 확장성 • 7.7 Gnutella 분석 • Gnutella에서 검색은 모든 연결된 피어들에게 질의 메시지를 방송하는 것을 포함한다. 각 연결된 피어는 그것의 연결된 피어에게 그것을 전송할 것이다. 이 검색은 특정 수의 홉 까지 실행될 것이다. • 만일 연결된 피어의 개수, c=3이고 홉, h=7이면, 완전 연결 망에서 검색된 전체 피어의 개수는 s=c+c2+c3+…. • s=3+9+27+81+243+729+2187=3279 Nodes이다. • 7.7.1 Gnutella Free Riding • Free riding의 2가지 종류 • download files but never provide any files for other to download • users that have undesirable content • They found 22,084 of the 33,335 peers in the network (66%) of the peers share no files • 24,347 or 73% share ten or less files • top 1 percent (333 hosts) represent 37 percent of the total files shared • 20 percent (6,667 hosts) sharing 98% of the files Scalability
7. 확장성 • 7.7.2 Equal Peers? • Gnutella의 분석 [Clip2.com] • 질의율이 초당 10번 이상일 때 명백한 측정 가능한 장애 • 일반적으로 Gnutella 질의 메시지는 거의 560 비트 길이고 질의는 트래픽의 거의 ¼을 구성 • Gnutella 피어들은 평균 3개의 원격 피어들과 연결된다고 가정 • 560*10*3=16,800 bits per second • 16,800 * 4 = 67,200 bits per second • 7.7.3 Power-Law Networks • Studied topology of Gnutella over several months & reported two findings: • Gnutella network shares the benefits and drawbacks of a power-law structure • - networks that organize themselves so that most nodes have a few links and a small number of nodes have many • - found to show an unexpected degree of robustness when facing random node failures. • - vulnerable to attacks e.g. by removing a few of the super nodes can have a massive effect on the function of the network as a whole. • Gnutella network topology does not match well with the underlying Internet topology leading to inefficient use of network bandwidth. Scalability
7. 확장성 • 7.10 결론 • Centralized + Decentralized – understand from the original Gnutella to the new models • The role of Reflector nodes Scalability