Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1])
 by ietf.org (8.9.1a/8.9.1a) with ESMTP id CAA06741
 for <sip-web-archive@ietf.org>; Tue, 25 Jan 2005 02:52:41 -0500 (EST)
Received: from megatron.ietf.org ([132.151.6.71])
 by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CtLls-0005Ki-J2
 for sip-web-archive@ietf.org; Tue, 25 Jan 2005 03:09:57 -0500
Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org)
 by megatron.ietf.org with esmtp (Exim 4.32)
 id 1CtLSs-0001TL-BP; Tue, 25 Jan 2005 02:50:18 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org)
 by megatron.ietf.org with esmtp (Exim 4.32) id 1CtLQE-0000xk-9I
 for sip@megatron.ietf.org; Tue, 25 Jan 2005 02:47:34 -0500
Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1])
 by ietf.org (8.9.1a/8.9.1a) with ESMTP id CAA06466
 for <sip@ietf.org>; Tue, 25 Jan 2005 02:47:32 -0500 (EST)
Received: from csmail.cs.ccu.edu.tw ([140.123.101.188] helo=mail.cs.ccu.edu.tw)
 by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CtLgs-00059U-1W
 for sip@ietf.org; Tue, 25 Jan 2005 03:04:47 -0500
Received: from localhost (localhost [127.0.0.1])
 by mail.cs.ccu.edu.tw (Postfix) with ESMTP id 6C8045DD48
 for <sip@ietf.org>; Tue, 25 Jan 2005 15:47:20 +0800 (CST)
Received: from mail.cs.ccu.edu.tw ([127.0.0.1])
 by localhost (mail.cs.ccu.edu.tw [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 44700-11 for <sip@ietf.org>;
 Tue, 25 Jan 2005 15:47:19 +0800 (CST)
Received: from 11092010202 (csie0.cs.ccu.edu.tw [140.123.101.220])
 by mail.cs.ccu.edu.tw (Postfix) with ESMTP id 6332E5DD47
 for <sip@ietf.org>; Tue, 25 Jan 2005 15:47:19 +0800 (CST)
From: "Tai-Hsing Yu" <fhubert@ms37.hinet.net>
To: <sip@ietf.org>
Date: Tue, 25 Jan 2005 15:47:12 +0800
MIME-Version: 1.0
X-Mailer: Microsoft Office Outlook, Build 11.0.5510
thread-index: AcUCshROK8itc5kwSlK99H7jgUIGMQ==
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
Message-Id: <20050125074719.6332E5DD47@mail.cs.ccu.edu.tw>
X-Virus-Scanned: by amavisd-new at cs.ccu.edu.tw
X-Spam-Score: 0.7 (/)
X-Scan-Signature: 4d9ae72af46718088458d214998cc683
Subject: [Sip] Questions about request message larger than 1300 bytes
X-BeenThere: sip@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
Reply-To: fhubert@ms37.hinet.net
List-Id: Session Initiation Protocol <sip.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/sip>,
 <mailto:sip-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:sip@ietf.org>
List-Help: <mailto:sip-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/sip>,
 <mailto:sip-request@ietf.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1616295453=="
Sender: sip-bounces@ietf.org
Errors-To: sip-bounces@ietf.org
X-Spam-Score: 0.7 (/)
X-Scan-Signature: f460acdc4aacf7fc5e6f9bd32f8fd8c6

This is a multi-part message in MIME format.

--===============1616295453==
Content-Type: multipart/alternative;
 boundary="----=_NextPart_000_0047_01C502F5.23EFAC40"

This is a multi-part message in MIME format.

------=_NextPart_000_0047_01C502F5.23EFAC40
Content-Type: text/plain;
	charset="big5"
Content-Transfer-Encoding: quoted-printable

Hello,

        I have some questions about handling SIP msgs that are larger =
than 1300 bytes. RFC 3261, chapter 18 as listed, mentions that
if request message is larger than 1300 bytes, it MUST be sent using TCP =
because of the meesage size constraints. But I don=A1=A6t know
how to handle the following scenarios, could anyone help me?=20

1. The UA1 registers to Proxy/Registrar with =A1=A7transport=3Dudp=A1=A8 =
or without =A1=A7transport=A1=A8 parameter. According to RFC3261, the =
proxy
should try to send the request message to UA1 using default transport, =
which means UDP. Now suppose that a request comes and is
larger than 1500, what should the proxy do? Still try UDP first or =
always use TCP to send the request to UA1? If the proxy selects
the first stretagy, and, unfortunately, the message is splitted into =
more than one pieces and only the first one is received by UA1.
The received message is incorrect and might cause UA1 to do incorrect =
response. Can the proxy select the second stretagy, i.e, using
TCP, even the client only registers with =A1=A7transport=3Dudp=A1=A8? =
Which stretagy is correct or better?

=20

2. The UA2 sends the request to proxy using UDP with request message =
size smaller than 1300 bytes. The Via header in the request is
UDP. But the response backs to the proxy is larger than 1500 bytes. What =
should the proxy do? Using TCP or UDP to transmit the
response to UA2?

=20

Any acknowledgement will be deeply appreciated.

Sincerely,

Fish

=20

=A1=A7If a request is within 200 bytes of the path MTU, or if it is =
larger than 1300 bytes and the path MTU is unknown, the request MUST
be sent using an RFC 2914 [43] congestion controlled transport protocol, =
such as TCP. If this causes a change in the transport
protocol from the one indicated in the top Via, the value in the top Via =
MUST be changed. This prevents fragmentation of messages
over UDP and provides congestion control for larger messages. However, =
implementations MUST be able to handle messages up to the
maximum datagram packet size. For UDP, this size is 65,535 bytes, =
including IP and UDP headers.

The 200 byte "buffer" between the message size and the MTU accommodates =
the fact that the response in SIP can be larger than the
request. This happens due to the addition of Record-Route header field =
values to the responses to INVITE, for example. With the
extra buffer, the response can be about 170 bytes larger than the =
request, and still not be fragmented on IPv4 (about 30 bytes is
consumed by IP/UDP, assuming no IPSec). 1300 is chosen when path MTU is =
not known, based on the assumption of a 1500 byte Ethernet
MTU.

If an element sends a request over TCP because of these message size =
constraints, and that request would have otherwise been sent
over UDP, if the attempt to establish the connection generates either an =
ICMP Protocol Not Supported, or results in a TCP reset, the
element SHOULD retry the request, using UDP. This is only to provide =
backwards compatibility with RFC 2543 compliant implementations
that do not support TCP. It is anticipated that this behavior will be =
deprecated in a future revision of this specification.=A1=A8

=20

=20

=20


------=_NextPart_000_0047_01C502F5.23EFAC40
Content-Type: text/html;
	charset="big5"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dbig5">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:=B7s=B2=D3=A9=FA=C5=E9;
	panose-1:2 2 3 0 0 0 0 0 0 0;}
@font-face
	{font-family:"\@=B7s=B2=D3=A9=FA=C5=E9";
	panose-1:2 2 3 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:Arial;
	color:windowtext;}
 /* Page Definitions */
 @page Section1
	{size:595.3pt 841.9pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	layout-grid:18.0pt;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DZH-TW link=3Dblue vlink=3Dpurple =
style=3D'text-justify-trim:punctuation'>

<div class=3DSection1 style=3D'layout-grid:18.0pt'>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>Hello,<o:p><=
/o:p></span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1
face=3D"Times New Roman"><span lang=3DEN-US =
style=3D'font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</spa=
n></font><font
size=3D1 face=3D=B7s=B2=D3=A9=FA=C5=E9><span lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'> I
have some questions about handling SIP msgs that are larger than 1300 =
bytes.
RFC 3261, chapter 18 as listed, mentions that if request message is =
larger than
1300 bytes, it MUST be sent using TCP because of the meesage size =
constraints.
But I don</span></font><font size=3D1><span lang=3DEN-US =
style=3D'font-size:9.0pt'>=A1=A6</span></font><font
size=3D1 face=3D=B7s=B2=D3=A9=FA=C5=E9><span lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>t
know how to handle the following scenarios, could anyone help me? =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>1. The UA1 =
registers to
Proxy/Registrar with </span></font><font size=3D1><span lang=3DEN-US
style=3D'font-size:9.0pt'>=A1=A7</span></font><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span lang=3DEN-US
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>transport=3D=
udp</span></font><font
size=3D1><span lang=3DEN-US =
style=3D'font-size:9.0pt'>=A1=A8</span></font><font size=3D1
face=3D=B7s=B2=D3=A9=FA=C5=E9><span lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'> or without
</span></font><font size=3D1><span lang=3DEN-US =
style=3D'font-size:9.0pt'>=A1=A7</span></font><font
size=3D1 face=3D=B7s=B2=D3=A9=FA=C5=E9><span lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>transport</s=
pan></font><font
size=3D1><span lang=3DEN-US =
style=3D'font-size:9.0pt'>=A1=A8</span></font><font size=3D1
face=3D=B7s=B2=D3=A9=FA=C5=E9><span lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'> parameter.
According to RFC3261, the proxy should try to send the request message =
to UA1
using default transport, which means UDP. Now suppose that a request =
comes and
is larger than 1500, what should the proxy do? Still try UDP first or =
always
use TCP to send the request to UA1? If the proxy selects the first =
stretagy,
and, unfortunately, the message is splitted into more than one pieces =
and only
the first one is received by UA1. The received message is incorrect and =
might
cause UA1 to do incorrect response. Can the proxy select the second =
stretagy,
i.e, using TCP, even the client only registers with </span></font><font =
size=3D1><span
lang=3DEN-US style=3D'font-size:9.0pt'>=A1=A7</span></font><font =
size=3D1 face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>transport=3D=
udp</span></font><font
size=3D1><span lang=3DEN-US =
style=3D'font-size:9.0pt'>=A1=A8</span></font><font size=3D1
face=3D=B7s=B2=D3=A9=FA=C5=E9><span lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>? Which
stretagy is correct or better?<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'><o:p>&nbsp;<=
/o:p></span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>2. The UA2 =
sends the
request to proxy using UDP with request message size smaller than 1300 =
bytes.
The Via header in the request is UDP. But the response backs to the =
proxy is
larger than 1500 bytes. What should the proxy do? Using TCP or UDP to =
transmit
the response to UA2?<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'><o:p>&nbsp;<=
/o:p></span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>Any =
acknowledgement will be
deeply appreciated.<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>Sincerely,<o=
:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>Fish<o:p></o=
:p></span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'><o:p>&nbsp;<=
/o:p></span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1
face=3D"Times New Roman"><span lang=3DEN-US =
style=3D'font-size:9.0pt'>=A1=A7</span></font><font
size=3D1 face=3D=B7s=B2=D3=A9=FA=C5=E9><span lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>If a
request is within 200 bytes of the path MTU, or if it is larger than =
1300 bytes
and the path MTU is unknown, the request MUST be sent using an RFC 2914 =
[43]
congestion controlled transport protocol, such as TCP. If this causes a =
change
in the transport protocol from the one indicated in the top Via, the =
value in
the top Via MUST be changed. This prevents fragmentation of messages =
over UDP
and provides congestion control for larger messages. However, =
implementations
MUST be able to handle messages up to the maximum datagram packet size. =
For
UDP, this size is 65,535 bytes, including IP and UDP =
headers.<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>The 200 =
byte
&quot;buffer&quot; between the message size and the MTU accommodates the =
fact
that the response in SIP can be larger than the request. This happens =
due to
the addition of Record-Route header field values to the responses to =
INVITE,
for example. With the extra buffer, the response can be about 170 bytes =
larger
than the request, and still not be fragmented on IPv4 (about 30 bytes is
consumed by IP/UDP, assuming no IPSec). 1300 is chosen when path MTU is =
not
known, based on the assumption of a 1500 byte Ethernet =
MTU.<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'>If an =
element sends a
request over TCP because of these message size constraints, and that =
request
would have otherwise been sent over UDP, if the attempt to establish the
connection generates either an ICMP Protocol Not Supported, or results =
in a TCP
reset, the element SHOULD retry the request, using UDP. This is only to =
provide
backwards compatibility with RFC 2543 compliant implementations that do =
not
support TCP. It is anticipated that this behavior will be deprecated in =
a
future revision of this specification.</span></font><font size=3D1><span
lang=3DEN-US style=3D'font-size:9.0pt'>=A1=A8</span></font><font =
size=3D1 face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'><o:p></o:p><=
/span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'><o:p>&nbsp;<=
/o:p></span></font></p>

<p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D1 =
face=3D=B7s=B2=D3=A9=FA=C5=E9><span
lang=3DEN-US =
style=3D'font-size:9.0pt;font-family:=B7s=B2=D3=A9=FA=C5=E9'><o:p>&nbsp;<=
/o:p></span></font></p>

<p class=3DMsoNormal><font size=3D1 face=3DArial><span lang=3DEN-US =
style=3D'font-size:
9.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>

------=_NextPart_000_0047_01C502F5.23EFAC40--



--===============1616295453==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors@cs.columbia.edu for questions on current sip
Use sipping@ietf.org for new developments on the application of sip
--===============1616295453==--



