Commit | Line | Data |
---|---|---|
98069ff4 IM |
1 | DCCP protocol |
2 | ============ | |
3 | ||
4 | Last updated: 10 November 2005 | |
5 | ||
6 | Contents | |
7 | ======== | |
8 | ||
9 | - Introduction | |
10 | - Missing features | |
11 | - Socket options | |
12 | - Notes | |
13 | ||
14 | Introduction | |
15 | ============ | |
16 | ||
17 | Datagram Congestion Control Protocol (DCCP) is an unreliable, connection | |
18 | based protocol designed to solve issues present in UDP and TCP particularly | |
19 | for real time and multimedia traffic. | |
20 | ||
21 | It has a base protocol and pluggable congestion control IDs (CCIDs). | |
22 | ||
23 | It is at draft RFC status and the homepage for DCCP as a protocol is at: | |
24 | http://www.icir.org/kohler/dcp/ | |
25 | ||
26 | Missing features | |
27 | ================ | |
28 | ||
29 | The DCCP implementation does not currently have all the features that are in | |
30 | the draft RFC. | |
31 | ||
32 | In particular the following are missing: | |
33 | - CCID2 support | |
34 | - feature negotiation | |
35 | ||
36 | When testing against other implementations it appears that elapsed time | |
37 | options are not coded compliant to the specification. | |
38 | ||
39 | Socket options | |
40 | ============== | |
41 | ||
42 | DCCP_SOCKOPT_PACKET_SIZE is used for CCID3 to set default packet size for | |
43 | calculations. | |
44 | ||
45 | DCCP_SOCKOPT_SERVICE sets the service. This is compulsory as per the | |
46 | specification. If you don't set it you will get EPROTO. | |
47 | ||
48 | Notes | |
49 | ===== | |
50 | ||
51 | SELinux does not yet have support for DCCP. You will need to turn it off or | |
52 | else you will get EACCES. | |
53 | ||
54 | DCCP does not travel through NAT successfully at present. This is because | |
55 | the checksum covers the psuedo-header as per TCP and UDP. It should be | |
56 | relatively trivial to add Linux NAT support for DCCP. |