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 |