Ca depend de plusieurs paramètres, mais ca depend surtout de quel protocole est utilise, UDP ou TCP.
L'UDP c'est un protocole "On espère que ca arrive". En gros le serveur envoie des paquets vers le client en espérant que ca lui arrive. dans ce cas la, aucun effort n'est fait pour récupérer des paquets ou les mettre en attente, en gros il y a de forte chances pour que pleins de paquets disparaissent. De toute façon il est impensable d'envoyer des paquets plus gros que je dirais 5Kb, avec de si gros paquets la chance pour qu'il y ait des erreurs grandit plus fortement qu'avec des paquets de 1Ko par exemple. De plus l'UDP se fiche de l'ordre... c'est a dire que si tu envoies en UDP (et je simplifier énormément la) "1", puis "2" puis "3", ca pourrait arriver en gros 3,2,1 ou 1,3,2 ou 2,3,1, etc... Si avec l'UDP, le paquet se perd, tanpis, en gros... si il est corrompu, tanpis... si il arrive trop top ou trop tard, tanpis... Ou alors il faut prendre des precautions au niveau du programme recevant les paquets pour faire lui meme la detection d'erreurs au niveau software (le programme lui meme).
Le TCP est different. Il y a deja une detection-correction d'erreur présente au niveau du protocole lui meme. TCP garantie que ton paquet arrivera dans l'ordre, sans erreurs et qu'il arrivera a destination, tout simplement. Il arrive que des paquets TCP se perdent, mais le protocole se charge alors de les renvoyer jusqu'à ce qu'ils arrivent, et dans l'ordre. TCP est donc plus lent, mais aussi plus fiable...
Maintenant pour ton petit "scenario"... Si tu "forçais" techniquement ton serveur a t'envoyer de "gros" paquets... Deja je ne suis pas sur que le protocole TCP les accepte (de 1...) De plus, si ta connection est trop lente pour telecharger tout a la fois, des paquets se perdront, c'est meme sur. Ca sera alors en gros, un framboisier bien confus si tu veux mon avis.
Les programmes de telechargement en general utilisent le principe d'accuse de reception.
Simplification:
Le Client dit au serveur "Envoie moi tel bout du fichier"
Le serveur envoie ce bout (generalement en un paquet qui varie en taille selon le programme).
Le Client recoit le paquet, il verifie qu'il a la bonne taille, et renvoie un message au server:
"Paquet XXXX ok, envoie moi le suivant".
Dans l'ideal, ceci se passe plusieurs fois par secondes, ce qui donne une vitesse accrue. Si un paquet ne recoit pas d'accuse de receptionm il est renvoye par le serveur jusqu'à obtention d'un accuse de reception.
Donc en fait (apres les longues explications):
1) Cela depend du programme, mais a mon avis c'est impossible, car il faut renvoyer au serveur un message disant que tu as recu le paquet XXXX, et pour connaitre cet identifiant il faudrait avoir recu ce paquet... Maintenant ca depend totalement du protocole, du programme, etc, mais a mon avis, c'est impossible, car en plus en general ces programmes ont une capacite upload limite dans le programme donc 1Mo/s me semble bien gros... Mais si tu reussissait a le faire, ca serait considere comme du hacking, puisque c'est l'exploitation d'une faille d'un programme et une utilisation accrue d'un reseau... Les MMORPGs comme Star wars galaxies ont une close disant que tu n'as pas le droit d'utiliser trop de bande passante, par exemple...
2) Ca disparaitrait surement, une partie serait mise en attente, mais en gros tu ne recevrait pas quelque chose d'utile...
|