Auteur Sujet: Linux: Réaliser un test de débit descendant/montant avec CURL  (Lu 79697 fois)

0 Membres et 1 Invité sur ce sujet

willemijns

  • Abonné FreeMobile
  • *
  • Messages: 2 680
Linux: Réaliser un test de débit descendant/montant avec CURL
« Réponse #12 le: 25 août 2019 à 18:17:23 »
Tu pense que FTP utilise moins d'octets que HTTP

non je disais que HTTP et les streams c'etait au minimum 50% des trames TCP ou plus génériquement c'est la majoritédes usages sur Internet. désolé ma phrase était pas clair je le conçois.

willemijns

  • Abonné FreeMobile
  • *
  • Messages: 2 680
Linux: Réaliser un test de débit descendant/montant avec CURL
« Réponse #13 le: 25 août 2019 à 18:28:29 »
- les serveurs FTP ne prennent pas en charge la mise en cache et l'accélération ;
- l'implèmentation de la plupart des logiciels a stagné et ceux-ci sont difficiles à utiliser et à configurer ;
- l'utilisation des serveurs FTP est plutôt faible puisque notre propre installateur n'offre pas depuis dix ans FTP comme moyen d'accès aux miroirs ;
- le protocole est peu efficace et demande l'ajout de bidouillages compliqués pour les pare-feu et les démons de répartition de charge.[/color]

tout ce beau texte confirme bel et bien que le FTP pour la lecture/reception defichiers n'est pas éfficace mais comme je vais le confirmer qq lignes plus bas pour l'envoi c'est quand même mieux... de ne pas trop changer les habitudes de devs ;)

Pour les devs DEBIAN:
Les services des développeurs Debian ne seront pas affectés. Il s'agit des files d'attente d'envoi pour à la fois l'archive principale « main » et l'archive de sécurité :

on peut aussi rajouter que les filehosteurs comme dl.free.fr uptobox et autres 1 fichier.com apprécient particulierement le FTP................................................

willemijns

  • Abonné FreeMobile
  • *
  • Messages: 2 680
Linux: Réaliser un test de débit descendant/montant avec CURL
« Réponse #14 le: 25 août 2019 à 18:41:47 »
argh ! tu as modifié 1 ou 2 fois ton méssage ? j'avais point vu tout cela...

> Il faut modifier l'IP privée en IP publique dans les paquets de commande FTP, en quoi c'est un élèment intéressant ou déterminant ?

car c'est pas des données sensibles pour un test UP et DL, on envoye ou recoit souvent des ISO ou des fichiers de test randomisés...
 
> Tout bascule en https, même pour configurer ta box qui est chez toi https est en train de s'imposer.

oui... le HTTP(S) upload est bien suffisant pour les envois simples.....




vivien

  • Administrateur
  • *
  • Messages: 47 079
    • Twitter LaFibre.info
Linux: Réaliser un test de débit descendant/montant avec CURL
« Réponse #15 le: 26 août 2019 à 11:59:18 »
> Il faut modifier l'IP privée en IP publique dans les paquets de commande FTP, en quoi c'est un élèment intéressant ou déterminant ?

car c'est pas des données sensibles pour un test UP et DL, on envoye ou recoit souvent des ISO ou des fichiers de test randomisés...

Oui, mais cela entraîne du code complexe dans tous les NAT, cela serait bien de pouvoir s'en passer dans quelques années.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Linux: Réaliser un test de débit descendant/montant avec CURL
« Réponse #16 le: 26 août 2019 à 12:02:59 »
Oui, mais cela entraîne du code complexe dans tous les NAT, cela serait bien de pouvoir s'en passer dans quelques années.

Donc garder FTP c'est encore une raison de pousser IPv6  ;D

vivien

  • Administrateur
  • *
  • Messages: 47 079
    • Twitter LaFibre.info
Linux: Réaliser un test de débit descendant/montant avec CURL
« Réponse #17 le: 26 août 2019 à 12:07:54 »
Je ne suis pas sur que FTP ne va pas supporter les mécanismes de translation DNS46/NAT46.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Linux: Réaliser un test de débit descendant/montant avec CURL
« Réponse #18 le: 26 août 2019 à 13:27:59 »
Je ne suis pas sur que FTP ne va pas supporter les mécanismes de translation DNS46/NAT46.

l'idée est juste de laisser un serveur FTP en 'IPv6 only' en oubliant complètement IPv4 & les mécanismes de transitions.

sounours

  • Abonné Free fibre
  • *
  • Messages: 14
  • Cazères (31220)
Linux: Réaliser un test de débit montant avec CURL
« Réponse #19 le: 29 juillet 2021 à 11:03:27 »
Préparatif pour une test de débit montant (upload) : télécharger un ficher de grande taille appelé /tmp/temp.iso

- Exemple avec un fichier de 10 Mo : curl -o /tmp/temp.iso https://bouygues.testdebit.info/10M.iso
- Exemple avec un fichier de 100 Mo : curl -o /tmp/temp.iso https://bouygues.testdebit.info/100M.iso
- Exemple avec un fichier de 1 Go : curl -o /tmp/temp.iso https://bouygues.testdebit.info/1G.iso
- Exemple avec un fichier de 10 Go : curl -o /tmp/temp.iso https://bouygues.testdebit.info/10G.iso



Test de débit montant (upload) sur une connexion TCP sous Linux :

Le débit moyen est affiché dans la colonne Average Upload. C'est un débit en Mo/s et non en Mb/s. C'est un débit utile, les encapsulations ne sont pas comptées.

IPv4 uniquement :
http, sur une durée de 60 secondes : curl --max-time 60 -4 -w %{size_upload} -o /dev/null -F "filecontent=@/tmp/temp.iso" http://bouygues.testdebit.info
https, sur une durée de 60 secondes : curl --max-time 60 -4 -w %{size_upload} -o /dev/null -F "filecontent=@/tmp/temp.iso" https://bouygues.testdebit.info
http, sans limite de durée : curl -4 -o /dev/null -F "filecontent=@/tmp/temp.iso" http://bouygues.testdebit.info
https, sans limite de durée : curl -4 -o /dev/null -F "filecontent=@/tmp/temp.iso" https://bouygues.testdebit.info

IPv6 uniquement :
http, sur une durée de 60 secondes : curl --max-time 8 -6 -w %{size_upload} -o /dev/null -F "filecontent=@/tmp/temp.iso" http://bouygues.testdebit.info
https, sur une durée de 60 secondes : curl --max-time 8 -6 -w %{size_upload} -o /dev/null -F "filecontent=@/tmp/temp.iso" https://bouygues.testdebit.info
http, sans limite de durée : curl -6 -o /dev/null -F "filecontent=@/tmp/temp.iso" http://bouygues.testdebit.info
https, sans limite de durée : curl -6 -o /dev/null -F "filecontent=@/tmp/temp.iso" https://bouygues.testdebit.info

Attention : le débit est calculé coté èmetteur : tout paquet émis et non acquitté est compté dans les données "size_upload"
Si une box a un petit débit et de gros buffers, il est possible d'avoir une différence très importante, les données sont émises mais pas reçues car elles sont en transit dans le buffer de la box.
Il est donc indispensable d'avoir un test de longue durée (par exemple 60 secondes) en upload. En download 8 secodnes suffisent par cotre, vu que le débit est calculé coté récepteur.


Merci, t'es un chef !

Malgré l'âge des liens, ça marche toujours aussi bien !

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Linux: Réaliser un test de débit descendant/montant avec CURL
« Réponse #20 le: 18 novembre 2022 à 12:27:21 »
@vivien

sais-tu pourquoi l'upload ne fonctionne pas en http/2 sur ces serveurs ?

on obtient:

curl: (92) Stream error in the HTTP/2 framing layer

peux-tu poster ta config apache ?

vivien

  • Administrateur
  • *
  • Messages: 47 079
    • Twitter LaFibre.info
Linux: Réaliser un test de débit descendant/montant avec CURL
« Réponse #21 le: 18 novembre 2022 à 13:08:53 »
Accepter un fichier uploadé alors que le serveur n'a rien demandé pourrait aussi être considérée comme une anomalie (corrigée avec HTTP/2).

La configuration des serveurs est entièrement publique et est détaillé dans une section du forum : https://lafibre.info/ubuntu/

Je pense que le sujet qui va t'intéresser est Base: Installation et sécurisation d'Apache2.

Si tu trouves comment faire fonctionner l'upoad avec HTTP/2, je ferais les modifications.
Si tu as besoin que je donne le contenu de fichier de configuration, indique-moi lesquels.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Linux: Réaliser un test de débit descendant/montant avec CURL
« Réponse #22 le: 18 novembre 2022 à 14:38:11 »
Si tu as besoin que je donne le contenu de fichier de configuration, indique-moi lesquels.

Je veux bien la conf apache2 (le .conf) du endpoint qui accepte les POST.

vivien

  • Administrateur
  • *
  • Messages: 47 079
    • Twitter LaFibre.info
Linux: Réaliser un test de débit descendant/montant avec CURL
« Réponse #23 le: 18 novembre 2022 à 14:56:33 »
C'est ça ?
<VirtualHost *:443>
ServerName "bouygues.testdebit.info"
ServerAlias "ipv4.bouygues.testdebit.info"
ServerAlias "ipv6.bouygues.testdebit.info"

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/bouygues.testdebit.info/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/bouygues.testdebit.info/privkey.pem

DocumentRoot "/home/net-test/tmpfs"
<Directory "/home/net-test/tmpfs">
DirectoryIndex index.html
Options Indexes FollowSymLinks
IndexOptions +SuppressDescription
AllowOverride None
Require all granted
</Directory>

Alias "/web" "/home/net-test/web"
<Directory "/home/net-test/web">
Options None
AllowOverride None
Require all granted
</Directory>

Alias "/ul" "/home/net-test/ul"
<Directory "/home/net-test/ul">
Options None
AllowOverride None
Require all granted
</Directory>

Alias "/videos" "/home/net-test/videos"
<Directory "/home/net-test/videos">
Options None
AllowOverride None
Require all granted
</Directory>

ErrorLog "${APACHE_LOG_DIR}/net-test-error.log"
CustomLog "${APACHE_LOG_DIR}/net-test-443.log" combiport
</VirtualHost>

Le dossier "/home/net-test/ul" contient un fichier upload.php utilisé par certains outils (mais pas par Curl) :
<?php
$datas 
file_get_contents(&#39;php://input&#39;);
$resultArray["status"] = "FICHIER RECU";

// retour vers le device
echo json_encode($resultArray);



//----------------------------- fonctions ---------------------------------------

function checkError($_val)
{
	
global 
$resultArray,$bd;

	
if (
gettype($_val)==&#39;string&#39; && substr($_val,0,6)==substr(CONNEXION_ERROR,0,6))
	
{
	
	
$resultArray["status"] = $_val;
	
	
logToFile("error_log.txt",$_val);
	
	
echo 
json_encode($resultArray);
	
	
$bd->fermerConnexionBDD();
	
	
die();
	

	
}
}


function 
logToFile($filename,$msg)
{
      
$fd=fopen($filename,"a");
      
$str="[".date("Y/m/d h:i:s")."]".$msg;
      
fwrite($fd,$str."\n");
      
fclose($fd);
}

?>