Re: draft-ietf-dccp-udpencap-03 - 6-tuple

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




I think we may be converging, but I really would like to check. I'd like to try some text below that we could use to replace section 3.8.

The current text reads:

   A DCCP-UDP endpoint MAY use any UDP port number, providing the active
   endpoint knows a valid UDP Destination Port on the passive endpoint.

   By default, the DCCP-UDP client sets the source and destination ports
   to the default port number.  UDP port number XXX IANA PORT XXX has
   been registered with IANA for this purpose.

   A DCCP-UDP server (that is, an initially passive endpoint that wishes
   to receive DCCP-Request packets [RFC4340] over DCCP-UDP) binds a UDP
   port number for all encapsulated DCCP connections.  If the DCCP-UDP
   server binds to this default port reserved for the DCCP-UDP service,
   it SHOULD accept datagrams from any UDP source port.  For example,
   this would be needed if a NAPT along the path had translated the
   original UDP source port.

   There is a risk that the same DCCP source port number will be used by
   two endpoints each behind a NAPT.  A DCCP-UDP endpoint SHOULD
   therefore demultiplex a DCCP-UDP flow using both the UDP source and
   destination port numbers in addition to processing of the DCCP ports
   by the DCCP module.

   Hence, the endpoint identifier for a DCCP-UDP connection should be
   the 6-tuple <source address, UDP Source Port, DCCP Source Port,
   destination address, UDP Destination Port, DCCP Destination Port>,
   rather than a 4-tuple <source address, source port, destination
   address, destination port> defined by DCCP-STD."

My first attempt at replacement text reads:

   A DCCP-UDP endpoint MAY use any UDP port number, providing the active
   endpoint knows a valid UDP Destination Port on the passive endpoint.

   By default, a DCCP-UDP client sets the destination port
   to the default port number. UDP port number XXX IANA PORT XXX has
   been registered with IANA for this purpose. A client SHOULD set
   source port to a number that is unique for this DCCP connection.

   Choosing distinct source UDP ports for distinct DCCP connections
   ensures that UDP-based flow identifiers differ whenever
   DCCP-based flow identifiers differ.  Specifically, two connections
   with different <source address, source DCCP port, destination
   address, destination DCCP port> 4-tuples will have different
   <source address, source UDP port, destination address,
   destination UDP port> 4-tuples.

   A DCCP-UDP server (that is, an initially passive endpoint that wishes
   to receive DCCP-Request packets [RFC4340] over DCCP-UDP) binds a UDP
   port number for all encapsulated DCCP connections.  If the DCCP-UDP
   server binds to this default port reserved for the DCCP-UDP service,
   it SHOULD accept datagrams from any UDP source port.  For example,
   this would be needed if a NAPT along the path had translated the
   original UDP source port.

   There is a risk that the same DCCP source port number could be used
   by two endpoints each behind a NAPT.  A DCCP-UDP server MUST
   therefore demultiplex a DCCP-UDP flow using both the UDP source and
   destination port numbers and the encapsulated DCCP ports.

   A DCCP-Server MUST ensure than an active DCCP connection
   is uniquely identified by the 6-tuple <source address,
   UDP Source Port, DCCP Source Port, destination address,
   UDP Destination Port, DCCP Destination Port>.

   The demultiplexing at a DCCP-UDP endpoint occurs in two stages:

	1) In the first stage DCCP-UDP packets are demultiplexed
        using the 4-tuple, <source address, UDP Source Port,
	DCCP Source Port, destination address, UDP Destination Port>.

	2) In the second stage, a receiving endpoint MUST ensure
	that two independent DCCP connections that were
	multiplexed to the
	same 4-tuple are not associated with the same connection
	in the DCCP module. The endpoint therefore needs to keep
        state for the set of active DCCP-UDP endpoints using each
        4-tuple. This may be achieved in one of two ways:

	A) A DCCP server MAY accept only one
	active 6-tuple at any one time for a given 4-tuple. In this
	case, DCCP-UDP packets that do not match an active
	6-tuple MUST NOT be passed to the DCCP Module and the DCCP
	Server SHOULD send a DCCP-Reset
	with the reason "encapsulated port reuse". An endpoint that
	receives a DCCP-Reset with this reason MAY immediately try
 	again using a different 4-tuple.

	This provides protection should the same 4-tuple be
	re-used by multiple DCCP connections, ensuring that
	only one DCCP connection is established at one time.

	B) A DCCP-SERVER MAY support multiple DCCP connections over
	the same UDP 4-tuple. If supported, the endpoint MUST
	then associate each 6-tuple with a single connection.
	If an endpoint is unable to demultiplex the 6-tuple (e.g.
	due to internal resources limits), it MUST NOR pass
	DCCP-UDP packets that do not match an active
	6-tuple to the DCCP Module. The DCCP
	endpoint MAY send a DCCP-Reset
	with the reason "encapsulated port reuse"
	indicating the connection may be retried using a 	
	different 4-tuple.


---

This document requests IANA to assign a new Reset Reason "encapsulated port reuse". etc.

---





[Index of Archives]     [Linux Kernel Development]     [Linux DCCP]     [IETF Annouce]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [DDR & Rambus]

  Powered by Linux