"Fernando Gont" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> On Thu, 18 Dec 2003 08:20:00 GMT, "gary" <(E-Mail Removed)>
> wrote:
>
> >Collision is only one reason a frame might be received in error. Even if
> >RTS/CTS is in effect, a transmitted frame can be garbled by interference,
> >multipath echo, a wonky antenna at the receiving station, or a host of
other
> >problems.
>
> Sure, but.... isn't the ACK meant for the possible collisions, rather
> than for the other possible causes, etc.?
No, it's the one-and-only transmitter error detection mechanism. This goes
back to the Aloha network, the granddaddy of packet radio. On a shared wired
medium like Ethernet, a transmitter can detect collision fragments at the
MAC sublayer and abort transmission early by sending a jam signal. This
reduces the effect of collision on throughput, because you don't have to
wait for a whole frame to finish transmitting before you figure out that it
won't make it. With radio, you send a frame out there and you have no way of
knowing what happened to it unless somebody signals back that they got it.
Since in general a receiver can't know that a frame was headed its way,
there's no point in having a NACK protocol for partially-received frames
since it won't handle frames that are completely lost. The best solution is
a positive ACK scheme with a timeout on the transmitter, which is the only
station that reliably knows that the frame ever existed. As a result,
interference and collision have a much worse effect on wifi networks than on
classical Ethernet.
>
> I have not read the entire specification, but as the RTS/CTS/ACK are
> part of the *MAC* sublayer, I don't think it's meant to provide a
> *reliable* transfer. (i.e., reliability should be provided by the LLC
> sublayer).
It's not there for reliable transfer, it's there for transmitter error
detection, which is a primary responsibility of the MAC. Error detection at
the MAC sublayer can trigger LLC retransmit, even if the LLC is not using
its own ACK protocol.
>
>
> >Your scenario sounds like an ad-hoc network with stations communicating
> >directly. RTS/CTS is less effective in ad-hoc networks because, as you
note,
> >not all stations can "hear" each other (hidden node problem).
>
> Well, the RTS/CTS mechanism is supposed to help in that situatio: The
> sender sends an RTS, so that all hosts that can hear only the sender
> will know about the transmission, while the receiver sends a CTS, so
> that all hosts that can hear only the receiver know about the future
> transmission, too.
As you have pointed out, the receiver has to hear the sender in order to
respond with CTS. In an infrastructure network, RTS is always transmitted
*to the AP* and CTS is always transmitted *from the AP*. It's a star
topology, with the AP acting as hub. By definition, all stations in an
infrastructure net can talk to the AP, so the hidden node problem is
completely solved.
In an ad-hoc net, as you say, RTS/CTS may be less effective if there are
hidden nodes. It depends on the connectivity graph of the stations. Your
three-station scenario partitions the net into two overlapping cells - cell
1 contains stations A and B, cell 2 contains B and C. Within each cell, all
stations can talk to each other, but only B lives in both cells. A and C
don't see each other, so no tranmission ever takes place between them. All
traffic is between A or C and B. If B initiates an RTS/CTS conversation with
A, then C will not hear A's CTS (it hears B's RTS, but is required to ignore
it). In general, RTS/CTS has a failure mode for *any* ad-hoc network with a
hidden node.
Now generalize a bit - let cell 1 and cell 2 each contain an arbitrary
number of stations. B remains the only station that everybody can talk to,
but all stations in cell 1 can talk to each other, and ditto for cell 2. Now
suppose two stations in cell 1 start an RTS/CTS conversation, and neither
one is B. Then no station in cell 2 receives the CTS, and so RTS/CTS fails
if the stations in cell 1 generate enough power to interfere with
transmissions in cell 2. The network can be partitioned in arbitrarily
complex ways by hidden nodes.
>
>
>
> >RTS/CTS does
> >not kick in as a result of experiencing a collision, as your example
seems
> >to imply.
>
> My example tries to show that there are some scenarios where the
> RTS/CTS mechanism cannot avoid collisions.
>
> In a fairly simple scenario, such as:
>
> A ---- B ---- C
>
> where each node can hear only adjacent ones, the RTS/CTS mechanism
> does solve the "hidden node" problem. That's why I tried to figure out
> an scenario where "hidden nodes" can not be solved by just the RTS/CTS
> sequence.
See above for two examples.
>
> --
> Fernando Gont
> e-mail: (E-Mail Removed)
>
> [To send a personal reply, please remove the ANTISPAM tag]