[AVTCORE] RFC2435 Errata
Julius Friedman <juliusfriedman@gmail.com> Sat, 06 September 2014 19:24 UTC
Return-Path: <juliusfriedman@gmail.com>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DEEEC1A01C5 for <avt@ietfa.amsl.com>; Sat, 6 Sep 2014 12:24:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.911
X-Spam-Level:
X-Spam-Status: No, score=0.911 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_DKIM_INVALID=0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VsC8W6Cz59Jf for <avt@ietfa.amsl.com>; Sat, 6 Sep 2014 12:24:10 -0700 (PDT)
Received: from mail-vc0-x22a.google.com (mail-vc0-x22a.google.com [IPv6:2607:f8b0:400c:c03::22a]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8B7C91A01A8 for <avt@ietf.org>; Sat, 6 Sep 2014 12:24:09 -0700 (PDT)
Received: by mail-vc0-f170.google.com with SMTP id la4so13957820vcb.29 for <avt@ietf.org>; Sat, 06 Sep 2014 12:24:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=q3KLrhGZ08oyd8hBuDIIbC4ogPNFAeBPRPEBEeBAbGE=; b=NIsObLyu/QVWlQ7jnJcGFFBrLKa6jliSMDJqhBFldZ3cbaKd1MnZLHllC612aldsv+ bLpdz8Yk95r0QCsUGFWH5ptWIGql/mJX8QUPVW45F9iR/6ySUnU6AcwQ7eA30pSkrJtw to4CQJ0ebHxQM/mmPEuvkKxDHtDZRBto3MfH41j/BhSUbCJDhIkTCzETVuPPdqcDrsRv oFxZngAJRjQGpC1J1gQ2XkumkzoCStaLP7KM3IF2sUXNHq71UGVBkvHX8MLvLrGI0gzD WNmS1kklvVQfyhiyvb+oEeiYGnO6Lv8yU/ciZIiztJ1tA9V1b4jdvtDO98pIMYRr2h3a BwOA==
MIME-Version: 1.0
X-Received: by 10.220.247.3 with SMTP id ma3mr1817415vcb.29.1410031448355; Sat, 06 Sep 2014 12:24:08 -0700 (PDT)
Received: by 10.220.172.130 with HTTP; Sat, 6 Sep 2014 12:24:08 -0700 (PDT)
Date: Sat, 06 Sep 2014 15:24:08 -0400
Message-ID: <CACFvNHUxPXFv6YGJ_y4X583muv58UG8NecRU94F=Mis96mVv+Q@mail.gmail.com>
From: Julius Friedman <juliusfriedman@gmail.com>
To: avt@ietf.org
Content-Type: multipart/mixed; boundary="089e013c6eca9b9ffe05026a87c6"
Archived-At: http://mailarchive.ietf.org/arch/msg/avt/d5DxVvucAqwemu_1gbWIq3Z-5Xc
X-Mailman-Approved-At: Sun, 07 Sep 2014 09:00:29 -0700
Subject: [AVTCORE] RFC2435 Errata
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 06 Sep 2014 19:26:46 -0000
Hello Gentleman, I have filed some errata for RFC2435, the details of which can be found : http://www.rfc-editor.org/errata_search.php?rfc=2435&rec_status=15&presentation=table I also have an issue regarding RFC2326 which I had originally addresses with Mr. Schulzrinne however I feel this channel may be a better means of conveying and resolving the issue. My problems with RFC2435 are ongoing as I have found yet more errata. The RFC conveys that progressive images are able to be transported however they utilize the FFC2 marker not the FFC0 marker and in most cases have alternate huffman tables, this is also the case for 4:0:0 jpegs. I have provided a few test images which show these problems including several from the JPEG Reference Software which we fail to Packetize and Depacketize correctly using this RFC. Additionally CKYK and RGB are not addressed and I feel that it should be. I have implemented these changes among others to experiment @ https://net7mma.codeplex.com/SourceControl/latest#Rtsp/Server/Streams/RFC2435Stream.cs If you are curious to see the differences. *RFC2326 Problems* ___________________ I have several possible changed regarding RFC2326 but before I get to those I need to address issues I am having in my implementation with several cameras. I would have addressed the working group but I wanted to get your input first and then if applicable proceed further *Issue 1)* RFC2326 Defines a Application Layer Framing for TCP Interleaved Data @ 10.12 Embedded (Interleaved) Binary Data. There are several problems one can encounter when using this framing especially when the server is sending RTSP messages while the client is already in play. The most prominent issue which I am surprised has not come up before is that when Interleaving TCP over Http using the base64 tunneling it is possible to encounter a 0x24, 36 => '$' which is part of the body of the message. This will result in the message body being truncated in transport and a synchronization error in the framing which may take a few seconds to recover from is the truncated body length is over 4 bytes long and may result in frame loss if there are multiple characters in the message which happen to be followed by a valid Context id (Channel). This also is a problem although less so when using plain old TCP Interleaving, when a SET_PARAMETER is used or any request which results in a '$' character being seen in the body of the response. Lastly this can also be a problem for Rtsp servers depending on how they implement the sessions framing for each client e.g. it would also be possible for a client to overrun or break the server by sending requests which contain that character. This brings me to another issue with the framing. *Issue 2)* The RFC makes no statements on what to do if the frame size is determined to be larger then the data actually available on the wire. E.g. { [Ethernet, IP] $, 1, 0x00C1, {24 more bytes} //Channel 0, 28 bytes } In this example it can be seen that the frame size is 28 but the socket only has 24 more bytes (28 total) What should be done in this case? Also what about this case which is much MORE frequent! E.g. { [Ethernet, IP] $, 0, 0xffff, {35242 more bytes} //Channel 0, 65535 bytes } In this example it can be seen that the frame size is 65535 but the socket only has 35242 more bytes (35246 total) *----------* Currently libraries including my own just set the length to the length received but I am wondering as to what you would say as from looking in your libraries TCP is not supported. Currently a quick solution for the problems involving '$' with Rtsp can easily be fixed with a small addendum which required that the Body be escaped of "$", this will resolve the first issue easily. The seconds issue is slightly harder to address and would require a larger more thought out process. It is totally possible to define an alternative framing character (one which also has bits to indicate if the server or client sent the message), and that would help some of the issues which also might become apparent when draft 2.0 of this spec comes out but it is also possible to keep the same character and specify exactly what to do for those cases listed above. I believe that we can either safely discard the packet if there is no relevant context but if there is a relevant context then the problem becomes much harder to solve especially if a new frame starts after the cases listed above and the remaining data is not available on the wire. Thanks for your help!
- [AVTCORE] RFC2435 Errata Julius Friedman
- [AVTCORE] RFC2435 Errata Julius Friedman