- \begin{tikzpicture}[scale=1.2]
- \tikzstyle{every node}=[font=\small]
-% netDB
- \foreach \sector in {%
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}%
- {
- \node[netdb,cylinder, shape border
- rotate=90,fill=orange!50!white](node\sector) at ({36 * (-\sector +
- .6)} : 10.5mm) {\sector};
- }
- \node at (0, 0) {netDB};
-% client
- \node[minimum width=9.5em,minimum
- height=5em,draw=black,thick,fill=yellow!60!white,rounded corners](clientpc) at (27.5mm,9mm) {};
- \node[client](client) at (30.5mm, 12mm) {Server Router};
- \node[rectangle,draw,below=0mm of client.south west] {Application};
- \node[above=0mm of clientpc.south] {Server's System};
-% server
- \node[minimum width=9.5em,minimum
- height=5em,draw=black,thick,fill=yellow!60!white,rounded corners](clientpc) at (-38mm,9mm) {};
- \node[client](server) at (-42mm, 12mm) {Client Router};
- \node[rectangle,draw,below=0mm of server.south east] {Application};
- \node[above=0mm of clientpc.south] {Client's System};
-% client client tunnel
- \node[chain,minimum size=7em,minimum
- height=3em,draw=none,fill=green!30!white,rounded corners](tunnel) at (16mm,22.5mm) {};
- \node[above=0mm of tunnel.north] {Server's data tunnel pair};
-% \node[tunnel,minimum width=9.5em] at (16mm, 19mm) {};
-% \node[tunnel,minimum width=9.5em] at (16mm, 22mm) {};
-%
- \node[chain,top color=white,bottom color=green] (cco1) at (23mm, 21mm) {};
- \path[arrow] ([xshift=4mm]client.north) |- (cco1.east);
- \node[chain,top color=white,bottom color=green] (cco2) at (16mm, 21mm) {};
- \path[arrow] (cco1.west) -- (cco2.east);
- \node[chain,top color=white,bottom color=green] (cco3) at (9mm, 21mm) {};
- \path[arrow] (cco2.west) -- (cco3.east);
- \node[chain,top color=white,bottom color=green] (cci1) at (23mm, 24mm) {};
- \path[arrow] (cci1.east) -| ([xshift=5mm]client.north);
- \node[chain,top color=white,bottom color=green] (cci2) at (16mm, 24mm) {};
- \path[arrow] (cci2.east) -- (cci1.west);
- \node[chain,top color=white,bottom color=green] (cci3) at (9mm, 24mm) {};
- \path[arrow] (cci3.east) -- (cci2.west);
-% server client tunnel
- \node[chain,minimum size=7em,minimum
- height=3em,draw=none,fill=green!30!white,rounded corners](tunnel) at (-30mm,22.5mm) {};
- \node[above=0mm of tunnel.north] {Client's data tunnel pair};
-% \node[tunnel,minimum width=9.5em] at (-34mm, 19mm) {};
-% \node[tunnel,minimum width=9.5em] at (-34mm, 22mm) {};
-%
- \node[chain,top color=white,bottom color=green] (csi1) at (-37mm, 21mm) {};
- \path[arrow,<-] ([xshift=-4mm]server.north) |- (csi1.west);
- \node[chain,top color=white,bottom color=green] (csi2) at (-30mm, 21mm) {};
- \path[arrow,<-] (csi1.east) -- (csi2.west);
- \node[chain,top color=white,bottom color=green] (csi3) at (-23mm, 21mm) {};
- \path[arrow,<-] (csi2.east) -- (csi3.west);
- \node[chain,top color=white,bottom color=green] (cso1) at (-37mm, 24mm) {};
- \path[arrow,<-] (cso1.west) -| ([xshift=-5mm]server.north);
- \node[chain,top color=white,bottom color=green] (cso2) at (-30mm, 24mm) {};
- \path[arrow,<-] (cso2.west) -- (cso1.east);
- \node[chain,top color=white,bottom color=green] (cso3) at (-23mm, 24mm) {};
- \path[arrow,<-] (cso3.west) -- (cso2.east);
-% client exploratory tunnel
- \node[chain,minimum size=6em,minimum
- height=3em,draw=none,fill=blue!30!white,rounded corners](tunnel) at (-32.5mm,-6.5mm) {};
- \node[below=0mm of tunnel.south,align=center] {Client's exploratory\\tunnel pair};
-% \node[tunnel,minimum width=7.5em] at (-36.5mm, 0mm) {};
-% \node[tunnel,minimum width=7.5em] at (-36.5mm, -3mm) {};
-%
- \node[chain,top color=white,bottom color=blue] (eo1) at (-36mm, -5mm) {};
- \path[arrow] ([xshift=-4mm]server.south) |- (eo1.west);
- \node[chain,top color=white,bottom color=blue] (ei1) at (-36mm, -8mm) {};
- \path[arrow,<-] ([xshift=-5mm]server.south) |- (ei1.west);
- \node[chain,top color=white,bottom color=blue] (eo2) at (-29mm, -5mm) {};
- \path[arrow] (eo1.east) -- (eo2.west);
- \node[chain,top color=white,bottom color=blue] (ei2) at (-29mm, -8mm) {};
- \path[arrow,<-] (ei1.east) -- (ei2.west);
-% service lookup
- \draw[arrow,bend right=20,dashdotted] (eo2.east) to node[above=.8em,align=center] {service\\lookup} (node4.west);
- \draw[arrow,bend right=10,<-,dashdotted] (ei2.east) to node {} ([yshift=-1mm]node4.west);
-% data link
- \draw[arrow,bend left=15,dashdotted] (cco3.west) to node {} (csi3.east);
- \draw[arrow,bend right=15,dashdotted] (cci3.west) to node {} (cso3.east);
- \node at (-9mm,22.5mm) {Data connection};
-\end{tikzpicture}
-% \foreach \sector in {%
-% 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}%
-% {
-% \node[netdb](node\sector) at ({36 * (-\sector + .5)} : 10mm) {\sector};
-% }
-% \node at (0, 0) {netDB};
-% % client
-% \node[client](client) at (28mm, 12mm) {Server Router};
-% \node[rectangle,draw,below=0mm of client.south west] {Application};
-% \node[minimum width=7em,minimum height=4em,draw=gray](clientpc) at (25mm,9mm) {};
-% \node[above=0mm of clientpc.south] {Server's System};
-% % server
-% \node[client](server) at (-42mm, 12mm) {Client Router};
-% \node[rectangle,draw,below=0mm of server.south east] {Application};
-% \node[minimum width=7em,minimum height=4em,draw=gray](clientpc) at (-38mm,9mm) {};
-% \node[above=0mm of clientpc.south] {Client's System};
-% % client client tunnel
-% \node[chain,minimum size=6.5em,minimum height=2em,draw=gray](tunnel) at (16mm,20.5mm) {};
-% \node[above=0mm of tunnel.north] {Server's data tunnel pair};
-% % \node[tunnel,minimum width=9.5em] at (16mm, 19mm) {};
-% % \node[tunnel,minimum width=9.5em] at (16mm, 22mm) {};
-% %
-% \node[chain] (cco1) at (23mm, 19mm) {};
-% \path[arrow] ([xshift=4mm]client.north) |- (cco1.east);
-% \node[chain] (cco2) at (16mm, 19mm) {};
-% \path[arrow] (cco1.west) -- (cco2.east);
-% \node[chain] (cco3) at (9mm, 19mm) {};
-% \path[arrow] (cco2.west) -- (cco3.east);
-% \node[chain] (cci1) at (23mm, 22mm) {};
-% \path[arrow] (cci1.east) -| ([xshift=5mm]client.north);
-% \node[chain] (cci2) at (16mm, 22mm) {};
-% \path[arrow] (cci2.east) -- (cci1.west);
-% \node[chain] (cci3) at (9mm, 22mm) {};
-% \path[arrow] (cci3.east) -- (cci2.west);
-% % server client tunnel
-% \node[chain,minimum size=6.5em,minimum height=2em,draw=gray](tunnel) at (-30mm,20.5mm) {};
-% \node[above=0mm of tunnel.north] {Client's data tunnel pair};
-% % \node[tunnel,minimum width=9.5em] at (-34mm, 19mm) {};
-% % \node[tunnel,minimum width=9.5em] at (-34mm, 22mm) {};
-% %
-% \node[chain] (csi1) at (-37mm, 19mm) {};
-% \path[arrow,<-] ([xshift=-4mm]server.north) |- (csi1.west);
-% \node[chain] (csi2) at (-30mm, 19mm) {};
-% \path[arrow,<-] (csi1.east) -- (csi2.west);
-% \node[chain] (csi3) at (-23mm, 19mm) {};
-% \path[arrow,<-] (csi2.east) -- (csi3.west);
-% \node[chain] (cso1) at (-37mm, 22mm) {};
-% \path[arrow,<-] (cso1.west) -| ([xshift=-5mm]server.north);
-% \node[chain] (cso2) at (-30mm, 22mm) {};
-% \path[arrow,<-] (cso2.west) -- (cso1.east);
-% \node[chain] (cso3) at (-23mm, 22mm) {};
-% \path[arrow,<-] (cso3.west) -- (cso2.east);
-% % client exploratory tunnel
-% \node[chain,minimum size=4.5em,minimum height=2em,draw=gray](tunnel) at (-32.5mm,-3.5mm) {};
-% \node[below=0mm of tunnel.south,align=center] {Client's exploratory\\tunnel pair};
-% % \node[tunnel,minimum width=7.5em] at (-36.5mm, 0mm) {};
-% % \node[tunnel,minimum width=7.5em] at (-36.5mm, -3mm) {};
-% %
-% \node[chain] (eo1) at (-36mm, -2mm) {};
-% \path[arrow] ([xshift=-4mm]server.south) |- (eo1.west);
-% \node[chain] (ei1) at (-36mm, -5mm) {};
-% \path[arrow,<-] ([xshift=-5mm]server.south) |- (ei1.west);
-% \node[chain] (eo2) at (-29mm, -2mm) {};
-% \path[arrow] (eo1.east) -- (eo2.west);
-% \node[chain] (ei2) at (-29mm, -5mm) {};
-% \path[arrow,<-] (ei1.east) -- (ei2.west);
-% % service lookup
-% \draw[arrow,bend right=20,dashdotted] (eo2.east) to node[above=.8em,align=center] {service\\lookup} (node4.west);
-% \draw[arrow,bend right=10,<-,dashdotted] (ei2.east) to node {} ([yshift=-1mm]node4.west);
-% % data link
-% \draw[arrow,bend left=15,dashdotted] (cco3.west) to node {} (csi3.east);
-% \draw[arrow,bend right=15,dashdotted] (cci3.west) to node {} (cso3.east);
-% \node at (-9mm,20.5mm) {Data connection};
-% \end{tikzpicture}