1 / 19

Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility

Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility. Alan Shieh ,Andrew C.Myers ,Emin Gun Sirer Dept. of Computer Science ,Cornell University USENIX NSDI 2005. Outline . Introduction Stateless Transport Protocol About “Continuation”

jcurley
Download Presentation

Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh ,Andrew C.Myers ,Emin Gun Sirer Dept. of Computer Science ,Cornell University USENIX NSDI 2005

  2. Outline • Introduction • Stateless Transport Protocol • About “Continuation” • Abstraction of Trickle • Trickles’s congestion control • Server API • Client processing • Evaluation

  3. Introduction • A new network protocol stack which system state can be kept entirely on one side of a connection.

  4. Stateless Network Protocol • Continuation: • Transport continuation • For shipping Kernel-level state (TCP control block,TCB): • Packet number, RTT, ssthresh … • User continuation • For supportting stateless user-level server applications.

  5. Trickle abstraction • Packets are decomposed into disjoint trickles. • One packet is exactly a member of one trickle. • Each line pattern corresponds to a trickle.

  6. 3 actions when receiving a request packet : • Continuing • Trickles permits the srver application to send response. • Terminate • Trickles stops sending one response when packet loss. • Split • Trickles starts one new response to trigger a new trickle. • Using SACK.

  7. Congestion control of Trickles • Request number ‘k’ • Trickles associates each request packet arrived with a request number ‘ k ’. • new Cwnd = TCPCwnd (K) • Trickle updated when each packet ‘k’ received: • TrickleUpdate = TCPCwnd(k) – TCPCwnd(k-1) • Generate ‘ TrickleUpdate + 1 ‘ responses.

  8. Slow start and congestion avoidance

  9. Fast retransmit / recovery • First packet ‘k’ after losses, retransmitting the lost packets. • If cwndAtLoss – lossoffset < newCwnd • Continue the trickle. • For fast recovery : ssthresh = startCwnd = newCwnd firstLoss = number of first loss cwndAtLoss = TCPCwnd (firstloss-1) newCwnd = numInFlight / 2

  10. Retransmit timeout • ssthresh = TCPCwnd ( firstloss -1) / 2 • newCwnd = InitialCwnd

  11. Server API • an ‘event’ queue • Every response generated to client , a event passed to the application. • An event includes data of a request that needed for application. • Minisocket • Each minisocket is associated with one client. • Created and destroyed with one event. • For optimizations , minisockets caching is used.

  12. Client processing • A Trickles client stack implements a Berkeley sockets interface using Trickles transport protocol. • Input continuations: • To help server application to resume accepting client input. • Output continuations: • To help server application to resume generate output to the client.

  13. Evaluation • Trickles protocol stack is implemented in Linux 2.4.26. • Environment • Gigabit Ethernet • P4 1.7G • 512 Mb RAM • Intel e1000 gigabit NIC

  14. Throughput • Point to point topology, server 100 Mb/sec bottleneck link.

  15. Memory utilization

  16. CPU utilization

  17. Failover : disconnection occurs at t = 10.

  18. Conclusion • Stateless side has good performance with small memory usage. • Trickles’s scalability is good. • Transparent connection migration. • Trickles is backward compatible with TCP.

More Related