Networking Performance on Intel architectures

Yair Amir & Jonathan Stanton

Department of Computer Science

Johns Hopkins University


All the machines used for this test were connected by a 100 BaseT Ethernet network using two 3Com LinkBuilder FMS hubs. The chart below specifies each machine used in the tests.




Hardware and OS


Machine

CPU

Ram(MB)

NIC

OS

com5

PPro 200

64

SMC 9332

BSDI 3.0

com3

Pentium 133

64

SMC 9332

BSDI 3.0

ice2

PPro 200

64

SMC 9332

Linux 2.0.31

ice1

Pentium II 266

64

DEC 500 (21140)

Linux 2.0.31

comwin

PPro 200

64

SMC 9332

WinNT 4.0 (2)

win3

PPro 200

64

SMC 9332

Win95


The tests consisted of sending a series of UDP packets from one machine to another. The only processing done upon receipt was checking for corruption and counting packets received and missed. The sender would send a burst of 'b' packets of size 's' and then delay for 't' milliseconds.


The first observation is that both versions of unix (BSDI and Linux) were able to achieve throughput close to the maximum possible on fast ethernet, and the limiting factor was not cpu power since the Pentium II was not able to improve on the Pentium Pro 's performance. The cpu was the limiting factor for com3 which only has a Pentium 133 which proved especially limiting when receiving packets.


Second, neither Windows machine was able to achieve either the sending or receiving rates of the Unix machines. Windows NT could only achieve a rate of 76 Mbits/second when sending point to point and Windows 95 could only achieve a rate of 66 Mbits/seco nd compared to the 95 Mbits/second for unix. The difference in receiving speed was even more significant. Windows NT could only receive 50-55 Mbits/second before beginning to drop significant numbers of packets and Windows 95 was only able to do 3.69 Mbi ts/second on our tests. Even the highest of these rates still show a 40 Mbits/second gap between Windows and Unix.


The third major observation is the existence of a number of anomalies in the results. First, both Windows 95 and Windows NT could not send as fast to an IP broadcast address (of the form 128.220.221.255) as they could to a direct point-to-point address ( like 128.220.221.56). The gap was about 20 Mbits/second for both operating systems. Neither of the Unix systems exhibited this difference and were able to send broadcast packets as fast as unicast packets.


Second, Windows NT exhibited significant performance differences depending on the size of the packet. When sending packets larger then 1024 bytes, even as few as 1030 bytes, it was not able to do more then 44 Mbits/second on unicast packets, which is mor e then 30 Mbits/second slower then the rate for 1024 bytes packets.

The performance differences also appeared in receiving rates. However, the direction of the slow-down was reversed. When receiving packets, larger packets could be received faster and with fewer drops then smaller packets. For example, when using the s ettings 85-1-10000-1450 we achieved between 0 and a few hundred drops, if we change the packet size to 1024 we get around 2000 drops, and if we use a packet size of 1200 we get around 1000 drops, from 1200-1450 it scales down to the 0 to a few hundred we get at 1450. This seems rather inexplicable as the most common case would seem to be smaller packets could be handled faster.


Finally, as a point of comparison one should note that a Pentium 133 running BSDI is able to perform equivalently to or better then Windows NT on a Pentium Pro 200 at sending, and significantly better then Windows 95 on a Pentium Pro 200 at both sending a nd receiving.


Main Results


Machine

Test Type(s,r)

Settings(b,t,n,s)

Time

Lost

Speed

Notes

com5

sending

100-0-100000-1400

11.72

0

95.40



receiving

100-0-100000-1400

11.72

0

95.40


com3

sending

100-0-100000-1400

15.84

0

70.70



receiving

45-1-10000-1400

4.44

0

25.28


ice2

sending

100-0-100000-1400

11.70

0

95.40



receiving

100-0-100000-1400

11.70

0

95.40


ice1

sending

100-0-100000-1400

11.70

0

95.40



receiving

100-0-100000-1400

11.70

0

95.40


comwin

sending

100-0-100000-1024

10.776

0

76.020

Point to Point


sending

100-0-100000-1024

14.682

0

55.79

Broadcast


sending

100-0-100000-1400

25.286

0

44.29

For any size >1024


receiving

100-1-20000-1450

4.12

0->500

56.58

# drops varied dramatically


receiving

85-1-20000-1450

4.70

0

49.25

Stable at 0 drops


receiving

20-1-10000-1024

10.00

20-50

8.19

Much slower receiving smaller packets

win3

sending

100-0-100000-1400

16.15

0

66.272

Point to Point


sending

100-0-100000-1400

24.6

0

45.528

Broadcast


receiving

9-1-10000-1024

22.22

0

3.69