문제

동적 피어 투 피어 네트워크에서 네트워크 무결성을 유지하는 방법에 대한 기술, 알고리즘 등에 대한 정보를 찾고 있습니다. 실용적인 구현, 학술 논문 및 해당 범주의 다른 모든 것을 환영합니다.

각 노드가 연결되는 곳에서만 피어 투 피어 만있는 네트워크를 상상해보십시오. 엑스 다른 노드. 모든 노드의 그랜드 목록이 없으면 각 노드는 네트워크와의 연결을 유지해야합니다. 노드가 내려 가서 동적으로 올라갑니다. 즉, 각 노드는 새로운 노드가 연결하기 위해 이웃 (및 이웃)에게 요청해야합니다. 엑스 연결 수.

네트워크 세분화 (네트워크의 두 절반은 각 네트워크에서 하나의 노드로만 연결됩니다.이 중 하나가 다운되면 네트워크가 두 개로 나뉘어 지고이과 효율적인 라우팅 (거리 메트릭 등)을 피하는 방법은 저의 주요 관심사입니다. 그러나 비슷한 설명이있는 네트워크와 관련된 것은 흥미로울 것입니다.

나는 현재 내가 요구하는 것과 유사하기 때문에 코드 DHT 프로토콜을보고있다.

도움이 되었습니까?

해결책

유비쿼터스 컴퓨팅의 경우 다양한 Ad-Hoc P2P 네트워크가 개발되었으며 아마도 귀하의 요구에 맞을 것입니다. 예를 들어 군대에서는 이웃과 대화하는 작은 캡슐을 일반적으로 일부 명령 센터까지 배치하는 데 사용되었습니다. 센터가없는 경우 분산 컴퓨팅과 관련이있을 수 있습니다. 어쨌든 여기에는 몇 가지 링크가 있습니다.

다른 팁

Netsukuku 프로젝트는 대규모 WiFi 기반의 임시 네트워크를위한 프로토콜 및 소프트웨어 구현을위한 목표를 목표로합니다.

그들의 FAQ에서: "Netsukuku 프로젝트는 Wi-Fi 연결의 큰 잠재력을 활용한다는 매우 간단한 아이디어를 기반으로하며 무선 커뮤니티의 PC가 라우터 역할을하고 인터넷보다 더 큰 임시 네트워크를 처리하게합니다."

내 생각 만 - 완전한 해결책이 아닙니다. 실제로 테스트되지는 않았지만 여전히 많은 흥미로운 문제와 잠재적 솔루션을 다룰 수 있습니다.

노드 고장 및 재 연결을위한 표준화 된 시간은 기록 및 관리되어야합니다. 이를 달성하기 위해 네트워크는 실시간으로가 아니라 애니메이션 프레임 번호로 계산됩니다. N 프론트 엔드 프로세서에 FEP ID 및 작업 ID 및 네트워크 애니메이션 프레임 번호를 들어오는 작업에 할당하도록하십시오. 실시간에는 양자화 시간조차도 제대로 해결되지 않는 여러 가지 문제가 있습니다. 일부 예외적 인 경우, 계정과 비슷한 점에서 비슷하게, 현금이 이동하는 것보다 발생하는 것으로 간주되어야하는시기에 이벤트를 게시합니다.

고성능의 경우, 하트 비트 패킷에는 네트워크의 호스트 인벤토리뿐만 아니라 수행 중 및 최근에 완성 또는 포기 된 작업에 대한 세부 정보도 포함되어야합니다.

네트워크는 작업 항목을 처리하고 인접한 동료 또는 FEP에 결과를 게시합니다. FEP는 고객에게 완성 된 작업 세부 정보를 고객에게 제공하며 FEP의 상태 만 요청에 따라 찍힌 마지막 일련 번호이므로 실패한 FEP를 인수 할 수 있습니다.

네트워크에는 계속해야 할 쿼럼이 있어야합니다. 외부 모니터는 연결을 추적하고 현재 정족수 안에 있든 외부에 있든 연결의 변화를 경험하는 노드에 알려줍니다.

작업 항목이 실패하거나 새 노드가 네트워크에 결합되어 작업 항목이 완료되지 않은 경우 새 노드가 다시 올 때까지 작업 항목 ID를 기반으로 새 작업 할당 정책을 설정해야합니다. 온라인.

여러 노드가 동일한 작업을 수행하는 경우 (노력의 복제 - 가능하지만 일반적인 시간 초과를 현명하게 설계하여 최소화) 작업은 롤백 가능해야하며 충돌은 Markov 체인을 사용하여 해결되었습니다.

가능한 복제를 감지하려면 안정적으로 작업을 수행하려면 작업 중에 적용되는 작업 결과를 수신하기위한 시간 초과보다 시간이 적은 시간 내에 자동 롤백해야합니다. 위기 기간 즉, 노드가 실패 할 때. 노드가 실패하지 않을 때 시간 초과가 짧아집니다.

휠을 재창조하지 않기 위해 다양한 라우팅 프로토콜을 살펴보십시오. OSPF 시나리오를 고려할 때 좋은 출발점 일 수 있습니다. 물론 당신에게 최선의 선택이 될 수있는 많은 변수가 있습니다. 와 같은:

  • X 노드로 가장 짧은 경로를 유지할 수 있습니다. 노드가 다운되면 첨부 된 노드에 알리고 적절한 노드를 찾기 위해 새 SP 검색을 수행 할 수 있습니다. Ping 및 Keep-Alive 메시지에 대한 오버 헤드를 고려해야합니다.
  • 연결을 인스턴트로 표시해야합니까 (즉, P2P 네트워크에서 검색)가 필요합니까? 또는 대규모 노드 세트 (LA Botnet)를 유지해야합니까? 그렇다면, 혼합 접근법 (네트워크 + OSPF/BGP의 작은 서브 세트를위한 소형 분산 해시 테이블)이 도움이 될 수 있습니다.
  • 그렇습니다

당신은 보셨습니까? Kademlia? 코드와 유사하며 Bittorrent 및 Emule에서 사용됩니다. 그만큼 종이 공격에 직면하더라도 네트워크 무결성을 보장하기위한 몇 가지 조치가 나와 있습니다. 두 가지 기본은입니다

  • 충분한 동료를 유지하여 문제를 일으키지 않는 충분한 실패가 가능하지 않도록
  • 가장 긴 가동 시간 순서대로 알려진 동료 목록을 유지하십시오. 연구에 따르면 다음 시간 내에 오프라인 상태가 될 확률은 이미 온라인 상태가 길어질 수 있습니다. 이로 인해 공격자가 악성 노드로 네트워크를 침수하기가 어렵습니다.

나는 그것에 대해 많이 읽지 않았기 때문에 이것이 코드에 얼마나 적용되는지 잘 모르겠지만, 퍼지 검색이 필요하지 않으면 DHT를 사용하는 것이 좋은 생각이라고 생각합니다.

코드를 사용하십시오. http://en.wikipedia.org/wiki/chord_(peer-to-peer)

이전에 프로젝트에서 구현했으며 이러한 문제를 해결합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top