[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: MSRP: Are REPORTs per-chunk or per-message? (was Re: [Simple]Review of draft-ietf-simple-message-sessions-08 - Byte Ranges inREPORTs)
Wow, the quotes have gotten long here--will attempt some surgery...
(inline)
On Oct 12, 2004, at 3:40 AM, Cullen Jennings wrote:
[...]
I think people imagined roughly 3 different orders of magnitude of
large.
I'll roughly describe these as
1) Larger than a MTU but less than a few kilobytes
2) Around a 10 K message - certainly something that takes considerable
time
to transfer across some wireless links.
3) Around 100k over slow link of perhaps megabytes over fast link.
We agreed that we needed more than 1 and at least 2. Not sure if we
ever
agreed on 3 or not but when we went to do 2, things got to more or less
where they are in the current MSRP document.
I think the difference between 2 and 3 is, do we want it to be possible
to recover from a failed message by sending a subset of the original
message.
[...]
If we have a concerete proposal, then what is all the fuss about?
Perhaps the proposal is still lacking text to explain. Will keep
working on
clarifying it.
There has _not_ so far been a concrete proposal that explicitly states
whether reports are per-chunk or per-message. The latest draft revision
_implies_ per chunk, as it includes a byte-range, and we say that a
sender is allowed to split the chunks of a message between one session
and another in a failover condition.
But, I think people are assuming a lot more complexity than necessary.
I think it comes down to saying something to the effect of, if a report
includes a byte-range, then it refers to the subset matching those
bytes. If not, it refers to the entire message. The sender is free to
take any action it likes on that knowledge, including ignoring it.
Remember, we are not _requiring_ retransmission of failed messages.
As I mentioned in a previous email, I think that sending failure
reports per-message will cause quite a bit of complexity at relays, and
require them to keep state around for failed messages.
After giving this some thought, I think the behavior is likely to
differ between endpoints and relays. For the reason I mention above, I
think relays should send failure reports on a per-chunk basis.
Relays don't send success reports, so we don't have to worry about that
combination.
On the other hand, endpoints will rarely send failure reports, and if
they do, it will be because of some sort of whole message error. I
offer the sending of a failure report with a 415 status as an example;
the whole message has failed and resending is not likely to help.
Therefore, any failure reports sent by an endpoint should be
per-message.
I see that there _can_ be some use for byte-ranges in success reports.
As Hisham mentioned, if the endpoint receives a partial message, but
some timeout occurs before the rest is received, then it could send a
success report on the bytes actually received. But I now convinced this
creates more complexity than value.
So, a concrete proposal:
Relays that send a failure report because they are unable to forward a
chunk to the next hop due to a transport error, or because they receive
a failure response from the next hop for that chunk, SHOULD copy the
byte-range header value from the chunk to the failure report.
Endpoints sending a success or failure report SHOULD NOT include a
byte-range header.
Endpoints that receive a report containing a byte-range header MUST
assume the report only covers the bytes listed. If no byte-range header
is present, or if the range is ambiguous , the endpoint MUST assume the
report covers the entire message. How an endpoint uses this information
is a matter of local policy.
[...]
I agree - I had imagined that if you did not get a positive REPORT for
the
whole thing after some implementation defined time, you would notify
the
user that the message had not worked. I can imagine that success
reports on
a subset of the message might be used to update status but they would
not
be used in deciding what needed to be retransmitted.
Assuming, of course, that positive reports were requested in the first
place.
The current document has reports for failure of a chunk as meant for
retransmission purposes.
Ok, this is acceptable for me.
I _think_ my proposal above agrees with this statement.
[...]
_______________________________________________
Simple mailing list
Simple at ietf.org
https://www1.ietf.org/mailman/listinfo/simple