Re: [dccp] DCCP-over-UDP [was draft-phelan-dccp-natencap-00.txt]

2008-02-26 Thread Magnus Westerlund

Hi,

There has been a lot of talk in this thread about DNS. I want a solution 
that works without DNS. If one uses SIP or RTSP to establish a media pat 
using DCCP. In most cases one do include the explicit IP address rather 
than the FQDN. Thus no DNS queries etc. I think something that makes 
this work on the same port is desirable.


Cheers

Magnus

Phelan, Tom skrev:

Hi Dan,

Thanks for the detail in this and your previous message.  I agree that
this is worthwhile to explore for the next version of dccp-natencap and
it'll give me a good head start on working things out.

Tom P.


-Original Message-
From: Dan Wing [mailto:[EMAIL PROTECTED]
Sent: Saturday, February 23, 2008 1:03 PM
To: [EMAIL PROTECTED]
Cc: Phelan, Tom; 'Colin Perkins'; ''dccp' working group'
Subject: RE: [dccp] DCCP-over-UDP [was

draft-phelan-dccp-natencap-00.txt]

Can you explain why 100ms seems reasonable?

Longer than that would become noticable in those cases where DCCP-RAW

was

being blocked.


I commonly use paths that have much longer delays than this,
and would
have expected native DCCP/IP encapsulation to still be used in these
cases, rather than defaulting to an encapsulated format.

The algorithm I am proposing would still achieve that.  The algorithm

I am

proposing has you send a DCCP-RAW request and wait 100ms for a

response.

If
no DCCP-RAW response is received in that 100ms, you then try DCCP-UDP.
You do
_not_ abandon the DCCP-RAW connection attempt, however.  This will

provide

you
with a DCCP-RAW connection even over 100ms round-trip delay paths.  I
agree
that if the first DCCP-RAW request is dropped (due to network

congestion

or
other reasons) you may, for that connection, end up with DCCP-UDP
(assuming
the DCCP-UDP request and its response are not dropped).  I don't see a
solution to that problem, other than waiting a really long time for

the

DCCP-RAW to fail.  Waiting a really long time for DCCP-RAW to fail

will

make
DCCP-UDP seem very slow at connection establishment, and I will cause
DCCP-UDP
connection setup to be perceived as 'slow' by users and user

applications.



The case with no middlebox (NAT or firewall):



 DCCP client DNS serverDCCP server
 --- -----
  |   |  |
  | DNS SRV?-|  |
  | DNS A?---|  |
  |--- DNS SRV --|  |
(not used)|--- DNS A - --|  |
  |--- DCCP-RAW request-|
 (wait 100ms)
  |--- DCCP-UDP request |
  |--- DCCP-RAW response ---|
 (continue with DCCP-RAW connection)
  |--- DCCP-UDP response ---|
 (this DCCP-UDP response isn't needed, so abort it)
  |--- DCCP-UDP close --|
  |   |  |

with a middlebox:

 DCCP client  middleboxDNS serverDCCP server
 ---  ------
  |   |   |  |
  | DNS SRV?-|  |
  | DNS A?---|  |
  |--- DNS SRV --|  |
(not used)|--- DNS A - --|  |
  |---X   |  |
 (wait 100ms) |   |  |
  |--- DCCP-UDP request |
  |--- DCCP-UDP response ---|
 (continue with DCCP-UDP connection)  |  |
  |   |   |  |

-d






--

Magnus Westerlund

IETF Transport Area Director  TSVWG Chair
--
Multimedia Technologies, Ericsson Research EAB/TVM
--
Ericsson AB| Phone +46 8 4048287
Torshamsgatan 23   | Fax   +46 8 7575550
S-164 80 Stockholm, Sweden | mailto: [EMAIL PROTECTED]
--



Re: [dccp] draft-phelan-dccp-natencap-00.txt

2008-02-26 Thread Lars Eggert

Hi,

one question we really need to answer is whether we want to go through  
the pains of specifying UDP encapsulations for all our transport  
protocols. We have on the table:


* draft-phelan-dccp-natencap for DCCP
* draft-tuexen-sctp-udp-encaps for SCTP
* JDR's recent email on the MMUSIC list for TCP-over-UDP

All of them need to basically design very similar handshake/signaling  
exchanges, they all need a solution for the service identification  
issue, etc. This is undesirable.


If we need to encapsulate something in UDP for the purposes of NAT  
traversal, why aren't we encapsulating IP in UDP, on top of which we  
can run pretty much anything? Instead of requiring that DCCP stacks  
grow support for DCCP-over-UDP, why don't we simply require that DCCP  
stacks implement Teredo or something similar? Why are we solving the  
NAT traversal problem protocol-by-protocol rather than one time?


(The still ongoing NAT traversal discussion in HIP - which is building  
its own NAT traversal solution - has left me convinced that we should  
have pushed harder for the original just use Teredo proposal for HIP  
NAT traversal. We'd be long done.)


Lars


[dccp] Draft Agenda now available for IETF-71

2008-02-26 Thread Gorry Fairhurst


I've uploaded a draft agenda at:
https://datatracker.ietf.org/meeting/71/materials.html

If you are listed as a presenter and have not yet contacted the Chairs - 
please email us as soon as possible:-)


If you have slides ready, then please do send them. (Please send by noon 
Monday 10th at the very latest - there will be remote participants at 
this meeting and they need the slides before the session).


If you'd like to present and are not currently listed, please let us know,

Best wishes,

Gorry  Tom


[dccp] Fwd: I-D Action:draft-ietf-dccp-rfc3448bis-05.txt

2008-02-26 Thread Sally Floyd

I have submitted a revised version of
draft-ietf-dccp-rfc3448bis-05.txt.

The changes from -04 are as follows:

* Added a mechanism for decaying the value in X_recv_set
  following a loss event in a data-limited interval, and
  restricting recv_limit to max (X_recv_set) for the next
  RTT.  Also added a discussion to Appendix C of the
  response to a loss during a data-limited period.
  Following feedback from Gorry and Arjuna.

* Removed a restriction in step 4) of Section 4.3 about
  checking if the sender was not data-limited, when the sender
  has been in initial slow-start.  It is no longer needed.
  Feedback from Arjuna.

* Added pseudocode to Section 8.2.1 on Determining If an
  Interval Was a Data-limited Interval, fixing a bug in the
  procedure.  Feedback from Arjuna.

Many thanks to Gorry and Arjuna for feedback, in particular about
dealing with loss events in data-limited intervals.

I think this is now ready for Working Group Last Call
(though I note that I have thought this before...)

- Sally
http://www.icir.org/floyd/


Begin forwarded message:

From: [EMAIL PROTECTED]
Date: February 25, 2008 10:30:01 AM PST
To: [EMAIL PROTECTED]
Cc: dccp@ietf.org
Subject: [dccp] I-D Action:draft-ietf-dccp-rfc3448bis-05.txt

A New Internet-Draft is available from the on-line Internet-Drafts  
directories.
This draft is a work item of the Datagram Congestion Control  
Protocol Working Group of the IETF.



	Title   : TCP Friendly Rate Control (TFRC): Protocol  
Specification

Author(s)   : U. London, et al.
Filename: draft-ietf-dccp-rfc3448bis-05.txt
Pages   : 64
Date: 2008-02-25

This document specifies TCP-Friendly Rate Control (TFRC).  TFRC is a
 congestion control mechanism for unicast flows operating in a best-
 effort Internet environment.  It is reasonably fair when competing
 for bandwidth with TCP flows, but has a much lower variation of
 throughput over time compared with TCP, making it more suitable for
 applications such as streaming media where a relatively smooth
 sending rate is of importance.

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-dccp-rfc3448bis-05.txt

To remove yourself from the I-D Announcement list, send a message to
[EMAIL PROTECTED] with the word unsubscribe in the body of
the message.
You can also visit https://www1.ietf.org/mailman/listinfo/I-D-announce
to change your subscription settings.

Internet-Drafts are also available by anonymous FTP. Login with the
username anonymous and a password of your e-mail address. After
logging in, type cd internet-drafts and then
get draft-ietf-dccp-rfc3448bis-05.txt.

A list of Internet-Drafts directories can be found in
http://www.ietf.org/shadow.html
or ftp://ftp.ietf.org/ietf/1shadow-sites.txt

Internet-Drafts can also be obtained by e-mail.

Send a message to:
[EMAIL PROTECTED]
In the body type:
FILE /internet-drafts/draft-ietf-dccp-rfc3448bis-05.txt.

NOTE:   The mail server at ietf.org can return the document in
MIME-encoded form by using the mpack utility.  To use this
feature, insert the command ENCODING mime before the FILE
command.  To decode the response(s), you will need munpack or
a MIME-compliant mail reader.  Different MIME-compliant mail readers
exhibit different behavior, especially when dealing with
multipart MIME messages (i.e. documents which have been split
up into multiple messages), so check your local documentation on
how to manipulate these messages.

Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.
Content-Type: text/plain
Content-ID: [EMAIL PROTECTED]





Re: [dccp] New revision of The DCCP Service Code

2008-02-26 Thread Eddie Kohler

Gorry, comments on service-codes-04.

   The original draft of the DCCP specification did not use traditional 
   ports; instead the client allocated a 32-bit identifier to uniquely 
   identify the connection. ...   This design
   suffered from the downside of being sufficiently different from 
   existing protocols that there were concerns that it would hinder the 
   use of DCCP through NATs and other middleboxes.   


An additional downside is that this design prevents the deployment of two 
servers for the same service on a single machine, something that is trivial 
with ports.  This is the true reason why ports reappeared, although 
NAT/middlebox concerns also played a part.


This permits a flexible correspondence between services 
   and port numbers than possible using the corresponding socket pair 
   (4-tuple of layer-3 addresses and layer-4 ports).


a MORE flexible correspondence

   Note that more than one DCCP server may share the same server port, 
   since in DCCP the Service Code mechanism is the method for unique 
   identification of a service. 


This is not correct: the COMBINATION of server port and Service Code uniquely 
identifies a LISTENING APPLICATION.  It is important to get this right.


2.7. A method to hash the Service Code to a Dynamic Port  


I do not find this section convincing.  Among other things:

- operating systems use the dynamic port range for client ports, and therefore 
there is a chance that a server attempting to open the indicated port for 
listening will be prevented from doing so because of an existing short-lived 
client port.


- the function can return port 65535 which i believe some OSes refuse to open

- there is no need for a large range of server ports (because of the unique 
mapping of server port + service code to application).


- the section is unclear whether it is suggesting a possible procedure or 
defining a requirement.


I suggest instead that the document allocate one Registered Port intended for 
use by DCCP applications with no port allocation of their own.  This port 
would become something like a default DCCP port, and applications using it 
would be using the originally intended service code model.


If because of current OS constraints (such as the Linux implementation's) more 
than one default DCCP port is required, that is too bad, but a small range 
of, say, 256 or 1024 Registered Ports would suffice in practice until that 
implementation limitation is overcome.


   Port numbers and IP addresses are the traditional methods to identify 
   a flow within an IP network. When the DCCP header has not been 
   encrypted, Middleboxes [RFC3234] should use the Service Code to 
   identify the application-service (even when running on a non-standard 
   port). When consistently used, the Service Code can provide a more 
   specific indication of the actual service (e.g. indicate the type of 
   multimedia flow, or intended application behaviour). Middlebox 
   devices are therefore expected to check Service Code values as well 
   as, or even instead of port numbers for DCCP. 


I disagree with this paragraph.  It puts requirements on middleboxes and 
recommends shifting away from well-known practices (e.g., port numbers) to 
unknown practices with few practical benefits (Service Codes cannot be 
trusted).  are therefore expected is too strong.  There are good reasons to 
manage DCCP applications based on ports, including familiarity.  The most I 
would say is something like Middleboxes that use DCCP may additionally use 
the Service Code to identify an application service, even when running on a 
non-standard port.  When consistently used, the Service Code can provide a 
specific hint of the intended service, such as the type of multimedia flow or 
intended application behavior.  Additional text, if any, should explain WHY 
middleboxes should shift towards using the Service Code; this would be more 
convincing and appropriate than the current requirement.


This section would be more useful if it pointed out to middlebox authors some 
issues with port numbers.  For example:


Middlebox authors are cautioned that new DCCP connections are identified by 
the pair of Server Port and Service Code.  In particular, this means that IANA 
may allocate a server port to more than one application.  All such 
applications will be distinguished by Service Code.  A middlebox that intends 
to differentiate applications SHOULD therefore test the Service Code as well 
as the destination or source port on a DCCP-Request or DCCP-Response packet.


Security Consideration: DCCP's use of Service Codes as well as ports to 
demultiplex incoming connections may change the service model expected by 
middleboxes.  The port-numbers registry already contains some instances of 
multiple application registrations for a single port number for TCP and UDP. 
This is relatively rare, however.  Since DCCP's Service Code allows multiple 
applications to safely share the 

Re: [dccp] draft-phelan-dccp-natencap-00.txt

2008-02-26 Thread Phelan, Tom
Hi Lars,

I sympathize with your concern for each transport inventing its own UDP
encap solution.  However, I don't think that that
IP/UDP/IP/DCCP[SCTP][whatever] works well.  What is in the inner IP
addresses?  They're not useful at all.  They could start out the same as
the outer addresses, but after traversing a NAT they wouldn't make sense
to the receiving system.

Can we invent a generic transport UDP encapsulation?  Maybe, maybe not.

I haven't seen that TCP-over-UDP thing.  What kind of rationale is there
for that?

Tom P.

 -Original Message-
 From: Lars Eggert [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, February 26, 2008 10:19 AM
 To: Phelan, Tom
 Cc: 'dccp' working group
 Subject: Re: [dccp] draft-phelan-dccp-natencap-00.txt
 
 Hi,
 
 one question we really need to answer is whether we want to go through
 the pains of specifying UDP encapsulations for all our transport
 protocols. We have on the table:
 
   * draft-phelan-dccp-natencap for DCCP
   * draft-tuexen-sctp-udp-encaps for SCTP
   * JDR's recent email on the MMUSIC list for TCP-over-UDP
 
 All of them need to basically design very similar handshake/signaling
 exchanges, they all need a solution for the service identification
 issue, etc. This is undesirable.
 
 If we need to encapsulate something in UDP for the purposes of NAT
 traversal, why aren't we encapsulating IP in UDP, on top of which we
 can run pretty much anything? Instead of requiring that DCCP stacks
 grow support for DCCP-over-UDP, why don't we simply require that DCCP
 stacks implement Teredo or something similar? Why are we solving the
 NAT traversal problem protocol-by-protocol rather than one time?
 
 (The still ongoing NAT traversal discussion in HIP - which is building
 its own NAT traversal solution - has left me convinced that we should
 have pushed harder for the original just use Teredo proposal for HIP
 NAT traversal. We'd be long done.)
 
 Lars