월간 <네트워커> - 정보화에 대한 다른 시각
12호 이동영의
파일 공유 프로그램
분산 처리 방식의 어려움

이동영  
조회수: 5750 / 추천: 59
몇년 전 냅스터가 폭발적인 인기를 끌며 등장한 이후, 파일 공유 프로그램은 끊임없는 논란의 대상이 되어 왔다. 음악이나 영화 파일을 무료로 공유하려는 사용자와 프로그램 제작자에 맞서 음반 회사를 중심으로 한 지적재산권자들이 사활을 걸고 이를 막으려 해 왔기 때문이다. 그러나 잇따른 소송에도 파일 공유 프로그램의 인기는 식을 줄 모르는 것 같다.

파일 공유 프로그램의 기능은 기본적으로 커다란 온라인 자료실과 같다. 각각의 사용자들이 자신이 가진 파일을 자료실에 올리고, 또 자신이 원하는 파일을 내려 받는 것이다. 흔히 볼 수 있는 웹 게시판 형태의 자료실을 상상하면 된다. 그런데 이러한 방식의 자료실은 규모가 커질수록 그에 따라 비용이 많이 든다. 많은 양의 자료를 저장하고, 검색하고, 또 수많은 사용자들에게 이를 전송하기 위해서는 엄청난 용량의 컴퓨터(서버)와 네트워크가 필요한 것이다.

사용자의 힘을 빌리자

냅스터는 이 문제를 사용자들의 컴퓨터의 능력을 빌려서 해결했다. 즉 서버는 각 사용자들이 공유하고 있는 파일의 목록만을 가지고 있어서, 어떤 사용자가 원하는 파일을 누가 가지고 있는지를 가르쳐 주는 검색 기능만을 한다. 그 파일을 실제로 저장하고 있고 또 전송하는 것은 또다른 사용자인 것이다. 파일의 목록은 실제 파일 자체보다 훨씬 용량이 적기 때문에, 서버의 부담은 엄청나게 줄어든다. 이런 의미에서 파일 공유 프로그램을 흔히 P2P(Peer-to-Peer, peer는 동료라는 뜻) 프로그램이라고도 한다. 반대로 웹 자료실과 같은 처리방식을 클라이언트-서버 모델이라고 한다. 서버라고 불리는 대용량의 컴퓨터가 사용자(클라이언트)의 요청에 따라 일을 하는 것이다.

냅스터와 같은 방식은 획기적이기는 했지만 두 가지 약점이 있었다. 첫째로 파일의 저장과 전송은 사용자들에게 ‘분산’되었지만 파일의 목록은 여전히 서버에 집중되어 있고, 따라서 모든 검색 작업도 서버에 집중된다는 점이다. 파일 자체의 용량에 비하면 훨씬 부담이 적기는 하지만, 사용자의 수가 많아지면 이것 역시 만만하지 않은 일이 된다. 두번째가 현실적으로 더 중요한데, 서버가 모든 자료의 목록을 가지고 있었기 때문에 불법 자료에 대한 법적 책임의 소지가 있다는 점이다. 실제로 원래의 냅스터 서비스는 소송에 의해 중단되었고, 지금은 합법적인 음악 파일을 파는 곳으로 바뀌었다.

완전히 분산된 시스템

냅스터의 뒤를 잇는 대안으로 떠오른 것은 그누텔라(Gnutella)였다. ‘그누’라는 말에서 짐작할 수 있듯이 그누텔라는 자유 소프트웨어로 개발되었다. 그누텔라는 냅스터와 달리 파일 목록을 가지고 있는 중앙 서버가 없이, 검색마저도 사용자들 사이에서 처리되는 완전히 분산된 형태를 취하고 있다. 그누텔라에서 한 사용자의 컴퓨터는 몇 명의 다른 사용자들과 서로 연결되어서, 전체적으로 그물과 같은 모양의 네트워크를 이루고 있다. 어떤 사용자가 검색을 시작하면 그 검색요청이 주위의 연결된 컴퓨터들로 전달되고, 또다시 그 컴퓨터들에 연결된 컴퓨터로 계속해서 확산되는 식이다. 물론 중간에 검색요청에 맞는 파일이 있으면, 원래 검색을 시작한 사용자에게 그 사실이 전달된다. 그누텔라의 문제점은 검색이 분산되어 처리되기는 하지만 비효율적이라는 점이다. 검색의 범위는 검색요청을 몇 단계까지 전달할 것인지(이를 TTL(Time to Live) 이라 한다)에 의해 결정되는데, 단계수가 적으면 네트워크 중 작은 부분만을 검색하게 되고, 단계수가 많으면 각 사용자가 처리해야 할 검색요청의 수가 너무 많아진다.

수퍼노드와 병렬 다운로드

실제로 냅스터의 뒤를 이어 현재 가장 많이 사용되는 것은 카자(KaZaA)이다. 카자는 두 가지 면에서 혁신적이라 할 수 있다. 첫째는 같은 파일을 가지고 있는 사용자를 여러 명 찾으면, 파일을 몇 부분으로 나누어서 여러 곳으로부터 동시에 내려받는 것이다. 세 곳으로부터 동시에 내려받으면 한 군데에서 받는 것보다 세 배가 빠르다는 이야기이다. 두번째는 수퍼노드(supernode)라는 방식을 이용해서 검색을 한다는 점이다. 이것은 검색 작업이 중앙에 집중되는 냅스터 방식과 완전히 분산된 그누텔라 방식의 절충형이라 할 수 있는데, 사용자의 컴퓨터들 중 비교적 용량이 큰 것들을 뽑아 수퍼노드라 하고 여기에 그 주위의 사용자가 공유하는 파일의 목록을 저장한다. 사용자가 검색을 할 때는 먼저 자신이 연결된 수퍼노드에 검색요청을 보내고, 이어 다른 수퍼노드에도 전달하는 식이다. 이 방법은 서버의 부담을 없애면서도 효율적인 검색을 할 수 있다는 점에서 성공적이다(음반업계가 카자에 소송을 제기했지만 냅스터와는 달리 서비스를 중단시킬 수 없었다).

이동키(eDonkey, 당나귀라고 부르기도 한다)는 카자와 함께 널리 사용되고 있고, 최근 사용자가 늘어나고 있다. 특히 우리나라에서 인기가 높다. 이동키 외에도 이것의 공개소스 버전인 이뮬(eMule) 등도 같은 네트워크를 공유한다. 이동키는 카자와 대체로 비슷한 특성을 가지는데, 사용자의 컴퓨터 중에서 수퍼노드를 뽑는 대신 원하는 사람들이 서버를 운영할 수 있도록 했다(냅스터와 같이 중앙집중화된 서버는 아니고, 카자의 수퍼노드에 가까운 역할을 한다). 오버넷(Overnet)은 이동키의 후속으로 만들어진 프로그램으로서 서버가 없이 완전히 분산된 형태로 검색을 한다. 다만 오버넷은 그누텔라와 달리 검색요청을 무조건 확산시키는 대신, 검색어에 따라 그 검색어를 맡은 사용자에게로 보내는 방법을 쓴다. 즉 각각의 사용자가 자신이 맡은 검색어에 대해서 작은 서버의 역할을 하는 것이다. 이 방법은 효율적이기는 하지만 검색어를 정확히 입력하지 않으면 좋은 결과를 얻을 수 없다는 단점이 있다(예를 들어 ‘진보’와 ‘진보넷’은 완전히 다른 검색어로 간주되기 때문에 ‘진보’라는 검색어로 ‘진보넷’을 찾을 수는 없다).

이기적 행동과 가짜 파일의 문제

P2P 방식의 파일 공유에서 해결해야 할 문제 중 하나는 사용자들의 이기적인 행동이다. 네트워크 전체로 보았을 때, 전송받는 속도의 합과 전송하는 속도의 합은 같을 수밖에 없다. 누군가가 보내 준 만큼만 받을 수 있기 때문이다. 하지만 사용자 개개인의 입장에서는 자신이 원하는 것을 받는 데에 관심이 있지 남에게 파일을 보내 주는 데는 인색한 경향이 있다. 이를 극복하기 위한 몇 가지 방법들이 시도되고 있지만 아직 뾰족한 해결책은 없는 형편이다. 또 하나의 골치거리는 이른바 가짜 파일이다. 인기 있는 음악이나 영화 등의 제목으로 가짜 파일을 만들어서 공유하면 그것의 진위 여부를 알아내기가 쉽지 않은 것이다(책임 있는 ‘관리자’가 진위 여부를 판단할 수 있다면 쉽게 해결되겠지만, 그러면 그 관리자가 지적재산권에 대한 법적 책임까지 져야 한다). 심지어 카자는 음반업계가 가짜 파일이나 잘못된 데이터를 전송해서 네트워크를 방해한다고 역으로 소송을 제기하기까지 했다.

어떤 일을 완전히 분산된 방식으로 처리하는 것은 복잡하고 어려운 문제인 경우가 많다. 파일 공유의 경우 검색이나 전송 문제는 어느 정도 해결되었지만, 이기적 행동이나 가짜 파일이라는 새로운 문제가 생겼다.
추천하기