aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/networking/dccp.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/networking/dccp.txt')
-rw-r--r--Documentation/networking/dccp.txt39
1 files changed, 32 insertions, 7 deletions
diff --git a/Documentation/networking/dccp.txt b/Documentation/networking/dccp.txt
index afb66f9a8aff..39131a3c78f8 100644
--- a/Documentation/networking/dccp.txt
+++ b/Documentation/networking/dccp.txt
@@ -14,24 +14,35 @@ Introduction
14============ 14============
15 15
16Datagram Congestion Control Protocol (DCCP) is an unreliable, connection 16Datagram Congestion Control Protocol (DCCP) is an unreliable, connection
17based protocol designed to solve issues present in UDP and TCP particularly 17oriented protocol designed to solve issues present in UDP and TCP, particularly
18for real time and multimedia traffic. 18for real-time and multimedia (streaming) traffic.
19It divides into a base protocol (RFC 4340) and plugable congestion control
20modules called CCIDs. Like plugable TCP congestion control, at least one CCID
21needs to be enabled in order for the protocol to function properly. In the Linux
22implementation, this is the TCP-like CCID2 (RFC 4341). Additional CCIDs, such as
23the TCP-friendly CCID3 (RFC 4342), are optional.
24For a brief introduction to CCIDs and suggestions for choosing a CCID to match
25given applications, see section 10 of RFC 4340.
19 26
20It has a base protocol and pluggable congestion control IDs (CCIDs). 27It has a base protocol and pluggable congestion control IDs (CCIDs).
21 28
22It is at proposed standard RFC status and the homepage for DCCP as a protocol 29DCCP is a Proposed Standard (RFC 2026), and the homepage for DCCP as a protocol
23is at: 30is at http://www.ietf.org/html.charters/dccp-charter.html
24 http://www.read.cs.ucla.edu/dccp/
25 31
26Missing features 32Missing features
27================ 33================
28 34
29The DCCP implementation does not currently have all the features that are in 35The Linux DCCP implementation does not currently support all the features that are
30the RFC. 36specified in RFCs 4340...42.
31 37
32The known bugs are at: 38The known bugs are at:
33 http://linux-net.osdl.org/index.php/TODO#DCCP 39 http://linux-net.osdl.org/index.php/TODO#DCCP
34 40
41For more up-to-date versions of the DCCP implementation, please consider using
42the experimental DCCP test tree; instructions for checking this out are on:
43http://linux-net.osdl.org/index.php/DCCP_Testing#Experimental_DCCP_source_tree
44
45
35Socket options 46Socket options
36============== 47==============
37 48
@@ -46,6 +57,12 @@ can be set before calling bind().
46DCCP_SOCKOPT_GET_CUR_MPS is read-only and retrieves the current maximum packet 57DCCP_SOCKOPT_GET_CUR_MPS is read-only and retrieves the current maximum packet
47size (application payload size) in bytes, see RFC 4340, section 14. 58size (application payload size) in bytes, see RFC 4340, section 14.
48 59
60DCCP_SOCKOPT_SERVER_TIMEWAIT enables the server (listening socket) to hold
61timewait state when closing the connection (RFC 4340, 8.3). The usual case is
62that the closing server sends a CloseReq, whereupon the client holds timewait
63state. When this boolean socket option is on, the server sends a Close instead
64and will enter TIMEWAIT. This option must be set after accept() returns.
65
49DCCP_SOCKOPT_SEND_CSCOV and DCCP_SOCKOPT_RECV_CSCOV are used for setting the 66DCCP_SOCKOPT_SEND_CSCOV and DCCP_SOCKOPT_RECV_CSCOV are used for setting the
50partial checksum coverage (RFC 4340, sec. 9.2). The default is that checksums 67partial checksum coverage (RFC 4340, sec. 9.2). The default is that checksums
51always cover the entire packet and that only fully covered application data is 68always cover the entire packet and that only fully covered application data is
@@ -72,6 +89,8 @@ DCCP_SOCKOPT_CCID_TX_INFO
72 Returns a `struct tfrc_tx_info' in optval; the buffer for optval and 89 Returns a `struct tfrc_tx_info' in optval; the buffer for optval and
73 optlen must be set to at least sizeof(struct tfrc_tx_info). 90 optlen must be set to at least sizeof(struct tfrc_tx_info).
74 91
92On unidirectional connections it is useful to close the unused half-connection
93via shutdown (SHUT_WR or SHUT_RD): this will reduce per-packet processing costs.
75 94
76Sysctl variables 95Sysctl variables
77================ 96================
@@ -123,6 +142,12 @@ sync_ratelimit = 125 ms
123 sequence-invalid packets on the same socket (RFC 4340, 7.5.4). The unit 142 sequence-invalid packets on the same socket (RFC 4340, 7.5.4). The unit
124 of this parameter is milliseconds; a value of 0 disables rate-limiting. 143 of this parameter is milliseconds; a value of 0 disables rate-limiting.
125 144
145IOCTLS
146======
147FIONREAD
148 Works as in udp(7): returns in the `int' argument pointer the size of
149 the next pending datagram in bytes, or 0 when no datagram is pending.
150
126Notes 151Notes
127===== 152=====
128 153