--- /dev/null
+\def\nodelist{
+ juliet/{(-1,-1)}/XMPP client \code{juliet@example.net}/below/computer,
+ examplenet/{(-1,1)}/XMPP server \code{example.net}/above/server,
+ imexampleorg/{(1,1)}/XMPP server \code{im.example.org}/above/server,
+ romeo/{(1,-1)}/XMPP client \code{romeo@im.example.org}/below/computer%
+}
+\foreach \name/\pos/\text/\tpos/\icon in \nodelist {
+ \node (\name) at \pos { \includegraphics[width=2em]{icon-\icon.pdf} };
+ \node[\tpos=of \name,iconlabel] (\name text) { \text };
+}
+\draw[<->,dashed] (juliet) -- node[anchor=east,label]{s2c} (examplenet);
+\draw[<->] (examplenet) -- node[anchor=south,label]{s2s} (imexampleorg);
+\draw[<->,dashed] (imexampleorg) -- node[anchor=west,label]{s2c} (romeo);
+