James B. VanBokkelen (JBVB@AI.AI.MIT.EDU)
Mon, 21 Dec 87 12:28:46 EST
There are at least two interpretations of the TCP "URG" bit and its
The Berkeley Unix interpretation is as you describe in your posting.
Out-of-band reads return the (16-bit value, I guess) that the Urgent
pointer points at (the byte & the byte before, maybe?).
Another interpretation has the TCP pass the caller the number of bytes
that are to be treated as Urgent (from where the caller has read so far),
and it is up to the caller to read/process so as to consume the urgent
information. This doesn't imply that the urgent information is any
particular size, or even that it is all in one place in the pending
data (the caller is assumed to be able to figure it out).
The only widely-implemented spec that uses Urgent (that I know of) is
Telnet, where a number of IAC-x sequences are sent as Urgent data. In
the cases I've seen, Telnet uses the 2nd interpretation.
Given the disparate interpretations, I've advised people to stay away from
it, and we haven't been particularly eager to expand (or document to the
user) our implementation thereof. When I read RFC-793, the 2nd (non-BSD)
interpretation seems more reasonable, but I wasn't there when it was written.
James B. VanBokkelen
FTP Software Inc.
This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:40:16 GMT