On Sun, Nov 12, 2000 at 05:23:21PM +1100, Angus Lees wrote:
> > DATA1 -> DATA2 -> ACK1 -> ACK2 ...
> >
> > So why is this not happening, or am I misunderstanding here?
>
> what you want is a nagle algorithm ;)
Not at all. What he wants is Delayed ACK.
> if you want to combine the writes on your end, you either need to turn
> on nagle (will not *always* combine them they way you want - as you
> know) or hack the telnet code to write more than one character at
> once.
Nagle will never be a solution for something occuring at the App level as
this is. eg, Nagle will _never_ combine two write()s which occur after a
delay.
> (TCP_CORK is another way of combining the writes. but i didn't want to
> explain that here. see tcp(7). note that "this option cannot be
> combined with TCP_NODELAY".)
TCP_CORK is yet another example of Linux bloat. writev() is the correct
(and portable) way of controlling this.
> just keep in mind that its your telnet *servers* that aren't behaving
> correctly. to expect sequential key presses to always arrive in the
> same packet is pretty unreasonable, given all the things that could
> happen along the way.
Actually, it's not the telnet server which is doing the interpretation,
it's the app at the other end. The timing is set by some spec or other
(VT52+ I'm guessing, but I couldnt be bothered checking) so that they can
tell the difference between a true escape character, and an escape
character which is part of an extended character.
Scott.
--
SLUG - Sydney Linux User Group Mailing List - http://slug.org.au/
More Info: http://slug.org.au/lists/listinfo/slug