P2P

위키백과 ― 우리 모두의 백과사전.

P2P(peer-to-peer network) 혹은 동등계층간 통신망(同等階層間 通信網)은 비교적 소수의 서버에 집중하기 보다는 망구성에 참여하는 기계들의 계산과 대역폭(bandwidth) 성능에 의존하여 구성되는 통신망이다. P2P 통신망은 일반적으로 노드(node)들을 규모가 큰 애드혹(Ad hoc)으로 서로 연결하는 경우 이용된다. 이런 통신망은 여러 가지로 쓸모가 있는데, 오디오나 비디오, 데이터 등 임의의 디지털 형식 파일의 공유는 매우 보편적이다. 또한, 인터넷전화(VoIP)같은 실시간 데이터 등도 P2P 기술을 통해 서로 전달 될 수 있다.

순수 P2P 파일 전송 네트웍은 클라이언트서버란 개념 없이, 오로지 동등한 계층 노드들(peer nodes)이 서로 클라이언트와 서버 역할을 동시에 네트웍상에서 하게 된다. 이 네트웍 구성 모델은 보통 중앙 서버를 통하는 통신형태의 클라이언트-서버 모델과는 구별된다. FTP 서버야 말로 P2P 파일 전송 형식이 아닌, 대표적 반례로 꼽을 수 있다. 어떤 사용자가 FTP 서버에 어떤 파일을 올리면 다른 사용자들이 내려받는데, 올리는 쪽과 내려받는 쪽 모두 동시에 접속할 필요가 없다.

냅스터(Napster), 오픈냅(OpenNAP), 아이알씨(IRC @find) 등과 같은 네트웍과 채널은 클라이언트-서버 구조를 검색 등과 같은 일부 기능에 쓰고, 다른 기능은 P2P 구조를 쓴다. 뉴텔라(Gnutella)나 프리넷(Freenet) 같은 네트웍은 모든 기능에 P2P 구조를 가지는데, 비록 그 네트웍이 다른 동등계층 사용자들(peers)의 네트웍 주소를 알려주는데 디렉토리(directory) 서버에 크게 의존하긴 하지만, 때때로 진정한 P2P 네트웍으로 인용된다.

P2P 네트웍 구조는 최근에 인터넷상에서 멀티미디어 파일을 공유하는 용도로 많이 부각되긴 했지만, 1969년 4월 7일에 제정된 알에프씨(RFC; Request for Comments)란 인터넷 규약의 초기 버전부터 핵심적인 기술로 내제되어 있어 유래가 깊다.

참고로, “P2P 네트웍”이란 용어는 그리드 컴퓨팅(grid computing)을 지칭하기도 한다.


목차

[편집] 리소스 기반의 어드레싱

P2P는 인터넷에 연결되어 있는 여러가지 형태의 리소스 (저장공간, 씨피유 파워, 컨텐트, 그리고 연결된 컴퓨터를 쓰고 있는 사람 그 자체)를 이용하는 일종의 애플리케이션이다. 그런데 이들은 고정된 ip 주소도 없고, 연결되었다 안되었다하는 '불안정한' 형태로 존재하는 분산된 리소스이다. 따라서 p2p노드는 종래의 DNS '바깥에서' 운용될 수 밖에 없으며 강력한 중앙의 서버들의 영향력이 미치질 않는다.

바로 이점이 P2P를 독보적으로 만드는 핵심이다.

P2P 디자이너들은 그런 특징을 활용해서 CPU 싸이클들을 모을 수 있는 방법, 파일을 공유할 수 있는 방법, 채팅하는 방법등을 찾아내고자 하는 것이다. 문제는 어떤 방향으로 나아가고자 하느냐이다.

냅스터나 ICQ, Popular Power, Freenet 등은 모두 기존에는 전혀 사용되지 않던 리소스을 발굴해서 지렛대로 활용하려 하고 있다는 점에서 유사하다. 이러한 서비스는 다양한 형태로 인터넷에 물려 있는 수천, 수만가지의 장치들을 잘 조합하고 연결하려고 하는 것이다.

혹자는 P2P 디자이너들이 해결하는 이러한 '연결 문제'(connectivity problem)가 단지 하나의 해프닝적인 것 아니냐는 식으로 얘기하곤 한다. 하지만, '컴퓨터끼리 연결하는 방법을 개선하겠다'는 모토가 그 유명한 IP 주소나 DNS, 또는 그전의 TCP, 심지어는 인터넷 그 자체를 태어나게 했다는 사실. 인터넷은 결국 위에서 말한 기술이 탄생한 순간 순간이 모여서 이뤄진 것이다.


[편집] DNS를 우회하는 P2P

1996년 나온 ICQ는 항상 인터넷에 연결되어 있는 서버와는 다른, 접속 되었다 안되었다 하는 피씨들끼리 서로 접속할 수 있는 길을 최초로 터주었다. 모든것이 점차 포터블화 되어 가는 추세에 맞서기 위해, ICQ는 DNS를 우회해서 자신만의 독자적인 프로토콜 특이적인 주소 디렉토리(protocol-specific address directory)를 창조해 냈던 것이다. 이를 통해 ip 주소는 실시간으로 업데이트 될 수 있었다. Groove, Napster, Netmeeting 등이 ICQ를 따라 이런 방법을 사용한다. (물론 모든 p2p 시스템이 이 트릭을 쓰는것은 아니다. 누텔라 (Gnutella) 나 Freenet의 경우, DNS를 우회하는 것은 종래의 방식과 똑같지만 숫자로 표시되는 ip 주소를 활용한다는 점에서 다르다. Popular Power와 SETI@Home은 각 노드가 고정된 주소에 접속할 수 있는 스케쥴을 제공해서, 접속 당시의 ip 주소를 전달하는 방식을 택하고 있다)

Whois에 따르면 ip 주소가 처음 뿌리를 내린 1984년 이후 16년 동안 2천3백만개의 도메인 네임이 만들어 졌다. 하지만 냅스터는 혼자서 16개월만에 2천 3백만개의 non-DNS 주소를 만들어 냈다. 그리고 만약 사용자가 모든 non-DNS 인스턴트 메씨징 주소에 가입한다고 하면 동적인 ip 주소에 접근할 수 있는 P2P 주소의 총갯수는 2억개를 넘어선다. 평균적인 DNS 호스트가 10개의 second.first.com 같은 형태의 2차 주소를 갖고 있다고 가정해 보아도, 현재의 P2P 주소의 총 갯수는 불과 4년뒤엔 DNS 주소의 총갯수와 같아지게 될것이며, 오늘날의 DNS 세계보다 훨씬 더 광대한 세계로 성장해 가게 된다는 계산이 된다.

무선 PDA 같은 새로운 종류의 인터넷 접속 장치나 TiVo, Replay 같은 디지틀 비디오 레코더가 보급되면 될수록 이들 역시 인터넷의 중요한 일부가 될것이 확실하다. 하지만 현재로는 피씨 그 자체야말로 미개척된 리소스의 절대 다수를 갖고 있다. 피씨는 인터넷의 다크호스이다. 그리고 그 피씨가 갖고 있는 '덜' 사용된 리소스는 P2P 혁명을 더욱 가속화할 것이다.

[편집] 네트웍, 프로토콜, 애플리케이션

형식:

  • 네트웍/프로토콜: 해당 네트웍을 사용하는 애플리케이션 리스트 (사용 OS)

알파벳순 표시 - 매우 비슷한 애플리케이션 예외

P2P 시스템의 이전세대는 메타컴퓨팅(metacomputing)이라 불리거나 미들웨어(middleware)로 분류됨. Legion, Globus, Condor, ByteTornado

[편집] 멀티네트웍(Multi-network) 애플리케이션

형식: 애플리케이션 (네트웍/프로토콜) (사용 OS) (오픈 소스 여부?)

[편집] 관련항목

[편집] 바깥 고리