Subject: Re: TCP send buffer free space-Conclusion
To: None <itojun@iijlab.net>
From: Ignatios Souvatzis <is@netbsd.org>
List: tech-net
Date: 07/18/2001 21:48:40
On Thu, Jul 19, 2001 at 01:35:06AM +0900, itojun@iijlab.net wrote:
> >SUMMARY:
> >I have two data streams being written to a single socket connection:
> >"Important" data (from a data generator), and "Fast" data (read from a
> >file). I wanted a way to prevent Fast data from filling up my TCP Send
> >Buffer and preventing Important data from getting sent. My thought was to
> >discern the amount of free space in the TCP Send Buffer before writing
> >each Fast data record. If there weren't at least X bytes free, I would
> >delay the write until later. ("Important" data would always get written.)
> >But I didn't know how to find the TCP Send Buffer free space. [Note, I'm
> >speaking from an application level here.]
>
> did you consider TCP urgent data? see sendmsg(2) SEND_OOB case,
> recvmsg(2) MSG_OOB case, and probably SO_OOBINLINE socket option.
err... but... TCP urgent data aren't. That is, it is an urgent pointer, not
urgent data, as far as I understood. especially, it is not really an
effective out of band channel, contrary what the $(FOO)_OOB$(BAR)
constants abused to control it even for TCP make you think...
Regards,
-is