쿼리 플러딩

Query flooding

쿼리 플러딩은 피어 투 피어 네트워크에서 리소스를 검색하는 방법이다.그것은 간단하고 저울이 매우 약해서 거의 사용되지 않는다.쿼리 플러딩에 의해 작동되는 Gnutella 프로토콜의 초기 버전; 새로운 버전은 더 효율적인 검색 알고리즘을 사용한다.

작전

피어투피어 네트워크는 일반적으로 네트워크의 모든 노드가 아닌 작은 노드의 서브셋에 각각 연결된 많은 수의 노드로 구성된다.노드가 알지 못하는 노드에 있을 수 있는 네트워크상의 자원을 찾기를 원하는 경우, 단순히 검색 질의를 가까운 이웃에게 브로드캐스트할 수 있다.만약 이웃들이 자원을 가지고 있지 않다면, 그것은 이웃들에게 차례로 그들의 이웃들에게 질문을 전달하도록 요청한다.이것은 자원이 발견되거나 모든 노드에 접속될 때까지 반복되며, 또는 아마도 네트워크로 인한 제한에 도달할 것이다.

쿼리 플러딩은 구현이 간단하며 요청이 거의 없는 소규모 네트워크에 실용적이다.그것은 네트워크의 도달 가능한 모든 노드에 접촉하므로 네트워크에서 자원을 찾을 수 있는지 여부를 정확하게 판단할 수 있다(예를 들어, Freenet은 확률론적 결과만 반환한다).

반면에, 모든 요청은 모든 노드에 연락을 취하게 할 수 있다.각 노드는 적은 수의 쿼리를 생성할 수 있지만, 그러한 각각의 쿼리는 네트워크를 범람시킨다.그러므로, 더 큰 네트워크는 더 작은 네트워크보다 노드당 훨씬 더 많은 트래픽을 발생시켜, 본질적으로 그것을 해결할 수 없게 만들 것이다.또한, 노드는 존재하지 않는 자원에 대한 요청을 발행하는 것만으로 네트워크를 범람시킬 수 있기 때문에, 네트워크에 대해 서비스 거부 공격을 개시하는 것이 가능할 수 있다.

대안

Gnutella 프로토콜의 버전 0.6은 쿼리 라우팅을 요구한다.질의 라우팅 명세서는 원본 연구의 아이디어가 어떻게 구현되는지를 설명한다.Kad 네트워크와 같은 다른 파일 공유 네트워크는 분산 해시 테이블을 사용하여 파일을 인덱스하고 키워드 검색을 한다.BitTorrent는 개별 파일(또는 아카이브)을 공유하기 위해 개별 오버레이 네트워크를 생성한다.검색은 웹사이트에서 색인된 토렌트 파일을 찾는 것과 같은 다른 메커니즘에 의해 수행된다.자석 링크가 있는 그누텔라 네트워크에서도 유사한 메커니즘을 사용할 수 있다.예를 들어 Bitzi는 자석 링크를 검색하기 위한 웹 인터페이스를 제공한다.

냅스터와 같은 이전의 P2P 네트워크는 파일을 찾기 위해 중앙집중식 데이터베이스를 사용했다.이것은 스케일링 문제는 없지만 중앙 서버는 단일 장애 지점이다.

참고 항목