Guo-Fu Tseng: Implement and Port Ethernet Drivers for gPXE

Notes: TCP Window Size and RX Csum Offload Benchmark

I've done some benchmark with imgfetch a 500MByte image via HTTP. The test was done by directly connect two computer with a CAT.6 cable:

The RX checksum offload source tree

The following table shows the result of different TCP_MAX_WINDOW_SIZE and with or without RX checksum offloading.

HTTP imgfetch benchmark
WinSize Without RX Offload With RX Offload
Window Size 1024 byte step
4096 136Mbit/s 136Mbit/s
5120 200Mbit/s 208Mbit/s
6114 224Mbit/s 264Mbit/s
7168 264Mbit/s 288Mbit/s
8192 256Mbit/s 272Mbit/s
9216 368Mbit/s 416Mbit/s
10240 368Mbit/s 400Mbit/s
11264 424Mbit/s 496Mbit/s
12288 448Mbit/s 536Mbit/s
13312 496Mbit/s 616Mbit/s
14436 496Mbit/s 592Mbit/s
15360 528Mbit/s 704Mbit/s
Window Size 2048 byte step
16384 528Mbit/s 696Mbit/s
18432 768Mbit/s
20480 824Mbit/s
22528 880Mbit/s
24576 896Mbit/s
Full Speed
32768 536Mbit/s 896Mbit/s
65532 536Mbit/s 896Mbit/s