Mauro Carvalho Chehab | 8447bb4 | 2020-04-28 00:01:29 +0200 | [diff] [blame] | 1 | .. SPDX-License-Identifier: GPL-2.0 |
| 2 | |
| 3 | ====================== |
Daniel Borkmann | e3118e8 | 2014-09-26 22:37:36 +0200 | [diff] [blame] | 4 | DCTCP (DataCenter TCP) |
Mauro Carvalho Chehab | 8447bb4 | 2020-04-28 00:01:29 +0200 | [diff] [blame] | 5 | ====================== |
Daniel Borkmann | e3118e8 | 2014-09-26 22:37:36 +0200 | [diff] [blame] | 6 | |
| 7 | DCTCP is an enhancement to the TCP congestion control algorithm for data |
| 8 | center networks and leverages Explicit Congestion Notification (ECN) in |
| 9 | the data center network to provide multi-bit feedback to the end hosts. |
| 10 | |
Mauro Carvalho Chehab | 8447bb4 | 2020-04-28 00:01:29 +0200 | [diff] [blame] | 11 | To enable it on end hosts:: |
Daniel Borkmann | e3118e8 | 2014-09-26 22:37:36 +0200 | [diff] [blame] | 12 | |
| 13 | sysctl -w net.ipv4.tcp_congestion_control=dctcp |
Daniel Borkmann | 4921355 | 2015-05-19 21:04:22 +0200 | [diff] [blame] | 14 | sysctl -w net.ipv4.tcp_ecn_fallback=0 (optional) |
Daniel Borkmann | e3118e8 | 2014-09-26 22:37:36 +0200 | [diff] [blame] | 15 | |
| 16 | All switches in the data center network running DCTCP must support ECN |
| 17 | marking and be configured for marking when reaching defined switch buffer |
| 18 | thresholds. The default ECN marking threshold heuristic for DCTCP on |
| 19 | switches is 20 packets (30KB) at 1Gbps, and 65 packets (~100KB) at 10Gbps, |
| 20 | but might need further careful tweaking. |
| 21 | |
| 22 | For more details, see below documents: |
| 23 | |
| 24 | Paper: |
| 25 | |
| 26 | The algorithm is further described in detail in the following two |
| 27 | SIGCOMM/SIGMETRICS papers: |
| 28 | |
| 29 | i) Mohammad Alizadeh, Albert Greenberg, David A. Maltz, Jitendra Padhye, |
| 30 | Parveen Patel, Balaji Prabhakar, Sudipta Sengupta, and Murari Sridharan: |
Mauro Carvalho Chehab | 8447bb4 | 2020-04-28 00:01:29 +0200 | [diff] [blame] | 31 | |
| 32 | "Data Center TCP (DCTCP)", Data Center Networks session" |
| 33 | |
Daniel Borkmann | e3118e8 | 2014-09-26 22:37:36 +0200 | [diff] [blame] | 34 | Proc. ACM SIGCOMM, New Delhi, 2010. |
Mauro Carvalho Chehab | 8447bb4 | 2020-04-28 00:01:29 +0200 | [diff] [blame] | 35 | |
Daniel Borkmann | e3118e8 | 2014-09-26 22:37:36 +0200 | [diff] [blame] | 36 | http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf |
| 37 | http://www.sigcomm.org/ccr/papers/2010/October/1851275.1851192 |
| 38 | |
| 39 | ii) Mohammad Alizadeh, Adel Javanmard, and Balaji Prabhakar: |
Mauro Carvalho Chehab | 8447bb4 | 2020-04-28 00:01:29 +0200 | [diff] [blame] | 40 | |
Daniel Borkmann | e3118e8 | 2014-09-26 22:37:36 +0200 | [diff] [blame] | 41 | "Analysis of DCTCP: Stability, Convergence, and Fairness" |
| 42 | Proc. ACM SIGMETRICS, San Jose, 2011. |
Mauro Carvalho Chehab | 8447bb4 | 2020-04-28 00:01:29 +0200 | [diff] [blame] | 43 | |
Daniel Borkmann | e3118e8 | 2014-09-26 22:37:36 +0200 | [diff] [blame] | 44 | http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp_analysis-full.pdf |
| 45 | |
| 46 | IETF informational draft: |
| 47 | |
| 48 | http://tools.ietf.org/html/draft-bensley-tcpm-dctcp-00 |
| 49 | |
| 50 | DCTCP site: |
| 51 | |
| 52 | http://simula.stanford.edu/~alizade/Site/DCTCP.html |