Reducing Latency in Tor Circuits with Unordered Delivery Michael F. Nowlan, David Wolinsky, and Bryan Ford Yale University Dedis Lab.

Slides:



Advertisements
Similar presentations
MCT620 – Distributed Systems
Advertisements

Computer Networks TCP/IP Protocol Suite.
Martin Suchara, Ryan Witt, Bartek Wydrowski California Institute of Technology Pasadena, U.S.A. TCP MaxNet Implementation and Experiments on the WAN in.
Reconsidering Reliable Transport Protocol in Heterogeneous Wireless Networks Wang Yang Tsinghua University 1.
Improvement of TCP Packet Reassembly in Libnids
TCP Sliding Windows, Flow Control, and Congestion Control Lecture material taken from Computer Networks A Systems Approach, Fourth Ed.,Peterson and Davie,
Floating Cloud Tiered Internet Architecture Current: Rochester Institute of Technology, Rensselaer Polytechnic Institute, University of Nevada, Reno Level.
Streaming Video over the Internet
TCP-FCW – transport protocol for real-time transmissions on high-loss networks Sergei Kozlov,
Top-Down Network Design Chapter Thirteen Optimizing Your Network Design Copyright 2010 Cisco Press & Priscilla Oppenheimer.
SCTP Tutorial Randall Stewart
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
CS 471/571 Transport Layer 5 Slides from Kurose and Ross.
Winter 2008CS244a Handout #61 CS244a: An Introduction to Computer Networks Handout 6: The Transport Layer, Transmission Control Protocol (TCP), and User.
1 Chapter 3 TCP and IP. Chapter 3 TCP and IP 2 Introduction Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) User Datagram Protocol.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
Copyright 1999, S.D. Personick. All Rights Reserved. Telecommunications Networking II Lecture 32 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
Options or payload? Costin Raiciu UCL IETF 78, Maastricht.
Transport Layer Services –Reliable Delivery –or Not! Protocols –Internet: TCP, UDP –ISO: TP0 thru TP4.
Introduction to Transport Layer. Transport Layer: Motivation A B R1 R2 r Recall that NL is responsible for forwarding a packet from one HOST to another.
William Stallings Data and Computer Communications 7 th Edition (Selected slides used for lectures at Bina Nusantara University) Transport Layer.
UDP© Dr. Ayman Abdel-Hamid, CS4254 Spring CS4254 Computer Network Architecture and Programming Dr. Ayman A. Abdel-Hamid Computer Science Department.
IP-UDP-RTP Computer Networking (In Chap 3, 4, 7) 건국대학교 인터넷미디어공학부 임 창 훈.
Gursharan Singh Tatla Transport Layer 16-May
Toward Understanding Congestion in Tor DC-area Anonymity, Privacy, and Security Seminar January 24 th, 2014 Rob Jansen U.S. Naval Research Laboratory *Joint.
Ensuring the Reliability of Data Delivery © 2004 Cisco Systems, Inc. All rights reserved. Understanding How UDP and TCP Work INTRO v2.0—6-1.
CECS 474 Computer Network Interoperability Notes for Douglas E. Comer, Computer Networks and Internets (5 th Edition) Tracy Bradley Maples, Ph.D. Computer.
Examining TCP/IP.
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 All.
Never Been KIST: Tor’s Congestion Management Blossoms with Kernel- Informed Socket Transport 23 rd USENIX Security Symposium August 20 th 2014 Rob JansenUS.
B 李奕德.  Abstract  Intro  ECN in DCTCP  TDCTCP  Performance evaluation  conclusion.
University of the Western Cape Chapter 12: The Transport Layer.
ECE453 – Introduction to Computer Networks Lecture 14 – Transport Layer (I)
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 26.
David Wetherall Professor of Computer Science & Engineering Introduction to Computer Networks Transport Layer Overview (§ )
Fall 2005 By: H. Veisi Computer networks course Olum-fonoon Babol Chapter 6 The Transport Layer.
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
1 Transport Layer Lecture 7 Imran Ahmed University of Management & Technology.
Chapter 15 – Part 2 Networks The Internal Operating System The Architecture of Computer Hardware and Systems Software: An Information Technology Approach.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 3 v3.0 Module 4 Switching Concepts.
HighSpeed TCP for High Bandwidth-Delay Product Networks Raj Kettimuthu.
Institute of Technology Sligo - Dept of Computing Chapter 12 The Transport Layer.
Chapter 24 Transport Control Protocol (TCP) Layer 4 protocol Responsible for reliable end-to-end transmission Provides illusion of reliable network to.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
1 Transport Layer: Basics Outline Intro to transport UDP Congestion control basics.
79 Sidevõrgud IRT 4060/ IRT 0020 vooruloeng 8 / 3. nov 2004 Vooülekanne Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
Lect1..ppt - 01/06/05 CDA 6505 Network Architecture and Client/Server Computing Lecture 3 TCP and IP by Zornitza Genova Prodanoff.
Chapter 3 TCP and IP 1 Chapter 3 TCP and IP. Chapter 3 TCP and IP 2 Introduction Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Internet.
CSEN 404 Transport Layer I Amr El Mougy Lamia Al Badrawy.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
UDP: User Datagram Protocol. What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host – treats a computer as an.
Introduction to Networks
Chapter 11 User Datagram Protocol
LESSON Networking Fundamentals Understand TCP/IP.
Chapter 3 TCP and IP Chapter 3 TCP and IP.
Quick UDP Internet Connections
5. End-to-end protocols (part 1)
Transport Layer.
Network Architecture Introductory material
Encapsulation/Decapsulation
Introduction to Networks
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Review of Important Networking Concepts
Falling Back! … and: a Functional Decomposition of Post-Sockets
CS4470 Computer Networking Protocols
Introduction to Computer Networks
TCP flow and congestion control
Chapter 3 Transport Layer
Presentation transcript:

Reducing Latency in Tor Circuits with Unordered Delivery Michael F. Nowlan, David Wolinsky, and Bryan Ford Yale University Dedis Lab

Tor – The Onion Router Bob Server 00 Server 10 Server 20 Server 01 Server 11 Server 21 Server 02 Server 12 Server 22 Anonymizing Relays

Tor – The Onion Router Bob Server 00 Server 10 Server 20 Server 01 Server 11 Server 21 Server 02 Server 12 Server 22 Anonymizing Relays Alice Carol

TCP TLS Bob Performance Problems Traffic between two relays streams across 1 TCP Conn CarolAlice Tor Data

Bob Performance Problems Traffic between two relays streams across 1 TCP Conn Cross circuit Head-of-line blocking CarolAlice Incoming queue head Missing Segment Inaccessible data

Performance Problems Traffic between two relays streams across 1 TCP Conn Cross circuit Head-of-line blocking TCP Buffers can create delays CarolAliceBobCarolAlice Bob Outgoing queue head x

Outline Introduction to Tor Tor / TCP Bottlenecks Design Space Tool #1: uTCP Tool #2: uTLS Eliminating Head-of-Line Blocking in Tor Conclusions

Our Goals Improve Tor QoS for low latency, low bandwidth Eliminate head-of-line blocking Improve latency for low latency, low bandwidth Apps Use existing transport (TCP/TLS) Minimal modifications to Tor Interoperability with existing Tor deployments

Design Space Different transports DTLS/TCP over UDP, PCTCP, UDP Tradeoff between user-space networking stack or add reliability layer IPSec not universally configurable One connection per-circuit OS limitations Potential performance hit No shared congestion state One connection per-priority Torchestra May leak information about the flows Doubles active sockets, no shared congestion state

Outline Introduction to Tor Tor / TCP Bottlenecks Design Space Tool #1: uTCP Tool #2: uTLS Eliminating Head-of-Line Blocking in Tor Conclusions

Unordered TCP (uTCP) Small kernel modification and module Less than 600 lines of code Supported on Linux Kernel 2.6 and 3 Recent IETF activity by Apple Out-of-order reads Priority sending Disable congestion control

uTCP Out-of-Order Reads

Carol uTCP Priority Sending Give low latency, low bandwidth circuits preference Initiate by a setsockopt User prepends priority to each packet Inserted into send buffer ahead of lower priority data Optional squash to erase data from the buffer CarolAliceBob Outgoing queue head 0001Alice Carol

uTCP Disable Congestion Control Initiated with a setsockopt Null TCP congestion control kernel module Always sets congestion window to maximum size

uTCP Out-of-order reads Priority sending Disable congestion control Remaining issues: Tor uses TLS! Need a framing mechanism for out-of-order msgs! TLS provides framing…

Outline Introduction to Tor Tor / TCP Bottlenecks Design Space Tool #1: uTCP Tool #2: uTLS Eliminating Head-of-Line Blocking in Tor Conclusions

Record Processing TLS Header Application data – 0x17 TLSv1.2 – 0x0303 Length – Up to 16 KB Data length check MAC check Decryption Deliver TypeVersionLength Data MAC Record number

uTLS Identifying records Search for header: Verify sufficient bytes for size Perform a MAC check – Must guess record number Try a sequence Rollback state when processing out of order Fail otherwise Requires explicit IV an then decrypt and deliver CarolAliceBobCarolAliceBob 0x170x0303<= 2^16 TypeVersionSize

Outline Introduction to Tor Tor / TCP Bottlenecks Design Space Tool #1: uTCP Tool #2: uTLS Eliminating Head-of-Line Blocking in Tor Conclusions

From Tor to Unordered Tor Apply uTCP and uTLS to Tor to make it support unordered delivery – uTor Tor has multiple circuits sharing a single TCP stream Each circuit passes datagrams or cells Each circuit has independent state

Record Payload uTor – Cell Processing One cell per record Each cell specifies its circuit Can we process cells out of order? Assume no, for now Process cells in order Add sequence number to cells Header size goes from 5 to 7 bytes Payload remains the same ToruTorDelta LoC (0.0001%) Payload VersionCircuitID

Deployment Challenges uTCP / uTLS adoption Not found in main stream kernels Currently only truly beneficial for ORs Virtualization? uTor adoption uTor must negotiate to use 2 byte cell ID Compatible with existing Tor deployments

Preliminary Evaluation of uTor Tor configuration 3 Relays 3 Directory Authorities A single proxy OP takes the same path through the 3 relays Version alpha-dev (git-7c670895b02ba731) Normally distributed, 50 ms latency 0 and 5% loss Experiment Requests to 40 popular sites on the Internet Data sizes 10 KB to 400 KB Lossy-link

Preliminary Evaluation

Outline Introduction to Tor Tor / TCP Bottlenecks Design Space Tool #1: uTCP Tool #2: uTLS Eliminating Head-of-Line Blocking in Tor Conclusions

Future Work uTor shows promise Removes head-of-line blocking No userspace networking libraries (DTLS/TCP Tor) No need to change Tor to use UDP We can do more Investigate improved congestion control algorithms Priority sending – Similar to Torchestra Impact of head-of-line blocking on congestion control Out of order circuits interesting but dangerous Processing a destroy before receiving all packets Assumed in order nature

Thank you for your attention

The Challenges with TCP Overlays multiplex a single TCP link for multiple streams A missed packet in one stream causes delays in all streams Logically the streams are not blocked TCP blocks until all packets are received in order Unable to perform priority sending Cannot insert into TCP buffer Layered congestion control TOR runs TCP between end points as well as hop by hop Receiving a dropped packet in the hop by hop could result in a burst between the end points causing undesirable ramping up