Here is a attempt to see if we can support end-to-end reassembly without the 
need to maintain routing state.  Let's first take the case of via lists.  
Instead of the via list containing the node ids of the intermediate nodes, if 
it is represented by a significantly smaller tag (say, a connection id) that 
only has relevance to the local node, we can drastically reduce the size of the 
via list.  For instance, something like 1-2bytes will be more than adequate to 
represent a connection id.  This would be a different form of a compressed via 
list.  This is also sufficient, since every node only needs to care about the 
first id on the destination list when it receives the message and that should 
correspond to its own tag on the corresponding via list.  

If we did the above, the growth of the via list should be insignificant (for 
normal routing with Olog(N) bounds).  If we then said that the source fragments 
the message, accommodating something in the order of 2 * log(N) bytes for via 
list growth, we should be able to expect it to work, barring issues due to 
varying MTUs.  It is also mainly an issue if the header itself grows to a size 
that requires fragmentation - however, this type of compressed via list should 
prevent that from happening.  

That said, we would deal with varying MTUs by using a mechanism analogous to 
IPv6 PMTU discovery (i.e., send an error to the source asking for further 
fragmentation). In this method, such multiple fragmentations should not be 
frequent anyway. 

Thoughts? 

Thanks,
Vidya

 
_______________________________________________
P2PSIP mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/p2psip

Reply via email to