forked from cosmos/ibc
-
Notifications
You must be signed in to change notification settings - Fork 5
/
dataflow.tex
66 lines (48 loc) · 2.73 KB
/
dataflow.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
\documentclass[tikz,10pt,border=10pt]{standalone}
\usepackage{textcomp}
\usepackage{xcolor}
\usetikzlibrary{shapes,arrows}
\begin{document}
\tikzset{%
state/.style = {draw, thick, rectangle, node distance = 6cm}
}
\tikzstyle{arrow} = [thick,->,>=stealth]
\begin{tikzpicture}[auto, thick, node distance=2cm, >=triangle 45]
\draw (0,0) -- (6,0) -- (6,8) -- (0,8) -- (0,0);
\node (clientB) [draw] at (3,1) {\textsc{Client 'B'}};
\node (conn123a) [draw] at (3,2) {\textsc{Conn '123a'}};
\node (chan0x1a) [draw] at (3,3) {\textsc{Port '1', Chan '0x1a'}};
\node (chan0x2a) [draw] at (3,4) {\textsc{Port '2', Chan '0x2a'}};
\node (chan0x3a) [draw] at (3,5) {\textsc{Port '3', Chan '0x3a'}};
\node (chan0x4a) [draw] at (3,6) {\textsc{Port '4', Chan '0x4a'}};
\draw[arrow, bend right] (chan0x1a.west) to (conn123a.west);
\draw[arrow, bend right] (chan0x2a.west) to (conn123a.west);
\draw[arrow, bend right] (chan0x3a.west) to (conn123a.west);
\draw[arrow, bend right] (chan0x4a.west) to (conn123a.west);
\draw (12,0) -- (18,0) -- (18,8) -- (12,8) -- (12,0);
\node (clientA) [draw] at (15,1) {\textsc{Client 'A'}};
\node (conn123b) [draw] at (15,2) {\textsc{Conn '123b'}};
\node (chan0x1b) [draw] at (15,3) {\textsc{Port '5', Chan '0x1b'}};
\node (chan0x2b) [draw] at (15,4) {\textsc{Port '6', Chan '0x2b'}};
\node (chan0x3b) [draw] at (15,5) {\textsc{Port '7', Chan '0x3b'}};
\node (chan0x4b) [draw] at (15,6) {\textsc{Port '8', Chan '0x4b'}};
\draw[arrow, bend left] (chan0x1b.east) to (conn123b.east);
\draw[arrow, bend left] (chan0x2b.east) to (conn123b.east);
\draw[arrow, bend left] (chan0x3b.east) to (conn123b.east);
\draw[arrow, bend left] (chan0x4b.east) to (conn123b.east);
\draw[arrow] (conn123a) -- (conn123b);
\draw[arrow] (conn123b) -- node[anchor=south] {\textsc{Connection Handshake (once)}} (conn123a);
\draw[arrow] (conn123a) -- node[anchor=east] {\textsc{Verification}} (clientB);
\draw[arrow] (conn123b) -- node[anchor=west] {\textsc{Verification}} (clientA);
\draw[arrow] (10,1) -- node[anchor=south east] {\textsc{Headers from 'A'}} (clientA);
\draw[arrow] (8,1) -- node[anchor=south west] {\textsc{Headers from 'B'}} (clientB);
\draw[arrow] (chan0x1b) -- (chan0x1a);
\draw[arrow] (chan0x1a) -- node[anchor=south] {\textsc{Channel Handshake (once), packets (many)}} (chan0x1b);
\draw[arrow] (chan0x2b) -- (chan0x2a);
\draw[arrow] (chan0x2a) -- node[anchor=south] {\textsc{Channel Handshake (once), packets (many)}} (chan0x2b);
\draw[arrow] (chan0x3b) -- (chan0x3a);
\draw[arrow] (chan0x3a) -- node[anchor=south] {\textsc{Channel Handshake (once), packets (many)}} (chan0x3b);
\draw[arrow] (chan0x4b) -- (chan0x4a);
\draw[arrow] (chan0x4a) -- node[anchor=south] {\textsc{Channel Handshake (once), packets (many)}} (chan0x4b);
\end{tikzpicture}
\end{document}