토렌트를 보자.
4기가를 일반적인 서버에서 다운받으려면 10분이 걸린다고 할 때,
토렌트에서는 3분이면 충분하다.
토렌트에서 어떤 파일을 다운받는 과정은 아래와 같다.
- 유저가 특정 파일을 request한다.
- request는 파장처럼 흘러나가며, 요청 파일을 갖고 있는 노드에 요청이 도달한다.
- 요청을 받은 노드는 해당 파일을 유저에게 직접 건넨다.
- 요청한 유저는 파일을 다운로드 받고, 100%가 되면 그 즉시 해당 파일을 공유하는 또 다른 노드가 된다.
- 또 다른 유저가 해당 파일을 request하면, 위와 같이 요청을 파장처럼 흘린다.
- 파일을 제공할 수 있는 모든 노드는 해당 파일을 50%씩, 33%씩, ... 나눠서 파일을 전송하게 되므로 속도가 빠른 것이다.
이 매커니즘이 가능하려면, 모두가 "같은 내용"을 가지고 있어야 한다는 것이다.