home *** CD-ROM | disk | FTP | other *** search
/ ftp.ee.lbl.gov / 2014.05.ftp.ee.lbl.gov.tar / ftp.ee.lbl.gov / email / vanj.94mar14.txt < prev   
Internet Message Format  |  1995-11-10  |  4KB

  1. From van@ee.lbl.gov Mon Mar 14 07:46:23 1994
  2. Message-Id: <9403141543.AA02092@rx7.ee.lbl.gov>
  3. To: end2end-tf@isi.edu
  4. Cc: danzig@catarina.usc.edu
  5. Subject: problems with Arizona's vegas
  6. Date: Mon, 14 Mar 94 07:43:28 PST
  7. From: Van Jacobson <van@ee.lbl.gov>
  8. Status: OR
  9.  
  10. During the e2e meeting I tried to point out that there were a
  11. number of serious problems with Arizona's vegas TCP mods.
  12. Unfortunately I needed to draw a picture to illustrate what was
  13. going on & couldn't do that from 600 miles away.  Appended to
  14. this message is the picture.
  15.  
  16. Just to recap, I tried to explain that Arizona's mod to the Fast
  17. Retransmit algorithm was a very bad idea because (a) it couldn't
  18. possibly work if RTO was set correctly and (b) even if it worked,
  19. the gain would be negligible.  The effect of (a) is that the algorithm
  20. does nothing if the RTT/RTO estimate is correct but generates data
  21. very quickly if the estimate gets screwed up.  This is exactly the
  22. opposite of the behavior one wants in a large scale Internet.
  23.  
  24. To see why this is true, the attached postscript file shows the
  25. rough chronology of a packet loss.  (The scale is approximately
  26. right for the T1 NSFNet.  Keep the packet spacing the same and
  27. move the RTT marks out by a factor of 30 for the T3 NSFNet.)
  28. The thick dashed diagonal line at the top of the page is the
  29. packet that was lost & the thin dashed diagonal line marks where
  30. its ack would have come back.  There are a window's worth of
  31. packets in transit following the loss and some of them and their
  32. acks are shown.  Since a packet was lost, all the acks are
  33. duplicates.  Arizona claims that making retransmit fire on the
  34. first duplicate ack (labeled '1') instead of the third (labeled
  35. '3') will make a significant performance difference.  This is
  36. obviously silly:  The cost (in throughput) of the packet loss is
  37. proportional to the time it takes the sender to learn it has
  38. filled the hole in the receiver's sequence space which must be
  39. at least one RTT (roughly the time from 1RTT to 2RTT in the
  40. diagram).  If the RTT is R and a packet time is P, the reduction
  41. in recovery time (increase in throughput) could be at most
  42. (R+P)/(R+3P).  For the old T1 backbone, R is about 26 packet
  43. times so the theoretical maximum improvement is ~7% and, as we
  44. scale up to faster backbones, the expected improvement falls
  45. like the inverse square of the backbone bandwidth.
  46.  
  47. One might be tempted to implement Arizona's algorithm in the
  48. hope of getting some part of the 7% but a bit of inspection
  49. shows that would be a very antisocial thing to do:  Arizona
  50. decides to send if the retransmit timer has expired when the
  51. first dup ack arrives.  Notice that the first dup ack arrives
  52. essentially 1 RTT after the missing packet was sent so the only
  53. way the retransmit timer could have expired would be if RTO =
  54. RTT.  In other words, Arizona's algorithm sends whenever the
  55. retransmit timer is broken.
  56.  
  57. Since most of the TCP timing code was broken by vegas, it's
  58. worthwhile pointing out that whenever there are competing
  59. connections sharing a path, transient RTT fluctuations of twice
  60. the minimum are completely normal (they just represent other
  61. connections starting or restarting after a loss) so it is never
  62. reasonable for RTO to be less than 2*RTT.  Notice from the
  63. picture that the last possible dup ack arrives just before 2*RTT
  64. so there is no variation of Arizona's algorithm that would work
  65. with a correctly set timer.  In passing, it should be noted that
  66. the 2*RTT minimum for RTO is necessary but not sufficient -- If
  67. your path is `short' but you share a bottleneck with someone
  68. whose path is `long', you can see transient fluctuations in RTT
  69. of roughly his path length.  As I tried to say during the
  70. meeting, this means that conservative (i.e., scalable)
  71. engineering should guarantee that RTO is never less than
  72. 100-200ms.  This is basically what BSD does but is something
  73. else that Arizona broke.
  74.  
  75.  - Van
  76.