Subject: RE: [Simple] Comments on message-sessions-02- ending a session

From: [email-masked]
Date: Thu, 6 Nov 2003 11:26:54 +0200

> -----Original Message-----
> From: ext Paul Kyzivat [mailto:[email-masked]]
> Sent: Wednesday, November 05, 2003 9:30 PM
> To: Khartabil Hisham (NMP-MSW/Helsinki)
> Cc: [email-masked]
> Subject: Re: [Simple] Comments on message-sessions-02- ending 
> a session
> 
> 
> [email-masked] wrote:
> > 
> > - Section 7.4.4:
> >    - About when to stop sending responses to SEND request.
>  >      I would require that the initiator of the BYE
>  >      (or any signalling request that terminates the 
> message session)
>  >      should continue to send 200 responses to SENDs until it has
> >      received a 200 for the SIP BYE. The recipient of the SIP BYE
>  >      should cease responding to SENDs as soon as it sent a 200 for
>  >      the SIP BYE. This allows more outstanding SENDs to complete.
> 
> I don't think this is good enough. Consider:
> 
> 	X-----R------Y
> 
> X has sent a large message, but for some reason R has been 
> buffering it, 
> so that none has reached Y. Y thinks things are idle, and sends a BYE.
> 
> What should X do when it receives the BYE? It could wait for 
> a response 
> to its message for sending the 200 on the BYE. But if the message is 
> large, the BYE might time out before the message fully 
> arrives at Y so 
> that Y may respond to it. Or X could send the the 200 for the BYE 
> immediately. But then its less likely to get a response to 
> the message.
> 
> What X needs to know is whether the messages it has sent have been 
> processed by the recipient. Its especially important to know 
> this in a 
> graceful shutdown case like this.
> 
> I think the key is that in a graceful shutdown, a response 
> must be sent 
> for every message that is processed by the receiving end. Once having 
> sent or received signaling initiating the shutdown of the 
> session it may 
> stop processing messages. Then, for the messages not 
> processed, it may 
> either send an error response of some sort, or else send no response.
> 
> For this to be beneficial, both ends need to drain the connection, 
> processing responses, as long as they have any unacknowledged 
> messages 
> outstanding.
> 
> Message delivery failure will be minimized if both sides continue 
> processing incoming messages, and sending responses to them, until an 
> eof is received on the connection. This is even after the 
> signaling is 
> all completed.

This might work, but you have to make the restriction that an endpoint MUST NOT initiate any further SEND requests once it has sent or received a message session termination request (a SIP BYE for example).

Also, and endpoint MUST NOT terminate a message session if it is still receiving a large message. It MUST first send a 500 to that message indicating to the relay or the peer endpoint that it does not wish to continue receiving this large message. It can then terminate the session.

/Hisham

> 	Paul

_______________________________________________
Simple mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/simple

---

From: Paul Kyzivat <[email-masked]>
Date: Thu, 06 Nov 2003 17:19:46 -0500

> This might work, but you have to make the restriction that an endpoint MUST NOT initiate any further SEND requests once it has sent or received a message session termination request (a SIP BYE for…

Yes, of course.

> Also, and endpoint MUST NOT terminate a message session if it is still receiving a large message. It MUST first send a 500 to that message indicating to the relay or the peer endpoint that it does…

To be a graceful close, yes. Nothing terrible happens if it doesn't do 
this, but perhaps more of that large message than necessary will be 
transmitted.

	Paul

---

From: Paul Kyzivat <[email-masked]>
Date: Thu, 06 Nov 2003 17:19:46 -0500

Yes, of course.

	Paul