![]() |
Routing, finding double links Holas, Consider this network A - B - C - A If B does a query A gets the query twice. A needs to see this and drop the duplicate. I simply check my routing tables on the other connections to see if a route already exists, and if so drop it. This requires me to access my routing tables of all connections for every packet that needs to be routed. Does anyone know any other ways? |
hm i've been looking into it And it seems this is the only way.. sigh However, i thought of a nice route-restore thing in case connections dropped etc. When you are part of a fork (that is, receive a query twice), you keep the one with the least hops in your route-table. But, you also register the longer route in a backup table.. When the connection with the shortest route drops, you reinstall the longer route to another connection. This would make sure that IF you are able to route it in different ways, you pick the best in all situations. Without this 'fork-awareness' a disconnect of a host would kill lots of routes.... Comments? |
Hm if I get you I can suggest the following: Every connected servent should keep a ID list where you put in the ID of queries. When you receive a hit you just check your servents for the ID. If it contains the ID you know where to send it. To prevent loops you have to check that you don't have an ID twice in your lists. I mean that is really not to hard to do. On all systems there are libraries offering hashes or vectors... so this should be fast and efficient. |
All times are GMT -7. The time now is 05:39 AM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.
Copyright © 2020 Gnutella Forums.
All Rights Reserved.