% Mobile ad-hoc network
% Author: Dr. Ludger Humbert
% Source: https://haspe.homeip.net/projekte/ddi/browser/tex/pgf2
\documentclass{article}

\usepackage{tikz}
\usepackage{pgf}

\usepackage{xxcolor}

\usetikzlibrary{arrows,shadows,petri}
%                              wg. tokens


\newlength{\imagewidth}
\newlength{\imagescale}

\listfiles

\begin{document}

\begin{tikzpicture}[
    knoten/.style={
      shade=ball,
      circle,
      inner sep=.35cm,
      circular drop shadow,
      draw},
    /schriftstueck/.code 2 args={
      \fill[red!50, opacity=#2] #1 rectangle +(.6,.7);
      \foreach \y in {0pt,2pt,4pt,6pt,8pt,10pt,12pt,14pt}
       \draw [yshift=\y, opacity=#2] #1+(0.1,0.1) -- +(0.5,0.1);
      }
    ]

  \node at (1,.5) (knoten0) [knoten, ball color=blue!60!black] {};

  \node[rectangle,draw] at (1,-1) (k0)
  {Message};

  \draw  [-] (knoten0.south)      -- (k0);

  \pgfkeys{/schriftstueck={(0.7,-.5)}{1}}

  \node at (4,.5) (knoten1) [knoten, ball color=green!60!black] {};

  \node[rectangle,draw] at (5.5,1.5) (k1)
  {Starting point};

  \node at (7,.5) (knoten2) [knoten, ball color=gray!40!white,tokens=3] {};

  \node[rectangle,draw] at (6.8,-0.75) (k2)
  {Hop(s)};

  \node at (10,.5) (knoten3) [knoten, ball color=red!60!black] {};
  \node[rectangle,draw] at (8.5,1.5) (k3)
  {End point};

  \path[dashed,opacity=.5] [-latex] 
    (knoten1.north west) edge [bend right]  (knoten0.north east);
  \node[rectangle,draw,dashed,opacity=.5] at (2.5,1.5)  (ack10) {ACK};

  \path  [-latex] (knoten0.south east) edge [bend right] (knoten1.south west);
  \path  [-latex] (knoten1.south east) edge [bend right] (knoten2.south west);
  \pgfkeys{/schriftstueck={(5.2,-.5)}{.7}}
  \path  [-latex] (knoten2.south east) edge [bend right] (knoten3.south west);
  \pgfkeys{/schriftstueck={(8.2,-.5)}{.9}}

  \draw  [-] (knoten1.north east) -- (k1);
  \draw  [-] (knoten2.south)      -- (k2);
  \draw  [-] (knoten3.north west) -- (k3);
\end{tikzpicture}

\end{document}
