\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{xavierjackson6940} \pdfinfo{ /Title (ethernet-lan-switching.pdf) /Creator (Cheatography) /Author (xavierjackson6940) /Subject (Ethernet LAN Switching 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}{00A32B} \definecolor{LightBackground}{HTML}{EFF9F1} \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{Ethernet LAN Switching Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{xavierjackson6940} via \textcolor{DarkBackground}{\uline{cheatography.com/184463/cs/38482/}}} \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}xavierjackson6940 \\ \uline{cheatography.com/xavierjackson6940} \\ \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 1st May, 2023.\\ 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*}{3} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{What is a LAN?}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{A LAN stands for local area network. These are devices that are confined to a limited area. For example, a SOHO, or an office department etc. A LAN in its basic form can just be two computers plugged together. However, in most enterprise or office's, these LAN's are created by something called a switch. End-hosts are typically plugged into switches. These end hosts could be PC's or servers.% Row Count 8 (+ 8) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{What is a Switch?}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{A switch is a Layer 2 device. (Based on OSI Model) Switches typically have a lot of ports on them, unlike routers which typically do not have many interfaces on them. This makes switches great to plug into end hosts. \newline % Row Count 5 (+ 5) The function of a switch is to forward traffic WITHIN LAN's. A router on the other hand will forward traffic BETWEEN LAN's.% Row Count 8 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Ethernet Switching}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Ethernet Switching is when a switch forwards traffic to the correct end host within a LAN based upon MAC addresses. \newline % Row Count 3 (+ 3) Ethernet itself is a Layer 2 protocol in the OSI Model, also known as the Data Link Layer. \newline % Row Count 5 (+ 2) The PDU (Protocol Data Unit) at Layer 2 is known as a Frame. Thus Ethernet Frames are what are sent when sending traffic within LAN's.% Row Count 8 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Ethernet Frames}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{The Minimum size for an Ethernet Frame is 64 Bytes. 1 Byte = 8 Bits, so 64 Bytes = 512. \newline % Row Count 2 (+ 2) An Ethernet Frame will include an Ethernet header, a packet (encapsulated from Layer 3) and a trailer. This would make the minimum size if everything included to 64 bytes. \newline % Row Count 6 (+ 4) Minimum PAYLOAD size is 46. If \textless{}46 padding bytes are added to the frame to add upto 46. (Below explains why)% Row Count 9 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Ethernet Header: (Without 802.1Q)}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{The Ethernet Header is comprised of 4 main sections (There are optional ones, like VLAN 802.1q which isnt explained here). These are Preamble \& SFD, Destination \& Source, Type, and CRC.} \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Preamble \& SFD:}} The preamble is 7 bytes long. (56 bits) Its main purpose is to allow devices to sync their reciever clocks. The SFD is 1 byte long (8 bits) and is used to mark the end of the rest of the frame. The preamble \& SFD are usually not considered part of the ethernet frame. So, without this, the ethernet payload is 64-18 (Preamble +SFD) = 46. So, if it is \textless{}46 padding is added.} \tn % Row Count 12 (+ 8) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\bf{Destination \& Source:}} These sections indicate the source \& destination of where the frame is headed too. Inside these it includes MAC addresses, which are 6 bytes in length. So it will be 6 bytes for both the Destination \& the Source. In ethernet frames destination comes before source, because of something called ARP.} \tn % Row Count 19 (+ 7) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{Type/Length:}} 2 Bytes in Length. (16 Bits) A value of 1500 or less indicates the length of the encapsulated packet. A value of 1536 or higher indicates the TYPE of encapsulated packet. For example IPv4 = 2048, IPv6 = 34,525.} \tn % Row Count 24 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{MAC Addresses}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{MAC Address stands for Media Access control. \newline % Row Count 1 (+ 1) Its 6 bytes in Length. Its usually assigned/burnt into the device when it is manufactured. (Usually to the NIC). \newline % Row Count 4 (+ 3) The first 3 bytes are the OUI (Organizationally Unique Identifier, which is assigned to the company making the network device. \newline % Row Count 7 (+ 3) The Last 3 bytes are unique to the device itself. \newline % Row Count 8 (+ 1) It is also written is hexadecimal. (Not included here)% Row Count 10 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{MAC Address Table}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{A Switch will have a MAC address table. This is what it uses to record the MAC address of the device it receives a frame from. \newline % Row Count 3 (+ 3) It will note the MAC address of the device \& the interface. \newline % Row Count 5 (+ 2) This is known as Dynamically Learned MAC address. \newline % Row Count 7 (+ 2) Statically Learnt is when the MAC address is manually configured to the switch.% Row Count 9 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Unicast/Unknown Unicast}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{A unicast frame is one that is intended for a single target. If this end host is known, then its all good and traffic will end up where it should. \newline % Row Count 3 (+ 3) However, if the switch does not know the MAC address of the end host, then it will flood the frame out of all its interfaces besides the interface it received it on. This is so it can find out what end host the frame is for. This is known as an Unknown Unicast Frame. \newline % Row Count 9 (+ 6) Once a flood happens, all devices that receieve the frame will de-encapsulate it upto the data link layer to see if its MAC address matches the destination MAC Address of the frame. If it does, then it sends a unicast reply back to the switch. If not, it drops the packet.% Row Count 15 (+ 6) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Known Unicast/Forwarding}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{If a Switch has already sent traffic (or has statically assigned MAC addresses) then there is no need to send out an Unknown unicast if it has that devices MAC address already. \newline % Row Count 4 (+ 4) It will just forward the frame. This is Known Unicast Frame. \newline % Row Count 6 (+ 2) So essentially, Unknown Unicast = flooding, known = Unicast% Row Count 8 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{ARP}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{ARP stands for address resolution protocol. \newline % Row Count 1 (+ 1) ARP is used to discover the layer 2 address (MAC) of a known layer 3 address. (IP address) \newline % Row Count 3 (+ 2) Consists of an ARP Request \& ARP Reply. \newline % Row Count 4 (+ 1) ARP Request = Broadcast Ethernet frame, sent to all hosts on the network. \newline % Row Count 6 (+ 2) ARP Reply = Unicast. Sent to only one host. (The host that sent the request.) \newline % Row Count 8 (+ 2) All F's is a broadcast MAC Address. \newline % Row Count 9 (+ 1) Switches will have an ARP Table. We can also see the ARP table in windows via 'ARP - a', or in Cisco IOS via 'Show ARP'% Row Count 12 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Ping}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Ping is a network tool that is used to test reachability. So if an end host is reachable. \newline % Row Count 2 (+ 2) Measures the round trip time. \newline % Row Count 3 (+ 1) Ping uses ICMP Echo Request \& ICP Echo Reply. \newline % Row Count 4 (+ 1) ICMP Echo Request needs the MAC address of the destination host before an echo request can be sent. \newline % Row Count 6 (+ 2) Thus we need ARP first. \newline % Row Count 7 (+ 1) Command to use ping is: 'ping (IP Address)' \newline % Row Count 8 (+ 1) Usually when pinging the first packet will drop due to ARP, but the rest should work if everything is configured correctly. If not, then all packets will drop.% Row Count 12 (+ 4) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}