trickles :a stateless network stack for improved scalability, resilience, and flexibility alan...

19

Click here to load reader

Upload: gabriel-jenkins

Post on 19-Jan-2018

212 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 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

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

Alan Shieh ,Andrew C.Myers ,Emin Gun SirerDept. of Computer Science ,Cornell UniversityUSENIX NSDI 2005

Page 2: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

Outline

Introduction Stateless Transport Protocol

About “Continuation” Abstraction of Trickle Trickles’s congestion control

Server API Client processing Evaluation

Page 3: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

Introduction

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

Page 4: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

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.

Page 5: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

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

Page 6: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

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.

Page 7: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

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.

Page 8: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

Slow start and congestion avoidance

Page 9: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

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 losscwndAtLoss = TCPCwnd (firstloss-1)newCwnd = numInFlight / 2

Page 10: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell
Page 11: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

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

Page 12: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

Server API

an ‘event’ queue Every response generated to client , a event pass

ed to the application. An event includes data of a request that needed f

or application. Minisocket

Each minisocket is associated with one client. Created and destroyed with one event. For optimizations , minisockets caching is used.

Page 13: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

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.

Page 14: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

Evaluation

Trickles protocol stack is implemented in Linux 2.4.26.

Environment Gigabit Ethernet P4 1.7G 512 Mb RAM Intel e1000 gigabit NIC

Page 15: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

Throughput Point to point topology, server 100 Mb/sec bottleneck

link.

Page 16: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

Memory utilization

Page 17: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

CPU utilization

Page 18: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

Failover : disconnection occurs at t = 10.

Page 19: Trickles :A stateless network stack for improved Scalability, Resilience, and Flexibility Alan Shieh,Andrew C.Myers,Emin Gun Sirer Dept. of Computer Science,Cornell

Conclusion

Stateless side has good performance with small memory usage.

Trickles’s scalability is good. Transparent connection migration. Trickles is backward compatible with TCP.