TCP slow with tiny packets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We are writing data to an Epson TM-T88II printer via an Ethernet
connection running at 10/Mbit over a TCP/IP socket (jetdirect) using a
2.4.20 Kernel and experience very poor performance.  The Epson is
advertising a 16 byte window which is very small.  We have used both
netcat and Richard Stevens sock program to test data transfers to the
Epson.  The data being sent is simply cat'ed to either program as
standard input via a pipe.  We have set TCP_NODELAY on the socket but
this does not appear to improve performance.  I have attached a binary
tcpdump capture showing a connection from 10.10.29.94 (client PC running
netcat) to the Epson printer at 10.10.29.220.  There are several delays
that are confusing to us:

1st:  After the 3-way connection handshake is done there is almost a 3
second delay before any data is appearing on the wire.  There is no
delay in the application which is writing the data on the socket; it is
writing as fast as possible.

2nd:  There is a pattern of 0.2 sec delays alternating every 1 or 2
writes.  Again the application is sending data as fast as possible to
the socket.

Our thoughts are that there is some problem in the Kernel that is
triggered by these small 16 byte writes.  Perhaps a buffer is attempting
to be filled in order to be more efficient and a timer is causing the
0.2 sec. delays.

We have tested this same procedure on both Solaris, HPUX, and OpenBSD
and all those systems write the data across the network without any
delays.

A pointers on what to look for in the applications or in the Kernel are
appreciated.

Thanks,
-ab

Attachment: linux-to-printer.gz
Description: GNU Zip compressed data


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux