"Not support IP Fragmentation"

Dear all users,

please some one can explain me more better what this sentence “Not support IP Fragmentation” mean ?
==> doeas it mean that the maximum size foe each served file is about 1500 bytes ?
or can we serve by example an image of 40KB ?

what are the limitations in case of using the W5500 as web server ?
i read “8 sockets simultaneous”…
does it mean that 1 socket is using for each documents requested by the web browser ? by example if an HTML page is composed by
1 HTML
1 CSS
1 javascript file
and 10 images

is it a problem ?

or a socket is equivalent to a connection : 1 TCP server and by example 7 UDP client max ?

thanks for any clarification

best regards
Phil

Hi,

IP Fragmentation is a special function to send/receive data over low bandwidth network.
If you’re not in the environment where IP Fragmentation is really needed, then don’t care it.
You can send and/or receive even bigger than several Giga Bytes file. Don’t worry.

Regarding to the number of concurrent connection, you can use maximum 8 sockets simultaneously.
But if you coordinate the sequence of connections, of course, you can get any HTML pages which consists of more than 8 files.

Thx,

javakys

Hello Javakys

thanks for your reply !

"But if you coordinate the sequence of connections"
how you can do that ? if i’m right, you can’t specify such think to the web browser !?..
each request of the web browser will consume 1 socket until the end of the requested file ?

thanks for your info
best regards

I am also interested to hear James’s clarification about it. I was writing web server some time ago (still did not finish) and maybe he can add some value explaining what he meant :slight_smile:

In general - if you use Chrome - always keep in mind it has very annoying bug - it opens one or even more “sleeping” connections for about 10-15 seconds, doing nothing through it. I asked people on Chrome support forum https://productforums.google.com/forum/#!topic/chrome/Q-gfRJLCCjg;context-place=topicsearchin/chrome/spare$20connection$20, but did not get anything material or consistent. They just do not care about embedded device developers.

Hello,

I’m sorry to make you confused.
Actually there is no way to coordinate the sequence of connection while communicating with Web browser.
So it is best to restrict the number of links used in the main html to maximal 8.
If all files will be transferred is small enough, then all files will be transferred well even though the number of files are more than eight.
However when a web page has more links than eight and the size of link files is big enough, some date would not be sent to users’ browser.

To avoid this situation, we recommend users embed CSS/JS codes into a html file instead of writing in separate files to reduce the number of used sockets. And for simple image, we recommend to use CSS than a separate file.

Below is the example web page of WIZ550Web from WIZnet.
https://github.com/Wiznet/WIZ550web/blob/master/WIZ550web_Webpages/0_Basic_Demopages/index.html

I think this is the best solution by now.
I’m sorry again for making you confused.

BR,

javakys

Hello

well i rapidly check your example.
what i can see is that the CSS and script are embedded inside the HTML page.
ok but, we can see that these images (inside the CSS) , use some URL (image are not encoded and included in the CSS (bas64 by example).
CSS part may be common to all HTML pages of the web server. but JS are often specific for each page …
so each image will consume a socket …
so, the goal is to have not more than 8 sockets called by each HTML page … right ?

and if image (or script or anything else) are bigger than 1500Bytes, it will work, even if ‘IP fragmentation’ is not supported … right ??

thanks, regards

Hello,

Yes, you’re right.

Yes, Correct.
There will be no problem as long as there is not any extremely narrow bandwidth network between Web server system using W5500 and your web browser.
Even though some image files are bigger than couple of MBytes or GBytes.

Thx.

BR,
javakys

I can give you one small insight I learned several days ago. Firefox supports configuration item to limit number of connections per server (Chrome does not have such setting). Thus you can decrease number of connections Firefox makes to your W5500 from 6 to, let’s say, 4 or even 2, and then you will be able to have 2 or 4 clients connecting concurrently to the webserver based on W5500.

Hello Eugeny,

Thank you for good information.

BR,
javakys

I understand this thread is old, but for the benefit of others I’d like to note that by supporting “Connection: keep-alive” properly in your webserver you can easily handle web pages consisting of more than 8 files, as browsers will reuse open sockets.

Chrome now limits the number of concurrent sockets open to a given server to 6, and shares those sockets among tabs in an open browser instance, and FireFox and Opera have similar limits. If you manage sockets well in your webserver by proactively disconnecting sockets to ensure you always have one listening on port 80 (and another on port 443 if you support TLS), having only 8 hardware sockets is not nearly the limitation it appears to be when first considering the problem.

One of the pages I used to test my webserver loads requires the transfer of 11 files. It works flawlessly in Chrome, FireFox, Opera and the Android version of DuckDuckGo browser.