breaking up the transport logjam
play

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


  1. 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

  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

  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?

  4. The Transport Layer is Stuck in an Evolutionary Logjam!

  5. The Problem Traditional transports confate 3 function areas ... Semantics, Reliability Concerns ( applications care) Transport Abstraction Performance Concerns Transport Congestion ( users, opers care) Protocol Control Endpoint Identification (port numbers) Naming, Routing Concerns ( NATs, firewalls care) T o break transport logjam, must separate concerns

  6. Our Proposal Break up the Transport according to these functions: Application Layer Application Layer Presentation Layer Presentation Layer Session Layer Session Layer Transport Layer Transport Layer Flow Regulation Layer Network Layer Endpoint Layer Data Link Layer Network Layer Physical Layer Data Link Layer Physical Layer

  7. Endpoint Layer

  8. Endpoint Identifcation via Ports Current transports have separate port spaces TCP DCCP Port Space Port Space UDP Port Space TCP Header DCCP Header UDP Header Source Dest Source Dest Source Dest Port Port Port Port Port Port Network Layer IP Header IP Address Space Source IP Address Dest IP Address

  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

  10. Proposed Solution Factor endpoint info into uniform Endpoint Layer Transport Header Transport Header Endpoint Layer Port Space Endpoint Header Source Dest Port Port Network Layer IP Header IP Address Space Source IP Address Dest IP Address

  11. Surprise! Workable starting point exists — UDP ! Transport Header Transport Header Endpoint Layer Port Space UDP Header Source Dest Port Port Network Layer IP Header IP Address Space Source IP Address Dest IP Address

  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 ...?

  13. Flow Layer

  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!

  15. Proposed Solution Factor fow regulation into underlying Flow Layer Transport Layer Transport Semantics , Reliability Flow Layer Flow Performance Regulation Endpoint Layer Endpoint Naming Network Layer

  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 ! Segment 1 Segment 2 Segment 3 Application WiFi LAN Satellite Internet Core Application Transport Transport Flow Flow Flow Flow Endpoint Endpoint Endpoint Endpoint Network Network Network Network Host A Flow Middlebox Flow Middlebox Host B

  17. Practical Benefts (2/3) Incrementally deploy performance enhancements — multihoming, multipath, dispersion, aggregation... … without affecting E2E transport semantics! end-to-end multipath Application Protocol Application Protocol Transport Protocol Transport Protocol Flow Protocol Flow Protocol Flow Protocol Flow Protocol Endpoint Protocol Endpoint Protocol Endpoint Protocol Endpoint Protocol Host A Flow Middlebox Flow Middlebox Host B per-segment multipath

  18. Practical Benefts (3/3) ● Can aggregate fows cleanly within domains for — Effcient traffc measurement, management — Fairness at “macro-fow” granularity Shared Access Network Application Protocol Application Protocol or Wide-Area Link Transport Protocol Transport Protocol Flow Protocol Flow Protocol Endpoint Protocol Endpoint Protocol Host A1 Host B1 Flow Protocol Flow Protocol Aggregate Endpoint Protocol Flow Endpoint Protocol Application Protocol Application Protocol Flow Middlebox Flow Middlebox Transport Protocol Transport Protocol Flow Protocol Flow Protocol Endpoint Protocol Endpoint Protocol Host A2 Host B2

  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

  20. Transport Layer

  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 — ...

  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

  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!

  24. Conclusion ● Transport evolution is stuck ● T o unstick, need to separate: — Endpoint naming/routing into separate Endpoint Layer — Flow regulation into separate Flow Layer ● Leave semantic abstractions in Transport Layer

  25. Complexity ● More layers => increase ● Puts necessary hacks into framework => decrease ● What's the balance?

  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

  27. Kernel/User Transport Interoperation Host A Host B Application User Application User User-space Transport Kernel-space Kernel Transport UDP Kernel Network Protocol Network Protocol

  28. Kernel/User Transport Interoperation Host A Host B User Application Application User User-space Transport Kernel-space Transport Kernel Endpoint Protocol Endpoint Protocol Kernel Network Protocol Network Protocol

  29. “Zero-RTT” Transport Negotiation Host A Host B Transport 1 SYN Transport 2 SYN Transport 3 SYN Transport Negotiation “Meta-SYN” B chooses Transport 2 Transport 2 SYN/ACK time time

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