#LyX 1.3 created this file. For more info see http://www.lyx.org/ \lyxformat 221 \textclass report \begin_preamble \input{preamble} \end_preamble \language english \inputencoding auto \fontscheme times \graphics default \paperfontsize 11 \spacing double \papersize letterpaper \paperpackage a4 \use_geometry 1 \use_amsmath 1 \use_natbib 1 \use_numerical_citations 1 \paperorientation portrait \leftmargin 1.5in \topmargin 0.9in \rightmargin 1in \bottommargin 1in \headsep 0.17in \footskip 0in \secnumdepth 4 \tocdepth 3 \paragraph_separation indent \defskip medskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 1 \paperpagestyle fancy \layout Chapter Conclusion and future work \layout Standard \begin_inset ERT status Collapsed \layout Standard \backslash thispagestyle{empty} \end_inset \begin_inset ERT status Collapsed \layout Standard \backslash renewcommand \backslash figurename{Fig.} \end_inset This last chapter is a high level summery of discoveries of this thesis and possible future work. The contributions include: \layout Itemize The performance increase with multiple path routing. \layout Itemize Weighted multiple path routing further increases bandwidth performance. \layout Itemize A technique for connection based buffering technique to remove out of sequence packets. \layout Itemize Documentation on debugging the Linux kernel with an IDE or emacs editors, an additional tool for other kernel developers. \layout Itemize Documention explaining networking packets processing by the Linux TCP/IP sutie, INET. \layout Section Work contributions \layout Standard \begin_inset Float figure placement H wide false collapsed false \layout Standard \align center \begin_inset Graphics filename Figures/26multipathResult.eps display none \end_inset \layout Caption \begin_inset LatexCommand \label{fig: Result Figure Multipath bandwidth limiting} \end_inset Multiple path routing with bandwidth rate limiting to 150 kB/s \end_inset \layout Standard \begin_inset Float table placement H wide false collapsed false \layout Standard \begin_inset Tabular \begin_inset Text \layout Standard # of node \end_inset \begin_inset Text \layout Standard Bandwidth for each path is restricted to 150 kB/s \end_inset \begin_inset Text \layout Standard 1 \end_inset \begin_inset Text \layout Standard 100.45 kB/s \end_inset \begin_inset Text \layout Standard 2 \end_inset \begin_inset Text \layout Standard 215.88 kB/s \end_inset \begin_inset Text \layout Standard 3 \end_inset \begin_inset Text \layout Standard 339.72 kB/s \end_inset \begin_inset Text \layout Standard 4 \end_inset \begin_inset Text \layout Standard 557.24 kB/s \end_inset \begin_inset Text \layout Standard 5 \end_inset \begin_inset Text \layout Standard 700.82 kB/s \end_inset \end_inset \layout Standard \SpecialChar ~ \newline \layout Caption \begin_inset LatexCommand \label{Table: Result FigureMultipath bandwidth limiting} \end_inset Multiple path routing with bandwidth rate limiting to 150 kB/s \end_inset \layout Standard Fig.\SpecialChar ~ \begin_inset LatexCommand \ref{fig: Result Figure Multipath bandwidth limiting} \end_inset and Table\SpecialChar ~ \begin_inset LatexCommand \ref{Table: Result FigureMultipath bandwidth limiting} \end_inset is a reproduction from Section\SpecialChar ~ \begin_inset LatexCommand \ref{sec:Bandwidth-controlled-scenario} \end_inset to show how the bandwidth increases as the number of nodes in multiple path routing increases. This bandwidth increase is shown better in the table. Each path is restricted by a given bandwidth listed in the column headers of the table. \layout Standard Multiple path routing takes advantage of the bandwidth of addtional intermediate proxies and increases the overall bandwidth. These results are a begining of a solution to the problem posed in Section\SpecialChar ~ \begin_inset LatexCommand \ref{sec:Goals-and-Motivation} \end_inset . The technique for multiple path routing is described in Section\SpecialChar ~ \begin_inset LatexCommand \ref{sec:Iproute2-to-create} \end_inset and Section\SpecialChar ~ \begin_inset LatexCommand \ref{sec:Changing-the-Linux} \end_inset . \layout Standard \begin_inset Float figure placement H wide false collapsed false \layout Standard \align center \begin_inset Graphics filename Figures/26weightResult.eps display none \end_inset \layout Caption \begin_inset LatexCommand \label{fig: Result Figure Weight Multipath bandwidth limiting} \end_inset Weighted Multiple path routing with the first path bandwidth limited to 150 kB/s and using five nodes \end_inset \layout Standard \begin_inset Float table placement H wide false collapsed false \layout Standard \begin_inset Tabular \begin_inset Text \layout Standard Weight ratio \end_inset \begin_inset Text \layout Standard Bandwidth for the first path is restricted to 150 kB/s \end_inset \begin_inset Text \layout Standard 1 \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none :5 \end_inset \begin_inset Text \layout Standard \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none 969.8 \family default \series default \shape default \size default \emph default \bar default \noun default \color default kB/s \end_inset \begin_inset Text \layout Standard 1:10 \end_inset \begin_inset Text \layout Standard \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none 2841.25 \family default \series default \shape default \size default \emph default \bar default \noun default \color default kB/s \end_inset \begin_inset Text \layout Standard 1:15 \end_inset \begin_inset Text \layout Standard \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none 4362.48 \family default \series default \shape default \size default \emph default \bar default \noun default \color default kB/s \end_inset \begin_inset Text \layout Standard 1:20 \end_inset \begin_inset Text \layout Standard \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none 5525.86 \family default \series default \shape default \size default \emph default \bar default \noun default \color default kB/s \end_inset \begin_inset Text \layout Standard 1:25 \end_inset \begin_inset Text \layout Standard \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none 6800 \family default \series default \shape default \size default \emph default \bar default \noun default \color default kB/s \end_inset \begin_inset Text \layout Standard 1:50 \end_inset \begin_inset Text \layout Standard \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none 9471.17 \family default \series default \shape default \size default \emph default \bar default \noun default \color default kB/s \end_inset \end_inset \layout Standard \SpecialChar ~ \newline \layout Caption \begin_inset LatexCommand \label{Table: Result Figure Weight Multipath bandwidth limiting} \end_inset Weighted Multiple path routing with the first path bandwidth limited to 150 kB/s and using five nodes \end_inset \layout Standard Fig.\SpecialChar ~ \begin_inset LatexCommand \ref{fig: Result Figure Weight Multipath bandwidth limiting} \end_inset and Table\SpecialChar ~ \begin_inset LatexCommand \ref{Table: Result Figure Weight Multipath bandwidth limiting} \end_inset are cropped versions of results from Section\SpecialChar ~ \begin_inset LatexCommand \ref{sec:Weighted-scenarios} \end_inset . Fig.\SpecialChar ~ \begin_inset LatexCommand \ref{fig: Result Figure Weight Multipath bandwidth limiting} \end_inset is respresentive of all results demonstrating as the weighted ratio increases to higher bandwidth paths, the overall bandwidth increases. \layout Standard Section\SpecialChar ~ \begin_inset LatexCommand \ref{sec:Packet-buffering} \end_inset describes the technique for creating a connection based buffer. Connection based buffering is a good concept but still needs more work to be benifial for multiple path routing. Connection based buffering significantly reduce the number of duplicate acknowledgements as shown with ethereal network taps, but Fig \begin_inset LatexCommand \ref{fig: Result buffer} \end_inset shows the bandwidth is lower with connection based buffering and multiple path routing. The connection based buffering techniques has a perfomance hit caused by waiting for the correct packet before processing the buffer. This delay increases the overall window and in higher bandwidth environments decreases the overall bandwidth speed. \layout Standard \begin_inset Float figure placement H wide false collapsed false \layout Standard \align center \begin_inset Graphics filename Figures/27BufferResult.eps display none \end_inset \layout Caption \begin_inset LatexCommand \label{fig: Result buffer} \end_inset Multiple path routing vs multipath routing using a connection based buffer \end_inset \layout Standard \begin_inset Float table placement H wide false collapsed false \layout Standard \begin_inset Tabular \begin_inset Text \layout Standard # of node \end_inset \begin_inset Text \layout Standard \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none No buffer \end_inset \begin_inset Text \layout Standard Buffer \end_inset \begin_inset Text \layout Standard 1 \end_inset \begin_inset Text \layout Standard 100.45 kB/s \end_inset \begin_inset Text \layout Standard \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none 105.93 \family default \series default \shape default \size default \emph default \bar default \noun default \color default kB/s \end_inset \begin_inset Text \layout Standard 2 \end_inset \begin_inset Text \layout Standard 215.88 kB/s \end_inset \begin_inset Text \layout Standard \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none 122.87 \family default \series default \shape default \size default \emph default \bar default \noun default \color default kB/s \end_inset \begin_inset Text \layout Standard 3 \end_inset \begin_inset Text \layout Standard 339.72 kB/s \end_inset \begin_inset Text \layout Standard \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none 365.87 \family default \series default \shape default \size default \emph default \bar default \noun default \color default kB/s \end_inset \begin_inset Text \layout Standard 4 \end_inset \begin_inset Text \layout Standard 557.24 kB/s \end_inset \begin_inset Text \layout Standard \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none 427.14 \family default \series default \shape default \size default \emph default \bar default \noun default \color default kB/s \end_inset \begin_inset Text \layout Standard 5 \end_inset \begin_inset Text \layout Standard 700.82 kB/s \end_inset \begin_inset Text \layout Standard \family roman \series medium \shape up \size normal \emph off \bar no \noun off \color none 513.21 \family default \series default \shape default \size default \emph default \bar default \noun default \color default kB/s \end_inset \end_inset \layout Standard \SpecialChar ~ \newline \layout Caption \begin_inset LatexCommand \label{Table: Result buffer} \end_inset Multiple path routing vs multipath routing using a connection based buffer \end_inset \layout Section Additional work \layout Standard Appendix\SpecialChar ~ \begin_inset LatexCommand \ref{cha:Comments-on-User} \end_inset and\SpecialChar ~ \begin_inset LatexCommand \ref{cha:Instruction-manual} \end_inset talk about how to setup a virtual operating system, User Mode Linux, to debug and study the Linux kernel. Many months went into figuring out the online documenation and experimenting with configurations so the virtual machine would work properly. \layout Standard Appendix\SpecialChar ~ \begin_inset LatexCommand \ref{cha:A3-Assessment on TCP} \end_inset and\SpecialChar ~ \begin_inset LatexCommand \ref{cha:tcpStructs} \end_inset documents the study of the Linux kernel's TCP/IP suite, INET. Considering the lack of documentation for the INET code, the writer believes it could be very popular and a useful tool to understanding and teaching the TCP/IP protocol suite. \layout Section Future work \layout Standard While there are many applications fo expand a technique for utlitilizing bandwidth over multiple connections, here are a few the writer would like to share. \layout Subsection A scheduler for applying the weights to each connection path \layout Standard Using the technique talked about in Section\SpecialChar ~ \begin_inset LatexCommand \ref{sec:Weighted-scenarios} \end_inset , a scheduler could be written to manage and change the weights based on the available bandwidth. The bandwidth per connection needs to be stored in a structure. The bulk of the data could be routed through faster connections and calculation s could be done to find the weight peaking the bandwidth. The algorithm used could also write to the scheduler and send packets later in the window anticipating a delay and utilitizing the slow connection path without incurring out of sequence packets. The results shown in Section\SpecialChar ~ \begin_inset LatexCommand \ref{fig: WeightedPacketDistro} \end_inset demonstrates the possiblity of raising the bandwidth to fully utilize the combined bandwidth of all the connection paths. \layout Subsection One-time pad crytograpy using the INET code \layout Standard \begin_inset Float figure placement H wide false collapsed false \layout Standard \align center \begin_inset Graphics filename Figures/28onetimepad.eps \end_inset \layout Caption \begin_inset LatexCommand \label{fig: oneTimePad} \end_inset One time pad with the INET code modifications \end_inset The techniques for virtual machines and modifying the TCP/IP protocol explained in\SpecialChar ~ \begin_inset LatexCommand \ref{cha:Comments-on-User} \end_inset ,\SpecialChar ~ \begin_inset LatexCommand \ref{cha:A3-Assessment on TCP} \end_inset , and\SpecialChar ~ \begin_inset LatexCommand \ref{cha:tcpStructs} \end_inset could be the baseline for creating a secure protocol based on the TCP/IP and one-time pad cryptography \begin_inset LatexCommand \citep{wikipedia} \end_inset . \layout Standard A random generated file containtaing multiple keys is stored on a removeable media (i.e., one gigabyte flash card). The flie's location and a switch for using this random file are passed to the kernel through the proc. Section\SpecialChar ~ \begin_inset LatexCommand \ref{sec:Utilizing-the-Proc} \end_inset talks about how proc can input data to the kernel. The TCP protocol has acknowledgment packets with no data in the payload. Both computers (server and client) have access to the random generated file. The acknowledgement packet can carry a pointer to the current key. The INET code can be modified to encrypt the payload based on the current key. When the packet is received, the INET code knows the key to decrypt the data's content. \layout Standard Since the keys change every four to five packets received (roughly 1500 bytes per packet or 6000 bytes). Using a one gigabyte removable device and encryption keys of 128 bits every four packets. A one gigabyte flash card should be able to send rougly 6.25 terabyes of data (excluding the overhead for the packet transfer) before being recharged with a new random file. Fig.\SpecialChar ~ \begin_inset LatexCommand \ref{fig: oneTimePad} \end_inset graphically illistrates this idea of using one time pad with INET modifications. \layout Standard Each acknowledgement sends the location of the next key to be used. Since acknowledgments are sent every four to five packets during an established connection, the next sent packet uses the next key in the location. This ensures each packet is encrypted with a unque key and data within the acknowledgements are merely pointers to verify where each side is pointing to within the file. \layout Subsection Pornography filter within the kernel \layout Standard Kernel modifications can force an Internet user to check a website for decency without user intervention. If the check returns saying the site is no allowable, the kernel can return an invalid message and block contiuation of the connection. \layout Standard A protocol similar to ARP could be developed to check a website by sending the IP address to an online database. When the online database checks the website, a confirmation can be sent to the computer, similar to DNS. The Linux kernel can also cache the list of acceptable sites to further speed up validation. \the_end