changer MTU ethernet

bonjour, j'aimerais changer le MTU de la lib ethernet afin de naviguer au mieux sur internet pour envoyer des données sur mon server distant.

merci d'avance

J'ai quoi la MTU utilisé dans la lib... j'ai jamais regardé... C'est quoi ton problème ? Je suppose que le w5100 envoi un paquet a chaque client.print(buffer), il suffit déjà d'augmenter la taille du buffer pour accélérer la vitesse. Mais tu va avoir rapidement un problème de mémoire si tu veux une MTU de 1500o, car il n'y a que 1500o de mémoire dans une UNO...

Bonjour,

Changer le MTU est surement possible en manipulant les registres du W5100 mais ce n’est pas une bonne idée, ça n’apportera que des problèmes à mon avis.

L’ethernet shield est conçu pour des débits relativement faible (<200Ko/s), et dans tout les cas le port SPI qui relie l’ethernet shield et l’arduino n’as pas une vitesse extensible à l’infini.

j’ai trouvé une parade assez bête pour ca.
au lieu de modifier la lib et tout ce qui peut en découler, j’ai simplement mis un router avec un ddwrt dedans et modifié sa conf.

infobarquee: j'ai trouvé une parade assez bête pour ca. au lieu de modifier la lib et tout ce qui peut en découler, j'ai simplement mis un router avec un ddwrt dedans et modifié sa conf.

C'est une solution effectivement :grin:

Par contre cela ne devrait pas vraiment améliorer la vitesse de transmission vu que les paquets arriverons à l'arduino avec le même MTU donc la même vitesse ? En faite cela ne va que engorger le routeur durant le transfert ?

(Qu'on m’arrête si je dit une connerie, le choix d'une valeur pour le MTU et sa gestion entre différents matériel réseau m'as toujours était une chose abstraite ...)

Je ne pense pas que tu puisse empêcher qu'on envoi au W5100 des trames de longueur 1500. (ou alors j'ai oublié comment un device peut annoncer qu'il ne supporte pas la MTU standard)

Donc le problème ne me semble pas contournable en réception depuis le W5100 lui même

Slt,

On peut changer la Mss du W5100, je viens de faire le test, cela fonctionne.

il faut rajouter dans w5100.h

void W5100Class::setMss(SOCKET _s,uint16_t _mss) { writeSnMSSR(_s,_mss); }

et dans ethernetclient.cpp, au niveau de la création de socket

W5100.setMss(_sock,la_nouvelle_taille);

(C'est la mss, donc 1420 max pour du tcp)

Mais bon, je ne comprend toujours pas a quoi cela sert ! A part pour passer des vpn configuré avec les pieds :-)

ca peut servir dans le cas ou un firewall est configuré autrement qu'avec un mtu normal et comme tu le dis configuré avec les pieds.

Oui, le cas classique ou l'admin à bloqué les icmp need fragment... mais en 2012, on n'en voit, rassure moi :-) D'ailleurs, Question... le W5100 sait-il gérer les icmp need fragment... idée de TP :-)