5

I am trying to understand the behavior of Radio.cc (in inet/physicallayer/common/packetlevel/).

In particular I want to know how it can detect collisions.

I would expect something like:

if(radio==IDLE and newFrame arrives){
    radio = RECEIVING;
    startReception();
}
else
   if(radio==RECEIVING and newFrame arrives)
      impossible to receive --> COLLISION! --> stop()

But for what I have seen, if two frames arrive at the receiver at the same time, the reception of the first one is 'Reception started: ignored' and the second is passed to the MAC layer, which says 'contains bit errors or collision, dropping it' (IdealMac).

My question is, shouldn't the receiver block both frames (because it cannot receive two at the same time) or pass both of them to the upper MAC layer, which then reads them as erroneous frames?

Cœur
  • 32,421
  • 21
  • 173
  • 232
rebrid
  • 380
  • 6
  • 21

0 Answers0