# [off] vpn : udp / tcp ? (UDP!)

## loopx

Bonjour, 

Désolé de relancer encore une fois le débat ... mais, j'en ai besoin  :Smile: 

Alors voilà mon dernier point de vue : un VPN, ca doit être en UDP si possible ... (pourquoi avoir du TCP over TCP ?)

Mais voilà, je rencontre un souci, qui est peut être lié (même très certainement) directement à l'UDP ... Comme toujours, j'ai un serveur à la maison, qui est relié à un serveur A et à un pc B.

A <===UDP===> serveur <===TCP===> B

B télécharge sur A ; serveur est sur une ligne ADSL (40/50Ko max en up, 350 en down). Si le lien entre "serveur" et "B" sont en TCP, c'est uniquement à cause que lors du test UDP, j'avais oublié de percer le firewall sur le serveur  :Very Happy:   donc je suis passé en TCP mais en principe, je comptais repasser en UDP.

Ok, B télécharge sur A à traver "serveur" ; tout va bien, pas de déconnexion. Alors, pourquoi est-ce que je me fait des stress ? Bah, j'ai "cacti" sur le serveur .. Ce cacti monitore "A" ...    Le monitoring, c'est du SNMP .. qui est, je pense, de l'UDP ... 

Le problème que je rencontre, c'est des "trou" dans les graphs de "A" qui sont généré par "serveur" ... Ces "trou" ont lieu quand il y a téléchargement ... Je pense que, en gros, ma requête SNMP UDP (over UDP) se perd à cause que mon upload (sur serveur) est au maximum (pour l'envoie vers B). Donc, la requête ou la réponse n'arrive pas. J'ai des trou, lors des téléchargements. C'est génant!

Alors, est-ce que c'est "sensé" être "acceptable" ce genre de "trou" lié à l'UDP qui se perd à cause d'un trop haut débit pour la ligne ?

Je ne sais toujours pas vraiment tranché sur le fait d'utiliser un vpn UDP ou uniquement TCP...   Quoi que, maintenant, je commence à pencher plus vers le TCP. Si le VPN était en UDP, le paquet UDP aurait été transmis et serait probablement revenu sans "perte", donc plus de trou dans cacti.

Est-ce que mon raisonement est correct ? Devrais-je repasser mon vpn en TCP ? Qu'elles en seront les implications ? (perte de vitesse? augmentation du temps de latance ?). Pour le débit, je m'en fou, je suis en illimité  :Smile: 

Voilà, j'aimerais tranché une fois pour toute, c'est un peu lourd de ne pas savoir si il faut utiliser du TCP ou de l'UDP  :Very Happy:     et si vous pouviez donner des cas d'exemple dans quel cas faut-il utiliser du TCP et dans quel cas de l'UDP ...

Merci d'avance  :Smile: 

----------

## xaviermiller

Salut,

La grosse différence entre TCP et UDP est qu'en UDP, il n'y a aucune garantie qu'un paquet arrive (pas d'accusé de réception, c'est plutôt du "broadcast"). En TCP, c'est une communication à établir, avec garantie d'arrivée de paquets.

UDP, c'est bien pour du streaming, mais pour transférer des fichiers, il faut du TCP.

Et puis, je ne suis pas sûr qu'on puisse faire un bridge TCP<->UDP par le fait d'UDP même.

----------

## razer

 *XavierMiller wrote:*   

> 
> 
> Et puis, je ne suis pas sûr qu'on puisse faire un bridge TCP<->UDP par le fait d'UDP même.

 

Je ne vois pas ce qui pourrait l'empêcher

Je ne vois pas non plus l'intérêt d'encapsuler - de tunneliser - du tcp dans du tcp, puisque le test de parité et le tcp-ack sont réalisés sur la couche cryptée. En clair, l'udp a une simple fonction de transport...

Enfin, je ne vois pas la raison pour laquelle l'udp serait la cause des "trous" de connexion subis par loopx, ou bien son FAI traite différemment le tcp et l'udp... Il doit simplement y avoir un peering qui fait des siennes à cause d'un débit saturé.

Re Enfin, il se peut que je me trompe sur toute la ligne, car le VPN est pour moi un vieux souvenir. Pour ce que ma mémoire retient, c'était en udp (vpnd) et cela fonctionnait parfaitement sur des lignes Oleane

----------

## kwenspc

Ce que voulait dire XavierMiller, amha c'est qu'empaqueter des paquet TCP dans UDP c'est la mouise. Maintenant est ce que notre ami loopx est un TCP over UDP ou UDP over TCP?

----------

## razer

 *kwenspc wrote:*   

> Ce que voulait dire XavierMiller, amha c'est qu'empaqueter des paquet TCP dans UDP c'est la mouise.

 

J'avais bien compris. Vous avez très probablement tous les 2 raison, mais j'aimerais bien des arguments pour attayer votre affirmation

----------

## loopx

La différence UDP/TCP, je connais  :Wink: 

J'ai bien des trous ... le download est fini, j'ai plus de trou .. Oui, la requête SNMP (UDP) passe sur de l'UDP. J'ai donc bien de l'UDP over UDP pour le SNMP => quand le débit sature, j'ai des pertes => les trous  :Sad:      utiliser du TCP uniquement pour du SNMP .. hum, ca fait chier quand même :/

TCP over UDP, je ne sais pas vraiment si c'est "la mouise" ; personne ne m'a encore convaincu  :Wink: . Oui, l'UDP est un simple transporteur non fiable, et pour les transferts de fichier (FTP), c'est du TCP over UDP et donc, si un paquet est perdu, TCP rebalance et ca repasse par UDP (oui, ca pourrait encore une fois perdre le paquet ...). Je pense quand même que UDP est plus adapté et consomme moins que TCP ; UDP n'est pas fiable, on dit que ca va retransmettre beaucoup? mais, quelle est le prix d'un VPN TCP ... surtout pour le TCP over TCP (la, ca commence à demander plus de bande passante, puis les paquets pourrait tout aussi bien se perdre => retransmission ... => aucun intéret du TCP over TCP ... mais il y en as pour le TCP over UDP).

En gros, ... je suis toujours entre TCP et UDP  :Very Happy:          mais, pour faire plus beau, il faudrait que je test en TCP over TCP (beurk quand même  :Sad: ) ... 

Comment fait cisco ? et les autres ?

----------

## kwenspc

ouais dslé j'ai confondu c'est tcp over tcp qui merde.   :Embarassed: 

[edit]http://chl.be/glmf/articles.linuxmag-france.org/lm31/tcptcp.html[/edit]

----------

## razer

Il semblerait donc que j'ai globalement raison

C'est suffisament rare pour être souligné amha   :Razz: 

----------

## loopx

 *kwenspc wrote:*   

> ouais dslé j'ai confondu c'est tcp over tcp qui merde.  
> 
> [edit]http://chl.be/glmf/articles.linuxmag-france.org/lm31/tcptcp.html[/edit]

 

mmMMmm, intéressant  :Smile: 

Il est donc plus intéressant d'utiliser l'UDP, c'est bien ce qu'il me semblait  :Wink: 

Mais, pour mon SNMP alors  :Surprised:  ?

----------

## Tom_

Il te faudrait peut-être de la QoS pour ton flux SNMP?   :Idea: 

----------

## guilc

Ça me semble un comportement tout à fait normal. Et ton appel SNMP aurait échoué de la même manière s'il n'était pas passé dans le VPN sur un lien saturé. C'est le propre des protocoles UDP !

Il ne faut pas oublier pourquoi est fait SNMP, c'est un outil de monitoring, il n'est pas fait pour transiter des informations critiques qui nécessitent la fiabilité de la transmission.

Et oui, le VPN a tout intérêt à transiter sur UDP. il aurait même intérêt à s'appuyer directement sur la couche IP (VPN de type IPSec qui opèrent au niveau 3 alors qu'openvpn sur UDP opère au niveau 4) pour alléger l'overhead protocolaire. Il faut bien garder en tête que conceptuellement, un VPN doit rester une couche de liaison pour remplacer un lien classiquement physique. Il existe aussi des types de VPN agissant sur la couche 2 (L2TP) utilisés pour la collecte ADSL par exemple, mais "en général" inutilisables de manière simple sur les réseau IP. Mais cela ne nécessite en aucun cas de travailler en mode connecté (TCP).

Donc si tu veux améliorer la situation, ce n'est pas du côté du VPN qu'il faut se pencher, mais effectivement du côté de la QoS. par exemple réserver une plus haute priorité au trafic SNMP.

----------

