Hi, there is also one concern bothering my mind since a while.
I think the protocol currently establishes routes between nodes, but optimizes them the wrong way around. More concrete, the originatorMessages (OGMs) initiated by each node install routing information for DOWN-link traffic in the mesh which are actually optimized for UP-link traffic.
The following scenario and attached figure (is of course a little bit constructed but it) may illustrate this. The figure shows 4 nodes (A,b,c,D) and 4 existing links between them A-b, b-D, A-c, and c-D - thus, two potential routes between node A and D. The links b-D and c-D are symmetric, perfect links with 0% packet loss. The links A-b and A-c are asymmetric links with 0% packet loss for A->b and A<-c, but 50% loss for A<-b and A->c (See attached figure). However, each of the 4 links can be assumed as a bidirectional link since at least every second OGM will reach the corresponding link neighbor. Now, node A would receive 100% of the OGMs initiated by D and rebroadcasted via node c but wouldreceive only 50% via node b. Therefore A would select c as its best nighbor towards D (obversely D would select b as its best neighbortowards A). However, in this case, that is not the best choice since every second packet send via A-c-D needs to be retransmitted on the link A-c, which would not be necessary if send via A-b-D .
Don't know if you agree, ...is that reasonable? Also I don't have any simple approach in mind to solve this but it might be worth to reconsider.
ciao, axel
Hi,
However, in this case, that is not the best choice since every second packet send via A-c-D needs to be retransmitted on the link A-c, which would not be necessary if send via A-b-D . Don't know if you agree, ...is that reasonable? Also I don't have any simple approach in mind to solve this but it might be worth to reconsider.
I think you made a good point but I even would go a step further. Consider this: A downloads a file from D thus using D-b-A (with 50% packet loss). But each packet has to be acknowledged and every second acknowledgement is also lost (via A-c-D) . That is why D will resend every second packet and the throughput will suffer even more.
I think we should find a solution here but up to now I don't have a clue how to do it.
Regards, Marek
b.a.t.m.a.n@lists.open-mesh.org