Re: [tsvwg] New Version Notification for draft-touch-tsvwg-udp-options-05.txt

Gorry Fairhurst <gorry@erg.abdn.ac.uk> Mon, 27 March 2017 16:02 UTC

Return-Path: <gorry@erg.abdn.ac.uk>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CD16F12945D for <tsvwg@ietfa.amsl.com>; Mon, 27 Mar 2017 09:02:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=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 hSSgEj4ofNcn for <tsvwg@ietfa.amsl.com>; Mon, 27 Mar 2017 09:02:47 -0700 (PDT)
Received: from pegasus.erg.abdn.ac.uk (pegasus.erg.abdn.ac.uk [139.133.204.173]) by ietfa.amsl.com (Postfix) with ESMTP id 6D74C129482 for <tsvwg@ietf.org>; Mon, 27 Mar 2017 09:02:45 -0700 (PDT)
Received: from dhcp-84da.meeting.ietf.org (t2001067c037001287c16711262d0b5f7.v6.meeting.ietf.org [IPv6:2001:67c:370:128:7c16:7112:62d0:b5f7]) by pegasus.erg.abdn.ac.uk (Postfix) with ESMTPA id E73211B017FA; Mon, 27 Mar 2017 18:59:54 +0100 (BST)
Message-ID: <58D9378A.7010504@erg.abdn.ac.uk>
Date: Mon, 27 Mar 2017 11:02:18 -0500
From: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Reply-To: gorry@erg.abdn.ac.uk
Organization: University of Aberdeen
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:12.0) Gecko/20120428 Thunderbird/12.0.1
MIME-Version: 1.0
To: Joe Touch <touch@isi.edu>
CC: "C. M. Heard" <heard@pobox.com>, Mark Smith <markzzzsmith@gmail.com>, tsvwg <tsvwg@ietf.org>
References: <CACL_3VFeJs7KzG9Bchh15bfZ3CmaOPWcfisEreNoGYK5CsEJ+g@mail.gmail.com> <3a4a6b78-8146-de4c-6246-7bd09de44f1c@isi.edu> <CACL_3VFkr3mGe-yTbvHrTZcKVCpEv3FeSOyoShUxCK5+9Tdqqg@mail.gmail.com> <c79fe3d0-8567-ea7d-72fc-bd33732df60e@isi.edu> <CACL_3VHmoCSo23OWqQFq7upw749CqMK7iazXrBKZARzwbzY5mw@mail.gmail.com> <f97f08d4-0070-437a-e22a-8782497c76eb@isi.edu> <CACL_3VGt2LQ9+01Tv4BjMUOvSj6-HzHeOAQks_r5sOOUsjTDMA@mail.gmail.com> <81ad1cd3-197b-1b19-6358-43e4390fb722@isi.edu> <CACL_3VFwW-RONXeNn_e1r=bQv1jV2eE6_m2s0wegsXzHcUv8LQ@mail.gmail.com> <cce71722-7e5b-a28a-0da6-d4aa4c92a1b0@isi.edu> <CACL_3VEqJF1+ReajsNDewWPHGBikAtgbtxfZvd5wkK7x8aVYpw@mail.gmail.com> <8e7bc6cc-d61f-89d4-c6b1-a5e6135fc0b3@isi.edu>
In-Reply-To: <8e7bc6cc-d61f-89d4-c6b1-a5e6135fc0b3@isi.edu>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/TZ2iGFNgVQyxXBdRMJXQIXm9BY4>
Subject: Re: [tsvwg] New Version Notification for draft-touch-tsvwg-udp-options-05.txt
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Mar 2017 16:02:51 -0000

I'd think CRC-16 is likely to be a good proposal. 32b alignment is 
always good.

Gorry

On 27/03/2017, 10:37, Joe Touch wrote:
> So do we want to recommend a 16-bit value or jump to the 32-bit one?
>
> IMO, for UDP, anything reasonably stronger than the Internet checksum
> should be fine. I was hoping for a 16-bit selection to leave the result
> 32-bit aligned...
>
> Joe
>
>
> On 3/25/2017 7:37 PM, C. M. Heard wrote:
>> On Sat, Mar 25, 2017 at 3:06 PM, Joe Touch<touch@isi.edu>  wrote:
>>> On 3/25/2017 6:26 AM, C. M. Heard wrote:
>>>> On Wed, Mar 22, 2017 at 10:43 PM, Joe Touch<touch@isi.edu>  wrote:
>>>>>> In section 5.4, was a decision made as to what the CRC16 is? Details
>>>>>> will be needed in order to ensure interoperability.
>>>>> That's on my to-do list (I was a bit distracted by these other issues).
>>>>> There are three obvious possibilities:
>>>>>
>>>>> CRC-16-CCITT            used by Bluetooth, X.25, HDLC (4 terms - 0x1021)
>>>>> CRC-16-IBM               used by USB (4 terms -- 0x8005)
>>>>> CRC-16-CDMA2000    used by CDMA  mobile nets (8 terms - 0xC867)
>>>>>
>>>>> There are other analyses that point to other polynomials:
>>>>> https://users.ece.cmu.edu/~koopman/crc/
>>>>>
>>>>> Any suggestions?
>>>> Both the CRC-16-CCITT and CRC-16-IBM polynomials factor into the product
>>>> of x+1 times a primitive polynomial of degree 15 (*op in Koopman's notation)
>>>> and are in a sense optimal for random error patterns. They detect all triple
>>>> errors (and all error patterns of odd weight) for data lengths of 4093 bytes
>>>> or less. The CRC-16-CDMA2000 has a single factor, which is a primitive
>>>> degree 16 polynomial (*p in Koopman's notation), and it will detect all
>>>> double errors for data lengths of 8189 bytes or less. By data length I
>>>> mean of course the length of the data protected by the CRC (not
>>>> including the CRC itself).
>>>>
>>>> There are generic fast table lookup algorithms for all CRC-16 polynomials,
>>>> including automated methods for generating the lookup tables, so that is
>>>> not really a factor in choosing a polynomial.
>>> I that case should we go with CRC-16-CDMA2000?
>>>
>>> Or is there a better/stronger one from the table that's more useful?
>> Actually, CRC-16-CCITT or CRC-16-IBM (which are theoretically equivalent)
>> are ***stronger** than CRC-16-CDMA2000  for datagram payloads up to 32751
>> bits (i.e., CRC + data length = 32767 bits), when errors are random. For
>> datagrams of that exact length It can be proven (again for random errors)
>> that the undetected error rate is no worse than 1/65536, and for lesser
>> lengths simulations bear this out (see, for example,
>> http://doc.utwente.nl/64267/1/schiphorst.pdf). The only reason I can see
>> to choose CRC-16-CDMA2000 would be to provide protection for datagrams
>> longer than 4K bytes, in which case a better choice would be a 32-bit CRC.
>> The standard Autodin/Ethernet/ADCCP/HDLC CRC-32 polynomial is
>>
>> x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+1
>>
>> Although it is a primitive polynomial (without a factor of x+1) it will
>> protect against all triple error patters for datagram lengths of 11450
>> bytes, according to simulations that I ran about 14 years ago, and
>> its undetected error rate (for random errors) can be expected to be
>> under 2^-32. So that's what I would be inclined to recommend.
>>
>> Regards,
>>
>> Mike Heard