Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 alpha 4/15/85; site ucbvax.ARPA Path: utzoo!watmath!clyde!burl!ulysses!ucbvax!tcp-ip From: tcp-ip@ucbvax.ARPA Newsgroups: fa.tcp-ip Subject: Tinygrams on 4.2BSD Message-ID: <7901@ucbvax.ARPA> Date: Fri, 7-Jun-85 02:36:39 EDT Article-I.D.: ucbvax.7901 Posted: Fri Jun 7 02:36:39 1985 Date-Received: Sat, 8-Jun-85 01:35:43 EDT Sender: daemon@ucbvax.ARPA Organization: University of California at Berkeley Lines: 17 From: bellcore!karn@BERKELEY (Phil R. Karn) It is true that TCP on 4.2 effectively does a push every time the user process does a write() system call. It really has no choice since there are no semantics by which the user can indicate a push in the write call. But it doesn't have to be a problem IF programs call the standard I/O library instead. Stdio tries to fill its 1K buffers completely before calling the system, and the user is given a push-like subroutine fflush() for when it is really needed. The only real offenders (besides character-at-a-time Telnet) are those few programs that insist on using the bare I/O system calls directly to write small amounts of data; they should be taken out and shot. They give lousy performance even when a network isn't involved. I'm still looking forward to the new version which is rumored to include John Nagle's transmission algorithms. Phil