ascii to graphs

This commit is contained in:
Jake Hillion 2020-10-20 10:52:09 +01:00
parent 1041ab6d87
commit 90a44d8d54

View File

@ -4,6 +4,8 @@
\usepackage{pdfpages} \usepackage{pdfpages}
\usepackage{graphicx} \usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document} \begin{document}
\includepdf{cover.pdf} \includepdf{cover.pdf}
@ -35,30 +37,38 @@ Some existing attempts to solve these problems, and the shortfalls of each solut
By providing congestion control over each interface and therefore being able to share packets without bias between connections, this project should provide a superior solution for load balancing across heterogeneous and volatile network connections. An example of a client using this is shown in Figure \ref{fig:sample-network}. It's worth noting that this solution is highly flexible, allowing the client to be a NAT Router with more devices behind it, or the flows from the Local Server to the Remote Server being tunnelled over a VPN. By providing congestion control over each interface and therefore being able to share packets without bias between connections, this project should provide a superior solution for load balancing across heterogeneous and volatile network connections. An example of a client using this is shown in Figure \ref{fig:sample-network}. It's worth noting that this solution is highly flexible, allowing the client to be a NAT Router with more devices behind it, or the flows from the Local Server to the Remote Server being tunnelled over a VPN.
\begin{figure} \begin{figure}
\small \centering
\begin{verbatim} \begin{tikzpicture}[
Uncontrolled squarednode/.style={rectangle, draw=black!60, fill=red!5, very thick, minimum size=5mm},
On Premises Off Premises Devices ]
+-------------------------------------------------+ +----------+ +----------+
% Nodes
\node[squarednode] (client) {Client};
\node[squarednode] (localserver) [right=of client] {Local Server};
\node[squarednode] (modema) [above right=0.5 and 1 of localserver] {Modem A};
\node[squarednode] (modemb) [below right=0.5 and 1 of localserver] {Modem B};
\node[squarednode] (remoteserver) [below right=0.5 and 1 of modema] {Remote Server};
\node[squarednode] (webserver) [above right=of remoteserver] {Web Server};
\node[squarednode] (voipserver) [right=of remoteserver] {VoIP Server};
\node[squarednode] (vpnserver) [below right=of remoteserver] {Corporate VPN};
% Edges
\draw[->] (client.east) -- (localserver.west);
\draw[->] (localserver.east) -- (modema.west);
\draw[->] (localserver.east) -- (modemb.west);
\draw[->] (modema.east) -- (remoteserver.west);
\draw[->] (modemb.east) -- (remoteserver.west);
\draw[->] (remoteserver.east) -- (webserver.west);
\draw[->] (remoteserver.east) -- (voipserver.west);
\draw[->] (remoteserver.east) -- (vpnserver.west);
\end{tikzpicture}
+----------+
| Web |
+->+ Server |
+----------+ via | | |
+-------------------------------+ | | ISP A | +----------+
| | +-->+ Modem A +--+ |
| +----------+ +----------+ | | | | | +----------+ | +----------+
| | | | Local +----+ +----------+ +---->+ Remote +--+ | VoIP |
| | Client +---->+ Server | | | Server |---->+ Server |
| | | | +----+ +----------+ +---->+ +--+ | |
| +----------+ +----------+ | | | | | +----------+ | +----------+
| | +-->+ Modem B +--+ |
+-------------------------------+ | | via | +----------+
+----------+ ISP B | |Corporate |
+->+ VPN |
| |
+----------+
\end{verbatim}
\caption{A network applying this proxy} \caption{A network applying this proxy}
\label{fig:sample-network} \label{fig:sample-network}
\end{figure} \end{figure}
@ -111,30 +121,31 @@ A sample network is provided in Figure \ref{fig:sample-network-session-based}.
\end{enumerate} \end{enumerate}
\begin{figure} \begin{figure}
\small \centering
\begin{verbatim} \begin{tikzpicture}[
Uncontrolled squarednode/.style={rectangle, draw=black!60, fill=red!5, very thick, minimum size=5mm},
On Premises Devices ]
+-------------------------------------------------+ +----------+
% Nodes
\node[squarednode] (client) {Client};
\node[squarednode] (natrouter) [right=of client] {NAT Router};
\node[squarednode] (modema) [above right=0.5 and 1 of natrouter] {Modem A};
\node[squarednode] (modemb) [below right=0.5 and 1 of natrouter] {Modem B};
\node[squarednode] (webserver) [above right=0.25 and 1 of modema] {Web Server};
\node[squarednode] (voipserver) [right=of modema] [below=of webserver] {VoIP Server};
\node[squarednode] (vpnserver) [right=of modemb] [below=of voipserver] {Corporate VPN};
% Edges
\draw[->] (client.east) -- (natrouter.west);
\draw[->] (natrouter.east) -- (modema.west);
\draw[->] (natrouter.east) -- (modemb.west);
\draw[->] (modema.east) -- (webserver.west);
\draw[->] (modema.east) -- (voipserver.west);
\draw[->] (modemb.east) -- (vpnserver.west);
\end{tikzpicture}
+----------+
| Web |
+-->+ Server |
+----------+ | | |
+-------------------------------+ | +--+ +----------+
| | +-->+ Modem A |
| +----------+ +----------+ | | | +--+ +----------+
| | | | NAT +----+ +----------+ | | VoIP |
| | Client +---->+ Router | | +-->+ Server |
| | | | +----+ +----------+ | |
| +----------+ +----------+ | | | | +----------+
| | +-->+ Modem B +--+
+-------------------------------+ | | | +----------+
+----------+ | |Corporate |
+-->+ VPN |
| |
+----------+
\end{verbatim}
\caption{A network with a NAT Router and two modems} \caption{A network with a NAT Router and two modems}
\label{fig:sample-network-session-based} \label{fig:sample-network-session-based}
\end{figure} \end{figure}