taille d'envoi par socket en c - C - Programmation
Marsh Posté le 04-02-2009 à 13:08:47
Ha oui je voulais aussi savoir si c'étais possible de faire mon serveur de maniere à y acceder à partir d'internet sans intervenir physiquement sur le routeur.j'avais lu il y a longtemp quelque chose qui parlait de faire passer les données par le port 80.
cordialement Dyroj;
Marsh Posté le 04-02-2009 à 19:51:11
Bah, le débit est juste une quantité de donnée que tu envois par unité de temps. Donc crée un timer, incrémente une variable qui comptabilise tous les octets envoyés durant ce laps de temps. Quand le timer se déclenche, debit = quantite_envoyee / delai_du_timer (donc octet par seconde). Puis tu remets quantite_envoyee à 0. Une fois que tu connais le debit, estimer la durée est trivial.
Sinon pour ce qui est de la taille du bloc d'envoi, il faudrait idéalement que la taille soit égale au MTU (Maximal Transfert Unit). Ça tourne en général autour de 1500 octets sur les réseau dérivé d'ethernet. Au dela, la couche réseau va te fragmenter ton paquet de manière transparente. Dans tous les cas n'espère pas envoyer des trames de tailles arbitraires, attends toi à une fragmentation.
Marsh Posté le 04-02-2009 à 20:18:03
merci beaucoup,
mais j'ai pas tres bien compri comment je peut avoir le delai avec le timer, car le timer sert a executer une tache toute les x second. la quantite_envoyee est la quantité doctet que jevoi a chaque send ou la taille total du fichier.
et pour le nombre d'octet que a envoyer a chaque send, tu me dit que audela de 1500 octets sa se defragmente, mais moi jarive a envoyer 1000000 octet sans qu'il y ai des perte au niveau du fichier.
Marsh Posté le 04-02-2009 à 20:24:33
je vien desayer avec 1500 octet c'est tres long (par cable) comparer 1000000 octet.
Marsh Posté le 04-02-2009 à 20:40:01
y a jamais de perte niveau TCP, c'est une garantie. qu'après tu perdes des trames, c'est pas lié à la quantité de données du tout. Que t'envoies 1To ou 1ko, si t'as 5% de perte, t'as 5% de perte.
Marsh Posté le 04-02-2009 à 20:42:56
mais alors quelle est la meilleur quantiter d'octec que je peut envoyer,
moi je pence que sa vari selon le debit, est ce vrai?
Marsh Posté le 04-02-2009 à 21:42:01
dyroj a écrit : mais alors quelle est la meilleur quantiter d'octec que je peut envoyer, |
Tu peux envoyer autant que tu veux jusqu'à la fin des temps, c'est juste le la durée de la transmission qui varie. Envoie ce qui est nécessaire et pas plus ni moins et c'est tout.
Marsh Posté le 04-02-2009 à 21:47:38
oui mais la durée de transmission vari selon la taille de la trame.non?
Marsh Posté le 04-02-2009 à 21:51:50
la durée est fonction de la quantité de données. que ça transite par semi remorque ou par petite cuillère, si ça roule à 90km/h ça ne change pas la vitesse.
Marsh Posté le 04-02-2009 à 21:54:48
tres bonne comparaisont avec la cuillere et le semi remorque
Marsh Posté le 04-02-2009 à 22:03:57
bande passante = diamètre du tuyau
délai de transmission / latence = temps qu'il faut pour aller d'un bout du tuyau à l'autre
vitesse = combien de temps tu mets à pour faire couler un truc d'un bout à l'autre.
Marsh Posté le 04-02-2009 à 22:21:20
je ne voit pas comment je pourai savoir le diametre du tuyau(si tu parle du cable alors c koi pour la wifi), et pour la latence je narive pas a savoir comment utiliser le timer pour sa, car le timer execute une tache toute les x seconde(ou autre).
Marsh Posté le 04-02-2009 à 22:22:09
ton wifi à 54Mbps/s, tu veux transmettre 4GB, avec une latence à 200ms, ça te prend combien de temps ?
Marsh Posté le 04-02-2009 à 22:25:22
dyroj a écrit : je ne voit pas comment je pourai savoir le diametre du tuyau(si tu parle du cable alors c koi pour la wifi), et pour la latence je narive pas a savoir comment utiliser le timer pour sa, car le timer execute une tache toute les x seconde(ou autre). |
un cable logique. un canal de transmission.
tu veux transmettre un document de 2Mo sur ton lien satellite à 512Kbps avec une latence de 2s. Ca te prend combien ?
même question si maitenant ton document ne fait que 20ko ?
tu en déduis quoi à propos des liens à forte latence ?
Marsh Posté le 04-02-2009 à 22:27:25
mais tu ma pas dit comment on calcule de temp pas raport au debit...
Marsh Posté le 04-02-2009 à 22:31:48
ou alors, t'as un train avec une voiture qui peut conduire 50 personne à 90km/h, tu dois transporter 20 personne à 100km de là. Tu mets combien de temps à les transporter ? Même question si maintenant tu dois transporter 200 personnes mais que tu as 5 voitures à ton train ?
Au final, c'est quoi le ratio passagers / temps de transport ?
Marsh Posté le 04-02-2009 à 22:38:33
mais si g pas la formule je peut rien faire.
(tu ferai un bon prof si tu n'en est pas deja un)
Marsh Posté le 04-02-2009 à 22:42:01
dyroj a écrit : mais si g pas la formule je peut rien faire. |
bah réponds aux questions et déduis-en une formule.
Marsh Posté le 04-02-2009 à 22:46:18
quesque tu veut dire par un train avec une voiture.
tu veut dire quil y a une voiture dans le train.
Marsh Posté le 04-02-2009 à 22:50:20
Si t'as jamais pris le train, c'est pas gagné...
En voiture !
Marsh Posté le 04-02-2009 à 23:06:35
je pence enfin avoir trouver :
temp restant = (taille fichier - taille_envoyer)/ debit(vitesse)
Marsh Posté le 04-02-2009 à 23:07:45
je me suis rapeller d'un court de reseau, mais chui pas sur que c'est bien sa
Marsh Posté le 04-02-2009 à 23:20:07
dyroj a écrit : je pence enfin avoir trouver : |
euh j'ai parler nulle part de fichier, de taille à envoyer ni de débit(vitesse) ...
Marsh Posté le 04-02-2009 à 13:08:20
Mes salutation a tous,
j'ai créer un programme d'envoi de fichier par socket, il marche tres bien par cable mais comme je suis en wifi c'est un peut lent. jenvoi 10000 octect a chaque send, est ce que c'est tros ou pas assez.
je voudrai aussi savoir si vous avez une idée de comment je pourait savoir le debi du transfert et avec calculer estimer le temps qu'il reste. et si possible modifier le debit + ou -.
++