Download presentation
Presentation is loading. Please wait.
Published byGabriel Jenkins Modified over 8 years ago
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
11
Retransmit timeout ssthresh = TCPCwnd ( firstloss -1) / 2 newCwnd = InitialCwnd
12
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.
13
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.
14
Evaluation Trickles protocol stack is implemented in Linux 2.4.26. Environment Gigabit Ethernet P4 1.7G 512 Mb RAM Intel e1000 gigabit NIC
15
Throughput Point to point topology, server 100 Mb/sec bottleneck link.
16
Memory utilization
17
CPU utilization
18
Failover : disconnection occurs at t = 10.
19
Conclusion Stateless side has good performance with small memory usage. Trickles’s scalability is good. Transparent connection migration. Trickles is backward compatible with TCP.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.