taille d'envoi par socket en c

taille d'envoi par socket en c - C - Programmation

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 -.
++

Reply

Marsh Posté le 04-02-2009 à 13:08:20   

Reply

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;

Reply

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.

Reply

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.

Reply

Marsh Posté le 04-02-2009 à 20:24:33    

je vien desayer avec 1500 octet c'est tres long (par cable) comparer 1000000 octet.

Reply

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.

Reply

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?

Reply

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,
moi je pence que sa vari selon le debit, est ce vrai?


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.

Reply

Marsh Posté le 04-02-2009 à 21:47:38    

oui mais la durée de transmission vari selon la taille de la trame.non?

Reply

Marsh Posté le 04-02-2009 à 21:50:18    

non

Reply

Marsh Posté le 04-02-2009 à 21:50:18   

Reply

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.

Reply

Marsh Posté le 04-02-2009 à 21:54:48    

tres bonne comparaisont avec la cuillere et le semi remorque

Reply

Marsh Posté le 04-02-2009 à 21:55:09    

c'est quoi bande passante du lien

Reply

Marsh Posté le 04-02-2009 à 21:58:13    

et quand tu dit vitesse tu parle bien du debit?

Reply

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.


Message édité par Taz le 04-02-2009 à 22:20:40
Reply

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).

Reply

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 ?

Reply

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 ?


Message édité par Taz le 04-02-2009 à 22:26:27
Reply

Marsh Posté le 04-02-2009 à 22:27:25    

mais tu ma pas dit comment on calcule de temp pas raport au debit...

Reply

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 ?

Reply

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)

Reply

Marsh Posté le 04-02-2009 à 22:42:01    

dyroj a écrit :

mais si g pas la formule je peut rien faire.
(tu ferai un bon prof si tu n'en est pas deja un)


bah réponds aux questions et déduis-en une formule.

Reply

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.

Reply

Marsh Posté le 04-02-2009 à 22:50:20    

Si t'as jamais pris le train, c'est pas gagné...
En voiture !

Reply

Marsh Posté le 04-02-2009 à 22:52:40    

ha mince  j'ai compri le sans

Reply

Marsh Posté le 04-02-2009 à 23:06:35    

je pence enfin avoir trouver :
temp restant = (taille fichier - taille_envoyer)/ debit(vitesse)

Reply

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

Reply

Marsh Posté le 04-02-2009 à 23:20:07    

dyroj a écrit :

je pence enfin avoir trouver :
temp restant = (taille fichier - taille_envoyer)/ debit(vitesse)


euh j'ai parler nulle part de fichier, de taille à envoyer ni de débit(vitesse) ...

Reply

Marsh Posté le 04-02-2009 à 23:20:44    

non mais pour la formule

Reply

Marsh Posté le 04-02-2009 à 23:23:55    

veux tu voir ma source

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed