[comp.dcom.lans] CSMA/CD algorithm/code needed

pat@hprnd.HP.COM (Pat Thaler) (06/27/90)

> cattanac@clitus.cs.uiuc.edu (Scott Cattanach) writes:
> 
> >Does onyone out there in net.land know where I can find a detailed
> >description of the ethernet CSMA/CD algorithm?
> 
> I forgot to be clearer, I am really looking for the way to determine
> how long to wait to retrans after a collision.
> 
Try ISO 8802-3 (IEEE 802.3).  The information you want is in section 4.

If you wish to order it, you can get it from IEEE by phoning
  1-800-678-IEEE
or by writing to the IEEE Service Center
  445 Hoes Land, PO Box 1331
  Piscataway, NJ 08855

In the IEEE Standards Catalog, there is an ad for Global Engineering
Documents which says they can give 24 hour delivery.  I have never
used this source, but if you need it quickly, it might be the way to
go.  Their number is 1-800-854-7179.

Pat Thaler

pat@hprnd.HP.COM (Pat Thaler) (06/28/90)

> 
> For a precise description of the CSMA/CD algorithm of Ethernet, read either
> the Ethernet spec, V2.0 (available from Digital, order number AA-K759B-TK)
> or the IEEE 802.3 standard (ISBN 0-471-82749-5).
> 
For a truely precise description you need to read the 802.3 specification.
An optional improvement to the deferral algorithm was added to 802.3 and
I don't know that it was ever added to the Ethernet spec.  Most controllers
which I know of implement the option.  The option prevents some lost
packets and CRC errors and does not affect interoperability.

For someone who is doing a simulation or trying to get a general understanding
of the 802.3/Ethernet access method, this difference is probably not
significant.  Someone doing a design would need to know about it.  

Pat Thaler

rup@guug.guug.de (07/04/90)

In article <1990Jun25.190243.13144@brutus.cs.uiuc.edu> cattanac@casca.cs.uiuc.edu (Scott Cattanach) writes:
>cattanac@clitus.cs.uiuc.edu (Scott Cattanach) writes:
>
>
>I forgot to be clearer, I am really looking for the way to determine
>how long to wait to retrans after a collision.

IEEE 802.3 states: 

Collision Backoff and Retransmission

When a transmission attempt has terminated due to a collision, it is
retried by the transmitting CSMA/CD MAC sublayer until either it is 
successful or a maximum number of attempts (attemptLimit) have been made
and all have terminated due to collisions. Note that all attempts to 
transmit a given frame are completed before any subsequent outgoing frames
are transmitted. The scheduling of the retransmission is determined by a
controlled randomization process called "truncated binary exponential backoff".
At the end of enforcing a collision (jamming), the CSMA/CD sublayer delays
before attempting to retransmit the frame. The delay is an integer multiple
of slotTime. The number of slot times to delay before the nth retransmission
attempt is chosen as a uniformly distributed random integer r in the range

0 <= r < 2**k

where

k= min (n, 10)

If all attemptLimit attempts fail, this event is reported as an error.
Algorithms used to generate the integer r should be designed to
minimize the correlation between the numbers generated by any two stations 
at any given time. Note that the values given above define the most
aggressive behavior that a station may exhibit in attempting to retransmit
after a collision. In the course of implementing the retransmission scheduling
procedure, a station may introduce extra delays which will degrade its own
throughput, but in no case may a station's retransmission scheduling result
in a lower average delay between retransmission attempts than the procedure 
defined above.

(Quoted from IEEE 802.3)
Parameters:

slotTime		512 bit times
attemptLimit		16
backoffLimit		10
...

If you want to have the algorithms in pseudo-code purchase the IEEE 802.3 specs.

Rup Grafendorfer
BICC Data Networks