[Tinyos-help] Can the synchronous ackowledgement of AM layer solve the hidden terminal problem?

PolyUComp csqjxiao at comp.polyu.edu.hk
Tue Nov 4 19:53:05 PST 2008


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://www.millennium.berkeley.edu/pipermail/tinyos-help/attachments/20081105/7cb64a4f/attachment.htm 


More information about the Tinyos-help mailing list