ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • About P2P
    카테고리 없음 2016. 6. 9. 17:13
    # P2P
    + Peer To Peer 의 줄임말
    + 컴퓨터의 쌍방향 파일 전송 시스템을 가리킴.
    + 중앙서버 없이 컴퓨터간을 연결
    + 프로그램 엔진만 만들면 되기 때문에 간편하게 파일 전송할 수 있음
    + 인터넷 속도가 느릴때는 평가가 좋지 않았으나, 인터넷 전송속도가 빨라지면서 널리 사용됨
    + 한국최초 P2P 소리바다. 
    + 사용자의 컴퓨터 자원을 어느 정도 나눠 쓴다는 점에서 서버 성능의 한계를 극복할 수 있는 유용한 기술

    # P2P 의 종류
    + 비슷한 성능의 PC 끼리만 연결된 순수 형티의 p2p(pure p2p)
    + PC 끼리의 인터렉션을 원활하게 해주는 서버가 개입되는 혼합형 p2p(hybrid p2p)


    # [비트토렌트] BitTorrent
    + P2P 파일 전송 프로토콜의 이름이자 프로토콜을 이용하는 응용 소프트웨어의 이름.
    + 파일이 인터넷 상에 분산하여 저장되므로 다수의 접속을 사용하여 전송 속도가 빠르다.
    + 브램 코헨이 창안. 2001년 7월 2일 발표
    + 코헨이 창립한 회사 비트토렌트 Inc가 유지보수중.
    + 초기에는 분산 해시 테이블을 활용하여 파이선으로 작성됨.

    # torrent 파일
    + 파일을 공유하고자 하는 파일의 메타데이터, 호스트 컴퓨터 정보등이 기록됨.

    # torrent - announce 섹션 = Tracker의  URL 정보 포함
    + Tracker 란 일종의 서버로 swarm 안에 seed 와 peer를 모니터링
    + Client는 Tracker 서버로 자기 정보를 보내고 현재 swarm 안의 seed 와 peer 정보 획득
    + 현재 비트토렌트 버전은 tracker 서버 없이도 구현가능
    + 대부분의 비트토렌트는 현재까지 tracker 서버를 대부분 사용.

    # torrent - info 섹션
    + 파일의 이름, 길이, 파일 조각의 길이, 무결성 진단을 위한 조각의 SHA1 해시코드가 포함되어 있음.


    # swarm
    + Client 가 tracker 서버에 접속하여 현재 공유파일의 Seeder 와 Peer에 대한 정보를 가져온다.
    + 업로드, 다운로드 Instance 모두를 통틀어 Swarm이라고 한다.

    # swarm 동작
    + Peer 가 하나도 없는경우 Seeder 로부터 다운로드
    + 비트토렌트 프로토콜은 파일을 여러 조각으로 나누어 조그만 파일로 만들어서 전송
    + 한 조각크기는 256kb 
    + 파일크기가 클수록 조각도 커짐 4.37GB의 경우 파일의 조각은 4.3MB 
    + 하나의 조각을 다운로드 할 때마다 해시 알고리즘을 이용하여 에러 여부를 점검

    # optimistic unchoking
    + 비트토렌트의 매커니즘.
    + 클라이언트의 대역폭을 일부 할당하여 무작위로 Peer 들한테 조각을 보내서 Peer 들이 일정한 양의 조각을 가지고 있을 수 있게 함.
    + 모든 Peer 들이 다 다른 조각을 가지고 있게 되어 공유 효율성이 높아짐.

    # 동작
    + 비트토렌트는 많은 수의 소규모 P2P 요청을 여러개의 TCP 소켓을 이용하여 생성
    + 반면 웹브라우저는 일반적으로 한 개의 HTTP GET 요청을 한개 TCP 소캣 상에서 생성
    + 비트토렌트 다운로드는 랜덤방식이거나 희귀한것 우선(rarest-first) 방식.
    + 아주 작은 비용으로 큰 redundancy확보가능.
    + 다운로드 최고속도에 이르기까지는 충분한 피어 접속이 이뤄질때까지 시간이 소요됨.
    + 매우 빠르게 최고속도에 이르며 스피드 스루아웃(throughout)을 계속 유지하는 HTTP 다운로드와 다름.

    # 비트 토렌트 활용
    + 영화, 비디오, 앨범등을 배포하는 용도로 사용
    + 오픈소스 프로젝트에서는 서버 부하를 줄이고 가용성을 높이기 위해 택
    + 게임 클라이언트 업데이트 배포를 위해 토렌트 사용.



    [참조]


Designed by Tistory.