RE: [AVT] Comments on the selective retransmission draft

Carsten Burmeister <burmeister@panasonic.de> Fri, 29 June 2001 18:04 UTC

Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA21303; Fri, 29 Jun 2001 14:04:48 -0400 (EDT)
Received: from optimus.ietf.org (localhost [127.0.0.1]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id OAA20183; Fri, 29 Jun 2001 14:00:10 -0400 (EDT)
Received: from ietf.org (odin [132.151.1.176]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id OAA20129 for <avt@ns.ietf.org>; Fri, 29 Jun 2001 14:00:07 -0400 (EDT)
Received: from jenny.panasonic.de (mail.pel.panasonic.de [194.221.52.13]) by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA21039 for <avt@ietf.org>; Fri, 29 Jun 2001 13:59:23 -0400 (EDT)
Received: from atrgburc (u2.xcc.de [192.129.35.66]) by jenny.panasonic.de (__________PEL__Mail-Server__________) with SMTP id <0GFO00AIWZVC5K@jenny.panasonic.de> for avt@ietf.org; Fri, 29 Jun 2001 14:54:48 +0200 (MET DST)
Date: Fri, 29 Jun 2001 14:54:49 +0200
From: Carsten Burmeister <burmeister@panasonic.de>
Subject: RE: [AVT] Comments on the selective retransmission draft
In-reply-to: <30F2DED23724D311902D0008C7EABAFB0500B23E@daeis06nok>
To: Ietf-Avt <avt@ietf.org>
Message-id: <NFBBIKDKLMBPPGNIBAGGIEJOCIAA.burmeister@panasonic.de>
MIME-version: 1.0
X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0)
Content-type: text/plain; charset="iso-8859-1"
Content-transfer-encoding: 7bit
Importance: Normal
X-Priority: 3 (Normal)
X-MSMail-priority: Normal
Content-Transfer-Encoding: 7bit
Sender: avt-admin@ietf.org
Errors-To: avt-admin@ietf.org
X-Mailman-Version: 1.0
Precedence: bulk
List-Id: Audio/Video Transport Working Group <avt.ietf.org>
X-BeenThere: avt@ietf.org
Content-Transfer-Encoding: 7bit

Dear David,

thanks for your comments to the retransmission draft. Please see my comments
(and hopefully also clarifications) inline. Any further discussions are more
than welcome!

>
> Hello,
>
> I have reviewed the 'retransmission payload format' draft
> (draft-ietf-avt-rtp-selret-01.txt) and I have the following
> comments/questions. Please clear any misunderstanding in my reading of the
> draft.
>
> *Detection of high priority packet loss
> It seems that the detection mechanism for high priority packets
> specified in
> the draft does not work.
> The draft says 'If the receiver gets a low priority packet, it has only to
> verify if it has received the indicated last important packet'.
> For example let us assume that the following packets are sent. I
> show below
> the packet sequence number, the packet type (RTX or LP) and the sequence
> number of the indicated last important packet for an LP type packet:
> SN, RTX
> SN+1, LP, SN
> SN+2, RTX (lost)
> SN+3, LP, SN+2 (lost)
> SN+4, RTX
> SN+5, LP, SN+4
> SN+6, LP, SN+4
> If packet SN+2 and SN+3 are lost, the receiver won't be able to
> detect that
> the important packet SN+2 is lost and that it should request
> retransmission
> for that packet.
> Here is another example:
> SN, RTX
> SN+1, LP , SN
> SN+2, RTX (lost)
> SN+3, RTX
> SN+4, LP, SN+3
> SN+5, LP, SN+3
> SN+6, LP, SN+3
> If the important packet SN+2 is lost, the receiver won't be able to detect
> it. More generally, if important packets are sent consecutively, the
> receiver is able to detect (at best) the loss of the last
> important packet.
> In practice, this is a major limitation. In effect, we should
> expect bursts
> of important packets. For example, an I frame would be typically
> fragmented
> in consecutive packets which would all be of high priority.
>

Yes, your are right: For these cases it does not work the way you describe
it. But, let me start from the beginning:

In the first versions of our draft we had a different header format, with
different fields, one of those was the second sequence number. With this
field the problems you described did not occur. However the drawback was
that you MUST send an additional header for all packets, even though you
might need not the functionality of selective retransmission requests.
That's how we came to the new format.

Here, if we do not need the selective retransmission request functionality,
we can send all packets in the usual way, without an additional header. Only
the retransmissions are transmitted with the new payload format. This would
be the usual case, where the bit rate on the back channel is not that
critical, so that retransmission decisions are made only at the server.

The client could make such retransmission request decisions only by other
means, not subject to the draft. In general it would send a retransmission
request for all lost packets. Please note that one feedback packet may
contain several retransmission requests, by the means of the bit mask of
lost packets, described in the draft-fukunaga-avt-low-delay-rtcp-02. (A new
version of the draft, merged with the new timing rules to send RTCP feedback
will be submitted within the next days!)

But we considered also the following case, where we need the selective
retransmission request functionality: The client has a very low bit rate
connection back to the server (maybe a control channel is used or the
allowed RTCP bit rate limits the number of feedback messages ...) and only
very few high priority packets are sent downlink, e.g. once a second or even
less. In this case the Low-Priority payload format can be used. The problems
you described above are not likely to occur, because there are only very few
high priority packets. If there were more, the client would not be able to
request retransmissions anyway, because of the limited bit rate on the
return channel.

Besides that, the client is able to detect the loss of several packets. It
can also detect that at least one high priority packet was among the lost
packets. Hence a clever client implementation would request the
retransmission of all lost packets. This is no overhead on the
return-channel, because it can send up to 15 retransmission requests in one
feedback packet as described above. The final retransmission decision is at
the server, and the server knows about the priority of the packet.

> *Multiple retransmission algorithm:
> Instead of retransmitting a packet with its original SN, a retransmitted
> packet sequence number 'is increased by one over the previous
> packet sent'.
> It has the following consequences:
> Multiple retransmission does not work if the NACK is lost on the feedback
> channel. This seems to be a very strong limitation on the scheme. A
> retransmission scheme should be robust to loss on the feedback channel.

Yes, we are not 100% reliable. But we do not claim to be neither. The
decision was to use a timer based scheme, ACKs or NACKs. The timer-based
scheme has the drawback that additional delay is introduced, especially if
you have variable RTTs. ACKs have the drawback of quite high traffic load on
the back channel. However you are free to use ACKs. There are also ACK
messages defined in draft-fukunaga-avt-low-delay-rtcp-02 and thus also in
the new draft that will appear now (please note, that ACKS are limited to
unicast!).

Since our focus was clearly on "near-real-time" rather than reliability, we
have chosen to use NACKs, also in the examples of the retransmission draft.
The payload formats are not limited to NACKs, however very useful in that
case.

> For a retransmitted packet, the original SN is unknown by the
> receiver (only
> TS is known): The original sequence number is definitely needed by the
> receiver. It will tell in which order to pass the packet to the receiver.
> The timestamp is not enough for that purpose.
>

Retransmissions are sent in the retransmission payload format. Page 6 of the
draft shows the format of the additional header. There you can see that a
Delta RTP Sequence Number is transmitted (or the least significant bits, if
we care about additional header sizes). This value is the difference of the
current RTP SN to the original RTP SN. Thus the client is able to
reconstruct the original RTP SN.

> *LP packet retransmission:
> It is not clear wether the receiver is allowed to request the
> retransmission
> of low priority packets. If it is forbidden, there is a lack of
> flexibility
> in the scheme. If it is allowed to request low priority packets, the whole
> purpose of selective rtx is defeated
>

We defined only the payload formats and gave two examples how these could be
used for different use cases. Of course you are allowed to send
retransmission requests for all packets. However you are bound to the timing
rules of RTCP, which give you some limitations (see
draft-wenger-avt-rtcp-feedback-02 and the new merged draft with the feedback
formats, that will be submitted these days for details about the new RTCP
timing rules we would like to use. But also the new timing rules give strict
limitations, however you are sometimes allowed to give "virtual" immediate
feedback.).

I do not think that the purpose of selective rtx is defeated! RTCP bit rate
is limited and thus a scarce resource. If you detect that you have lost only
low priority packets, you can save a feedback message. Saving one feedback
message now, means that you might be able to send the next feedback message
more early, and here you might want to request high important packets.

I hope that helps a little bit. Comments are welcome!

BR,
   Carsten



_______________________________________________
Audio/Video Transport Working Group
avt@ietf.org
http://www.ietf.org/mailman/listinfo/avt