create account

[네트워크 메모] Peer To Peer (P2P) 의 용어들에 대해서 알아보자 by devjyk

View this thread on: hive.blogpeakd.comecency.com
· @devjyk ·
[네트워크 메모] Peer To Peer (P2P) 의 용어들에 대해서 알아보자
<html>
<p><img src="https://ipfs.io/ipfs/QmfUygVUM5aPqiJp6b1XJWxxMKACvirXRK6JJG9THVZWNX" width="746" height="323"/></p>
<p><br></p>
<p><strong>1)P2P란 (Peer to Peer)&nbsp;</strong></p>
<p><strong>컴퓨터의 쌍방향 파일 전송 시스템을 가리킵니다. 중앙서버 없이 컴퓨터와 컴퓨터간을 연결해주며 프로그램 엔지만 만들면 되기 때문에 매우 간편하게 파일을 전송할 수 있다. 인터넷이 발달되면서 파일전송속도가 더 빨라집니다.</strong></p>
<p>즉 네트워크를 형상하고 있는 당사자가 동일한 기능을 갖고 어느 당사자도 통신 세션을 시작할 수 있는 분산된 통신 모델입니다. 대규모 병렬 컴퓨팅, 분산 스토리지 및 기타 기능의 익명화 된 라우터를 제공하는데 사용할 수 있습니다.&nbsp;</p>
<p>결론적으로 P2P파일을 다운로드 하는데 사용 되는 네트워크 프로토콜입니다.</p>
<p><strong>2)피어(PEER) - A(B)</strong></p>
<p><strong>&nbsp;피어는 네트워크의 다른 사용자이거나 인터넷과 같은 것입니다. 피어는 자신에 컴퓨터에 전체 파일이 없습니다. &nbsp;</strong></p>
<p><strong>A는 자신에게 붙은 모든 사람들 뜻합니다. 즉 2(18)이라면 2ㅜ명이 내개 배포해주고 있는 인원으로 볼 수 있습니다. B는 완료된 사람을 제외한 이 화일에 관계된 모든 사람을 뜻합니다 &nbsp;&nbsp;Seeder 와 Leecher 를 총칭</strong></p>
<p><strong>3)Swarm(스웜)</strong></p>
<p><strong>특정 파일과 관련된 사람들의 그룹입니다 여기에는 씨앗과 동료가 포함되어 있습니다. 함께 토렌트를 공유하는 사람들을 스웜이라고 합니다. 6명의 피어(동료)와 2명의(시드) 는 8개의 스웜이라할 수 있습니다. 트래커가 가지고 있는 것으로 공유 파일마다 해시 정보와 피어 리스트의 정보 모음입니다.</strong></p>
<p><strong>다시 말해서 현재 해당 파일을 공유하고 있다고 Track서버 등록되어 있는 피어들의 목록을 의미합니다. 이를 Tracker에게 접속하는 client들에게 peer목록을 ㅁ전송해줌&nbsp;</strong></p>
<p><br></p>
<p><strong>4)lech(거머리)</strong></p>
<p><strong>업로드하는 것보다 훨씬 많이 다운로드하는 부정적인 영향을 끼치는 동료입니다.&nbsp;</strong></p>
<p><strong>5)Snubbed (스노보드)</strong></p>
<p><strong>다운로드 클라이언트가 60초가 넘지 못하면 스눕으로 표시됩니다.&nbsp;</strong></p>
<p><strong>6)seeds(씨앗) &nbsp;X(Y)</strong></p>
<p><strong>이름에서 알 수 있다 싶이 파일의 작성자입니다. 씨드에는 컴퓨터에 완전한 파일이 있습니다. 동일한 파일에 대해 여러 시드가 인터넷에 있을 수 있습니다. 이것은 P2P 공유를 보다 원활하게 만듭니다. &nbsp;- 11(16) 이라면 16명이 다운받았고 11명이 온라인상에서 공유하면서 제게 파일을 배포한다고 보면 된다. 16은 완전체 자신이 최초 공유나 배포자가 되었다면 x는 항상 0이다. &nbsp;&nbsp;공유 파일의 모든 조각을 가지고 있는 사람을 Seeder라고 한다. 일부만 가지고 &nbsp;있다면 Leecher</strong></p>
<p><strong>7)DHT : Distributed Hash Table의 약자입니다. 이 테이블은 추적 프로그램에서 특정 파일을 호스트하는 피어 목록을 컴파일하는 데 사용됩니다.</strong></p>
<p><strong>TorrentsTorrent : 작은 메타 데이터 파일이며 .torrent 확장자로 끝납니다. 이 파일에는 다운로드 중인 파일(영화, 음악, 게임 등)에 대한 모든 정보가 들어있습니다. P2P &nbsp;다운로드가 시작되면 토렌트 파일이 컴퓨터로 전송됩니다.</strong></p>
<p><strong>8)Piece : 공유 파일의 한조각 , 토렌트는 조각단위로 공유함, 조각의 크기는 생성시 설정 가능</strong></p>
<p><strong>9)Tracker&nbsp;</strong></p>
<p><strong>: 파일 공유를 위한 피어들의 정보를 가지고 있는 서버, 관련 지식이 있다면 누구나 트래커를 개설, 운영할 수 있음, 토렌트 파일마다 여러 트래커를 가질 수 있고 유명한 트래커일수록 많은 피어들이 있을 수 있다. 많은 피어가 있다는건 속도가 높다는 것</strong></p>
<p><strong>&nbsp;구글 검색만으로도 전세계 유명 트래커 서버 주소들을 알 수있으며 일반적으로 비공개 토렌트 집단은 하나의 비공개 트래커 서버를 통해 이뤄지는 것이며 트래커서버에서는 접속하는 클라이언트의 정보(누가 얼머나 업로드 했는지, 다운로드했는지 정보)를 이용해 운영 규칙에 맞지 않는 사용자들을 필터링 함</strong></p>
<p><br></p>
<p><br></p>
<p><br></p>
<p><strong>가용(ratio)</strong></p>
<p><strong>- 자신이 위에 얘기한 A,B들이 가지고 있는 소스들을 주고 받으면서 몇 개의 완전체를 만들 수 있는</strong></p>
<p><br></p>
<p><strong>비율(Ratio)</strong></p>
<p><strong>- 일의 총 용량과 자신이 업로드한 양에 대한 비율</strong></p>
<p><br></p>
<p><strong>토렌트 동작 방&nbsp;</strong></p>
<p><img src="https://ipfs.io/ipfs/QmXCZiDSPPb1zFie57xBxJ4P2k6EKjf4rgAYpMCnbheoaz" width="747" height="268"/></p>
<p><br></p>
<p><strong>1)토렌트 시작</strong></p>
<p><br></p>
<p><br></p>
<p><br></p>
<p>- 토렌트 파일을 실행하여 클라이언트에 등록</p>
<p>- 해당 토렌트 파일에 명시된 트래커에 접속</p>
<p>2) 피어와 트래커간의 통신 - Tracker Request (http프로토콜 이용)</p>
<p>&nbsp;- 클라이언트가 트래커에게 해당 토렌트파일의 고유한 해시 값과 보인 피어의 정보를 전송함 (해당 토렌트 피어 목록 얻기 위함)</p>
<p>&nbsp;- 파라미터 : 고유(peerid, port, upload(총양), download, left(남은 크기), key(클라이언트 ip바뀌어도 인식할 수 있는 비공개 값 peer간에도 공유되지 않음), ip</p>
<p>3)피어와 트래커간의 통신 - &nbsp;Tracker Response</p>
<p>- 트래커가 해당 토렌트의 해시값을 참조하여 스웜이 존재하는지 검색</p>
<p>- 존재한다면 스웜에 포함된 피어들을 목록으로 만들어 클라이언트에 전송 갯수는 기본 50개이고 순수하게 랜덤으로 선정된다.&nbsp;</p>
<p>- 스웜은 앞서 설명한 것처럼 Peer들이 토렌트 시작시 전송한 트래커 Tracker Request에 의해 목록이 생성되고 관리된다.&nbsp;</p>
<p>- 트래커 response 보내는것 : complete(현재 seeder들의 개수), downloaded(다운로드완ㄹ료), incomplete(공유받고 있는 Leecher들의 개수), min interval(간격)</p>
<p><br></p>
<p>*피어목록을 결정할때 문제점&nbsp;</p>
<p>- 트래커가 피어를 결정할때는 현재 네트워크 트래픽과 피어간의 거리 등을 고려하지 않고 랜덤, 다른 나라에 네트워크망과 연결되면 추가 금전비ㅣ용이 발생함, 이를 해결해서 나온것이 p4p isp사업자들이 싫어하기 때</p>
<p><br></p>
<p>4) &nbsp;피어간 통신 &nbsp;- 세션 연결&nbsp;</p>
<p>- 트래커를 통해서 피어 목록을 받은 클라이언트는 해당 피얻르에게 해시, 본인의 Peer id를 전송하여 연결 가능 여부를 파악,</p>
<p>- 해시를 받은 피어는 본인이 연결 가능하다면 해시 본인의 PeerID를 전송하여 응답</p>
<p>- 서로 해시를 주고 받으면 세션이 연결되고 파일 전송을 준비함&nbsp;</p>
<p>- 피어의 수에 따라 여러개의 세션이 연결 됨&nbsp;</p>
<p>- Keep-alive(대상 피어가 on-line상태인지), choke (Request받아도 응답할 수 없는 상태), HAVE(자신이 가지고 있는 Piace의 인덕스와 Offset 정보를 대상 Peer에게 알림)</p>
<p><br></p>
<p>5) 피어간 통신 - Piece전송</p>
<p>- 세션 연결에 성공한 Peer는 자신이 보유한 Piece정보를 전송함</p>
<p>- 클라이언트는 Peer들에게 받은 Piace를 토대로 자신에게 필요한 piece를 요청하고 해당 peer로부터 piece를 다운함</p>
<p><br></p>
<p>6) peer 간 통신 - Piece 다운로드 완료</p>
<p>- 완료되면 다른 피어들에게 해당 Piece를 보유하고 있다고 정보를 전송함</p>
<p>7) 모든 Piece다운로드 완료&nbsp;</p>
<p>- 클라이언트는 모든 piece 를 받으면 해당 토렌트를 Leecher에서 seeder로 변경하고 업로드 대기함&nbsp;</p>
<p><br></p>
<p><br></p>
<p><br></p>
</html>
👍  , ,
properties (23)
authordevjyk
permlinkpeer-to-peer-p2p
categorynetwork
json_metadata{"tags":["network","kr","p2p"],"image":["https://ipfs.io/ipfs/QmfUygVUM5aPqiJp6b1XJWxxMKACvirXRK6JJG9THVZWNX","https://ipfs.io/ipfs/QmXCZiDSPPb1zFie57xBxJ4P2k6EKjf4rgAYpMCnbheoaz"],"app":"steemit/0.1","format":"html"}
created2018-04-25 00:53:30
last_update2018-04-25 00:53:30
depth0
children0
last_payout2018-05-02 00:53:30
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length4,736
author_reputation1,430,694,503
root_title"[네트워크 메모] Peer To Peer (P2P) 의 용어들에 대해서 알아보자"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id51,963,622
net_rshares832,002,076
author_curate_reward""
vote details (3)