Re: Fwd: Re: Adrian Farrel's Discuss on draft-ietf-simple-chat-16: (with DISCUSS and COMMENT)
Paul Kyzivat <[email protected]> Tue, 04 Sep 2012 11:29:49 -0400
| Newsgroups | gmane.ietf.simple |
|---|---|
| Message-ID | <[email protected]> |
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. Thanks, Paul