]>
Commit | Line | Data |
---|---|---|
7c657876 | 1 | menu "DCCP CCIDs Configuration (EXPERIMENTAL)" |
7c657876 | 2 | |
2a91aa39 | 3 | config IP_DCCP_CCID2 |
891e4d8a | 4 | tristate "CCID2 (TCP-Like)" |
057fc675 | 5 | def_tristate IP_DCCP |
2a91aa39 AB |
6 | ---help--- |
7 | CCID 2, TCP-like Congestion Control, denotes Additive Increase, | |
8 | Multiplicative Decrease (AIMD) congestion control with behavior | |
9 | modelled directly on TCP, including congestion window, slow start, | |
10 | timeouts, and so forth [RFC 2581]. CCID 2 achieves maximum | |
11 | bandwidth over the long term, consistent with the use of end-to-end | |
12 | congestion control, but halves its congestion window in response to | |
13 | each congestion event. This leads to the abrupt rate changes | |
14 | typical of TCP. Applications should use CCID 2 if they prefer | |
15 | maximum bandwidth utilization to steadiness of rate. This is often | |
16 | the case for applications that are not playing their data directly | |
17 | to the user. For example, a hypothetical application that | |
18 | transferred files over DCCP, using application-level retransmissions | |
19 | for lost packets, would prefer CCID 2 to CCID 3. On-line games may | |
e333b3ed | 20 | also prefer CCID 2. See RFC 4341 for further details. |
2a91aa39 | 21 | |
e333b3ed | 22 | CCID2 is the default CCID used by DCCP. |
2a91aa39 | 23 | |
8d424f6c | 24 | config IP_DCCP_CCID2_DEBUG |
84116716 | 25 | bool "CCID2 debugging messages" |
8d424f6c AB |
26 | depends on IP_DCCP_CCID2 |
27 | ---help--- | |
84116716 GR |
28 | Enable CCID2-specific debugging messages. |
29 | ||
30 | When compiling CCID2 as a module, this debugging output can | |
31 | additionally be toggled by setting the ccid2_debug module | |
32 | parameter to 0 or 1. | |
8d424f6c AB |
33 | |
34 | If in doubt, say N. | |
35 | ||
7c657876 | 36 | config IP_DCCP_CCID3 |
891e4d8a | 37 | tristate "CCID3 (TCP-Friendly)" |
057fc675 | 38 | def_tristate IP_DCCP |
c40616c5 | 39 | select IP_DCCP_TFRC_LIB |
7c657876 ACM |
40 | ---help--- |
41 | CCID 3 denotes TCP-Friendly Rate Control (TFRC), an equation-based | |
42 | rate-controlled congestion control mechanism. TFRC is designed to | |
43 | be reasonably fair when competing for bandwidth with TCP-like flows, | |
44 | where a flow is "reasonably fair" if its sending rate is generally | |
45 | within a factor of two of the sending rate of a TCP flow under the | |
46 | same conditions. However, TFRC has a much lower variation of | |
47 | throughput over time compared with TCP, which makes CCID 3 more | |
48 | suitable than CCID 2 for applications such streaming media where a | |
49 | relatively smooth sending rate is of importance. | |
50 | ||
0e64e94e GR |
51 | CCID 3 is further described in RFC 4342, |
52 | http://www.ietf.org/rfc/rfc4342.txt | |
2a91aa39 AB |
53 | |
54 | The TFRC congestion control algorithms were initially described in | |
55 | RFC 3448. | |
7c657876 | 56 | |
0e64e94e GR |
57 | This text was extracted from RFC 4340 (sec. 10.2), |
58 | http://www.ietf.org/rfc/rfc4340.txt | |
7c657876 | 59 | |
84116716 GR |
60 | To compile this CCID as a module, choose M here: the module will be |
61 | called dccp_ccid3. | |
62 | ||
7c657876 ACM |
63 | If in doubt, say M. |
64 | ||
891e4d8a | 65 | if IP_DCCP_CCID3 |
56724aa4 GR |
66 | config IP_DCCP_CCID3_DEBUG |
67 | bool "CCID3 debugging messages" | |
56724aa4 GR |
68 | ---help--- |
69 | Enable CCID3-specific debugging messages. | |
70 | ||
71 | When compiling CCID3 as a module, this debugging output can | |
72 | additionally be toggled by setting the ccid3_debug module | |
73 | parameter to 0 or 1. | |
74 | ||
75 | If in doubt, say N. | |
8a508ac2 GR |
76 | |
77 | config IP_DCCP_CCID3_RTO | |
78 | int "Use higher bound for nofeedback timer" | |
79 | default 100 | |
8a508ac2 GR |
80 | ---help--- |
81 | Use higher lower bound for nofeedback timer expiration. | |
82 | ||
83 | The TFRC nofeedback timer normally expires after the maximum of 4 | |
84 | RTTs and twice the current send interval (RFC 3448, 4.3). On LANs | |
85 | with a small RTT this can mean a high processing load and reduced | |
86 | performance, since then the nofeedback timer is triggered very | |
87 | frequently. | |
88 | ||
89 | This option enables to set a higher lower bound for the nofeedback | |
90 | value. Values in units of milliseconds can be set here. | |
91 | ||
92 | A value of 0 disables this feature by enforcing the value specified | |
93 | in RFC 3448. The following values have been suggested as bounds for | |
94 | experimental use: | |
95 | * 16-20ms to match the typical multimedia inter-frame interval | |
96 | * 100ms as a reasonable compromise [default] | |
97 | * 1000ms corresponds to the lower TCP RTO bound (RFC 2988, 2.4) | |
98 | ||
99 | The default of 100ms is a compromise between a large value for | |
100 | efficient DCCP implementations, and a small value to avoid disrupting | |
101 | the network in times of congestion. | |
102 | ||
103 | The purpose of the nofeedback timer is to slow DCCP down when there | |
104 | is serious network congestion: experimenting with larger values should | |
105 | therefore not be performed on WANs. | |
891e4d8a | 106 | endif # IP_DCCP_CCID3 |
8a508ac2 | 107 | |
c40616c5 GR |
108 | config IP_DCCP_TFRC_LIB |
109 | tristate | |
110 | default n | |
111 | ||
112 | config IP_DCCP_TFRC_DEBUG | |
113 | bool | |
114 | depends on IP_DCCP_TFRC_LIB | |
115 | default y if IP_DCCP_CCID3_DEBUG | |
8a508ac2 | 116 | |
7c657876 | 117 | endmenu |