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