I gathered web server using w5200 + Arduino DUE.
In the LAN everything works great. DUE download speed with up to 350 Kbytes / sec. This I consider a great result.
PROBLEM 1:But when you try to download from an external network - speed drops to 20-50 Kbytes / sec.
Why is this happening?
I have three days of sweat to deal with this problem .
Another question is not clear.
For the test I send a package to the DUE function client.write (buf, size_buf).
If the size is more than 1460 bytes buf the speed LAN 350 Kbytes / sec, if the size is less than or equal to 1460 the rate drops sharply to 70-60 Kbytes / sec.
I understand that in 1460 the value w5200 Sn_MSS register (Socket n Maximum Segment Size Register).
PROBLEM 2:I am wondering why the rate of falls in this, even though a package is sent over with a large buffer.
Outside a localnet, the connection packet will gather info about the maximum packet size. Some (many) devices cannot accept packets larger than about 1490 bytes. If the route to the destination server has a packet limit of 1492 bytes, it will return a "fragmentation required" message.
edit: I'm not certain if the internal buffers in the w5200 are capable of packets larger than 1500 bytes unless you do some serious mods to the configuration.