[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 RangesinREPORTs)





Peter Ridler wrote:
Hi All,

I have seen a lot of messages flying back and fourth on this for some time
now.  I am a new comer to the Simple group and do not know the total history
of this topic as of yet and have kept my head down for that reason.
However, I do see some things that may effect our application and would like
to state my 10 cents worth.

First of all I will use small messages (1-2K) so chunking is not a real
issue to me. I would like to be able to turn it on/off or maybe have the
size negotiated at call setup time (maybe in the SDP of the SIP INVITE!!).

You can do that.

But some people believe that IM sessions are often expected to provide file transfer capabilities, and that this protocol must tolerate that to be competitive.

When chunking does occur I believe a End-To-End acknowledgment is required
to make sure any relay's did not loose a chunk somehow.

You can do that too. (Its optional because some people didn't want it.)

> Also, maybe just
the relay to relay need to do a message (chunk) acknowledgment between
themselves and not include the Endpoint UA.

I became interested in MSRP because I thought it was a session message
system. The session that I believe that is in control is SIP.  I need to be
able to tell if my destination Endpoint is available and will accept the
message session (just like a phone call).  I also need to be able to
transfer the session to different Endpoints or to place the session on hold
(just like a phone call).  I saw that SIP would take care of all the session
things and that MSRP was another media format the Endpoints could
communicate in (like RTP is for voice, MSRP would be for text).

Yep. That is all stuff we are after.

> My concern
here is that it is becoming a stand alone system that just might work with
SIP.

This is just the normal division of responsibility thing. It isn't any different than RTP, which can be used with SIP, but isn't restricted to SIP.


We haven't included anything that we didn't think was needed for use with SIP, and I have heard of nobody who is actually planning to use it without SIP.

One example I have seen that concerns me is the elevator case.... As far as
I'm concerned, if the session has dropped, all transfers are broken
(discarded) and a new SIP Session would need to be established before the
file transfer (large message) could begin again....just like if you are on
your cell phone, the elevator door closes, the call drops and so does your
conversation.

I don't think we have a requirement here any stronger than that for sip voice. But I do think that as time goes on the requirements will be there for more robustness in general. In the elevator case with a sip voice call, it is the RTP stream that will probably notice there is a problem. At that time the endpoint(s) can decide to drop the call, or they can attempt to reinvite in order to test the signaling channel, and perhaps reestablish a voice link if the signaling still works.


In the elevator case, the signaling probably wouldn't work, so the call would drop.

The case we have been more concerned with is when an intermediary to the call fails, in particular a MSRP relay that is being used to get through a firewall and/or to log the conversation, etc. In that case the sip path will still work, so it becomes possible to reestablish the media stream and continue.

> You need to redial to start the session over again. Asking a
Endpoint UA to maintain state for a disconnected call does not make sense to
me.

Depends on what is disconnected. If just the media, it may be reasonable. We do realize that there will be different levels of sophistication in the implementations of MSRP. Simple ones may not recover, while more sophisticated ones might. Some people won't care, while those that do will choose implementations that meet their expectations.


	Paul

--Peter


-----Original Message----- From: simple-bounces at ietf.org [mailto:simple-bounces at ietf.org] On Behalf Of Cullen Jennings Sent: Tuesday, October 12, 2004 4:41 AM To: hisham.khartabil at nokia.com; Paul H Kyzivat; rjsparks at nostrum.com Cc: simple at ietf.org Subject: Re: MSRP: Are REPORTs per-chunk or per-message? (was Re:[Simple]Review of draft-ietf-simple-message-sessions-08 - Byte RangesinREPORTs)

On 10/11/04 7:09 PM, "hisham.khartabil at nokia.com"
<hisham.khartabil at nokia.com> wrote:


Cullen,

I apologise if you misunderstood my email. I did not intend to say that there is no requirement to support large messages. I was just questioning the requirement for the robustness of the recovery mechanism and exploring how the protocol would work with a weaker recovery mechanism. You clearly feel strong about such a requirement, so lets assume that it is a requirement for MSRP. I will not take up your proposal to kill the MSRP work immediately ;)



Sorry, I was just having an allergic reaction to reopening this mess.

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.



More comments inline...


-----Original Message-----
From: ext Cullen Jennings [mailto:fluffy at cisco.com]
Sent: 11.October.2004 18:23
To: Khartabil Hisham (Nokia-TP-MSW/Helsinki); Paul H Kyzivat; Robert Sparks
Cc: simple at ietf.org
Subject: Re: MSRP: Are REPORTs per-chunk or per-message? (was Re:
[Simple]Review of draft-ietf-simple-message-sessions-08 - Byte Ranges
inREPORTs)



Right now we have a fairly concrete proposal on the table to make this work.

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.



It does use negative reports on byte ranges and uses positive and negative reports on complete messages. It does not need anything else thought the positive reports on byte ranges can allow the sender to better understand the status of a message and I suggest they be optionally allowed but not required.

As I stated earlier I see value in allowing all this.



Unless someone has a really good reason why the current proposal does not meet their needs, I would really rather not start over.

Neither would I.


On 10/11/04 9:50 AM, "hisham.khartabil at nokia.com"
<hisham.khartabil at nokia.com> wrote:


Lets look at a scenario: Sender is sending a large message

and requests

success report. If the receiver is to report byte-range

success, then the

benefit is that the sender's implementation can determine

if there has been

failure in delivering a byte range and re-send those.


A sender figures out what needs to be resent using the negative not positive reports on a chunk.

It can also do so by checking which byte range it did not get positive reports for. This is the requirement question I had. I'll repeat it here: Do we want success reports to aid the user in determining what happened to the message s/he sent, or the implementation in recovering from a lost byte range? I think we want the former.




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.


Again, I ask the question of requirements. Are the failure

reports meant for

user consumption or for implementation to recover? I'm

inclined to say we want

the former and therefore suggest that failure reports to be

per message. It is

left as a user decision what to do if that failure report

is received.

The current document has reports for failure of a chunk as meant for retransmission purposes.

Ok, this is acceptable for me.




Remember, this is not a file transfer protocol. It is an

instant messaging

protocol. If the message is large, it is chunked, but it is

still a message

and success and failure reports should be per message. A

message is message,

large or small.


Exactly the opposite requirement was stated before. The argument made before was it I had just transferred 20k over my wireless link and lost the last 1 k block, we did not want to resend the whole 20k. Adam and I both pointed out at that time that this was going to complicate stuff.

Ok , no need to argue further if this is a requirement or not.




Lets now look at Cullen's Elevator problem: Cullen is

sending Ben a large file

using his IM client running on his mobile device. Cullen

walks into an

elevator and looses radio service. When Cullen walks out of

the elevator, he

expects his IM client to continue transmitting from where

it left off.

When Cullen walks into the elevator, any TCP connections

are lost and

therefore Ben's IM client can't report the failure anyway.

Ben's client can

only wait for x number of minutes hoping that Cullen's

client comes back

online and re-establishes the session. Cullen's client does

not know the byte

range that Ben's client has received and can therefore only

commence from

where it has sent the last byte. Is that ok?


no this would not be ok. The relay that was sending a chunk to me when the connection failed will report an error on that chunk (an any others that it is holding) and that data will get retransmitted.

How is it going to report an error when the connection it has with your device is lost?


This is the long thread that Adam, Orit, and I had about why the sender
needs to run a timer so that if the connection to the next hop is lost, an
error can still be reported back. Of course this adds extra load so we have
added the option of turning this on or off. If it is turned off, you won't
get the error and will only be able to use the lack of success report for
whole message after some time to deal with this.





If we continue to think that a message is a message, even

if spread across IM

sessions, then Ben's client can report success or failure

of the message that

was sent across both those sessions.


In this case, Ben and I only had one IM session. It was just that it used a couple of MSRP sessions to transport the data in it.

Ok, whatever the terminology is: do you agree that a success of failure report for a message can be sent to a message that spanned more

than 1 MSRP session?


Yes


Regards,
Hisham

_______________________________________________
Simple mailing list
Simple at ietf.org
https://www1.ietf.org/mailman/listinfo/simple




_______________________________________________
Simple mailing list
Simple at ietf.org
https://www1.ietf.org/mailman/listinfo/simple




_______________________________________________
Simple mailing list
Simple at ietf.org
https://www1.ietf.org/mailman/listinfo/simple