Trying to understand example from computer networks: a systems approach ...

-Host A sends Host B a frame at time t;

  • Packet arrives at B at time t + d; (d = one link latency)
  • Instant before frame arrives at B, B sends out its own frame which collides with the original frame.
  • B detects collision and sends out runt frame which reaches A at t + 2d;
  • A must continue until t + 2d in order to detect collision. A transmits for 2d to be sure it detects all possible collisions
    My question: I thought since CSMA/CD this meant all hosts were listening for collision so why would A have to keep on transmitting? I'm thinking so far that maybe B sends out runt frame to all hosts and when they collide closer to transmitting hosts (eg.A) those hosts send out their own runt frames (ie backoff happens post runt frame sending)
  • It takes time for a signal that was sent to reach every host on the wire. A sending host is not aware of a collision until it hears another signal. A jamming signal is sent, and it must continue until it has reached every host on the wire. – Ron Maupin Feb 19 at 17:32

You need to take into account that signals in the network move at finite speed.

When the colliding parties are spaced apart, the later sender will detect the collision earlier than the other. The transmission period needs to be long enough so that the earlier sender reliably detects the collision as well. The jamming signal is designed to enable easy collision detection.

Note that early CSMA/CD networks used coaxial cable with a shared wire that did not allow instantaneous collision detection.

Of course, CSMA/CD is all but obsolete and modern networks are completely collision-free.

| improve this answer | |
  • Collision near B -> b sends jamming signal -> if A no longer asserting signal on cable then A just receives jamming signal as per usual. So if I have it correctly, the whole purpose of the jamming signal is to induce another collision closer to A (in which case A should still be transmitting) so that A detects collision. A then sends back another runt frame which B, being in exp backoff, would just receive normally as do nothing. If I have this right then does this mean that collisions have to occur locally near each host's transmitter (like what if collision occurred exactly in the middle?) – spacecadetmatt Feb 19 at 20:29
  • 1
    Essentially, a collision needs to be extended enough so that all stations can detect it. There's not another runt frame being sent - the runt frames are the result of the collision. – Zac67 Feb 19 at 20:34
  • okay, one more clarification: A ------->X<---------B-----------------C . So collision at x creates jamming signal which reaches both A and B who are still sending data thus detect collision. B sends out runt frame on C end to notify C of collision to left of B and A sends out runt frame to B end (which has no effect because line is now idle on that end as B is in exp backoff) – spacecadetmatt Feb 19 at 21:29
  • The collision isn't limited to a single spot in the cable. A collision happens when it is sensed (think about quantum theory) that multiple signals interfere with each other (on an electrical bus) or when a sender is detected on a supposedly listening port (with twisted pair or fiber). In your example, A takes 7 dashes to detect the collision, B 9 dashes, and C 26 dashes. – Zac67 Feb 19 at 21:49
  • okay I understand, so say A took 7 dashes, B took 7 dashes and C 26, then in theory lets say that signals interfered at position X. When the resulting signal reaches A and B (both 7 dashes) at this point they detect collisions (b/c they are both sending data). Both A and B forward runt frames on all connected segments to notify other potential hosts of collision. A-B segment runt frames have no effect b/c A and B in backoff but C get notified and waits for line idle – spacecadetmatt Feb 19 at 22:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.