Re: Fwd: Re: Adrian Farrel's Discuss on draft-ietf-simple-chat-16: (with DISCUSS and COMMENT)
Ben Campbell <[email protected]> Tue, 4 Sep 2012 11:07:36 -0500
| Newsgroups | gmane.ietf.simple |
|---|---|
| Message-ID | <[email protected]> |
On Sep 4, 2012, at 10:29 AM, Paul Kyzivat <[email protected]> wrote: > On 9/4/12 9:35 AM, Miguel A. Garcia wrote: > >>> Section 6.1 >>> >>> An MSRP >>> switch that uses this fast forwarding procedure MUST temporarily >>> store the Message-Id of the MSRP message to correlate the different >>> chunks, as well as it MUST temporarily store the list of recipients >>> to which the initial chunks were delivered. >>> >>> The motivaiton is clear. I think you could add that the storage can be >>> released when the last chunk is seen. But what happens when the last >>> chunk is not seen (or delayed)? How temporary is the storage, and how is >>> it released? >> >> Yes, we can add that the temporary storage is released when the last >> chunk is seen or after a reasonable time passes. >>> >>> Or do we assume that because MSRP uses TCP (or similar) that loss will >>> always be accompanied by connection failure and so that is the only >>> trigger needed to abandon temporary storage? >> >> Yes, on one side, the assumption is that if a last chunk is not seen is >> because there has been a transport failure. Since TCP is used, then the >> TCP connection was broken, and is in the process of being re-established. >> I am more concerned about what happens if the last chunk is not seen at >> all, I am not sure the state the MSRP session will be, even if the >> connection is re-established. > > Because a failed TCP connection may be reestablished, and the chunk sent over the new connection, you can't use connection loss as a trigger for giving up on incomplete chunked messages. > > The receiver has no firm way to distinguish between a chunk that has been a chunk that has been lost and one that has simply been delayed. This has to be dealt with via implementation policies and heuristics. That's a good point. While a connection failure ends the "session", the endpoints can attempt to reestablish a new session and send the remaining chunks over it. So I concur the best we can offer is to wait a "reasonable time". I can see "reasonable" being different for a high-volume switch than for an end-user endpoint. > > Thanks, > Paul > _______________________________________________ > Simple mailing list > [email protected] > https://www.ietf.org/mailman/listinfo/simple