본문 바로가기

컴퓨터 공학/컴퓨터 네트워크

[컴퓨터 네트워크] Application Layer 패러다임 : Peer-to-Peer(P2P) 패러다임

Application Layer 패러다임 : Peer-to-Peer(P2P) 패러다임

  • 항상 서버가 있는 상태가 아니어도 됨 
  • 임의의 양단간 시스템 간의 직접적인 소통
  • peer는 간헐적으로 연결되고 IP 주소를 바꿈
  • 확장 가능성이 높음
  • 분산성이 강함
  • 관리가 어려움 

example of peer to peerp paradigm


개념

  • 각 컴퓨터(peer)가 클라이언트 / 서버의 역할을 모두 가능
  • 네트워크 상의 peer는 동일 네트워크 상의 다른 peer들에게 파일을 공유 가능 
  • centralized, decentralized 

Centalized P2P Network

  • directory 시스템을 기준으로 중앙집중화 - 연결된 peer 들의 총괄 관리자 개념의 서버 시스템 
  • directory 시스템은 클라이언트 서버 패러다임 사용
  • 클라이언트 서버 패러다임처럼 directory 시스템이 서버 역할을 하고 나머지 peer들이 클라이언트
  • peer들 간의 파일 공유만 peer간 직접 소통을 통해 가능 


Decentralized P2P Network 

  • directory 시스템이 없음
  • peer가 가상 네트워크 상에 존재함 (물리 네트워크보다 많은 양의 노드를 연결할 수 있는 논리 네트워크)
  • unstructured / structured

unstructured decentralized P2P network

  • 노드간 랜덤 연결
  • 노드 탐색 비효율적
  • 방대한 트래픽 생성 
  • ex) Gnutella, Freenet 

structured decentralized P2P network

  • 사전 정의된 규칙에 따라 노드 연결 
  • 탐색 효율적 
  • 주로 사용하는 기법 : 분산 해시 테이블 Distributed Hash Table (DHT)
  • ex) BitTorrent

 분산 해시 테이블 Distributed Hash Table (DHT)

  • structured decentralized P2P network에서 노드간 연결 규칙으로 사용하는 테이블 
  • 각 데이터/컴퓨터(peer) = 노드 
  • 각 노드들을 맵핑시키는 address space 크기 : m개의 노드를 저장하는 경우 - 2^m 크기의 address space (대부분 160개의 노드 저장) 

peer / 컴퓨터의 식별자 (node ID) 해싱

  • 네트워크 상에 존재하는 모든 피어 컴퓨터들의 식별자를 만들어 주소 공간 address space에 배치해 두어야 함 
  • node id = hash(peer ip 주소) = m-bit integer

object / 파일의 식별자 (key) 해싱 

  • 네트워크 상에서 피어 간 주고 받는 파일들에게도 식별자가 주어져 주소 공간에 배치되어야 함
  • key = hash(Object name) = m-bit integer 

DHT에 노드 저장 (예시)

  • m = 5인 경우를 가정 
  • 네트워크 상에 참여해 있는 피어 컴퓨터 IP 주소 : 110.34.56.20
  • 피어 컴퓨터의 node ID = hash(110.34.56.20) =
  • 파일 / 오브젝트 이름 = Liberty 
  • 오브젝트의 key = hash("Liberty") = 14
  • key14 오브젝트 참조 정보는 key와 가장 가까운 노드(피어 컴퓨터)에 저장  
  • DHT 구현에 사용되는 프로토콜 : Chord, Pastry, Kademlia


References

  • 성균관대학교 소프트웨어학과 추현승 교수님 2021-1 컴퓨터 네트워크 개론