Re: Timer for chunked messaging. Was [Re: Fwd: Re: Adrian Farrel's Discuss on draft-ietf-simple-chat-16: (with DISCUSS and COMMENT)]
Saúl Ibarra Corretgé <[email protected]> Wed, 5 Sep 2012 16:46:47 +0200
| Newsgroups | gmane.ietf.simple |
|---|---|
| Message-ID | <[email protected]> |
Hi, On Sep 5, 2012, at 3:32 PM, Miguel A. Garcia wrote: > In relation with the issue of chunked messages, where the MSRP switch does not receive a last chunk due to, e.g., the sender's connection is dropped, I have a proposal and a doubt. > > Proposal: > > Once the MSRP switch receives the last chunk of a message, > and that chunk is successfully sent to each of the > recipients, the MSRP switch MUST discard the temporary > storage of MSRP Message-ID and the associated list of > recipients. > > > In some occasions, a sender might suffer a transport error > condition (such as loss of connectivity) that makes the > sending of a message incomplete, e.g., some chunks were > received by the MSRP switch, but not all of them. This is a > behavior already considered in the core MSRP specification > (see <xref target="RFC4575"> RFC 4575 </xref> Section > 5.4). The problem in the context of a chat room lies with > the usage of temporary storage for fast forwarding. In order > to prevent attacks related to the exhaustion of temporary > storage of chunked messages, on receiving a first chunk of a > message, where the MSRP switch is using the fast forward > method, the MSRP switch MUST set a timer for controlling the > reception of the remaining chunks. This timer can be re-set > every time a new chunk of the same message is received. When > this timer fires, the MSRP switch MUST considered that the "the MSRP switch MUST consider that the" > sending of the message was aborted, and MUST delete all the > temporary storage pertaining to this message. > > Now the doubt. If the above condition happens, I would like to know what is best to do with respect the recipients. These are in a strange state, where they have received a number of chunks of a message, but not all the chunks, and they will not receive any more. What the MSRP switch can do: > > a) Nothing. The recipients have received a number of a chunks of a message; the message is not complete. The MSRP switch will send other messages (perhaps originated by other participants), but this chunked message will remain in the endpoints until the endpoint crashes^H^H^H^H^H^H^Hrecovers from that situation. > > b) A nice MSRP switch will create a new chunk, as it if were received from the sender, where there won't be any content, but just the abort flag "#". At least this one will have a bigger likelihood of endpoint recovery. > > I propose to do b). I guess there are no security issues, even if TLS is used, because the TLS connection is ending at the MSRP switch. > > Can anyone think of other options? Is option b) reasonable? > I agree with taking the b option approach, it's reasonable. Regards, -- Saúl Ibarra Corretgé AG Projects