Re: [tcpm] Fwd: New Version Notification for draft-gont-tcpm-urgent-data-00

David Borman <> Tue, 28 October 2008 01:01 UTC

Return-Path: <>
Received: from [] (localhost []) by (Postfix) with ESMTP id 5480428C240; Mon, 27 Oct 2008 18:01:31 -0700 (PDT)
Received: from localhost (localhost []) by (Postfix) with ESMTP id 6C17528C240 for <>; Mon, 27 Oct 2008 18:01:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.522
X-Spam-Status: No, score=-2.522 tagged_above=-999 required=5 tests=[AWL=-1.077, BAYES_00=-2.599, FRT_BELOW2=2.154, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id yJSqqTNAdMeh for <>; Mon, 27 Oct 2008 18:01:29 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 85A643A6859 for <>; Mon, 27 Oct 2008 18:01:29 -0700 (PDT)
Received: from (ala-mail03 []) by (8.13.6/8.13.6) with ESMTP id m9S11HZM026417; Mon, 27 Oct 2008 18:01:18 -0700 (PDT)
Received: from ([]) by with Microsoft SMTPSVC(6.0.3790.1830); Mon, 27 Oct 2008 18:01:17 -0700
Received: from [] ([]) by with Microsoft SMTPSVC(6.0.3790.1830); Mon, 27 Oct 2008 18:01:17 -0700
Message-Id: <>
From: David Borman <>
To: Fernando Gont <>
In-Reply-To: <>
Mime-Version: 1.0 (Apple Message framework v929.2)
Date: Mon, 27 Oct 2008 20:01:17 -0500
References: <>
X-Mailer: Apple Mail (2.929.2)
X-OriginalArrivalTime: 28 Oct 2008 01:01:17.0527 (UTC) FILETIME=[AEC79670:01C93898]
Subject: Re: [tcpm] Fwd: New Version Notification for draft-gont-tcpm-urgent-data-00
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"; DelSp="yes"

I've done a quick scan of this document, and it indicates to me a  
misunderstanding of urgent data.

First, despite what 793 and 1122 say, TCP does *not* have urgent data  
in the sense that people think.  TCP has an urgent *pointer*, that  
indicates an interesting point in the data stream.  *All* the data  
prior to, and including, the Urgent pointer is the urgent data.  It is  
up to the application to decide what that means, and which data  
relative to the urgent pointer is interesting, but typically it would  
be the data just after the urgent pointer.  The application can't say  
"these x bytes of data are the urgent data".

If a TCP data stream writes some data in normal mode and the data gets  
lost, then there is a successive write in urgent mode, then when the  
lost packet is re-transmitted it'll now be transmitted with the URG  
bit and the urgent pointer, turning that data into "urgent data" by  
the 793 definition.  That's not what people think when they first hear  
the term "urgent data", but that's how it works.

It is much easier to understand if you don't use the term "urgent  
data", and just think about the urgent pointer.  The reader goes into  
urgent mode reading data until it gets to the urgent pointer, at which  
point it goes back into normal mode.  All the data is delivered to the  
application in sequence.  TCP does not have an out-of-band data  
delivery mechanism, and this is where the original BSD code got into  
trouble, because it took one byte out of the data stream and delivered  
it to the application out-of-band.  To fix that, the SO_OOBINLINE  
socket option was introduced, and is still around today.  All  
applications that use urgent data should be using the SO_OOBINLINE  
option, there's no excuse for using the old, broken BSD interpretation  
about urgent data.

There isn't anything wrong with the 793/1122 definition of the Urgent  
Pointer.  It might be useful to clarify the description if people are  
still implementing and/or using it wrong, but the definition in  
793/1122 is still correct.

			-David Borman

On Oct 27, 2008, at 6:54 PM, Fernando Gont wrote:

> Hello, folks,
> FYI, we have published a new Internet-Draft entitled "On the  
> implementation of TCP urgent data". The draft is available at: 
>   (see the Abstract on other details bellow).
> Any comments will be more than welcome.
> Thanks!
> Kind regards,
> Fernando
>> A new version of I-D, draft-gont-tcpm-urgent-data-00.txt has been  
>> successfuly submitted by Fernando Gont and posted to the IETF  
>> repository.
>> Filename:       draft-gont-tcpm-urgent-data
>> Revision:       00
>> Title:          On the implementation of TCP urgent data
>> Creation_date:  2008-10-28
>> WG ID:          Independent Submission
>> Number_of_pages: 10
>> Abstract:
>> This document analyzes the current practices for handling TCP urgent
>> data in the current Internet.  It describes how popular TCP
>> implementations process urgent data, and also describes how a number
>> of middle-boxes affect how urgent data is processed by end systems.
>> Additionally, it includes a survey of the processing of urgent data
>> by popular TCP implementations.  This document updates the relevant
>> specifications such that they accommodate current practice in
>> processing TCP urgent data.
> --
> Fernando Gont
> e-mail: ||
> PGP Fingerprint: 7809 84F5 322E 45C7 F1C9 3945 96EE A9EF D076 FFF1
> _______________________________________________
> tcpm mailing list

tcpm mailing list