mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 18:53:24 +00:00 
			
		
		
		
	 00e4d116a7
			
		
	
	
		00e4d116a7
		
	
	
	
	
		
			
			This has been discussed on dccp@vger and removes the necessity for applications to supply service codes in each and every case. If an application does not want to provide a service code, that's fine, it will be given 0. Otherwise, service codes can be set via socket options as before. This patch has been tested using various client/server configurations (including listening on multiple service codes). Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| DCCP protocol
 | |
| ============
 | |
| 
 | |
| 
 | |
| Contents
 | |
| ========
 | |
| 
 | |
| - Introduction
 | |
| - Missing features
 | |
| - Socket options
 | |
| - Notes
 | |
| 
 | |
| Introduction
 | |
| ============
 | |
| 
 | |
| Datagram Congestion Control Protocol (DCCP) is an unreliable, connection
 | |
| based protocol designed to solve issues present in UDP and TCP particularly
 | |
| for real time and multimedia traffic.
 | |
| 
 | |
| It has a base protocol and pluggable congestion control IDs (CCIDs).
 | |
| 
 | |
| It is at draft RFC status and the homepage for DCCP as a protocol is at:
 | |
| 	http://www.icir.org/kohler/dcp/
 | |
| 
 | |
| Missing features
 | |
| ================
 | |
| 
 | |
| The DCCP implementation does not currently have all the features that are in
 | |
| the draft RFC.
 | |
| 
 | |
| In particular the following are missing:
 | |
| - CCID2 support
 | |
| - feature negotiation
 | |
| 
 | |
| When testing against other implementations it appears that elapsed time
 | |
| options are not coded compliant to the specification.
 | |
| 
 | |
| Socket options
 | |
| ==============
 | |
| 
 | |
| DCCP_SOCKOPT_PACKET_SIZE is used for CCID3 to set default packet size for
 | |
| calculations.
 | |
| 
 | |
| DCCP_SOCKOPT_SERVICE sets the service. The specification mandates use of
 | |
| service codes (RFC 4340, sec. 8.1.2); if this socket option is not set,
 | |
| the socket will fall back to 0 (which means that no meaningful service code
 | |
| is present). Connecting sockets set at most one service option; for
 | |
| listening sockets, multiple service codes can be specified.
 | |
| 
 | |
| Notes
 | |
| =====
 | |
| 
 | |
| SELinux does not yet have support for DCCP. You will need to turn it off or
 | |
| else you will get EACCES.
 | |
| 
 | |
| DCCP does not travel through NAT successfully at present. This is because
 | |
| the checksum covers the psuedo-header as per TCP and UDP. It should be
 | |
| relatively trivial to add Linux NAT support for DCCP.
 |