Subject: RE: [SIP] Multi-message UDP datagrams (probably not specified beh aviour)

From: Jonathan Rosenberg <[email-masked]>
Date: Mon, 23 Oct 2000 13:50:17 -0400

> -----Original Message-----
> From: Piotr S. Kossowski [mailto:[email-masked]]
> Sent: Monday, October 23, 2000 1:42 PM
> To: unlisted-recipients
> Cc: [email-masked]
> Subject: [SIP] Multi-message UDP datagrams (probably not specified
> behaviour)
> 
> 
> 
> Hello,
> 
> After further studying of Multiple response per UDP datagram issue,
> and Content-Length header, I suppose that inaccuracy may appear.
> 
> Scenario: first let's forget about single UAC that sends
> many messages in one datagram.
> Let's assume that in UDP datagram received by UAS there are 
> two messages,
> however (perhaps, because of unique implementation of proxy that
> multiplexes messages to one datagram...). These messages may
> be not correlated and both did NOT contatin Content-Length,
> and both have correct syntax (and semantics, as well).
> Their orginators assumed that UAS would distinguish body
> from message according to section 6.18 of the spec:
> 
> "(...)If a server receives a UDP request without Content-Length,
> it MUST assume that the request encompasses the remainder of 
> the packet."
> 
> So UAS starts parsing of message and it assumes that the body
> is to the end of the packet. And this is not true because
> such body will contain body from the first message and all the
> remainder: headers from the second message plus the second
> body etc.

Well, thats because the implementation that has sent multiple responses has
erred. If it puts multiple responses in a packet it has to use
Content-Length, else what you have
described will happen.

> I have also another question:
> 
> Table 4 from section 6.4 of the spec. assumes for Content-Length
> in Methods to be "m*", what indicates that the header SHOULD be sent, 
> but servers need to be prepared to receive requests without 
> that header
> field.
> 
> Is there any important reason for "m*" instead of "m" for 
> this header ?

Yes. It was not mandatory in rfc2543. So, for backwards compatibility,
you must be prepared to deal with that (of course, an rfc2543 implementation
would still need to put CL in the response if it were sending multiple
messages per datagram).

---
Jonathan D. Rosenberg                       72 Eagle Rock Ave.
Chief Scientist                             First Floor
dynamicsoft                                 East Hanover, NJ 07936
[email-masked]                     FAX:   (973) 952-5050
http://www.cs.columbia.edu/~jdrosen         PHONE: (973) 952-5000
http://www.dynamicsoft.com

_______________________________________________
SIP mailing list
[email-masked]
http://lists.bell-labs.com/mailman/listinfo/sip

---

From: "Piotr S. Kossowski" <[email-masked]>
Date: Mon, 23 Oct 2000 21:05:04 +0200

> Content-Length, else what you have

If an orginator of multiple messages was rfc2543-compatibile
entity, not using of C-L was allowed, as you wrote. 
Saying "erred" did you mean "not according to rfc2543BIS recommendation"?

Piotr