\begin{tikzpicture}
  \def\largPC{1}
  \def\largDNS{1.5}
  \def\xDNS{-6}
  \def\xPC{6}
  \def\yPC{3}
  \def\xPers{0}
  \def\yPers{0.6}
  \def\largPers{1.5}
  \def\espaceFleches{0.5}
  
  % \personnage{position X}{position Y}{facteur d'échelle}{couleur}
  \newcommand{\personnage}[4]
  {
    \fill[#4] ({#1-(0.4 * #3)},{#2-(0.9 * #3)}) .. controls ({#1-(0.4 * #3)},#2) and ({#1+(0.4 * #3)},#2) .. ({#1+(0.4 * #3)},{#2-(0.9 * #3)}) -- ({#1-(0.4 * #3)},{#2-(0.9 * #3)});
    \fill[#4] (#1,#2) circle ({0.25 * #3});
  }
  \personnage{\xPers}{\yPers}{\largPers}{black}

  % serveur DNS
  \node at (\xDNS, 0) {\includegraphics[width=\largDNS cm]{ressources/serveur.png}};
  % serveurs de contenus
  \onslide<6->{\node at (\xPC,   \yPC) {\includegraphics[width=\largPC cm]{ressources/serveur.png}};}
  \onslide<1->{\node at (\xPC,      0) {\includegraphics[width=\largPC cm]{ressources/serveur.png}};}
  \onslide<6->{\node at (\xPC, - \yPC) {\includegraphics[width=\largPC cm]{ressources/serveur.png}};}

  % flèches Perso <-> DNS
  \onslide<2-5,7->{\draw [arrows={Triangle[angle=90:5mm] - }, line width=2mm] ({\xDNS + 0.75 * \largDNS},  \espaceFleches) -- ({\xPers - 0.5 * \largPers},  \espaceFleches);}
  \onslide<3-5,8->{\draw [arrows={ - Triangle[angle=90:5mm]}, line width=2mm] ({\xDNS + 0.75 * \largDNS}, -\espaceFleches) -- ({\xPers - 0.5 * \largPers}, -\espaceFleches);}
  % flèches Perso <-> PC milieu
  \onslide<4-5>{\draw [arrows={ - Triangle[angle=90:5mm]}, line width=2mm] ({\xPers + 0.5 * \largPers}, \espaceFleches) -- ({\xPC - 0.75 * \largPC}, \espaceFleches);}
  \onslide<5-5>{\draw [arrows={Triangle[angle=90:5mm] - }, line width=2mm] ({\xPers + 0.5 * \largPers}, -\espaceFleches) -- ({\xPC - 0.75 * \largPC}, -\espaceFleches);}
  % flèches Perso <-> PC bas
  \onslide<9-10>{\draw [arrows={ - Triangle[angle=90:5mm]}, line width=2mm] ({\xPers + 0.5 * \largPers}, \espaceFleches) -- ({\xPC - 0.75 * \largPC},  {- \yPC + \espaceFleches});}
  \onslide<10-10>{\draw [arrows={Triangle[angle=90:5mm] - }, line width=2mm] ({\xPers + 0.5 * \largPers}, -\espaceFleches) -- ({\xPC - 0.75 * \largPC}, {- \yPC - \espaceFleches});}
  % flèches Perso <-> PC haut
  \onslide<13->{\draw [arrows={ - Triangle[angle=90:5mm]}, line width=2mm] ({\xPers + 0.5 * \largPers}, \espaceFleches) -- ({\xPC - 0.75 * \largPC},  {+ \yPC + \espaceFleches});}
  \onslide<14->{\draw [arrows={Triangle[angle=90:5mm] - }, line width=2mm] ({\xPers + 0.5 * \largPers}, -\espaceFleches) -- ({\xPC - 0.75 * \largPC}, {+ \yPC - \espaceFleches});}

  % logos Garage
  \onslide<6->{
    \node at ({\xPC + 0.35\largPC}, {+ \yPC - 0.4 \largPC}) {\includegraphics[width=0.6 cm]{ressources/garage-logo-sans-écrit.png}};
    \node at ({\xPC + 0.35\largPC},        {- 0.4 \largPC}) {\includegraphics[width=0.6 cm]{ressources/garage-logo-sans-écrit.png}};
    \node at ({\xPC + 0.35\largPC}, {- \yPC - 0.4 \largPC}) {\includegraphics[width=0.6 cm]{ressources/garage-logo-sans-écrit.png}};
  }

  % logos Nomad
  \onslide<11->{
    \node at ({\xPC + 0.35\largPC}, {+ \yPC + 0.2 \largPC}) {\includegraphics[width=0.5 cm]{ressources/nomad.png}};
    \node at ({\xPC + 0.35\largPC},        {+ 0.2 \largPC}) {\includegraphics[width=0.5 cm]{ressources/nomad.png}};
    \node at ({\xPC + 0.35\largPC}, {- \yPC + 0.2 \largPC}) {\includegraphics[width=0.5 cm]{ressources/nomad.png}};
  }

  % logos Jitsi
  \onslide<12->{\node at ({\xPC }, {+ \yPC + 0.2 \largPC}) {\includegraphics[width=0.5 cm]{ressources/jitsi.png}};}
  \onslide<11>{\node at ({\xPC },        {+ 0.2 \largPC}) {\includegraphics[width=0.5 cm]{ressources/jitsi.png}};}
  %\node at ({\xPC }, {- \yPC + 0.2 \largPC}) {\includegraphics[width=0.5 cm]{ressources/jitsi.png}};}
  
  % étiquettes DNS
  \node at (\xDNS, {1*\largDNS}) {DNS};

  % étiquettes serveur
  \onslide<6->{\node at (\xPC, {  \yPC + 1*\largPC}) {Serveur 1};}
  \onslide<6->{\node at (\xPC, {     0 + 1*\largPC}) {Serveur 2};}
  \onslide<6->{\node at (\xPC, {- \yPC + 1*\largPC}) {Serveur 3};}
  \onslide<1-5>{\node at (\xPC, {     0 + 1*\largPC}) {Serveur};}
  \onslide<6->{\node at (\xPC, {  \yPC - 1*\largPC}) {\texttt{2ac3::d3dc}};}
  \onslide<1->{\node at (\xPC, {     0 - 1*\largPC}) {\texttt{2046::24da}};}
  \onslide<6->{\node at (\xPC, {- \yPC - 1*\largPC}) {\texttt{262d::16bf}};}
  
  % question-réponse DNS
  \onslide<2-5,7->{\node at ({(\xDNS + \xPers)/2}, 2*\espaceFleches) {\texttt{deuxfleurs.fr} ?};}
  \onslide<3-5>{\node[text width=5cm,align=center] at ({(\xDNS + \xPers)/2}, -2*\espaceFleches) {\texttt{2046::24da}};}
  \onslide<8->{\node[text width=5cm,align=center] at ({(\xDNS + \xPers)/2}, -3.1*\espaceFleches) {\texttt{2ac3::d3dc\\ 2046::24da\\ 262d::16bf}};}

  % question-réponse serveur
  \onslide<4-5>{\node at ({(\xPC + \xPers)/2}, 2*\espaceFleches) {\texttt{photo.png} ?};}
  \onslide<5-5>{\node[text width=5cm,align=center] at ({(\xPC + \xPers)/2}, -2*\espaceFleches) {\includegraphics[width=0.5cm]{ressources/fichier.png}};}
  \onslide<9-10>{\node[rotate=-33] at ({(\xPC + \xPers)/2}, -1*\espaceFleches) {\texttt{photo.png} ?};}
  \onslide<10-10>{\node[text width=5cm,align=center] at ({((\xPC + \xPers)/2)*cos(-33)}, -4.8*\espaceFleches) {\includegraphics[width=0.5cm]{ressources/fichier.png}};}
  \onslide<13->{\node[rotate=33] at ({(\xPC + \xPers)/2}, 4.8*\espaceFleches) {\texttt{jitsi.deuxfleurs.fr} ?};}
  \onslide<14->{\node[text width=5cm,align=center] at ({((\xPC + \xPers)/2)}, 1*\espaceFleches) {\includegraphics[width=0.5cm]{ressources/webcam.png}};}
  
\end{tikzpicture}