Vitesse de téléchargement et écriture disque

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour !

Je me pose une petite question qui peut se produire dans un cas de figure particulier. Admettons que je possède un disque ayant une capacité d'écriture réelle de 50 mo/sec et que ma connexion a un débit ascendant de 100 mo/sec -oui c'est particulier …. Que se passe-t-il au niveau de la vitesse de téléchargement et/ou du disque ?

  1. L’émetteur sera averti via le destinataire et ajustera son upload ?
  2. Ma mémoire RAM sera utilisée pour stocker les informations en attente d'écriture ?
  3. Les paquets en 'trop' sont 'droppés' et sont ensuite redemandés à l'émetteur (dans le cas du protocole TCP) ?
  4. Je suis à coté de la plaque ?

J'ai essayé de Google ça, même en anglais, mais aucune réponse ne m'a apporté satisfaction. Par ailleurs en tentant de faire l'analogie avec un exemple concret, je n'y trouve pas de réponse.

Quelqu'un saurait éclairer ma lanterne ?

Merci !

+0 -0

Cette réponse a aidé l'auteur du sujet

C'est très très intéressant comme question.

D'un point de vue théorique, tu peux taper dans google "handle back pressure", cela va te présenter des résultats pour des systèmes de mail, de serveur web, etc…

Tu peux spécifier un langage de programmation pour avoir des exemples concret d'implémentation. C'est un problème notamment en JS quand on fait de l’asynchrone (donc, en JS, puisque soyons sérieux, qui fait du js sequentiel ?)

Tu a raison sur TCP, en UDP, si tu n'a pas de protocole de couche supérieur capable de comprendre ce qui se passe (la perte de datagramme), le débit ne sera pas ajusté. (tu peux essayer avec iperf entre 2 machines d'un réseau locale).

+0 -0
Auteur du sujet

J'ai développé une bibliothèque en C# qui est un wrapper de sockets async pour utiliser tout ça plus facilement, si les paquets en 'trop' sont détruits, alors au niveau de la couche applicative je ne suis pas informé et continue a recevoir mon flot de données dans l'ordre (dans les règles du TCP …). Peut-être qu'avec un sniffer je pourrai éliminer ou non la première et deuxième possibilité. Je bloque juste sur la mise en place, mon upload fait 1,8 mo/max

Je vais me renseigner du coté d'iperf car jamais utilisé cet outil … Si j'ai des infos je vous en ferai part !

Édité par Nemergal

+0 -0

La norme Ethernet (IEEE 802.3) a intégré un mécanisme de contrôle de flux via des trames "PAUSE". Ce n'est pas un mécanisme parfait comme l'explique la page wikipédia : https://en.wikipedia.org/wiki/Ethernet_flow_control

Oui, les deux cartes réseaux vont négocier entre-elle le débit maximum de leurs échanges :)

Tenebrum

Source ?

Je ne suis pas si sûr. Je teste actuellement des routeurs et un processeur dispose de deux interfaces ethernet reliées par un bus interne. Sauf que sur de petits paquets (par exemple 64 et 128 octets), il ne peut tout simplement pas faire transiter 1 Gbps full duplex entre les deux.
Je ne suis pas un spécialiste réseau, mais dans mes souvenirs (c'était il y a 2 mois) la machine qui envoyait les trames envoyait bien le bon nombre de trames mais en réception c'était pas ça. J'ai regardé les stats des phys ethernet (qui sont des puces à part, le processeur étant sur la couche au-dessus) et il n'y avait pas de paquets droppés et la vitesse négociée était toujours la même.

Bref tout ça pour dire que j'ai un doute sur le fait que les deux interfaces négocient le débit. Pour moi le débit c'est plus la "norme" : 10 Mbps, 100 Mbps, 1 Gbps, 10 Gbps, etc. Ces vitesses sont définies dans des registres (MDIO) et derrière les bus "MAC" sont configurés pour s'y adaptés.

La trame "Pause" permet d'adapté le débit en stoppant les transferts, mais quand ils ont lieu, ils se font au débit négociés à la base (10, 100, 1000 Mbps). C'est peut-être ce que tu veux dire Tenebrum ? :)

Il semble qu'il y a un mécanisme implémenté au niveau IP et TCP par la RFC 3168 : Explicit Congestion Notification : https://en.wikipedia.org/wiki/Explicit_Congestion_Notification
Il semble être dit qu'en gros les paquets sont jetés s'il y a de la congestion.

+1 -0

Bonsoiiir,

Merci ZeqL pour tes précisions, je me trouvais au boulot quand j'ai répondu, j'avais pas trop trop le temps de détailler.

Effectivement, c'est sur un système comme la "Trame Pause" que le transfert de fichier "adapte" sa vitesse à la machine cliente :)

Cordialement

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte