NS-2 TCP-Linux David Wei and Pei Cao. Outline Motivation Motivation Code structure of NS-2 TCP-Linux agent Code structure of NS-2 TCP-Linux agent Design.

Slides:



Advertisements
Similar presentations
Martin Suchara, Ryan Witt, Bartek Wydrowski California Institute of Technology Pasadena, U.S.A. TCP MaxNet Implementation and Experiments on the WAN in.
Advertisements

A Survey of Recent High Speed TCP Variants
Ningning HuCarnegie Mellon University1 Improving TCP Startup Performance using Active Measurements Ningning Hu, Peter Steenkiste Carnegie Mellon University.
FAST TCP Anwis Das Ajay Gulati Slides adapted from : IETF presentation slides Link:
Cheng Jin David Wei Steven Low FAST TCP: design and experiments.
Simulation-based Comparison of Tahoe, Reno, and SACK TCP Kevin Fall & Sally Floyd Presented: Heather Heiman September 10, 2002.
1 TCP Vegas: New Techniques for Congestion Detection and Avoidance Lawrence S. Brakmo Sean W. O’Malley Larry L. Peterson Department of Computer Science.
Congestion Control Algorithms: Open Questions Benno Overeinder NLnet Labs.
Restricted Slow-Start for TCP William Allcock 1,2, Sanjay Hegde 3 and Rajkumar Kettimuthu 1,2 1 Argonne National Laboratory 2 The University of Chicago.
Ahmed El-Hassany CISC856: CISC 856 TCP/IP and Upper Layer Protocols Slides adopted from: Injong Rhee, Lisong Xu.
CUBIC : A New TCP-Friendly High-Speed TCP Variant Injong Rhee, Lisong Xu Member, IEEE v 0.2.
CUBIC Qian HE (Steve) CS 577 – Prof. Bob Kinicki.
Advanced Computer Networking Congestion Control for High Bandwidth-Delay Product Environments (XCP Algorithm) 1.
Fair queueing and congestion control Jim Roberts (France Telecom) Joint work with Jordan Augé Workshop on Congestion Control Hamilton Institute, Sept 2005.
Texas A&M University Improving TCP Performance in High Bandwidth High RTT Links Using Layered Congestion Control Sumitha.
Recent Research in Congestion Control The problem of high bandwidth-delay product connections By Guillaume Marceau Presented for WPI CS577, Advanced Computer.
An Implementation and Experimental Study of the eXplicit Control Protocol (XCP) Yongguang Zhang and Tom Henderson INFOCOMM 2005 Presenter - Bob Kinicki.
18 Nov 2009 TCP VEGAS Mohammad AlKurbi CMPT – 771: Internet Architecture and Protocols.
Congestion Control Tanenbaum 5.3, /12/2015Congestion Control (A Loss Based Technique: TCP)2 What? Why? Congestion occurs when –there is no reservation.
High speed TCP’s. Why high-speed TCP? Suppose that the bottleneck bandwidth is 10Gbps and RTT = 200ms. Bandwidth delay product is packets (1500.
Cheng Jin David Wei Steven Low FAST TCP: Motivation, Architecture, Algorithms, Performance.
Simulation based analysis of FAST TCP using OMNET++ Umair ul Hassan.
High-performance bulk data transfers with TCP Matei Ripeanu University of Chicago.
TCP Westwood (with Faster Recovery) Claudio Casetti Mario Gerla Scott Seongwook Lee Saverio.
Transport: TCP Manpreet Singh (Slides borrowed from various sources on the web)
TCP in Heterogeneous Network Md. Ehtesamul Haque # P.
Ns Simulation Final presentation Stella Pantofel Igor Berman Michael Halperin
Much better than the old TCP Flavours 1Rajon Bhuiyan.
Implementing High Speed TCP (aka Sally Floyd’s) Yee-Ting Li & Gareth Fairey 1 st October 2002 DataTAG CERN (Kinda!)
Understanding the Performance of TCP Pacing Amit Aggarwal, Stefan Savage, Thomas Anderson Department of Computer Science and Engineering University of.
SELECTIVE ACKNOWLEDGEMENT (SACK) DUPLICATE SELECTIVE ACKNOWLEDGMENT
1 TCP-BFA: Buffer Fill Avoidance September 1998 Amr A. Awadallah Chetan Rai Computer Systems.
27th, Nov 2001 GLOBECOM /16 Analysis of Dynamic Behaviors of Many TCP Connections Sharing Tail-Drop / RED Routers Go Hasegawa Osaka University, Japan.
High-speed TCP  FAST TCP: motivation, architecture, algorithms, performance (by Cheng Jin, David X. Wei and Steven H. Low)  Modifying TCP's Congestion.
Udt.sourceforge.net 1 :: 23 Supporting Configurable Congestion Control in Data Transport Services Yunhong Gu and Robert L. Grossman Laboratory for Advanced.
Data Transport Challenges for e-VLBI Julianne S.O. Sansa* * With Arpad Szomoru, Thijs van der Hulst & Mike Garret.
TCP CUBIC in ns-3 CS577 Brett Levasseur 12/10/2013.
Copyright © Lopamudra Roychoudhuri
Sting: a TCP-based Network Measurement Tool Stefan Savage Jianxuan Xu.
Recent Congestion Control Research at UCLA Presenter: Cesar Marcondes PhD Candidate CS/UCLA Chicago, July IRTF/ICCRG Meeting Presenter: Cesar Marcondes.
INET framework extensions for TCP Vegas and TCP Westwood María Fernandez, Carlos T. Calafate, Juan-Carlos Cano and Pietro Manzoni Computer Networks Group.
Compound TCP in NS-3 Keith Craig 1. Worcester Polytechnic Institute What is Compound TCP? As internet speeds increased, the long ‘ramp’ time of TCP Reno.
Network Simulator 2. Introduction Open source network simulator NS uses two languages: C++ and OTcl  C++ is fast to run but slower to change Kernel 
1 Computer Networks Congestion Avoidance. 2 Recall TCP Sliding Window Operation.
TCP Westwood: Efficient Transport for High-speed wired/wireless Networks 2008.
Data Transport Challenges for e-VLBI Julianne S.O. Sansa* * With Arpad Szomoru, Thijs van der Hulst & Mike Garret.
Performance of New Variants of TCP Presenter – Bob Kinicki.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Congestion Control 0.
INDIANAUNIVERSITYINDIANAUNIVERSITY Status of FAST TCP and other TCP alternatives John Hicks TransPAC HPCC Engineer Indiana University APAN Meeting – Hawaii.
Increasing TCP's CWND based on Throughput draft-you-iccrg-throughput-based-cwnd-increasing-00 Jianjie You IETF92 Dallas.
1 Stochastic Ordering for Internet Congestion Control Han Cai, Do Young Eun, Sangtae Ha, Injong Rhee, and Lisong Xu PFLDnet 2007 February 7, 2007.
© 2006 Andreas Haeberlen, MPI-SWS 1 Monarch: A Tool to Emulate Transport Protocol Flows over the Internet at Large Andreas Haeberlen MPI-SWS / Rice University.
28/09/2016 Congestion Control Ian McDonald (with many other WAND members)
Network Congestion Control HEAnet Conference 2005 (David Malone for Doug Leith)
29/09/2016 Passive Detection of TCP Congestion Events Shane Alcock and Richard Nelson University of Waikato, Hamilton New Zealand.
13. TCP Flow Control and Congestion Control – Part 2
By, Nirnimesh Ghose, Master of Science,
TCP Vegas Congestion Control Algorithm
CUBIC Marcos Vieira.
TCP Vegas: New Techniques for Congestion Detection and Avoidance
Transport Protocols over Circuits/VCs
Khiem Lam Jimmy Vuong Andrew Yang
TCP Westwood(+) Protocol Implementation in ns-3
A tutorial on the implementation of TCP in ns-3
Fast TCP Matt Weaver CS622 Fall 2007.
TCP Cubic CS577 Brett Levasseur 10/1/2013.
TCP Throughput Modeling
EE 122: Congestion Control The Sequel
Review of Internet Protocols Transport Layer
Using NetLogger and Web100 for TCP analysis
Presentation transcript:

NS-2 TCP-Linux David Wei and Pei Cao

Outline Motivation Motivation Code structure of NS-2 TCP-Linux agent Code structure of NS-2 TCP-Linux agent Design of Scoreboard1, a new module for SACK processing Design of Scoreboard1, a new module for SACK processing Validation Results Validation Results

Why one more TCP agent in NS-2?

TCP Implementations in NS-2 Low simulation accuracy Low simulation accuracy Low simulation performance Low simulation performance up to 20 hours to run a simulation of 200-second traffic on gigabit links up to 20 hours to run a simulation of 200-second traffic on gigabit links Poor extensibility Poor extensibility Much fewer number of congestion control algorithms than Linux 2.6 Much fewer number of congestion control algorithms than Linux 2.6

TCP Implementations in Linux 2.6 Standard interface for congestion control algorithms: Standard interface for congestion control algorithms: void start(struct tcp_sock *tp): init the algorithm void start(struct tcp_sock *tp): init the algorithm u32 ssthresh(struct tcp_sock *tp): called after packet loss u32 ssthresh(struct tcp_sock *tp): called after packet loss u32 min_cwnd(struct tcp_sock *tp): called after loss u32 min_cwnd(struct tcp_sock *tp): called after loss void cong_avoid(struct tcp_sock *tp, u32 ack, u32 rtt, u32 in_flight, int good): called after ack received void cong_avoid(struct tcp_sock *tp, u32 ack, u32 rtt, u32 in_flight, int good): called after ack received void rtt_sample(struct tcp_sock *tp, u32 rtt): called after rtt calculation void rtt_sample(struct tcp_sock *tp, u32 rtt): called after rtt calculation set_state( … ), cwnd_event( … ), undo_cwnd( … ), get_info( … ) set_state( … ), cwnd_event( … ), undo_cwnd( … ), get_info( … ) Better SACK processing than NS-2 implementation Better SACK processing than NS-2 implementation

Narrow the gap between NS-2 and Linux 2.6  NS-2 TCP-Linux Design goals of NS-2 TCP-Linux: Accuracy: Accuracy: Use congestion control algorithm code *as-is* from Linux 2.6 source trees Use congestion control algorithm code *as-is* from Linux 2.6 source trees Improve SACK processing Improve SACK processing Extensibility: Extensibility: Import the concept of interfaces for loss detection algorithms Import the concept of interfaces for loss detection algorithms Speed: Speed: Improve event queue scheduler Improve event queue scheduler

Code structure

An example of congestion control algorithm in NS-2 TCP-Linux

Status of NS-2 TCP-Linux Imported all 9 congestion control algorithms from Linux Imported all 9 congestion control algorithms from Linux Reno (FACK), Vegas, HS-TCP, Scalable-TCP, BIC, Cubic, Westwood, H-TCP, Hybla Reno (FACK), Vegas, HS-TCP, Scalable-TCP, BIC, Cubic, Westwood, H-TCP, Hybla Imported 3 experimental congestion control algorithms in testing for future Linux versions Imported 3 experimental congestion control algorithms in testing for future Linux versions Veno, TCP-LP, TCP Compound (MS Windows Vista) Veno, TCP-LP, TCP Compound (MS Windows Vista) 3 bugs were found with Linux 2.6 HighSpeed TCP, 1 performance problem is found with Linux 2.6 Vegas 3 bugs were found with Linux 2.6 HighSpeed TCP, 1 performance problem is found with Linux 2.6 Vegas

Using LinuxTCPAgent in NS-2 Simulations Easy usage for all users to migrate TCL scripts: Easy usage for all users to migrate TCL scripts:… #set tcp [new Agent/TCP/Sack1] set tcp [new Agent/TCP/Linux] … #everything else is the same … ns at 0 “tcp select_ca reno” … #everything else is the same …

Better SACK Processing Scoreboard1: Scoreboard1: Combines NS-2 Sack1 design and Linux scoreboard design Combines NS-2 Sack1 design and Linux scoreboard design Enable correct implementation of FACK Enable correct implementation of FACK Simulation speed similar to NS-2 Sack1 Simulation speed similar to NS-2 Sack1

SACK Processing in NS-2 Sack1 Reassembly queue Reassembly queue Pro: scans the SACK list very fast Pro: scans the SACK list very fast Con: difficult to implement FACK correct, can ’ t identify retransmitted packets, etc. Con: difficult to implement FACK correct, can ’ t identify retransmitted packets, etc.

SACK processing in Linux 2.6 Per-packet state machine Per-packet state machine Con: slower processing of SACK lists Con: slower processing of SACK lists

ScoreBoard1 Combine the Linux design (state diagram for each packet) and Sack1 design (Reassembly Queue) Combine the Linux design (state diagram for each packet) and Sack1 design (Reassembly Queue)

Validation Results Accuracy: Comparable to Linux results in the level of congestion window trajectories Accuracy: Comparable to Linux results in the level of congestion window trajectories Simulation speed: Simulation speed: Best case: 50 times faster than NS-2 SACK1 Best case: 50 times faster than NS-2 SACK1 Worst case: as fast as NS-2 SACK1 Worst case: as fast as NS-2 SACK1 Memory consumption: very similar memory usage as NS-2 SACK1 Memory consumption: very similar memory usage as NS-2 SACK1

Evaluation Setup Comparing NS-2 TCP-Linux Results with Dummynet Results. Comparing NS-2 TCP-Linux Results with Dummynet Results.

Accuracy: window trajectory

Extensibility

Accuracy: throughput in lossy link

Why use NS-2 TCP-Linux NS-2 Analysis community: Able to analyze new algorithms without waiting for the availability of the NS-2 versions Able to analyze new algorithms without waiting for the availability of the NS-2 versions Higher accuracy and faster simulation Higher accuracy and faster simulation Linux Implementation community: Able to run repeatable simulation to test new algorithms Able to run repeatable simulation to test new algorithms A larger user pool to find bugs A larger user pool to find bugs

TCP-Linux: a better TCP for NS-2 Future works: D-SACK processing and window reduction undo D-SACK processing and window reduction undo Support for non-SACK receivers Support for non-SACK receivers A tutorial for the public: “ Tuning TCP in NS-2 ” A tutorial for the public: “ Tuning TCP in NS-2 ” A TCP benchmark suite in NS-2 A TCP benchmark suite in NS-2

Thank you Thank you Questions ?

Example 1: variable overflow in Linux HS-TCP

cwnd rate Example 2: AI bugs in Linux HS-TCP RTT: 64ms Flow #: 32 (4 flows are presented) Capacity: 100Mbps Buffer size: 220pkt Acker: Sack1/DelAck

Performance: Speed

Performance: Memory