[mod.computers.apollo] TCP to 4.3 BSD bug

dennis%cod@NOSC.ARPA (Dennis Cottel) (01/23/87)

I seem to have a bug in the Apollo TCP code when talking to UNIX 4.3
BSD through a gateway.  Apollo doesn't have a 4.3 system to verify
this.  Has anyone else seen it, or can anyone confirm the problem?

Configuration:  Any Apollo node (SR9.2.3, DOMAIN/IX 9.2.3, TCP 2.1)
through an Apollo gateway (DSP80A, COM-ETH) to a VAX running UNIX 4.3
BSD.

Symptom:  The standard input provided to /usr/ucb/rsh contains
duplicated data when delivered to the remote command running on the
VAX.

Details:  As an example, if you execute (on an Apollo node) the command

   cat somefile | rsh unixhost lpr

groups of 512 characters are duplicated in the printout.  What is
happening is that after a certain number of 1024-byte blocks (usually
ten) are correctly transmitted, the VAX receives the next 512 bytes
twice.  This pattern of repetition continues, with the reception of
(n*1024 + 512) bytes (where n varies from 0 to 2 or 3) and then the
duplication of the last 512 bytes.

When talking to a 4.2 BSD system, the Apollo software uses 1024-byte
TCP packets.  4.3 BSD apparently has logic that sets the packet size
down to 512 bytes if the path includes a gateway.  The problem doesn't
appear when the remote host is running 4.2 BSD, or when both nodes are
on the same Apollo ring.  Also, there is no problem with FTP, TELNET,
or RCP.

	Dennis Cottel  Naval Ocean Systems Center, San Diego, CA  92152
	(619) 225-2406     dennis@NOSC.MIL       sdcsvax!noscvax!dennis