On May 6, 2008, at 8:37 AM, [EMAIL PROTECTED] wrote: > Hi om_p, > Thank you for your reply! > I have an ideal to improve the ack mechanism to avoid duplicate > reception. > As you know, the CTP protocol will build up a routing tree, so > during a certain period, we can suppose that the tree is stable. In > other words, we can suppose that the path from the sender to the > receiver(the root) is stable. If it is OK, we can do this: > Firstly, forwarding node on the routing path can record the > packet from the sender. When the forwarding node receive the > packet, it send ack to the last hop, and when forward the packet it > can as well record whether the packet is acked form the next hop. > If it's acked ,we can drop from the packet queue of the forwarding > node, while not, we record it then forward after a short period. > For example, we have a simple routing path, C-->B-->A,and A > node is the root, C the sender and B is the forwarding node. When C > send packet p1 to A, if B receive p1,then B send ack to C, then B > forward p1 to A. Although, we suppose, the ack from B to C is > lost,the root node A would not receive duplicate p1.Because when B > receive a duplicate from C, B can drop it. > This is just my ideal. But I have some question: > 1,I don't know whether somebody else have done it. > 2,Whether tinyOS support any-to-any ack,like ack from B to A > 2,Whether it's worthy to implement it, or is it useful to > improve the network and save energy? > > regards. > --quan
CTP already does this. There are calls in the Receive handler and the send path to check if the same message was recently sent (SentCache) or if there is a duplicate already in the queue. The root does not do these checks (it never sends, so packets do not go into the SentCache, and its queue is almost always empty), so it does not suppress duplicates over the serial link. Phil _______________________________________________ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help