diff --git a/Introduction/Figs/Bottlenecks.jpg b/1_Introduction/Figs/Bottlenecks.jpg similarity index 100% rename from Introduction/Figs/Bottlenecks.jpg rename to 1_Introduction/Figs/Bottlenecks.jpg diff --git a/Introduction/introduction.tex b/1_Introduction/introduction.tex similarity index 97% rename from Introduction/introduction.tex rename to 1_Introduction/introduction.tex index 86d837b..cda9291 100644 --- a/Introduction/introduction.tex +++ b/1_Introduction/introduction.tex @@ -6,9 +6,9 @@ \chapter{Introduction} %Title of the First Chapter \ifpdf - \graphicspath{{Introduction/Figs/Raster/}{Introduction/Figs/PDF/}{Introduction/Figs/}} + \graphicspath{{1_Introduction/Figs/Raster/}{1_Introduction/Figs/PDF/}{1_Introduction/Figs/}} \else - \graphicspath{{Introduction/Figs/Vector/}{Introduction/Figs/}} + \graphicspath{{1_Introduction/Figs/Vector/}{1_Introduction/Figs/}} \fi Most UK residential broadband speeds receive broadband speeds advertised at between 30Mbps and 100Mbps download (Ofcom, “UK Home Broadband Performance.”, \cite{ofcom_performance_2020}). However, it is often possible to have multiple low bandwidth connections installed. More generally, a wider variety of Internet connections for fixed locations are becoming available with time. These include: DSL, Fibre To The Premises, 4G, 5G, Wireless ISPs such as LARIAT and Low Earth Orbit ISPs such as Starlink. This work focuses on a method of providing an aggregate link from multiple distinct connections, regardless of their likeness. diff --git a/Preparation/Figs/Middlebox.png b/2_Preparation/Figs/Middlebox.png similarity index 50% rename from Preparation/Figs/Middlebox.png rename to 2_Preparation/Figs/Middlebox.png index 4e2f390..7492af9 100644 Binary files a/Preparation/Figs/Middlebox.png and b/2_Preparation/Figs/Middlebox.png differ diff --git a/Preparation/Figs/VPNConfig1.jpg b/2_Preparation/Figs/VPNConfig1.jpg similarity index 100% rename from Preparation/Figs/VPNConfig1.jpg rename to 2_Preparation/Figs/VPNConfig1.jpg diff --git a/Preparation/Figs/VPNConfig2.jpg b/2_Preparation/Figs/VPNConfig2.jpg similarity index 100% rename from Preparation/Figs/VPNConfig2.jpg rename to 2_Preparation/Figs/VPNConfig2.jpg diff --git a/Preparation/Samples/funcstring.go b/2_Preparation/Samples/funcstring.go similarity index 100% rename from Preparation/Samples/funcstring.go rename to 2_Preparation/Samples/funcstring.go diff --git a/Preparation/Samples/string.go b/2_Preparation/Samples/string.go similarity index 100% rename from Preparation/Samples/string.go rename to 2_Preparation/Samples/string.go diff --git a/Preparation/preparation.tex b/2_Preparation/preparation.tex similarity index 99% rename from Preparation/preparation.tex rename to 2_Preparation/preparation.tex index b32d23f..ea0caab 100644 --- a/Preparation/preparation.tex +++ b/2_Preparation/preparation.tex @@ -5,9 +5,9 @@ \chapter{Preparation} \ifpdf - \graphicspath{{Preparation/Figs/Raster/}{Preparation/Figs/PDF/}{Preparation/Figs/}} + \graphicspath{{2_Preparation/Figs/Raster/}{2_Preparation/Figs/PDF/}{2_Preparation/Figs/}} \else - \graphicspath{{Preparation/Figs/Vector/}{Preparation/Figs/}} + \graphicspath{{2_Preparation/Figs/Vector/}{2_Preparation/Figs/}} \fi Proxying packets is the process of taking packets that arrive at one location and transporting them to leave at another. This chapter focuses on the preparatory work to achieve this practically and securely, given the design outlined in the previous chapter, in which the proxy consolidates multiple connections to appear as one to both the wider Internet and devices on the local network. In sections \ref{section:risk-analysis} and \ref{section:preparation-security}, I discuss the security risks and plans to confront them. In section \ref{section:language-selection}, I present three languages: Go, Rust and C++, and provide context for choosing Go as the implementation language. Finally, in sections \ref{section:requirements-analysis} and \ref{section:engineering-approach}, I present a requirements analysis and a description of the engineering approach for the project. @@ -285,12 +285,12 @@ One of the most important features of any agile methodology is welcoming changin \centering \begin{subfigure}[t]{0.45\textwidth} \centering - \inputminted{go}{Preparation/Samples/string.go} + \inputminted{go}{2_Preparation/Samples/string.go} \caption{The structure with a fixed local address.} \end{subfigure} \begin{subfigure}[t]{0.45\textwidth} \centering - \inputminted{go}{Preparation/Samples/funcstring.go} + \inputminted{go}{2_Preparation/Samples/funcstring.go} \caption{The structure with a dynamic local address.} \end{subfigure} \caption{An example of refactoring for changing requirements.} diff --git a/Implementation/Samples/congestion.go b/3_Implementation/Samples/congestion.go similarity index 100% rename from Implementation/Samples/congestion.go rename to 3_Implementation/Samples/congestion.go diff --git a/Implementation/Samples/mac.go b/3_Implementation/Samples/mac.go similarity index 100% rename from Implementation/Samples/mac.go rename to 3_Implementation/Samples/mac.go diff --git a/Implementation/Samples/wireshark_dissector.lua b/3_Implementation/Samples/wireshark_dissector.lua similarity index 100% rename from Implementation/Samples/wireshark_dissector.lua rename to 3_Implementation/Samples/wireshark_dissector.lua diff --git a/Implementation/implementation.tex b/3_Implementation/implementation.tex similarity index 99% rename from Implementation/implementation.tex rename to 3_Implementation/implementation.tex index ecab821..ccbba11 100644 --- a/Implementation/implementation.tex +++ b/3_Implementation/implementation.tex @@ -5,9 +5,9 @@ % **************************** Define Graphics Path ************************** \ifpdf - \graphicspath{{Implementation/Figs/Raster/}{Implementation/Figs/PDF/}{Implementation/Figs/}} + \graphicspath{{3_Implementation/Figs/Raster/}{3_Implementation/Figs/PDF/}{3_Implementation/Figs/}} \else - \graphicspath{{Implementation/Figs/Vector/}{Implementation/Figs/}} + \graphicspath{{3_Implementation/Figs/Vector/}{3_Implementation/Figs/}} \fi % --------------------------- Introduction --------------------------------- % @@ -353,7 +353,7 @@ Although the repeated packet protection is primarily targeted at avoiding repeat The message authentication interfaces, shown in figure \ref{fig:message-authenticator-interface}, are designed to simply support any MAC generator, including digital signatures. The MAC algorithm that is implemented at this point is BLAKE2s \citep{hutchison_blake2_2013}, a fast and secure algorithm that supports prefix-MAC generation. BLAKE2s is available in OpenSSL\footnote{\url{https://openssl.org}} and the Go \verb'crypto'\footnote{\url{https://github.com/golang/crypto}} library, making it accessible. It is also an extremely fast algorithm, that provides the necessary guarantees for this software, so was chosen for its low performance overheads. Any other MAC which can be generated in a similar fashion could also be used. \begin{figure} - \inputminted{go}{Implementation/Samples/mac.go} + \inputminted{go}{3_Implementation/Samples/mac.go} \caption{Message authenticator interface} \label{fig:message-authenticator-interface} \end{figure} diff --git a/Evaluation/Figs/graphs/bidirectional-inbound.png b/4_Evaluation/Figs/graphs/bidirectional-inbound.png similarity index 100% rename from Evaluation/Figs/graphs/bidirectional-inbound.png rename to 4_Evaluation/Figs/graphs/bidirectional-inbound.png diff --git a/Evaluation/Figs/graphs/bidirectional-outbound.png b/4_Evaluation/Figs/graphs/bidirectional-outbound.png similarity index 100% rename from Evaluation/Figs/graphs/bidirectional-outbound.png rename to 4_Evaluation/Figs/graphs/bidirectional-outbound.png diff --git a/Evaluation/Figs/graphs/more-bandwidth-equal-a-inbound.png b/4_Evaluation/Figs/graphs/more-bandwidth-equal-a-inbound.png similarity index 100% rename from Evaluation/Figs/graphs/more-bandwidth-equal-a-inbound.png rename to 4_Evaluation/Figs/graphs/more-bandwidth-equal-a-inbound.png diff --git a/Evaluation/Figs/graphs/more-bandwidth-equal-b-inbound.png b/4_Evaluation/Figs/graphs/more-bandwidth-equal-b-inbound.png similarity index 100% rename from Evaluation/Figs/graphs/more-bandwidth-equal-b-inbound.png rename to 4_Evaluation/Figs/graphs/more-bandwidth-equal-b-inbound.png diff --git a/Evaluation/Figs/graphs/more-bandwidth-four-a-inbound.png b/4_Evaluation/Figs/graphs/more-bandwidth-four-a-inbound.png similarity index 100% rename from Evaluation/Figs/graphs/more-bandwidth-four-a-inbound.png rename to 4_Evaluation/Figs/graphs/more-bandwidth-four-a-inbound.png diff --git a/Evaluation/Figs/graphs/more-bandwidth-four-b-inbound.png b/4_Evaluation/Figs/graphs/more-bandwidth-four-b-inbound.png similarity index 100% rename from Evaluation/Figs/graphs/more-bandwidth-four-b-inbound.png rename to 4_Evaluation/Figs/graphs/more-bandwidth-four-b-inbound.png diff --git a/Evaluation/Figs/graphs/more-bandwidth-unequal-a-inbound.png b/4_Evaluation/Figs/graphs/more-bandwidth-unequal-a-inbound.png similarity index 100% rename from Evaluation/Figs/graphs/more-bandwidth-unequal-a-inbound.png rename to 4_Evaluation/Figs/graphs/more-bandwidth-unequal-a-inbound.png diff --git a/Evaluation/Figs/graphs/more-bandwidth-unequal-b-inbound.png b/4_Evaluation/Figs/graphs/more-bandwidth-unequal-b-inbound.png similarity index 100% rename from Evaluation/Figs/graphs/more-bandwidth-unequal-b-inbound.png rename to 4_Evaluation/Figs/graphs/more-bandwidth-unequal-b-inbound.png diff --git a/Evaluation/evaluation.tex b/4_Evaluation/evaluation.tex similarity index 99% rename from Evaluation/evaluation.tex rename to 4_Evaluation/evaluation.tex index 82fb8a3..3546c34 100644 --- a/Evaluation/evaluation.tex +++ b/4_Evaluation/evaluation.tex @@ -6,9 +6,9 @@ % **************************** Define Graphics Path ************************** \ifpdf - \graphicspath{{Evaluation/Figs/Raster/}{Evaluation/Figs/PDF/}{Evaluation/Figs/}} + \graphicspath{{4_Evaluation/Figs/Raster/}{4_Evaluation/Figs/PDF/}{4_Evaluation/Figs/}} \else - \graphicspath{{Evaluation/Figs/Vector/}{Evaluation/Figs/}} + \graphicspath{{4_Evaluation/Figs/Vector/}{4_Evaluation/Figs/}} \fi This chapter will discuss the methods used to evaluate my project and the results gained. The results will be discussed in the context of the success criteria laid out in the Project Proposal. diff --git a/Conclusions/conclusions.tex b/5_Conclusions/conclusions.tex similarity index 88% rename from Conclusions/conclusions.tex rename to 5_Conclusions/conclusions.tex index e3f2a04..11c55db 100644 --- a/Conclusions/conclusions.tex +++ b/5_Conclusions/conclusions.tex @@ -6,9 +6,9 @@ % **************************** Define Graphics Path ************************** \ifpdf - \graphicspath{{Chapter5/Figs/Raster/}{Chapter5/Figs/PDF/}{Chapter5/Figs/}} + \graphicspath{{5_Conclusions/Figs/Raster/}{5_Conclusions/Figs/PDF/}{5_Conclusions/Figs/}} \else - \graphicspath{{Chapter5/Figs/Vector/}{Chapter5/Figs/}} + \graphicspath{{5_Conclusions/Figs/Vector/}{5_Conclusions/Figs/}} \fi \section{Future Work} diff --git a/thesis.tex b/thesis.tex index 86c3620..a4d3de0 100644 --- a/thesis.tex +++ b/thesis.tex @@ -135,11 +135,11 @@ % ******************************** Main Matter ********************************* \mainmatter -\include{Introduction/introduction} -\include{Preparation/preparation} -\include{Implementation/implementation} -\include{Evaluation/evaluation} -\include{Conclusions/conclusions} +\include{1_Introduction/introduction} +\include{2_Preparation/preparation} +\include{3_Implementation/implementation} +\include{4_Evaluation/evaluation} +\include{5_Conclusions/conclusions} % ********************************** Back Matter *******************************