It has been documented that with synchronous ackowledgement, if the receiver 
gets a packet with no CRC error and addressed for the receiver or the broadcast 
address, then the receiver will transmit a short bit pattern indicating 
acknowledgment. 

My question is what happens when the receiver receives the packet with the 
presence interferences from a hidden terminal,  with such a mechanism? In my 
opinion, the receiver will not recognize the incoming packet well and refrain 
from sending the acknowledgement. Hence, the sender knows its failure of its 
message sending and the presence of a hidden terminal.

AMSendMsg.sendDone (TOS_MsgPtr msg, result_t result) {
   if (result == SUCCESS && msg->ack == 1)
      dbg(DBG_USR2, "successful message delivery detected by synchoronous 
acknowledgement!\n");
  else
      dbg(DBG_USR2, "failed message delivery detected by synchoronous 
acknowledgement!\n");
}

Does it means the synchronous ackowledgement can address the hidden terminal 
problem? 

My second question is that is this mechanism really applicable to broadcast? 
What if all the receivers of a broadcast packet sends their own 
acknowledgement? Will a collission happens therefore? What's the real semantics 
of the acknowledgement bit msg->ack to the sender, when sending a broadcast 
packet? Does it means at least one receiver sent out its acknowledgement?

thank your for your help.

shawn
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to