Code Monkey home page Code Monkey logo

tcp-incast's Introduction

TCP-Incast

Mitigate TCP Incast congestion with Proactive ACK Control (PAC). We implement PAC as a Linux Kernel Module (LKM) and do extensive evaluation in testbed. Our experiments show PAC can support 100 concurrent connections while maintaing high throughput.

People

Wei Bai ([email protected])

Department of Computer Science and Engineering, Hong Kong University of Science and Technology

Prof. Kai Chen

Department of Computer Science and Engineering, Hong Kong University of Science and Technology

Haitao Wu

Microsoft Redmond (previous in Wireless and Networking Group, Microsoft Research Asia)

References

Data Center TCP (SIGCOMM 2010)

ICTCP: Incast Congestion Control for TCP in Data Center Networks (CoNEXT 2010 Best paper)

Safe and effective fine-grained TCP retransmissions for datacenter communication (SIGCOMM 2009)

Tuing ECN for data center networks (CoNEXT 2012)

Bugs

I find a potential bug in current DCTCP (TCP/ECN) imeplmentation. The ECN standard defines ECN-capable (ECT) bits at the IP header to indicate switches that mark the packet. However, the behavior of switches handling non-ECT packets when ECN is triggered is not specified. Our broadcom switch with ECN simply drops non-ECT packets when queuing lengh exceeds the threshold. The ECN standards claims that TCP retransmitted packets and SYN packets should not be marked with ECT. When these packets go through the bottleneck switch, they are likely to be dropped. Tuning ECN (CoNEXT 2012) has pointed out this problem. However, in current public DCTCP implementation (http://simula.stanford.edu/~alizade/Site/DCTCP.html) in Linux kernel 2.6.38.3, this problem does exist, greatly influencing the peformance of DCTCP, especially in incast congestion.

To solve this problem, there are mainly two kinds of solutions. One is to modify your switch which is not convenient. The other solution is to mark ECT bits on end hosts using iptables/Netfilter. You can use following command to achieve this:

iptables -A OUTPUT -t mangle -p tcp -j TOS --set-tos 2

tcp-incast's People

Contributors

baiwei0427 avatar

Stargazers

 avatar Lance Li avatar  avatar Taimur Hafeez avatar Ahmed M. A. Sayed avatar  avatar Ziyang Li avatar

Watchers

James Cloos avatar  avatar Ahmed M. A. Sayed avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.