tweaking tcp s timers
play

Tweaking TCPs Timers Kieran Mansley Laboratory for Communication - PowerPoint PPT Presentation

Tweaking TCPs Timers Kieran Mansley Laboratory for Communication Engineering Context Researching user-level TCP for my PhD. Focusing on how to implement it efficiently at user level, particularly in a server room. Timers are a


  1. Tweaking TCP’s Timers Kieran Mansley Laboratory for Communication Engineering

  2. Context • Researching user-level TCP for my PhD. • Focusing on how to implement it efficiently at user level, particularly in a server room. • Timers are a small but interesting part of that.

  3. Historical Context • TCP was first specified in the early 1980s • OS support for time was poor and costly • Networks were slower, so time intervals longer. • Portability very important, all leads to... TCP has weak requirements of the OS

  4. What are TCP Timers? • Not measuring time (usually). • Enable an action to be performed later. • Mostly used to deal with inactivity: • Timer set when activity is expected • Timer cancelled when activity occurs • If timer expires, recovery action is executed.

  5. Delayed Acknowledgments • TCP sends acks for reliability and flow control. • Can either be a separate packet or piggyback on a data packet. • Acks are delayed to encourage piggybacking. • Timer used to ensure delay is limited.

  6. Delayed Ack Illustration

  7. Timer Ticks Illustrated

  8. Timer Techniques • How to implement timers? • Trad. scheme based on 100ms clock ticks • Maintain flags in per-connection state. • Each tick, check list of connections for timers. • Modern scheme based on hashed hierarchical timing wheel. • Ordered list of timers, use hardware clock to trigger the check and schedule operation.

  9. Problems • Inaccurate delay of acks: from 0ms to 200ms • List of connections must be searched each clock tick. • A busy connection will still regularly send separate ack packets.

  10. Potential Solution (i) • Change profile of delay:

  11. Potential Solution (ii) • Use two timer buckets to achieve delay limits: Target Bucket A Target Bucket B x x+100 x+200 x+300 x+400 time (ms) Min Max Empty Bucket A x x+100 x+200 x+300 x+400 time (ms) Empty Bucket B

  12. Potential Solution (iii) • Implementation of buckets: • Lazy switch avoids need for scheduling. • Timer execution when blocking op encountered. • Data thread used for active connections. • Time checking done using “rtdsc” counter.

  13. Potential Solution (iv) • Handle timers for active connections from the data thread. • Removes need for locking, other than for handing connections between threads. • No list searching, but... • Increased set/clear timer complexity.

  14. CPU Usage Tradeoff 10 CPU to iterate list (%) measured inline 0.0000754x + 0.0001191 CPU to iterate list (%) measured with ’time’ 0.0000692x + 0.001060 CPU for bucket scheme (%) 1 0.1 CPU usage (%) 0.01 0.001 0.0001 10 100 1000 10000 100000 Connection list size

  15. Summary • Timers at user level can benefit from a different solution. • Change the way timers are implemented to: • Give guaranteed lower, reduced upper bound; • Avoid locking by checking timers in data thread. • Minor performance issue for current TCPs • May be more important in future.

  16. Questions/Comments? Kieran Mansley kjm25@cam.ac.uk http://www-lce.eng.cam.ac.uk/~kjm25 Available as technical report CUED/F-INFENG/TR.487

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend