\documentclass[margin=1cm, varwidth, tikz]{standalone} \usepackage{etoolbox} \input{common_options.tex} \input{common_packages.tex} \input{common.tex} \usetikzlibrary{calc} \newcommand{\clientToServer}[2]{% \path ($(client) - (0, #1)$) edge[above] node[fill=red!20, minimum width=8cm] {\psolution{#2}} ($(server) - (0, #1)$);% \draw[->] ($(client) - (0, #1)$) -- ($(server) - (0, #1)$);% } \newcommand{\serverToClient}[3]{% \path ($(client) - (0, #1)$) edge[above, align=center, minimum width=8cm] node[fill=blue!20, align=left, text width=6cm] {\psolution{\ifstrequal{#2}{+OK}{\textcolor{green!70!black}{#2}}{#2} #3}} ($(server) - (0, #1)$);% \draw[<-] ($(client) - (0, #1)$) -- ($(server) - (0, #1)$);% } \begin{document} \begin{tikzpicture} \node[fill=red!20] (client) {Client}; \node[fill=blue!20] (server) at (8, 0) {Server}; \draw[] ($(client) - (0, 1)$) edge[above, ->] node {\textcolor{gray!80}{Verbindungsaufbau}} ($(server) - (0, 1)$); \serverToClient{2}{+OK}{POP3 server ready \textless{}domain\textgreater} \clientToServer{3}{USER \textless{}user\textgreater} \serverToClient{4}{+OK}{user accepted} \clientToServer{5}{PASS \textless{}password\textgreater} \serverToClient{6}{+OK}{pass accepted} \clientToServer{7}{LIST} \path ($(client) - (0, 9)$) edge[above, align=center, minimum height=1.5cm, minimum width=8cm] node[fill=blue!20, align=left, text width=6cm] {\psolution{\textcolor{green!70!black}{+OK} \textless{}Nachrichten Informationen\textgreater\newline 1 bytes\newline 2 bytes}} ($(server) - (0, 9)$);% \draw[<-] ($(client) - (0, 9)$) -- ($(server) - (0, 9)$);% \clientToServer{10}{RETR \textless{}Nummer\textgreater} \serverToClient{11}{+OK}{\textless{}bytes\textgreater\newline\textless{}E-Mail\textgreater} \clientToServer{12}{QUIT} \serverToClient{13}{+OK}{} \draw[] ($(client) - (0, 14)$) edge[above, ->] node {\textcolor{gray!80}{Verbindungsabbau}} ($(server) - (0, 14)$); \draw (client) -- ($(client) - (0, 14)$); \draw (server) -- ($(server) - (0, 14)$); \end{tikzpicture} \end{document}