Path: utzoo!attcan!uunet!ginosko!gem.mps.ohio-state.edu!tut.cis.ohio-state.edu!ucbvax!A.ISI.EDU!CERF
From: CERF@A.ISI.EDU
Newsgroups: comp.protocols.tcp-ip
Subject: Re: TCP Urgent Data Handling
Message-ID: <[A.ISI.EDU]30-Sep-89.21:04:04.CERF>
Date: 1 Oct 89 01:04:00 GMT
References: <4982@omepd.UUCP>
Sender: daemon@ucbvax.BERKELEY.EDU
Organization: The Internet
Lines: 28

Bob,

The most sensible implementation of URGENT POINTER is to mark the
byte just past the end of the urgent message. If the message is
broken into segments, one could continue to set URG=1 and
UP="byte number 1 past the last byte of urgent data". Resetting
URG and UP is OK, too, so long as the recipient remembers UP
until the received in sequence bytes exceed the last byte of
urgent data.

The implementation which sets UP to just past the data of each
segment isn;t necessarily broken, but it seems unnecessary
to implement in that fashion. 

The question of first or last byte of an urgent message caught
me by surprise. At the TCP level, the only thing you can
specify is where the urgent data ends, not where it starts.
The interface between the process wanting to send urgent 
information and the kernel TCP service needs to have a way for
the process to say where the urgent data ENDS, since that is
the information that the TCP can convey.

The receiving process will need clues in addition to those provided
by TCP to distinguish the urgent from non-urgent information -
these semantic and syntactic matters were left to the protocol
layer above TCP to deal with.

Vint