OVH Cloud OVH Cloud

Broadcast et perte de paquets

4 réponses
Avatar
Fabien LE LEZ
Bonjour,

Dans une application, j'envoie un broadcast UDP sur un LAN, et je
cherche à savoir si mon paquet est bien arrivé. Si une machine me dit
qu'elle a bien reçu le paquet, puis-je en conclure que les autres
l'ont également reçu ?

Note : en pratique, il s'agira bien souvent de machines toutes
connectées sur le même switch.

Merci d'avance...


--
schtroumpf schtroumpf

4 réponses

Avatar
Jacques Caron
Salut,

On Fri, 25 Jun 2004 15:47:57 +0200, Fabien LE LEZ
wrote:

Dans une application, j'envoie un broadcast UDP sur un LAN, et je
cherche à savoir si mon paquet est bien arrivé. Si une machine me dit
qu'elle a bien reçu le paquet, puis-je en conclure que les autres
l'ont également reçu ?


Non. Même si sur un LAN décemment conçu la probabilité que ça se perde
pour certaines machines et pas pour d'autres est minime, il n'y a aucune
garantie. Il pourrait y avoir un problème sur le lien de celui-ci, une
saturation du port, un filtrage dynamique (rate-limiting), des collisions
excessives s'il y a des hubs sur le chemin, un problème de config
half/full-duplex, un hub ou un switch temporairement HS, et j'en passe.

Ceci dit, tout dépend de l'application, si on veut juste être
raisonnablement convaincu que le paquet a été reçu, ça ira probablement.
Si c'est un prérequis indispensable (par exemple on utilise du chiffrement
en streaming qui ne supporte pas la perte d'un paquet), alors non.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/

Avatar
Jacques Caron
Re,

On Fri, 25 Jun 2004 15:47:57 +0200, Fabien LE LEZ
wrote:

Dans une application, j'envoie un broadcast UDP sur un LAN, et je
cherche à savoir si mon paquet est bien arrivé. Si une machine me dit
qu'elle a bien reçu le paquet, puis-je en conclure que les autres
l'ont également reçu ?


Et pour compléter ma réponse précédente, une "bonne" solution dans le cas
où il est indispensable que tout le monde reçoive tous les paquets, c'est
de numéroter les paquets d'une façon ou d'une autre (attention aux
attaques DoS cependant), et de faire en sorte qu'un client qui reçoit le
paquet N sans avoir reçu le paquet N-1 le réclame.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/

Avatar
Fabien LE LEZ
On Fri, 25 Jun 2004 15:55:32 +0200, Jacques Caron :

Et pour compléter ma réponse précédente, une "bonne" solution dans le cas
où il est indispensable que tout le monde reçoive tous les paquets, c'est
de numéroter les paquets d'une façon ou d'une autre


Tiens, bonne idée ça. Merci :-)

(attention aux attaques DoS cependant)


Bof... je rajouterai dans la doc "Prérequis : un firewall bien
configuré" ;)
Mais bon, c'est vrai que si une machine qui me demande 50 paquets
consécutifs, faudra que je ponde une routine râleuse...


--
schtroumpf schtroumpf

Avatar
Jacques Caron
On Sat, 26 Jun 2004 13:28:08 +0200, Fabien LE LEZ
wrote:

(attention aux attaques DoS cependant)


Bof... je rajouterai dans la doc "Prérequis : un firewall bien
configuré" ;)


Les attaques ne viennent pas forcément (directement) de l'extérieur...
Autant prévoir un minimum de logique pour éviter ça dès le départ, ça
évitera des problèmes par la suite.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/