P2P 지역화(P2P Localization) 기술인 P4P 소개

Posted at 2010. 5. 10. 19:47 // in 네트워크 // by Manner of Traveling

P4P(Proactive network Provider Participation for P2P)는 ISP와 어플리케이션 개발자가 어플리케이션 최적화를 위하여 협력하는 프레임워크이다. P4P는 ISP의 네트워크 자원을 효율적으로 사용하여 ISP의 투자 및 운용 비용을 절감하고 어플리케이션의 성능을 향상시키는 것을 목적으로 한다. P4P는 DCIA(Distributed Computing Industry Association)의 P4PWG(http://www.dcia.info/activities/#P4P)에서 제안되었다.
 

P4P의 시작점은 “네트워크 자원을 어떻게 효율적으로 사용할 것인가?”하는 것이다. ISP는 다양한 이유로 인하여 네트워크 정보를 외부에 제공하지 않았다. P2P 어플리케이션은 최적의 피어 선택을 위해서 필요한 정보가 없는 상태에서 나름의 알고리즘을 사용하여 네트워크 정보를 추측하고 이를 기반으로 피어를 선택하도록 하고 있다. 이러한 노력에도 불구하고 P2P는 피어 선택에 있어서 네트워크 정보를 사용하지 않으므로 많은 지역에서 트래픽을 수신한다. 이렇게 P2P가 네트워크 자원을 비효율적으로 사용함으로 인하여 P2P 자체의 성능도 저하되고, ISP 네트워크에 부담을 가중시키고 있는 것이 현실이다.

ISP 내부 관점에서는 Local에서 처리 가능한 트래픽이 불필요하게 백본을 경유하여 네트워크 전체 혹은 특정 링크에 부하를 준다. CacheLogic의 연구 결과에 따르면, ISP의 전체 트래픽에서 약 50~80%가 P2P 트래픽인 것으로 분석되었다. 버라이즌의 시험 결과에 따르면, P2P 트래픽이 평균적으로 5.5 Hop을 경유하는 것으로 분석되었다. 반면에 P4P를 적용한 경우, 성능 저하 없이 평균 0.89 Hop으로 줄일 수 있다.

ISP간 연동 관점에서는 불필요한 트래픽이 ISP간에 유통됨으로 인하여 ISP에 경제적인 손실이 유발한다. ISP간에 연동에는 무정산도 있으나 대개의 경우 연동에 따른 비용을 지불한다. 일부 P2P 어플리케이션은 Local에 데이터를 제공할 피어가 존재하는 경우에도 약 50% ~ 90%의 데이터를 외부에서 다운로드한다.

P2P 어플리케이션 관점에서는 네트워크 정보를 알지 못하므로 나름에 방식에 의존하여 최선의 피어를 선택하려고 노력한다. 그러나, ISP가 네트워크 정보를 제공하지 않는다면, 이러한 방식은 언제나 최적의 방식이 될 수는 없다. ISP도 Cache, Rate-limit 등의 다양한 트래픽 제어 기술을 고려하고 있으나, 현재까지는 P2P와 협력하지 않고 위에 지적한 문제를 해결할 수 있는 방안은 없는 상태이다.

P4P의 기본적인 컨셉과 동작을 간단하게 설명하면 다음과 같다.

간단하게 먼저 용어부터 정리하면,
iTracker는 ISP(통신사업자)가 네트워크 정보를 공개하기 위한 서버이다.
appTracker는 P2P 어플리케이션이 콘텐츠 및 피어 검색을 하기 위해서 사용되는 중앙 서버이다. 콘텐츠 서버나 수퍼 피어(Super Peer)와 유사한 개념이다. Tracker라는 개념은 BitTorrent에서 나온 개념으로 자세한 사항은 BitTorrent를 참고하십시오.

P4P에서는 ISP와 P2P가 협력하기 위하여 iTracker라는 개념을 창안하였다. iTracker는 ISP의 네트워크 정보를 제공하는 Provider Portal이다. iTracker에서 네트워크 토폴로지, 네트워크 정책, 네트워크 용량 등의 정보를 제공한다.


P4P의 동작 방식은 다음과 같다.

1. 피어가 appTracker에 피어 리스트를 요청한다.

2. appTracker는 iTracker에 최적의 P2P 피어 선택을 위한 ISP의 네트워크 정보(토폴로지, 정책, 용량 등)를 요청한다.

3. iTracker는 네트워크에 대한 정보를 appTracker에 제공한다.

4. appTracker는 P2P 자체의 정책이나 알고리즘과 iTracker가 제공한 네트워크 정보를 사용하여 최적의 피어 리스트를 피어에 제공한다.

이와 같은 모델은 BitTorrent와 같은 Tracker 모델에 해당하는 시나리오이다. Gnutella와 같은 Tracker-less 모델의 P2P 어플리케이션은 위의 Tracker에서 수행하는 일련의 과정일 클라이언트에서 직접 수행하도록 P2P 클라이언트를 수정하여 상호 협력이 가능하다.

위와 같이 P2P 개발사와 ISP가 상호 협력하여 네트워크 자원을 효율적으로 사용할 수 있다.

참고 사이트

DCIA : http://www.dcia.info/activities/#P4P
Wikipedia : http://en.wikipedia.org/wiki/Proactive_network_Provider_Participation_for_P2P
RFC 5632 : http://tools.ietf.org/rfc/rfc5632.txt
P4P: Provider Portal for P2P Applications(Internet draft) : http://tools.ietf.org/id/draft-p4p-framework-00.txt