Breaking Up the Transport Logjam Bryan Ford Janardhan Iyengar Max - - PowerPoint PPT Presentation

breaking up the transport logjam
SMART_READER_LITE
LIVE PREVIEW

Breaking Up the Transport Logjam Bryan Ford Janardhan Iyengar Max - - PowerPoint PPT Presentation

Breaking Up the Transport Logjam Bryan Ford Janardhan Iyengar Max Planck Institute Franklin & Marshall for Software Systems College baford@mpi-sws.org jiyengar@fandm.edu HotNets-VII, October 6-7, 2008 Evolutionary Pressures on


slide-1
SLIDE 1

Breaking Up the Transport Logjam

Bryan Ford

Max Planck Institute for Software Systems

baford@mpi-sws.org

Janardhan Iyengar

Franklin & Marshall College

jiyengar@fandm.edu

HotNets-VII, October 6-7, 2008

slide-2
SLIDE 2

Evolutionary Pressures on Transports

  • Applications need more fexible abstractions

— better datagrams [DCCP], streams [SCTP, Ford07]

  • Networks need new congestion control schemes

— high-speed [Floyd03], wireless links [Lochert07], ...

  • Users need better use of available bandwidth

— dispersion [Gustafsson97], multihoming [SCTP],

logistics [Swany05], concurrent multipath [Iyengar06]…

  • Operators need administrative control

— Performance Enhancing Proxies [RFC3135],

NATs and Firewalls [RFC3022], traffc shapers

  • We have partial solutions, but no deployment
slide-3
SLIDE 3

Many solutions, None deployable

  • New transports undeployable

— NATs & frewalls — which comes frst: App-demand or OS kernel support?

  • New congestion control schemes undeployable

— impassable “TCP-friendliness” barrier — must work end-to-end, on all network types in path

  • Multipath/multifow enhancements undeployable

— “You want how many fows? Not on my network!” — TCP-unfriendly?

slide-4
SLIDE 4

The Transport Layer is Stuck in an Evolutionary Logjam!

slide-5
SLIDE 5

The Problem

Traditional transports confate 3 function areas... T

  • break transport logjam, must separate concerns

Transport Protocol

Endpoint Identification (port numbers) Transport Abstraction Congestion Control Semantics, Reliability Concerns (applications care) Performance Concerns (users, opers care) Naming, Routing Concerns (NATs, firewalls care)

slide-6
SLIDE 6

Our Proposal

Physical Layer Data Link Layer Network Layer Session Layer Application Layer Presentation Layer Physical Layer Data Link Layer Network Layer Session Layer Application Layer Presentation Layer Endpoint Layer Flow Regulation Layer Transport Layer Transport Layer

Break up the Transport according to these functions:

slide-7
SLIDE 7

Endpoint Layer

slide-8
SLIDE 8

TCP Header UDP Header DCCP Header

Endpoint Identifcation via Ports

Current transports have separate port spaces

IP Header

Source Port Dest Port Source Port Dest Port Source Port Dest Port Source IP Address Dest IP Address

TCP Port Space UDP Port Space DCCP Port Space Network Layer IP Address Space

slide-9
SLIDE 9

But What Are Ports?

  • Ports are really routing info!

— IP address ⇒ Inter-Host Routing — port numbers ⇒ Intra-Host Routing

  • … should have been part of Network Layer?
  • NATs/Firewalls treat ports as routing info!

— Care about application endpoints, not just hosts — Therefore, must understand transport headers

  • Result: Only TCP, UDP can get through
slide-10
SLIDE 10

Proposed Solution

Factor endpoint info into uniform Endpoint Layer

Transport Header Transport Header IP Header

Source IP Address Dest IP Address

Endpoint Layer Port Space Network Layer IP Address Space Endpoint Header

Source Port Dest Port

slide-11
SLIDE 11

Surprise!

Workable starting point exists — UDP!

Transport Header Transport Header IP Header

Source IP Address Dest IP Address

Endpoint Layer Port Space Network Layer IP Address Space UDP Header

Source Port Dest Port

slide-12
SLIDE 12

Practical Benefts

Can now evolve separately:

  • Transport functions:

— New transports get through NATs, frewalls — Easily deploy new user-space transports,

interoperable with kernel transports

— Application controls negotiation among transports

  • Endpoint functions:

— Better cooperation with NATs [UPnP, NAT

  • PMP, ...]

— identity/locator split, port/service names [Touch06],

security and authentication info ...?

slide-13
SLIDE 13

Flow Layer

slide-14
SLIDE 14

Traditional “Flow Regulation”

Transport includes end-to-end congestion control

— to regulate fow transmission rate

But one E2E path may cross many...

— … different network technologies

  • Wired LAN, WAN, WiFi, Cellular, AdHoc, Satellite, …
  • Each needs different, specialized CC algorithms!

— … different administrative domains

  • Each cares about CC algorithm in use!
slide-15
SLIDE 15

Proposed Solution

Factor fow regulation into underlying Flow Layer

Transport Layer Network Layer Endpoint Layer Flow Layer

Transport Semantics, Reliability Flow Performance Regulation Endpoint Naming

slide-16
SLIDE 16

Practical Benefts (1/3)

Can split E2E fow into separate CC segments

— Specialize CC algorithm to network technology — Specialize CC algorithm within admin domain

… without interfering with E2E transport semantics!

Endpoint Flow

Host A Host B

Network Transport Application Endpoint Flow Network Transport Application Endpoint Flow Network Endpoint Flow Network

Flow Middlebox Flow Middlebox Segment 2 Satellite Segment 1 WiFi LAN Segment 3 Internet Core

slide-17
SLIDE 17

Practical Benefts (2/3)

Incrementally deploy performance enhancements

— multihoming, multipath, dispersion, aggregation...

… without affecting E2E transport semantics!

Endpoint Protocol

Host A Host B

Transport Protocol Application Protocol Endpoint Protocol Transport Protocol Application Protocol Endpoint Protocol

Flow Middlebox

end-to-end multipath

Endpoint Protocol Flow Protocol Flow Protocol Flow Protocol Flow Protocol

per-segment multipath

Flow Middlebox

slide-18
SLIDE 18

Practical Benefts (3/3)

Endpoint Protocol

Host A2

Transport Protocol Application Protocol Endpoint Protocol

Flow Middlebox

Endpoint Protocol Flow Protocol Flow Protocol Flow Protocol

Flow Middlebox

Endpoint Protocol

Host A1

Transport Protocol Application Protocol Flow Protocol Endpoint Protocol

Host B2

Transport Protocol Application Protocol Flow Protocol Endpoint Protocol

Host B1

Transport Protocol Application Protocol Flow Protocol

Aggregate Flow

Shared Access Network

  • r Wide-Area Link
  • Can aggregate fows cleanly within domains for

— Effcient traffc measurement, management — Fairness at “macro-fow” granularity

slide-19
SLIDE 19

Developing the Flow Layer

  • T

wo likely “starting points” already exist:

— Congestion Manager [Balakrishnan99] — DCCP [Kohler06]

(just stop thinking of it as a “transport”)

  • Major work areas:

— Support for fow middleboxes, path segmenting — Interfaces between (new) higher & lower layers

slide-20
SLIDE 20

Transport Layer

slide-21
SLIDE 21

Transport Layer

Contains “what's left”:

  • Semantic abstractions that apps care about

— Datagrams, streams, multi-streams, …

  • Reliability mechanisms

— “Hard” acknowledgment, retransmission

  • App-driven buffer/performance control

— Receiver-directed fow control — Stream prioritization — ...

slide-22
SLIDE 22

Breaking Up the Transport Logjam

  • New transports undeployable

— Can traverse NATs & frewalls — Can deploy in kernels or applications

  • New congestion control schemes undeployable

— Can specialize to different network types — Can deploy/manage within administrative domains

  • Multipath/multifow enhancements undeployable

— Can deploy/manage within administrative domains

slide-23
SLIDE 23

Only the Beginning...

Promising architecture (we think), but lots of details to work out

— Functionality within each layer — Interfaces between each layer — Application-visible API changes

Big, open-ended design space

— We are starting to explore, but

would love to collaborate with others!

— If you know of spaces where you could use this

framework, we'd love to know!

slide-24
SLIDE 24

Conclusion

  • Transport evolution is stuck
  • T
  • unstick, need to separate:

— Endpoint naming/routing into separate Endpoint Layer — Flow regulation into separate Flow Layer

  • Leave semantic abstractions in Transport Layer
slide-25
SLIDE 25

Complexity

  • More layers

=> increase

  • Puts necessary hacks into framework

=> decrease

  • What's the balance?
slide-26
SLIDE 26

What about the e2e principle?

  • Flow layer implements in-network mechanisms that

focus on communication performance

— Precisely the role for which the e2e principle

justifes in-network mechanisms

  • All state in the fow middleboxes is performance-

related soft state

  • Transport layer retains state related to reliability

— End-to-end fate-sharing is thus preserved

  • Transport layer is still the frst end-to-end layer
slide-27
SLIDE 27

Kernel/User Transport Interoperation

Network Protocol Kernel-space Transport Application Network Protocol User-space Transport UDP Application Kernel User Kernel User

Host A Host B

slide-28
SLIDE 28

Kernel/User Transport Interoperation

Network Protocol Kernel-space Transport Application Network Protocol User-space Transport Application Kernel User Kernel User Endpoint Protocol Endpoint Protocol

Host A Host B

slide-29
SLIDE 29

“Zero-RTT” Transport Negotiation

Host A

Transport Negotiation “Meta-SYN” Transport 1 SYN Transport 2 SYN Transport 3 SYN Transport 2 SYN/ACK

Host B

time time

B chooses Transport 2