mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-07 06:02:41 -04:00
fixed compilation of network simulator
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7665 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
8edc8511c3
commit
9a6d57f89b
3 changed files with 50 additions and 3 deletions
|
@ -1,3 +1,51 @@
|
||||||
|
TODO
|
||||||
|
====
|
||||||
|
|
||||||
|
Testing the router algorithm with network simulator
|
||||||
|
* generate a random network
|
||||||
|
* simulate disconnections (also in GUI)
|
||||||
|
* send messages from/to random peers and measure:
|
||||||
|
- how many times a given message is stored
|
||||||
|
- how much time a given message took to arrive.
|
||||||
|
|
||||||
|
Implement
|
||||||
|
* clueing of GR from GXS (simulated in network simulator, when initing the network)
|
||||||
|
|
||||||
|
In GLobal Router, by order of priority
|
||||||
|
* when a ACK is received for a msg that is already ACKed, we should still update the routing matrix and add a clue, but with lower prioity,
|
||||||
|
so that the matrix gets filled with additional routes. Can be checked in the simulator
|
||||||
|
|
||||||
|
* routing strategy:
|
||||||
|
- when a route is known and available, always select it, but possibly add another random route, very rarely.
|
||||||
|
Peer disconnection is likely to cause the discovery of new routes anyway.
|
||||||
|
|
||||||
|
* we should use clues from GXS to improve the routing matrix
|
||||||
|
- That would avoid lots of spamming.
|
||||||
|
- allows to init the routing matrices for all keys
|
||||||
|
- random walk will be a supplemental help, but restricted to small depth if no indication of route is available.
|
||||||
|
- needs to be implemented in network simulator. When providing a new key, the key should be spread in the network and new clues
|
||||||
|
should be added to the RGrouter matrix.
|
||||||
|
|
||||||
|
* make sure the depth is accounted better:
|
||||||
|
- if single route is known => don't limit depth
|
||||||
|
- if no route is known => strictly limit depth
|
||||||
|
=> add a counter which is increased when no route is available, and *reset* otherwise, so that the max number of bounce
|
||||||
|
we can do without knowledge of the keys is limited, but the total depth has no limits.
|
||||||
|
|
||||||
|
Unsolved questions:
|
||||||
|
* handle dead routes correctly. How?
|
||||||
|
* should we send ACKs everywhere even upward? No, if we severely limit the depth of random walk.
|
||||||
|
* better distribute routing events, so that the matrix gets filled better?
|
||||||
|
* find a strategy to avoid storing too many items
|
||||||
|
* how to handle cases where a ACK cannot be sent back? The previous peer is going to try indefinitly?
|
||||||
|
=> the ACK will be automatically collected by another route!
|
||||||
|
* how to make sure ACKed messages are not stored any longer than necessary?
|
||||||
|
* send signed ACKs, so that the receiver cannot be spoofed.
|
||||||
|
* only ACK when the message was properly received by the client service. No ACK if the client does not register that item?
|
||||||
|
|
||||||
|
================================================================================================================
|
||||||
|
|
||||||
|
|
||||||
The purpose of this directory is to write a Network simulator, that can have multiple turtle routers interact
|
The purpose of this directory is to write a Network simulator, that can have multiple turtle routers interact
|
||||||
together. The routers will talk to a fake link manager, which reports the peers for each node of a network graph.
|
together. The routers will talk to a fake link manager, which reports the peers for each node of a network graph.
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@ FORMS = NetworkSimulatorGUI.ui TurtleRouterStatistics.ui GlobalRouterStatistics.
|
||||||
|
|
||||||
LIBS *= ../../../lib/libretroshare.a \
|
LIBS *= ../../../lib/libretroshare.a \
|
||||||
../../../../../libbitdht/src/lib/libbitdht.a \
|
../../../../../libbitdht/src/lib/libbitdht.a \
|
||||||
../../../../../../lib/sqlcipher/.libs/libsqlcipher.a \
|
|
||||||
../../../../../openpgpsdk/src/lib/libops.a \
|
../../../../../openpgpsdk/src/lib/libops.a \
|
||||||
../lib/libnscore.a \
|
../lib/libnscore.a \
|
||||||
-lgnome-keyring -lupnp -lssl -lcrypto -lbz2 -lixml
|
-lsqlcipher -lgnome-keyring -lupnp -lssl -lcrypto -lbz2 -lixml
|
||||||
|
|
|
@ -71,7 +71,7 @@ LIBS += -lssl -lcrypto -lpthread
|
||||||
#LIBS += -L$(UPNPC_DIR) -lminiupnpc
|
#LIBS += -L$(UPNPC_DIR) -lminiupnpc
|
||||||
LIBS += $(XLIB) -ldl -lz
|
LIBS += $(XLIB) -ldl -lz
|
||||||
LIBS += -lupnp
|
LIBS += -lupnp
|
||||||
LIBS += ../../../../../lib/sqlcipher/.libs/libsqlcipher.a
|
LIBS += -lsqlcipher
|
||||||
|
|
||||||
RSLIBS = $(LIBS)
|
RSLIBS = $(LIBS)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue