for W5100 the TCP stack is in the W5100 chip. for enc28j60 the TCP stack is handled by MCU
That makes a lot of sense.
For enc28j60: by sending multiple packets on the same connection, it was possible to transfer about 128k bytes per second, which I believe is as much as possible for the 10Base-T connection.
(Lib: STM32duino/libraries/Serasidis_EtherCard_STM at master · Serasidis/STM32duino · GitHub)
For the W5100 I did not find code samples for sending multiple packages for comparison with the ENC28J60.
Does anyone know how to send multiple packets using the W5100?