기존 p2p의 문제점 지적
기존 p2p의 경우 peer들의 요청을 큐를 이용해 먼저 요청한 peer부터, 그리고 peer의 rating이 높은( 공유를 많이 하는..)
peer들을 먼저 전송하는 방식이다. ( 정확히 분석은 못했고 들은 풍월, 프로그램 돌아가는걸 보니..)
이러한 방식의 문제점은 네트워크상 가까운 거리에 있음에도 불구하고 즉, 전송하는데 짧은 시간이 걸림에도 불구하고, 많은 시간을 기다리게 되는 점.
즉 os에서 task스케줄링 방식에서 fifo 방식의 문제점을 않고 있다.
이러한 문제점을 해결하고자,
task 스케줄링 방법중 가장 계산 시간이 짧은 task를 먼저 실행 시키는 스케줄링 방법을 적용하는 것이다.
p2p전송에서 계산 시간은 전송 시간으로 대응 될수 있고, 이는 전송하려는 파일의 크기로 간단히 생각할수 있다.
하지만 p2p로 전송하는 데이터들이 대부분 대용량이기 때문에 이러한 벡터로는 원하는 결과(peer들의 평균 대기 시간의 최소화)를 얻을수 없다.
그래서 추가적인 벡터를 계산할것을 제안하는데,
그것이 바로 네트워크간의 거리이다.
네트워크간의 거리란 홉이라고도 불리우는 최종 목적지까지 도착하는데 거치는 host들의 수이다.
우리는 이러한 네트워크간 거리를 유지하기 위해 서버단이나 각 클라이언트에서 네트워크 맵을 만들어 유지하여 데이터 요청이 있을시 데이터를 보유한 host들 중에서 가장 가까운 host를 요청한 peer에게 알려주는 방식으로 작동한다.
각 개별 peer들도 네트워크 맵을 가지고 있어서 요청이 들어오는 것중 네트워크간 거리가 짧은 peer들에게 더 높은 우선순위를 부여하여 전송 시간이 더 짧은 peer에게 먼저 전송하는 방식으로 구현 하는 것이다.
그래서, 우선 수위를 결정하는데 필요한 벡터는
대기시간↑, 전송하려는 데이터크기 ↓ , 네트워크간 거리↓
가 되고 각각의 벡터에 가중치를 부여해 우선순위를 결정할 수 있다.
응용분야로는
요즘 대새(?)인것 같은 그리드딜리버리(제품이름)방식의 소프트웨어들
한마디로 데이터를 릴레이 방식으로 다른 호스트들에게 계속 전송하는 방식의 소프트웨어들.
ps. 네트워크 맵에 관한 관련 링크 http://www.opte.org/
Posted by 루트
