Re: Linux 2.2.2 TCP delays every 41st small packet by 10-20 ms

Richard B. Johnson (root@chaos.analogic.com)
Wed, 3 Mar 1999 15:46:52 -0500 (EST)


On 3 Mar 1999, Henning P. Schmiedehausen wrote:

> becker@cesdis1.gsfc.nasa.gov (Donald Becker) writes:
>
> >On 25 Feb 1999, Ben Gertzfield wrote:
>
> >> I ran into something suspiciously similar to this today; the tulip.c
> >> driver (version 0.90) in 100BaseT full-duplex mode would often deal
> >> extremely poorly with the collisions that full-duplex mode brings
> >> about. I would get runts, giants, and all sorts of nasty packet errors.
>
> >Ackkk!
> >Full duplex mode never has collisions.
> >You were likely trying to use full duplex mode on a CSMA/CD Ethernet.
> >Full duplex can only be used on host-to-host and host-to-switch links, and
> >only when both endpoints are configured or negotiate full duplex.
>
> Hmmm,
>
> things I never really understood:
>
> eth0 Link encap:Ethernet HWaddr 00:10:4B:xx:xx:xx
> inet addr: [...] Bcast: [...] Mask:[...]
> UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
> RX packets:150056148 errors:0 dropped:0 overruns:0 frame:0
> TX packets:170104070 errors:0 dropped:0 overruns:0 carrier:43
> Collisions:937330
> Interrupt:10 Base address:0xe800
>

Well I'll tell you where some 'collisions' may come from. If you have a
switch that has both 100 mb/s and 10 mb/s, and you are sending from
a 100 mb/s wire to 10 mb/s, the way the box throttles is to generate
collisions. Hardware will retry up to 15 times when a 'collision'
occurs without reporting a transmission 'error'. This means that
when you have a 100/10 conversion occurring in a switch, you can
have up to 10 collisions generated for every packet if, and only
if, 100% of the bandwidth is attempted to be used by a transmitter.

With TCP, typically every other packet is ACKed, so there is a natural
throttle that occurs, however, with a lot of UDP, broadcast, or
multicast traffic, you can have a lot of collisions reported if
you have a switch in the data-path that does translations between
100 mb/s and 10 mb/s:

Here is my machine with a nominal amount of network I/O.

eth0 Link encap:Ethernet HWaddr 00:10:4B:2F:F8:21
inet addr:204.178.40.224 Bcast:204.178.47.255 Mask:255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:82802 errors:0 dropped:0 overruns:0 frame:0
TX packets:3260 errors:0 dropped:0 overruns:0 carrier:0
Collisions:0
Interrupt:10 Base address:0xd000

Here is the same machine after I send a lot of packets to another machine
with a 100 mb/s network interface. Note there are no collisions indicated.

eth0 Link encap:Ethernet HWaddr 00:10:4B:2F:F8:21
inet addr:204.178.40.224 Bcast:204.178.47.255 Mask:255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:138719 errors:0 dropped:0 overruns:0 frame:0
TX packets:29648 errors:0 dropped:0 overruns:0 carrier:0
Collisions:0
Interrupt:10 Base address:0xd000

Here is the same machine after I send a lot of packets to another machine
with a 10 mb/s interface. Note there are collisions.

eth0 Link encap:Ethernet HWaddr 00:10:4B:2F:F8:21
inet addr:204.178.40.224 Bcast:204.178.47.255 Mask:255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:149531 errors:0 dropped:0 overruns:0 frame:0
TX packets:32402 errors:0 dropped:0 overruns:0 carrier:0
Collisions:13259
Interrupt:10 Base address:0xd000

Cheers,
Dick Johnson
***** FILE SYSTEM WAS MODIFIED *****
Penguin : Linux version 2.2.2 on an i686 machine (400.59 BogoMips).
Warning : It's hard to remain at the trailing edge of technology.
Bait : plutonium Cuba president assassination killed Iran Honduras
nitrate tritium toluene ammonium subway 747 pits iodine critical nuclear

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/