나는 Go에서 코드 DHT를 구축하고 있습니다 (그러나 언어 부분은 중요하지 않습니다).코드 DHT 응답 방법
그리고 노드 간의 응답 동작을 파악하려고합니다. 노드 C에 후속 요청 메시지를 보내려하지만 노드 A -> 노드 B로 먼저 이동 한 다음 노드 C에 도착해야합니다. 노드 C가 원래 노드에 응답하는 가장 좋은 방법은 무엇입니까?
나는 별개의 방법을 생각해 냈지만 DHT에 대해 어느 것이 더 이상하지 않은지 알지 못합니다. 각 노드는 요청을
는- ,이이 때 노드 그렇게 응답이 원래
- 는 요청이 다음에 대해 잊지 확인했다 역방향 경로를 사용하게 원래의 TCP 연결에 응답을 기다립니다 C는 요청 메시지의 보낸 사람 (IPAddress) 필드에 표시된 원래 노드로 직접 응답을 보내는 요청을 수신합니다.
- 다른 메시지와 마찬가지로 발신자 NodeID에 응답을 보내면 코드 링 주위로 라우트됩니다.
어떤 것이 가장 좋은 방법인지 알아낼 수 없습니다.
감사합니다. 나는 손가락 테이블의 필요성을 이해합니다. C가 DHT에 대한 일반적인 idomatic 메서드에 직접 회신하고 있습니까? 가짜를 유지하고 싶다면, 메시지가 반대 경로를 취한 경우, 즉 각 노드가 열린 TCP 연결 (방법 # 1)에서 응답 대기 중일 경우 큰 성능 패널티가 발생합니다. –
내가 배운 한 직접적인 응답이 필요합니다. 데이터 센터 나 다른 로컬 네트워크에서 코드를 배포하는 경우 동일한 경로를 다시 취하는 데 큰 불이익이 없다고 주장 할 수 있습니다. 그러나 코드가 여러 데이터 센터에서 인터넷을 통해 배포 될 때 크게 변경됩니다. – peter