\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{phamine} \pdfinfo{ /Title (wireless-networks.pdf) /Creator (Cheatography) /Author (phamine) /Subject (Wireless Networks Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{7D7D7D} \definecolor{LightBackground}{HTML}{F6F6F6} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Wireless Networks Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{phamine} via \textcolor{DarkBackground}{\uline{cheatography.com/20752/cs/3632/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}phamine \\ \uline{cheatography.com/phamine} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 13th May, 2016.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{4} \begin{tabularx}{3.833cm}{x{0.92691 cm} x{2.50609 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{Physical Layer}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{3.833cm}}{radios, coaxial cable, optical fibers} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{3.833cm}}{bits "on the wire"} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} spread spectrum & reduces narrowband interference by spreading a signal's frequency to create a wider bandwidth \tn % Row Count 6 (+ 4) % Row 3 \SetRowColor{white} DSSS & direct sequence spread spectrum \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} FHSS & frequency hopping spread spectrum \tn % Row Count 10 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{3.833cm}}{DSSS and FHSS require time synchronization between sender and receiver.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Maximum (Data) Bandwidth}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{Shannon Channel Capacity} \tn \mymulticolumn{1}{x{3.833cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}data rate = Wlog`2`(1 + S/N)} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{(theoretical) maximum number of bits that can be transmitted per second by a physical channel} \tn % Row Count 4 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{data rate = {\bf{bps}} \newline W = frequency range = bandwidth = {\bf{Hz}} \newline S/N = signal noise ratio = {\bf{no unit}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{p{0.78959 cm} x{2.64341 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{Variables}} \tn % Row 0 \SetRowColor{LightBackground} Signal & sending signal \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Noise & thermal noise, background radiation (aka AWGN - additive white gaussian noise) \tn % Row Count 4 (+ 3) % Row 2 \SetRowColor{LightBackground} \seqsplit{Interference} & signals from other transmitting sources \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} SINR or SNR & S/(N + I) \tn % Row Count 8 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Path Loss Formulas}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{free space model} \tn \mymulticolumn{1}{x{3.833cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}-{}-} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{two-ray ground reflection model} \tn \mymulticolumn{1}{x{3.833cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}-{}-} \tn % Row Count 4 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Effects on Signal Propagation}} \tn \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{path loss, shadowing, reflection, refraction, scattering, diffraction, fading% Row Count 2 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Multiplexing}} \tn \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{space, time, frequency, code \newline % Row Count 1 (+ 1) TODO: pros/cons of each% Row Count 2 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Modulation}} \tn \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{AM, FM, PM \newline % Row Count 1 (+ 1) amplitude modulation, frequency modulation, phase modulation \newline % Row Count 3 (+ 2) TODO: \newline % Row Count 4 (+ 1) pros/cons of each% Row Count 5 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{x{1.27021 cm} x{2.16279 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{Link Layer}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{3.833cm}}{WiFi, Ethernet} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{3.833cm}}{data transfer btwn neighboring network elements} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{3.833cm}}{IEEE 802.11 DCF CSMA/CA} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} CSMA/CA & carrier sensing medium access / collision avoidance \tn % Row Count 6 (+ 3) % Row 4 \SetRowColor{LightBackground} DCF & distributed coordination function - appropriate for multi-hop ad hoc networks \tn % Row Count 10 (+ 4) % Row 5 \SetRowColor{white} RTS/CTS & request to send, clear to send \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} hidden terminal problem & A and C want to send to B but A and C cannot see each other. both send to B and msg collides. solved by RTS/CTS \tn % Row Count 17 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Security}} \tn \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{TODO WEP insecure as heck} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{x{1.0299 cm} x{2.4031 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{Network Layer}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{3.833cm}}{IP, routing protocols} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{3.833cm}}{routing of datagrams from src to dest} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{3.833cm}}{knows addresses, routes from src to dest, elems = hosts and routers} \tn % Row Count 4 (+ 2) % Row 3 \SetRowColor{white} LS & link state \tn % Row Count 5 (+ 1) % Row 4 \SetRowColor{LightBackground} DV & distance vector \tn % Row Count 6 (+ 1) % Row 5 \SetRowColor{white} types of networks & MANET (mobile ad hoc network), mesh network, sensor network, DTN (delay tolerant network) \tn % Row Count 10 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Mobile IP}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{{\bf{TO}} mobile system} \tn \mymulticolumn{1}{x{3.833cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}CN -\textgreater{} HA -\textgreater{} FA -\textgreater{} MN} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{{\bf{FROM}} mobile node} \tn \mymulticolumn{1}{x{3.833cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}MN -\textgreater{} FA -\textgreater{} CN} \tn % Row Count 4 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{CN = correspondent node (aka FN = fixed node??) \newline HA = home agent \newline FA = foreign agent \newline MN = mobile node} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{p{0.71091 cm} p{0.28963 cm} p{0.34229 cm} x{1.29017 cm} } \SetRowColor{DarkBackground} \mymulticolumn{4}{x{3.833cm}}{\bf\textcolor{white}{DTN}} \tn % Row 0 \SetRowColor{LightBackground} ALGORITHM & WHO & WHEN & TO WHOM \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} flood & all nodes & new \seqsplit{contact} & all new \tn % Row Count 4 (+ 3) % Row 2 \SetRowColor{LightBackground} direct & src only & dest & dest \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} simple \seqsplit{replication} (r) & src only & new \seqsplit{contact} & r first contacts \tn % Row Count 9 (+ 3) % Row 4 \SetRowColor{LightBackground} history (r) & all nodes & new \seqsplit{contact} & r highest ranked \tn % Row Count 12 (+ 3) % Row 5 \SetRowColor{white} erasure coding (ec-r) & src only & new \seqsplit{contact} & kr (k \textgreater{}= 1) first contacts (k is related to coding algorithm) \tn % Row Count 16 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}----} \SetRowColor{LightBackground} \mymulticolumn{4}{x{3.833cm}}{TODO: review history and erasure coding} \tn \hhline{>{\arrayrulecolor{DarkBackground}}----} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{p{0.37763 cm} x{3.05537 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{Sensor Network}} \tn % Row 0 \SetRowColor{LightBackground} GPSR & greedy perimeter stateless routing \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} BVR & beacon vector routing \tn % Row Count 2 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{3.833cm}}{TODO: study implementation and write in chart in word or something} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{p{0.3433 cm} x{3.0897 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{Mesh Networks}} \tn % Row 0 \SetRowColor{LightBackground} ETX & expected transmission count \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} & = 1/(d`f` * d`r`) ... where d`f` = fwd delivery rate, d`r` = rev delivery rate \tn % Row Count 4 (+ 3) % Row 2 \SetRowColor{LightBackground} ETT & estimated transmission time TODO: this is some combo of SETT and something right??? \tn % Row Count 7 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{p{0.3433 cm} x{3.0897 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{MANET}} \tn % Row 0 \SetRowColor{LightBackground} DSR & destination source routing \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} AODV & ad hoc on-demand distance vector \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} DSDV & destination-sequenced distance vector \tn % Row Count 4 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{3.833cm}}{DSR can be used for wireless mesh networks} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{x{0.96124 cm} x{2.47176 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{Transport Layer}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{3.833cm}}{TCP, UDP} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{3.833cm}}{host-host data transfer} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} UDP & user datagram protocol \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} TCP (wired) & transmission control protocol \tn % Row Count 5 (+ 2) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{3.833cm}}{Mobile TCP} \tn % Row Count 6 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{p{0.3433 cm} p{0.3433 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{TCP - not pipelined}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{3.833cm}}{Stop and wait} \tn % Row Count 1 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{p{0.85825 cm} x{2.57475 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{TCP - pipelined}} \tn % Row 0 \SetRowColor{LightBackground} GBN & go-back-N \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{3.833cm}}{selective repeat} \tn % Row Count 2 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Questions}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{Why can't we just use NACK?} \tn % Row Count 1 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Formulas}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{Transmission} \tn \mymulticolumn{1}{x{3.833cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}T = L/R} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{Utilization - fraction of time sender is busy sending} \tn \mymulticolumn{1}{x{3.833cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}U = (L/R) / (RTT + L/R)} \tn % Row Count 5 (+ 3) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{Speed of light (to convert distance to propagation delay)} \tn \mymulticolumn{1}{x{3.833cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}3E8 m/s} \tn % Row Count 8 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{{\bf{Don't forget to use proper units (convert)}} \newline T = transmission time in {\bf{seconds}} \newline L = pack length in {\bf{bits}} \newline R = transmission rate in {\bf{bps}} \newline U = utilization {\bf{no unit}} \newline RTT = round trip time {\bf{seconds}} = propagation delay * 2} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}