CINXE.COM

What Does a Router Do? | HowStuffWorks

<!DOCTYPE html><html class="Article content-1196" lang="en-us" itemscope itemtype="https://schema.org/FAQPage"> <head><meta charset="utf-8"><link rel="preload" href="https://cdn.hswstatic.com/fonts/roboto-v20-latin-regular.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="https://cdn.hswstatic.com/fonts/roboto-v20-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" as="image" type="image/avif" href="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRlci1nZW9zdHJlYW0uanBnIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyOTB9LCJ0b0Zvcm1hdCI6ImF2aWYifX0=" /> <link rel="preconnect" href="https://adservice.google.com"> <link rel="preconnect" href="https://securepubads.g.doubleclick.net"> <link rel="preconnect" href="https://googleads4.g.doubleclick.net"> <link rel="preconnect" href="https://c.amazon-adsystem.com"> <link rel="preconnect" href="https://tpc.googlesyndication.com"> <link rel="preconnect" href="https://pagead2.googlesyndication.com"> <link rel="preconnect" href="https://www.google-analytics.com"> <link rel="preconnect" href="https://www.googletagmanager.com"><link rel="dns-prefetch" href="https://ad.doubleclick.net"> <meta name="template" content="Article" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>What Does a Router Do? | HowStuffWorks</title><script> var viewingEnvironment = "prod"; var HSW = HSW || {}; window.HSW = HSW; HSW.env = viewingEnvironment; HSW.domain = 'howstuffworks'; HSW.site = 'HSW'; HSW.domainFormatted = "//www.howstuffworks.com"; HSW.domainApi = `${HSW.domainFormatted}`; HSW.staticHost = '//cdn.hswstatic.com'; HSW.assetHost = '//cdn-assets.hswstatic.com'; HSW.assetUrl = '//cdn-assets.hswstatic.com/lite/2955/'; HSW.dirHost = '//resize.hswstatic.com'; HSW.mediaHost = 'media.hswstatic.com'; HSW.mediaSrc = 'content.hswstatic.com'; HSW.imageRouter = ''; HSW.mp4Host = 'cdn-mp4.hswstatic.com'; HSW.bdsUrl = 'https://bd.howstuffworks.com/direct'; HSW.bdsProduct = 'hsw'; HSW.contentType = 'article'; HSW.subdomain = 'computer'; HSW.oneTrustSiteID = '17ee457c-e9a3-4e66-9b99-3c9e77442704';(function (w, n, m, l) {w[n] = w[n] || {};w[n][m] = w[n][m] || {};w[n][m][l] = w[n][m][l] || function (a, b) { (w[n][m].q = w[n][m].q || []).push([a, b]); }; })(window, 's1', 'DPL', 'log');function getCookie(c){var a=document.cookie,b=a.indexOf(" "+c+"=");-1==b&&(b=a.indexOf(c+"="));-1==b?a=null:(b=a.indexOf("=",b)+1,c=a.indexOf(";",b),-1==c&&(c=a.length),a=unescape(a.substring(b,c)));return a};function setCookie(n,v,ms,h,ss) {var e = "";if (ms) {var d = new Date();d.setTime(d.getTime() + ms);e = "; expires=" + d.toUTCString();}let nc = n + "=" + escape(v || "") + e + "; path=/; domain=" + (h || HSW.domain+".com");document.cookie = nc + (ss ? 'SameSite=' + ss : '');} </script><script src="//cdn-assets.hswstatic.com/lite/2955/js/vendor/alpine.v3.min.js" defer></script><script> "use strict";HSW.utilities={hashArgs:{},buildDir:function(e){return e.replace(HSW.staticHost,HSW.dirHost+"/w_300")},debugConsole:function(){var e="";if(""!==location.hash){var t=location.hash.substr(1).split("=");"c"===t[0]&&(e=t[1])}""!==e&&("ga-link-name"===e?HSW.utilities.loadScript("https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js",!0,function(){$("body").append('<div id="hsw-console" style="position: fixed; right: 0; bottom: 0; left: 0; padding:20px; background-color: #CCC; border-top: 4px solid #777; text-align: center; font-weight: 400; z-index: 100;"></div>');var e=$("#hsw-console");e.html("Hover over a link"),$("a").on("mouseenter",function(t){var n=$(this).parents().map(function(){return $(this).attr("data-track-gtm")}).get().reverse().join(" : ");n+=$(this).attr("data-track-gtm")?" : "+$(this).attr("data-track-gtm"):"",e.html(n)}).on("mouseleave",function(t){e.html("Hover over a link")})}):console.warn("### HSW debug console // Unknown name type"))},extend:function(e){e=e||{};for(var t=1;t<arguments.length;t++)if(arguments[t])for(var n in arguments[t])arguments[t].hasOwnProperty(n)&&(e[n]=arguments[t][n]);return e},firePageview:function(){dataLayer&&pageMetricsData&&(pageMetricsData.guid=HSW.utilities.generateGuid(),dataLayer.push({url:location.pathname+location.hash,event:"page-view"}))},generateGuid:function(){var e=(new Date).getTime(),t=Math.floor(1e5*Math.random());return(e.toString()+("000000"+t).slice(-5)).substr(0,18)},getQueryVar:function(e){for(var t=window.location.search.substring(1).split("&"),n=0;n<t.length;n++){var r=t[n].split("=");if(r[0]===e)return decodeURIComponent(r[1].replace(/\+/g," "))}return!1},getViewportWidth:function(){window;var e=document.documentElement;return Math.max(e.offsetWidth,e.clientWidth)},init:function(){HSW.utilities.docReady(function(){HSW.utilities.debugConsole(),HSW.utilities.lazyLoadElements(),window.onbeforeprint=function(){for(var e=document.getElementsByClassName("lazyload"),t=0;t<e.length;t++)HSW.utilities.exposeElement(e[t])}}),HSW.utilities.parseHash()},docReady:function(e){"loading"!=document.readyState?e():document.addEventListener("DOMContentLoaded",e)},delayLoad:function(e){window.addEventListener("scroll",function t(){window.removeEventListener("scroll",t),e()})},isMobile:function(){return HSW.utilities.getViewportWidth()<768},hasNewsletterCookie:function(){let e=["__smListBuilderShown","__smListBuilderOptOut","hsw_nl","hsw_nlsub"],t=!1;for(const n of e)if(!0==(t=null!==getCookie(n)))return!0;return!1},loadJson:function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onload=function(){if(this.status>=200&&this.status<400){var e=JSON.parse(this.response);t(e)}},n.onerror=function(){},n.send()},loadScript:function(e,t,n){var r=document.createElement("script");r.src=e,r.async=t,n&&(r.onload=n),document.head.appendChild(r)},loadScriptAsync:function(e){return new Promise(function(t,n){var r=document.createElement("script");r.src=e,r.async=!0,r.onload=function(){t()},r.onerror=function(){n(e)};var o=document.getElementsByTagName("script")[0];o.parentNode.insertBefore(r,o)})},parseHash:function(){if(""!==location.hash){var e=location.hash.substr(1).split("&");"ab"===e[0]&&(GACtest=e[1]),Array.prototype.forEach.call(e,function(e,t){if(-1!==e.indexOf("=")){var n=e.split("=");HSW.utilities.hashArgs[n[0]]=n[1]}})}},trimUrl:function(e){var t=e.split("?")[0].split("#")[0];if("/"===(t=t.replace(/^.*\/\/[^\/]+/,"")).charAt(0)&&(t=t.substr(1)),t.length>40&&(t=t.substr(t.length-40)),0===t.length){var n=location.hostname.split(".");t=n.length>2?n[0]:""}return t},exposeElement:function(e){if(e.classList.contains("loaded"))return;const t=e.tagName.toUpperCase();if(e.hasAttribute("data-background")){var n=e.getAttribute("style")||"",r=e.getAttribute("data-background");return void e.setAttribute("style","background-image: url("+r+"); "+n)}if("PICTURE"===t||"VIDEO"===t){var o=e.querySelectorAll("source"),i=e.querySelector("img");for(r=0;r<o.length;r++)o[r].hasAttribute("data-srcset")&&o[r].setAttribute("srcset",o[r].getAttribute("data-srcset")),o[r].hasAttribute("data-src")&&(o[r].src=o[r].dataset.src);i&&i.hasAttribute("data-src")&&i.setAttribute("src",i.getAttribute("data-src")),e.classList.add("loaded");var a=e.parentNode;return a.classList.contains("skeleton-box")&&a.classList.remove("skeleton-box"),void("VIDEO"===t&&e.load())}if("IMG"!==t&&"IFRAME"!==t)return void e.classList.add("loaded");const s=e=>{var t=e.getAttribute("data-src"),n=e.getAttribute("data-srcset");n&&e.setAttribute("srcset",n),t&&(e.setAttribute("src",t),e.classList.add("loaded"))};"IFRAME"===t?HSW.pq.add(()=>{s(e)}):s(e)},lazyLoadElements:function(e){var t=!!window.MSInputMethodContext&&!!document.documentMode;if("function"!=typeof IntersectionObserver||t)HSW.utilities.docReady(function(){for(var e=document.getElementsByClassName("lazyload"),t=0;t<e.length;t++)HSW.utilities.exposeElement(e[t])});else for(var n=new IntersectionObserver(function(e,t){for(var n=0;n<e.length;n++){var r=e[n];r.isIntersecting&&r.intersectionRatio>0&&(HSW.utilities.exposeElement(r.target),t.unobserve(r.target))}},{rootMargin:"200px 0px",threshold:.1}),r=(e=e||document.getElementsByClassName("lazyload"),0);r<e.length;r++)n.observe(e[r])},lazyLoadCallback:function(e,t,n){var r=!!window.MSInputMethodContext&&!!document.documentMode;if("function"!=typeof IntersectionObserver||r)return!1;if("function"!=typeof n)return!1;var o=parseInt(e)||0;return new IntersectionObserver(function(e,t){for(var r=0;r<e.length;r++){var o=e[r];o.isIntersecting&&o.intersectionRatio>0&&("requestAnimationFrame"in window?requestAnimationFrame(function(){n(o.target)}):n(o.target),t.unobserve(o.target))}},{rootMargin:o+"px 0px",threshold:.1}).observe(t),!0}},HSW.utilities.init(),void 0===Array.prototype.contains&&(Array.prototype.contains=function(e){for(var t=this.length;t--;)if(this[t]===e)return!0;return!1}),String.prototype.includes||(String.prototype.includes=function(e,t){if(e instanceof RegExp)throw TypeError("first argument must not be a RegExp");return void 0===t&&(t=0),-1!==this.indexOf(e,t)}),HSW.pq={queue:[],namedQueues:{ads:{queue:[],released:!1}},add:function(e,t){if("function"==typeof e)if(userData.consentGranted)e();else if(t){if(void 0===HSW.pq.namedQueues[t])return void console.error("Unknown named privacy queue.");HSW.pq.namedQueues[t].released?e():HSW.pq.namedQueues[t].queue.push(e)}else HSW.pq.queue.push(e);else console.warn("Only functions can be queued in privacy mgmt.")},release:function(e){const t=e=>{for(;e.length>0;){var t=e.shift();if("function"==typeof t)try{t()}catch(e){console.error(e)}}};if(e&&void 0!==HSW.pq.namedQueues[e])t(HSW.pq.namedQueues[e].queue),HSW.pq.namedQueues[e].released=!0;else{t(HSW.pq.queue);for(const e in HSW.pq.namedQueues)HSW.pq.namedQueues[e].released=!0,t(HSW.pq.namedQueues[e].queue)}}},HSW.ab=function(){var e,t,n,r,o={},i=/#!dev/,a="_easyab_seed";function s(t){var n;return r?(n=999*Math.random(),u(a,n,30)):(e||(e=function(){var e=c(a);e||(e=999*Math.random(),u(a,e,30));return e}()),n=e),Math.floor(n%t)}function u(e,t,n){if(n){var r=new Date;r.setTime(r.getTime()+60*n*1e3);var o="; expires="+r.toGMTString()}else o="";var i="string"==typeof HSW.domain?HSW.domain:"howstuffworks";document.cookie=e+"="+encodeURI(t)+o+"; domain=."+i+".com;path=/"}function c(e){for(var t=e+"=",n=document.cookie.split(";"),r=0;r<n.length;r++){for(var o=n[r];" "==o.charAt(0);)o=o.substring(1,o.length);if(0==o.indexOf(t))return o.substring(t.length,o.length)}return null}return o.easyab=function(e){return e&&"object"==typeof e&&navigator.cookieEnabled?void(e.name&&e.alternatives&&(r=i.test(window.location),0!==(n=s(e.alternatives.length+1))&&(t=e.alternatives[n-1],function(){if(t.alternative){var e=t.alternative;"function"==typeof e&&e()}}()))):this},o.tracksession=function(){pageMetricsData.abs=GACtest,c("hsw_abs")&&c("hsw_abs")==pageMetricsData.abs||u("hsw_abs",pageMetricsData.abs,30)},o.readCookie=function(e){return c(e)},o}(); !function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";n.r(t);var r,i=function(){return window.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0]},o=function(e){if("loading"===document.readyState)return"loading";var t=i();if(t){if(e<t.domInteractive)return"loading";if(0===t.domContentLoadedEventStart||e<t.domContentLoadedEventStart)return"dom-interactive";if(0===t.domComplete||e<t.domComplete)return"dom-content-loaded"}return"complete"},a=function(e){var t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},c=function(e,t){var n="";try{for(;e&&9!==e.nodeType;){var r=e,i=r.id?"#"+r.id:a(r)+(r.classList&&r.classList.value&&r.classList.value.trim()&&r.classList.value.trim().length?"."+r.classList.value.trim().replace(/\s+/g,"."):"");if(n.length+i.length>(t||100)-1)return n||i;if(n=n?i+">"+n:i,r.id)break;e=r.parentNode}}catch(e){}return n},u=-1,d=function(){return u},s=function(e){addEventListener("pageshow",(function(t){t.persisted&&(u=t.timeStamp,e(t))}),!0)},f=function(){var e=i();return e&&e.activationStart||0},l=function(e,t){var n=i(),r="navigate";return d()>=0?r="back-forward-cache":n&&(document.prerendering||f()>0?r="prerender":document.wasDiscarded?r="restore":n.type&&(r=n.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v3-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},p=function(e,t,n){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){t(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},n||{})),r}}catch(e){}},v=function(e,t,n,r){var i,o;return function(a){t.value>=0&&(a||r)&&((o=t.value-(i||0))||void 0===i)&&(i=t.value,t.delta=o,t.rating=function(e,t){return e>t[1]?"poor":e>t[0]?"needs-improvement":"good"}(t.value,n),e(t))}},m=function(e){var t=function(t){"pagehide"!==t.type&&"hidden"!==document.visibilityState||e(t)};addEventListener("visibilitychange",t,!0),addEventListener("pagehide",t,!0)},g=function(e){document.prerendering?addEventListener("prerenderingchange",(function(){return e()}),!0):e()},y=(new Date,0),_=1/0,h=0,b=function(e){e.forEach((function(e){e.interactionId&&(_=Math.min(_,e.interactionId),h=Math.max(h,e.interactionId),y=h?(h-_)/7+1:0)}))},T=function(){return r?y:performance.interactionCount||0},E=function(){"interactionCount"in performance||r||(r=p("event",b,{type:"event",buffered:!0,durationThreshold:0}))},S=[200,500],L=0,w=function(){return T()-L},P=[],C={},I=function(e){var t=P[P.length-1],n=C[e.interactionId];if(n||P.length<10||e.duration>t.latency){if(n)n.entries.push(e),n.latency=Math.max(n.latency,e.duration);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};C[r.id]=r,P.push(r)}P.sort((function(e,t){return t.latency-e.latency})),P.splice(10).forEach((function(e){delete C[e.id]}))}};try{!function(e,t){!function(e,t){t=t||{},g((function(){var n;E();var r,i=l("INP"),o=function(e){e.forEach((function(e){e.interactionId&&I(e),"first-input"===e.entryType&&!P.some((function(t){return t.entries.some((function(t){return e.duration===t.duration&&e.startTime===t.startTime}))}))&&I(e)}));var t,n=(t=Math.min(P.length-1,Math.floor(w()/50)),P[t]);n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())},a=p("event",o,{durationThreshold:null!==(n=t.durationThreshold)&&void 0!==n?n:40});r=v(e,i,S,t.reportAllChanges),a&&("PerformanceEventTiming"in window&&"interactionId"in PerformanceEventTiming.prototype&&a.observe({type:"first-input",buffered:!0}),m((function(){o(a.takeRecords()),i.value<0&&w()>0&&(i.value=0,i.entries=[]),r(!0)})),s((function(){P=[],L=T(),i=l("INP"),r=v(e,i,S,t.reportAllChanges)})))}))}((function(t){!function(e){if(e.entries.length){var t=e.entries.sort((function(e,t){return t.duration-e.duration||t.processingEnd-t.processingStart-(e.processingEnd-e.processingStart)}))[0],n=e.entries.find((function(e){return e.target}));e.attribution={eventTarget:c(n&&n.target),eventType:t.name,eventTime:t.startTime,eventEntry:t,loadState:o(t.startTime)}}else e.attribution={}}(t),e(t)}),t)}((function({name:e,value:t,id:n,attribution:r}){const{eventEntry:i,eventTarget:o,eventType:a,loadState:c}=r,{startTime:u,processingStart:d,processingEnd:s,duration:f,interactionId:l}=i,p={metric_inp_value:t,metric_id:n,metric_inp_event_target:o,metric_inp_event_type:a,metric_inp_load_state:c,metric_inp_start_time:u,metric_inp_processing_start:d,metric_inp_processing_end:s,metric_inp_duration:f,metric_inp_interaction_id:l};dataLayer.push({event:"raw-event",eventCategory:"CWV:INP",eventAction:p.metric_inp_event_type,eventLabel:p.metric_inp_event_target,eventValue:p.metric_inp_value})}))}catch(e){}}]); </script> <script>var userData = { country : 'SG'.toUpperCase(), checkConsent : false, userInEU : false, consentGranted : false, doNotSell : false, showConsentLink : false, adsActive : true }; var adUnit = ''; adUnit += "hsw_lite"; adUnit += "|tech"; adUnit += "|computer"; adUnit += "|computerhardware"; if (!HSW.utilities.isMobile()) {adUnit = adUnit.replace("hsw_lite", "hsw"); } var pvId = HSW.utilities.generateGuid(); var sessionId = getCookie('hsw_sid'); if (sessionId === false) { sessionId = pvId; var e = 6.307e+10; setCookie('hsw_sid', sessionId, e); }const searchTagCookie = getCookie('searchTag'); const searchTagQS = HSW.utilities.getQueryVar('srch_tag'); const searchTag = searchTagQS || searchTagCookie || ''; var pageMetricsData = { guid : pvId, sessionId : sessionId, href : "https://computer.howstuffworks.com/router.htm", title : "What\u0020Does\u0020a\u0020Router\u0020Do\u003F", tax : "hsw/tech/computer/computer hardware/networking", aType : "editorial content", cType : "Article-continuous", continuousUX: true, template : "Article", country : "SG", sponsor : "", source : "hsw", author : "curt franklin", show : "", pubDate : "2000-07-31", editDate : "2024-03-06", targetKeywords : "true", newsAdjacent : "false", nsfw : "false", locale : "en-us", contentid : "1196", model : "article", view : "article/article.html", video : "", totalPages : 14, page : 1, codebase : 'hsw-lite', searchTag : searchTag, abs : (getCookie('hsw_abs') ? getCookie('hsw_abs') : '' ), viewport : HSW.utilities.getViewportWidth(), mkcpgn : 'organic', utmSource : '', adUnit : (adUnit ? adUnit : 'n/a'), keywords : "router,\u0020routing,\u0020network\u0020router,\u0020network\u0020routing,\u0020computer\u0020router,\u0020firewall,\u0020how\u0020routers\u0020work", domain : 'howstuffworks', subdomain : "computer",firePixels : (!userData.doNotSell && userData.consentGranted), docker : 'true', image : 'https://cdn.hswstatic.com/gif/router-geostream.jpg', cost : '0', origin : 'None', channel : "Tech", category : "Computer", node : "Networking", affinities : "FAQ-AI, FAQ2, Target-Keyword", }; var GACtest = getCookie('hsw_abs') || ''; HSW.analytics={attributeTraffic:async function(){return await HSW.analytics.getQueryStringKeyValues()},getQueryStringKeyValues:function(){let e={utmSource:{qs:"utm_source",persist:"hswtrkr"},searchTag:{qs:"srch_tag",persist:"searchTag"},mkcpgn:{qs:"mkcpgn",persist:"mkcpgn"},account_id:{qs:"utm_acid",persist:"_hsw_aid"},campaign_id:{qs:["utm_caid","campaign_id"],persist:"_hsw_cid"},utm_campaign:{qs:"utm_campaign",persist:"_hsw_c"},asid:{qs:["utm_agid","asid"],persist:"_hsw_agid"},adgroup:{qs:["adgroup","utm_content"],persist:"_hsw_ag"},placement:{qs:["utm_traffictype","placement"],persist:"_hsw_pl"},gclid:{qs:"gclid",persist:"_hsw_gclid"},gclidtimestamp:{qs:function(){let e=new Date;return e.setSeconds(e.getSeconds()+30),e.getUTCFullYear()+"-"+("0"+(e.getUTCMonth()+1)).slice(-2)+"-"+("0"+e.getUTCDate()).slice(-2)+" "+("0"+e.getUTCHours()).slice(-2)+":"+("0"+e.getUTCMinutes()).slice(-2)+":"+("0"+e.getUTCSeconds()).slice(-2)},persist:"_hsw_ts"}};var t={};return Object.entries(e).forEach(function(e){const[s,i]=e,{qs:a,persist:r}=i;if("function"==typeof a){let e=getCookie(r);return e||(e=a()),setCookie(r,e,18e5),void(t[s]=e)}if(a instanceof Array)for(var c="",n=0;n<a.length&&!(c=HSW.utilities.getQueryVar(a[n]));n++);else c=HSW.utilities.getQueryVar(a);let g=getCookie(r),u=g||c;u&&(g||setCookie(r,c.replace(/[^\w\-\.\+]/gi,""),18e5),t[s]=u)}),t}}; HSW.pq.add(function() { window.trafficAttributed = HSW.analytics.attributeTraffic(); window.trafficAttributed.then(function (keyValues) { Object.entries(keyValues).forEach(function ([k, v]) { pageMetricsData[k] = v; }); }); }); if (typeof HSW.utilities.hashArgs['ab'] !== 'undefined') { GACtest = HSW.utilities.hashArgs['ab']; } let testingEnabled = true; if (typeof HSW.utilities.hashArgs['testing'] !== 'undefined') { testingEnabled = false; } if (testingEnabled && HSW.site === 'HSW' && (GACtest === '' || !['test54','test55'].contains(GACtest))) { GACtest = 'test54'; HSW.ab.easyab({'slot': 1,'name': 'GACtest','alternatives': [ {'alternative':function() { GACtest = 'test55'; } } ] }); } HSW.ab.tracksession(); var _0x5319=['bds:\x20connection\x20error','country','_ga','BotDetectionResult','getHighEntropyValues','&cookie=','&extra_args=','bds','BDS_DONE','platform','&session_id=','userAgentData','dispatchEvent','bdsData','href','model','then','status','stringify','?product_line=','utilities','bdsUrl','hsw','open','bdsProduct','platformVersion','log','fullVersionList','site','&platform=','adsActive','send','env','add','onload','parse','template','isMobile','architecture','userInEU','error','object','hashArgs','mobile','&domain=','desktop'];(function(_0x3a9642,_0x5319a5){var _0x3b9000=function(_0x27c3dc){while(--_0x27c3dc){_0x3a9642['push'](_0x3a9642['shift']());}};_0x3b9000(++_0x5319a5);}(_0x5319,0x15a));var _0x3b90=function(_0x3a9642,_0x5319a5){_0x3a9642=_0x3a9642-0x0;var _0x3b9000=_0x5319[_0x3a9642];return _0x3b9000;};function userAgent(){return navigator[_0x3b90('0x21')][_0x3b90('0x1a')]([_0x3b90('0xe'),_0x3b90('0x25'),_0x3b90('0x1'),'fullVersionList'])[_0x3b90('0x26')](function(_0x4b0ef0){return{'platform':_0x4b0ef0[_0x3b90('0x1f')],'platformVersion':_0x4b0ef0[_0x3b90('0x1')],'model':_0x4b0ef0[_0x3b90('0x25')],'mobile':_0x4b0ef0[_0x3b90('0x13')],'fullVersionList':_0x4b0ef0[_0x3b90('0x3')]};},function(_0x16ee1e){return{};});}(async function(){let _0x5a046a={};if(typeof navigator[_0x3b90('0x21')]===_0x3b90('0x11')){if(typeof navigator[_0x3b90('0x21')][_0x3b90('0x1a')]==='function'){_0x5a046a=await userAgent();}}const _0x53a8b3=()=>{if(HSW[_0x3b90('0x2a')][_0x3b90('0x12')][_0x3b90('0x1d')]=='off'||!userData[_0x3b90('0x6')]||HSW[_0x3b90('0x4')]=='MQ'){return;}let _0x21b1a3=HSW[_0x3b90('0x2a')][_0x3b90('0xd')]()?_0x3b90('0x13'):_0x3b90('0x15'),_0x84e068=pageMetricsData,_0x5c6bc6=getCookie(_0x3b90('0x18'));let _0xac53d=_0x84e068['sessionId'],_0x189d6d={'template':_0x84e068['template'],'uach':_0x5a046a};let _0x1bd527=HSW[_0x3b90('0x2b')]+_0x3b90('0x29')+HSW[_0x3b90('0x0')]+(!isNaN(parseFloat(_0xac53d))&&isFinite(_0xac53d)?_0x3b90('0x20')+_0xac53d:'')+_0x3b90('0x14')+encodeURIComponent(window['location'][_0x3b90('0x24')])+_0x3b90('0x5')+_0x21b1a3+_0x3b90('0x1c')+JSON[_0x3b90('0x28')](_0x189d6d)+(_0x5c6bc6?_0x3b90('0x1b')+_0x5c6bc6:'');try{var _0x78fe59=new XMLHttpRequest();_0x78fe59[_0x3b90('0x2d')]('GET',_0x1bd527,!![]);_0x78fe59[_0x3b90('0xa')]=function(){if(this[_0x3b90('0x27')]>=0xc8&&this[_0x3b90('0x27')]<0x190){var _0x1927e2=JSON[_0x3b90('0xb')](this['response']);window['s1']['DPL'][_0x3b90('0x2')]({'event':_0x3b90('0x19'),'product':_0x3b90('0x2c'),'payload':{'environment':HSW[_0x3b90('0x8')],'score':_0x1927e2['traffic_score'],'vertical':_0x84e068['subdomain'],'template':_0x84e068[_0x3b90('0xc')],'country':userData[_0x3b90('0x17')],'userInEU':userData[_0x3b90('0xf')]}});window[_0x3b90('0x23')]=_0x1927e2;var _0x45e8da=new CustomEvent(_0x3b90('0x1e'),{'detail':_0x1927e2});}else{var _0x45e8da=new CustomEvent(_0x3b90('0x1e'));}document[_0x3b90('0x22')](_0x45e8da);};_0x78fe59['onerror']=function(){console[_0x3b90('0x10')](_0x3b90('0x16'));var _0x5e76b8=new CustomEvent('BDS_DONE');document['dispatchEvent'](_0x5e76b8);};_0x78fe59[_0x3b90('0x7')]();}catch(_0x555433){console['error']('bds:\x20'+_0x555433);var _0x353f32=new CustomEvent(_0x3b90('0x1e'));document['dispatchEvent'](_0x353f32);}};HSW['pq'][_0x3b90('0x9')](_0x53a8b3);}()); adsbygoogle=window.adsbygoogle||[];var dataLayer=dataLayer||[];function loadHswCmp(){function e(e){const t=HSW.oneTrustSiteID+("prod"!==HSW.env?"-test":""),o=document.createElement("script");o.type="text/javascript",o.src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js",o.dataset.domainScript=t,e&&(o.dataset.async=e);const n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(o,n)}if(userData.userInEU||"BR"===userData.country){const t="BR"===userData.country?"BR":"EU";document.cookie.indexOf("gdpr_opt_in=1")>=0?(HSW.cmp.log(t+" user that has already provided consent."),userData.consentGranted=!0,e(!0),HSW.pq.release()):document.cookie.indexOf("gdpr_opt_in=0")>=0?(HSW.cmp.log(t+" user has not consented previously."),e(),HSW.pq.release("ads")):(HSW.cmp.log("New "+t+" user. Pull down CMP and init it."),e()),userData.showConsentLink=!0}else{["IN","PH","NG","PK","ID","GH","BD","TR","LK","RU","VN","EG","JM","CN","TT","IR"].contains(userData.country)&&(userData.adsActive=!1);const t="US"===userData.country?getCookie("usprivacy"):"",o=getCookie("OneTrustWPCCPAGoogleOptOut"),n=navigator.globalPrivacyControl;document.cookie.indexOf("gdpr_opt_in=0")>=0||"1YY-"===t||"1YYN"===t||"true"===o||n?(HSW.cmp.log("Detected opt-out user with consent withdrawn"),HSW.pq.release("ads")):(HSW.cmp.log("Opt-out user that has granted consent"),"undefined"!=typeof pageMetricsData&&(pageMetricsData.firePixels=!0),dataLayer.push({event:"fire-pixels"}),userData.consentGranted=!0,HSW.pq.release()),userData.showConsentLink=!0,e(!0),"US"===userData.country&&function(){const e=document.createElement("script");e.type="text/javascript",e.src="https://cdn.cookielaw.org/opt-out/otCCPAiab.js",e.setAttribute("ccpa-opt-out-ids","C0004"),e.setAttribute("ccpa-opt-out-geo","All"),e.setAttribute("ccpa-opt-out-lspa","false");const t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()}}(userData.userInEU||"US"===userData.country||""===userData.country)&&(adsbygoogle.pauseAdRequests=1),HSW.cmp={clearTrackingData:function(){const e=["gdpr_opt_in","usprivacy","hsw_abs","_easyab_seed","euconsent-v2","eupubconsent-v2","OptanonAlertBoxClosed","OptanonConsent","OneTrustWPCCPAGoogleOptOut"],t=[window.location.hostname,HSW.domain+".com"],o=/([a-z0-9]+\.[a-z0-9]+)$/.exec(location.hostname);t.push(o[0]);const n=e=>{HSW.cmp.log("deleteCookie = ",e);for(const o in t)"function"!=typeof t[o]&&(setCookie(e,"",-1e5,t[o]),setCookie(e,"",-1e5,t[o],"Lax"))};(()=>{const o=(()=>{const e={},t=document.cookie.split(";");for(let o=0;o<t.length;o++){const n=t[o].split("=");e[n[0].trim()]=n[1]}return e})();HSW.cmp.log("processCookies"),HSW.cmp.log("cookie domains = ",t);for(const t in o)e.includes(t)||n(t)})(),(()=>{const t=Object.getOwnPropertyDescriptor(Document.prototype,"cookie")||Object.getOwnPropertyDescriptor(HTMLDocument.prototype,"cookie");t&&t.configurable&&Object.defineProperty(document,"cookie",{get:function(){return t.get.call(window.document)},set:function(o){var n=o.split("=")[0];return e.includes(n)?(HSW.cmp.log("SET_COOKIE_ALLOWED:"+o),t.set.call(window.document,o)):HSW.cmp.log("SET_COOKIE_NOT_ALLOWED:"+o),!0}})})(),window.localStorage.clear();try{document.querySelector(".hsw-page").classList.remove("leaderboard-sticky")}catch(e){}},log:function(e,t){window.location.search.indexOf("cmp_debug=true")<0||(void 0!==t?console.log("CMP: "+e,t):console.log("CMP: "+e))}},window.OptanonWrapper=(()=>{window.OneTrust.OnConsentChanged(()=>{HSW.cmp.log("window.OnetrustActiveGroups = ",window.OnetrustActiveGroups),window.OnetrustActiveGroups.includes("C0001")&&window.OnetrustActiveGroups.includes("C0002")&&window.OnetrustActiveGroups.includes("C0003")&&window.OnetrustActiveGroups.includes("C0004")?(setCookie("gdpr_opt_in","1"),dataLayer.push({event:"fire-pixels"}),userData.consentGranted=!0,HSW.pq.release()):(setCookie("gdpr_opt_in","0"),HSW.pq.release("ads"))})}),function(){if(2===userData.country.length)return void loadHswCmp();HSW.cmp.log("User Country not present. Using GEOIP endpoint.");const e="prod"==HSW.env?"/geoip":"https://www.howstuffworks.com/geoip";try{const t=performance.now();fetch(e).then(e=>e.json()).then(e=>{const o=performance.now();if(dataLayer.push({event:"raw-event",eventCategory:"performance",eventAction:"geoip",eventValue:Math.floor(o-t)}),"string"==typeof e.country&&2==e.country.length){userData.country=e.country.toUpperCase(),-1!=["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","GB"].indexOf(userData.country)&&(HSW.cmp.log("GEOIP User (treated as) in EU."),userData.checkConsent=!0,userData.userInEU=!0)}else HSW.cmp.log("GEOIP data = ",e),HSW.cmp.log("GEOIP returned invalid Country data. default to US."),userData.country="US";loadHswCmp()})}catch(e){userData.country="US",loadHswCmp()}}(); </script> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1" /> <meta http-equiv="content-language" content="en-us" /> <link rel="canonical" href="https://computer.howstuffworks.com/router.htm" /> <meta name="twitter:dnt" content="on"><meta name="google-adsense-account" content="sites-9053884276298326"> <meta property="og:title" content="What Does a Router Do?" /> <meta property="og:url" content="https://computer.howstuffworks.com/router.htm" /> <meta property="og:site_name" content="HowStuffWorks" /> <meta property="og:description" content="Routers are a vital component of the Internet, but what does a router do? Find out how routers deliver packets of information to the right place, millions of times per day!" /> <meta property="fb:admins" content="100001675325868" /> <meta property="fb:app_id" content="899104866837181" /> <meta property="fb:pages" content="20767777944"> <meta property="og:image" content="https://cdn.hswstatic.com/gif/router-geostream.jpg" /> <meta property="og:image:width" content="290" /> <meta property="og:image:height" content="350" /> <meta property="og:type" content="article" /> <meta property="article:publisher" content="https://www.howstuffworks.com" /> <meta property="article:published_time" content="2000-07-31T00:00:00-04:00" /> <meta property="article:author" content="https://www.howstuffworks.com/hsw-contact.htm" /> <meta name="can-recommend" content="true" /> <meta name="category" contents="Tech/Computer/Computer Hardware/Networking" /> <script>var rampKeywords = "Tech, Computer, Computer Hardware, Networking";</script> <script type="application/ld+json"> { "@context": "https://schema.org", "@id": "https://www.howstuffworks.com/#organization", "@type": "Organization", "name": "HowStuffWorks", "url": "https://www.howstuffworks.com/", "logo": "https://cdn.hswstatic.com/gif/hsw-logo-120x90.jpg", "address" : { "@type" : "PostalAddress", "addressCountry" : "United States", "addressLocality" : "Marina Del Rey", "addressRegion" : "CA", "postalCode" : "90066", "streetAddress" : "4235 Redwood Ave." }, "email" : "mailto:site-support@howstuffworks.com", "sameAs": [ "https://www.youtube.com/user/HowStuffWorks", "https://www.instagram.com/howstuffworks/", "https://www.facebook.com/HowStuffWorks", "https://pinterest.com/howstuffworks/", "https://tumblr.com/blog/howstuffworks", "https://www.linkedin.com/company/15689/", "https://flipboard.com/@HowStuffWorks" ] } </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@id": "https://www.howstuffworks.com/#website", "@type": "WebSite", "name": "HowStuffWorks", "url": "https://www.howstuffworks.com/", "potentialAction": { "@type": "SearchAction", "target" : "https://s.howstuffworks.com/serp?q={search_term}", "query-input" : "required name=search_term" } } </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "What Does a Router Do?", "image": "https://cdn.hswstatic.com/gif/router-geostream.jpg", "datePublished": "2024-03-06T11:52:47-05:00", "dateModified" : "2024-03-06T11:52:47-05:00", "description": "Routers are a vital component of the Internet, but what does a router do? Find out how routers deliver packets of information to the right place, millions of times per day!", "author" : { "@type" : "Person", "name" : "Curt Franklin", "url" : "https://www.howstuffworks.com/hsw-contact.htm" }, "publisher" : { "@type" : "Organization", "name" : "HowStuffWorks", "logo" : { "@type" : "ImageObject", "url" : "https://cdn.hswstatic.com/gif/hsw-logo-120x90.jpg", "width" : "120", "height" : "90" } }, "mainEntityOfPage" : "https://computer.howstuffworks.com/router.htm", "Speakable" : { "@type" : "SpeakableSpecification", "cssSelector" : [".se > p, h2.se, .se > h3, .se > ul, .se > ol, .se > .blockquote"] } } </script> <meta name="description" content="Routers are a vital component of the Internet, but what does a router do? Find out how routers deliver packets of information to the right place, millions of times per day!" /> <script> var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; let prebidBuild = 'latest'; let prebidSpace = 'builds'; let prebidUrl = `https://d2t953dxm5i0o5.cloudfront.net/superstack/${prebidSpace}/${prebidBuild}/howstuffworks.com/`; prebidUrl += HSW.utilities.isMobile() ? 'hybrid_mobile/ads.min.js' : 'hybrid/ads.min.js';if (GACtest !== 'test55') { HSW.pq.add(() => { if (userData.adsActive) { let scannerUrl = 'https://cdn.confiant-integrations.net/pHPvSpQO-XGQYVzc6Cn_XOsV4Tc/gpt_and_prebid/config.js'; HSW.utilities.loadScript(scannerUrl, false, () => { HSW.utilities.loadScript('https://securepubads.g.doubleclick.net/tag/js/gpt.js'); window.prebidPromise = HSW.utilities.loadScriptAsync(prebidUrl); window.apsPromise = HSW.utilities.loadScriptAsync('https://c.amazon-adsystem.com/aax2/apstag.js'); }); HSW.utilities.loadScript(''); } else { dataLayer.push({ 'event' : 'raw-event', 'eventCategory' : 'ad-request', 'eventAction' : 'disabled', 'eventLabel' : userData.country }); } }, 'ads'); } function deferLoadGTM () { if (HSW.utilities.hashArgs['gtm'] === 'off') { return; } try { window.s1.DPL.init({ session: { business : 'publishing:hsw' }, ga: { gaMeasurementId: 'UA-42379829-2', gtmId: 'GTM-NXHP8V', isEnabled: true, onPrimaryClientIdReady: (clientId) => { console.log(`Synced clientId(${clientId}) and loaded gtmjs using DPL.init`); } }, taps: { isEnabled: false } }); } catch (e) { console.error('### DPL.loadGa failed with error: ', e); } } HSW.pq.add(() => { const dplVer = '4.7.3'; HSW.utilities.loadScript('https://s.flocdn.com/@s1/dpl/' + dplVer + '/dpl-hsw.js', true, deferLoadGTM); }); var dfpSettings = {}; dfpSettings.networkCode = 108939068; dfpSettings.pid = "1196-0"; dfpSettings.hswpid = "1196"; dfpSettings.type = pageMetricsData.cType; dfpSettings.kw = ""; dfpSettings.slotPath = "/108939068/hswcore_lite/"; dfpSettings.iabCategories = ''; dfpSettings.iabCodes = ''; dfpSettings.slotPath += "tech"; dfpSettings.iabCategories = "Education"; dfpSettings.iabCodes = "132"; dfpSettings.s1 = "tech"; dfpSettings.iabCategories = "Technology &amp; Computing"; dfpSettings.iabCodes = "596"; dfpSettings.s2 = "computer"; dfpSettings.iabCategories = "Laptops"; dfpSettings.iabCodes = "630"; dfpSettings.s3 = "computerhardware"; dfpSettings.iabCategories = "Computer Peripherals"; dfpSettings.iabCodes = "601"; dfpSettings.s4 = "networking"; dfpSettings.iabCategories = "Computer Networking"; dfpSettings.iabCodes = "600"; dfpSettings.isMobile = HSW.utilities.isMobile(); dfpSettings.isOrganic = true;dfpSettings.allow_adx = 'true'; if (!dfpSettings.isMobile) { dfpSettings.slotPath = dfpSettings.slotPath.replace("hswcore_lite", "hswcore"); } // did user come from a newsletter link var nlSource = HSW.utilities.getQueryVar('utm_source') || ''; var nlTrkr = getCookie('hswtrkr') || ''; var fromNl = (nlSource.includes('Newsletter') || nlTrkr.includes('Newsletter')); </script> <style> *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder, textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-display:optional;src:local("Roboto"),local("Roboto-Regular"),url(https://cdn.hswstatic.com/fonts/roboto-v20-latin-regular.woff2) format("woff2")}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-display:optional;src:local("Roboto Bold"),local("Roboto-Bold"),url(https://cdn.hswstatic.com/fonts/roboto-v20-latin-700.woff2) format("woff2")}body{font-size:16px;line-height:1.5;font-family:Roboto,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased}@media print{body{font-family:sans-serif}}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}@media (min-width:1600px){.container{max-width:1600px}}.aspect-h-9{--tw-aspect-h:9}.aspect-w-16{position:relative;padding-bottom:calc(var(--tw-aspect-h)/var(--tw-aspect-w)*100%);--tw-aspect-w:16}.aspect-w-16>*{position:absolute;height:100%;width:100%;top:0;right:0;bottom:0;left:0}.theme-hsw{--color-primary:#1573a6;--color-accent-1:#168381;--color-accent-2:#2b2b5c;--color-accent-3:#ede8de;--color-accent-4:#151538;--color-accent-5:#776541;--color-grad-1:#2b2b5c;--color-grad-2:#1b6193;--color-grad-3:#1573a6;--color-grad-4:#1ea2a0;--color-grad-5:#1ea2a0;--color-quiz-error:#cb2020;--color-quiz-success:#067a3c}.theme-zoo{--color-primary:#2a9ffb;--color-accent-1:#196cab;--color-accent-2:#333;--color-accent-3:#ededed;--color-accent-4:#7120a5;--color-accent-5:#ccc;--color-grad-1:#ca0cb2;--color-grad-2:#cd15b4;--color-grad-3:#7120a5;--color-grad-4:#7e12e3;--color-grad-5:#2a9ffb;--color-quiz-error:#cb2020;--color-quiz-success:#288341}.theme-mq{--color-primary:#2b8444;--color-accent-1:#37a857;--color-accent-2:#2b8444;--color-accent-3:#ededed;--color-accent-4:#333;--color-accent-5:#ccc;--color-grad-1:#000;--color-grad-2:#333;--color-grad-3:#2b8444;--color-grad-4:#37a857;--color-grad-5:#91dea7;--color-quiz-error:#cb2020;--color-quiz-success:#067a3c}p{margin-bottom:1rem}a{color:var(--color-accent-1);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.25s;transition-timing-function:cubic-bezier(.4,0,.2,1)}a:hover{color:var(--color-accent-2)}pre{white-space:pre-wrap}[x-cloak]{display:none!important}img[src=""]{visibility:hidden}nav.navbar a:before{display:block;content:attr(data-text);font-weight:700;height:0;overflow:hidden;visibility:hidden}nav.navbar a:after{margin-top:-1px}.btn{display:inline-block;cursor:pointer;background-color:var(--color-accent-1);font-weight:700;text-transform:uppercase;transition-property:all;transition-duration:.25s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn,.btn:focus,.btn:hover,a:focus .btn,a:hover .btn{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.btn:focus,.btn:hover,a:focus .btn,a:hover .btn{background-color:var(--color-primary)}.btn:disabled{--tw-bg-opacity:1;background-color:rgb(119 119 119/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.animated-underline,.animated-underline-heavy{display:block;position:relative}.animated-underline-heavy.flex,.animated-underline.flex{display:flex}.animated-underline-heavy:after,.animated-underline:after{background-color:var(--color-accent-1);position:absolute;transition-property:all;transition-duration:.1s;transition-timing-function:ease-in-out;content:"";pointer-events:none;height:2px;width:0;left:50%;bottom:-10px}.animated-underline-heavy:after{height:4px;bottom:0;border-bottom:1px solid #333}.animated-underline-heavy:hover:after,.animated-underline:hover:after{width:100%;left:0}.card{position:relative;display:flex;min-height:20rem;flex-direction:column;justify-content:flex-end;background-size:cover;background-position:50%;background-repeat:no-repeat;padding:1.5rem 1.5rem 2rem}.animated-underline-heavy.card,.animated-underline.card{display:flex}@media (min-width:1280px){.card{padding:2rem 2rem 2.5rem;min-height:23.6875rem}}.card:before{position:absolute;left:0;top:0;height:100%;width:100%;content:"";background:linear-gradient(58deg,rgba(4,4,4,.9),rgba(4,4,4,.46) 77%,rgba(4,4,4,.15));transition:opacity .25s ease-in-out}.card:focus:before,.card:hover:before{opacity:.8}.divider:after{flex:1 1 0%;--tw-bg-opacity:1;background-color:rgb(234 234 234/var(--tw-bg-opacity,1));content:"";height:1px}.breadcrumb-item:after{position:absolute;top:0;color:var(--color-primary);content:"/";right:-1.2rem}.breadcrumb-item:last-child:after{content:none}.dot:before{position:relative;margin-left:.25rem;margin-right:.25rem;content:"\2022";font-style:normal;bottom:.0625em;line-height:1em;font-size:1.125em;vertical-align:middle}#ad-wrap-bannerTop{margin-left:auto;margin-right:auto;max-width:970px}.ad-sticky,.leaderboard-sticky .leaderboard-banner{top:0;text-align:center;position:sticky;z-index:999}.leaderboard-sticky .col-rail .sticky{top:250px}.ad-tag:not(#ad-div-inline1sponsor,#ad-div-inline2sponsor){text-align:center;line-height:0}.ad-tag:not(#ad-div-inline1sponsor,#ad-div-inline2sponsor)>div,.ad-tag:not(#ad-div-inline1sponsor,#ad-div-inline2sponsor) iframe{margin-left:auto;margin-right:auto}#content-well .editorial-body{word-break:break-word}#content-well .editorial-body p:not(.ad-disclaimer){margin-bottom:1.5rem;font-size:1.125rem;line-height:1.75}#content-well .sidebar-section p:last-child{margin-bottom:0}.editorial-body ul,ul.list{list-style-type:disc}.editorial-body ul,.page-body ol,ul.list{margin-bottom:1.5rem;list-style-position:inside;padding-inline-start:30px}.page-body ol{list-style-type:decimal}.editorial-body ul li,.page-body ol li{padding-bottom:.5rem;font-size:1.125rem}.ad-inline iframe{margin:0 auto}.sidebar-section{clear:both}.sidebar-section.loaded{background-image:url(https://cdn.hswstatic.com/en-us/hsw/img/memphis-pattern-tan.png)}.instagram-post iframe{margin:0 auto}.theme-hsw .bg-tan a{color:#127271}@media print{#editorial-body p:not(.ad-disclaimer){line-height:1.375}.sidebar-section{margin-left:auto;margin-right:auto;width:75%}.sidebar-section li,.sidebar-section p{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}}.imageBoxRight .credit{--tw-bg-opacity:1;background-color:rgb(237 232 222/var(--tw-bg-opacity,1));padding:.5rem 1rem;font-size:.75rem;text-transform:uppercase}.theme-hsw .imageBoxRight .credit a{color:#127271}.imageBoxRight .credit{display:table-caption;caption-side:bottom}.imageBoxRight .caption{--tw-bg-opacity:1;background-color:rgb(237 232 222/var(--tw-bg-opacity,1));padding:.5rem 1rem;font-size:.875rem}.theme-hsw .imageBoxRight .caption a{color:#127271}.imageBoxRight .caption{display:table-caption;caption-side:bottom}.imageBoxRight{margin-bottom:2rem;display:table;--tw-bg-opacity:1;background-color:rgb(237 232 222/var(--tw-bg-opacity,1))}.theme-hsw .imageBoxRight a{color:#127271}.imageBoxRight br{display:none}@media (min-width:768px){.imageBoxRight{float:left;margin-right:1rem;margin-bottom:1rem}}.editorial-body table{font-size:.87em;width:100%;border:2px solid var(--color-accent-1)}.editorial-body td,.editorial-body th{padding:2px 5px;border:1px solid var(--color-grad-5)}.editorial-body td p{margin-bottom:3px}.sideBoxRight{margin-bottom:2rem}.sideBoxRight td{--tw-bg-opacity:1;background-color:rgb(237 232 222/var(--tw-bg-opacity,1));padding:2rem}.theme-hsw .sideBoxRight td a{color:#127271}.sideBoxRight td{background-image:url(https://cdn.hswstatic.com/en-us/hsw/img/memphis-pattern-tan.png)}.sideBoxRight .titleBlue{margin-bottom:1rem;font-size:2.25rem}.sideBoxRight .body{font-size:1.125rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.-left-12{left:-3rem}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.right-5{right:1.25rem}.top-0{top:0}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-14{top:3.5rem}.top-5{top:1.25rem}.top-56{top:56px}.top-99{top:99px}.top-n56{top:-56px}.z-10{z-index:10}.z-20{z-index:20}.order-1{order:1}.order-2{order:2}.clear-both{clear:both}.m-2{margin:.5rem}.m-4{margin:1rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-auto{margin-top:auto;margin-bottom:auto}.-ml-1{margin-left:-.25rem}.-ml-2{margin-left:-.5rem}.-mt-2{margin-top:-.5rem}.-mt-24{margin-top:-6rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-12{margin-left:3rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.ml-8{margin-left:2rem}.mr-1{margin-right:.25rem}.mr-16{margin-right:4rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-6{margin-right:1.5rem}.mr-8{margin-right:2rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-11{margin-top:2.75rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.hidden{display:none}.h-12{height:3rem}.h-14{height:3.5rem}.h-24{height:6rem}.h-4{height:1rem}.h-44{height:11rem}.h-4px{height:4px}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-auto{height:auto}.h-full{height:100%}.min-h-24{min-height:24rem}.min-h-3{min-height:3rem}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-11\/12{width:91.666667%}.w-12{width:3rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-5\/6{width:83.333333%}.w-56{width:14rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.min-w-225{min-width:225px}.min-w-3{min-width:3rem}.min-w-3\/4{min-width:75%}.min-w-300{min-width:300px}.max-w-500{max-width:500px}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-screen-xl{max-width:1280px}.flex-1{flex:1 1 0%}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-top-right{transform-origin:top right}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-4{--tw-translate-y:1rem}.-rotate-90,.translate-y-4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg}.rotate-180{--tw-rotate:180deg}.rotate-45,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg}.rotate-90{--tw-rotate:90deg}.-scale-100,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-scale-100{--tw-scale-x:-1;--tw-scale-y:-1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes fadein{0%{opacity:0}to{opacity:1}}.animate-fadein{animation:fadein .75s linear 0s}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}@keyframes wiggle{0%,to{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}.animate-wiggle{animation:wiggle .5s linear 0s 3}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-outside{list-style-position:outside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid-rows-8{grid-template-rows:repeat(8,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-scroll{overflow-x:scroll}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-5{border-bottom-width:5px}.border-l-0{border-left-width:0}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r-2{border-right-width:2px}.border-t-6{border-top-width:6px}.border-accent-5{border-color:var(--color-accent-5)}.border-gray{--tw-border-opacity:1;border-color:rgb(221 221 221/var(--tw-border-opacity,1))}.border-gray-dark{--tw-border-opacity:1;border-color:rgb(119 119 119/var(--tw-border-opacity,1))}.border-gray-light{--tw-border-opacity:1;border-color:rgb(234 234 234/var(--tw-border-opacity,1))}.border-green{--tw-border-opacity:1;border-color:rgb(30 162 160/var(--tw-border-opacity,1))}.border-light-gray{--tw-border-opacity:1;border-color:rgb(234 234 234/var(--tw-border-opacity,1))}.border-mid-gray{--tw-border-opacity:1;border-color:rgb(44 44 44/var(--tw-border-opacity,1))}.border-primary{border-color:var(--color-primary)}.border-quiz-gray-2{--tw-border-opacity:1;border-color:rgb(221 221 221/var(--tw-border-opacity,1))}.border-tan{--tw-border-opacity:1;border-color:rgb(237 232 222/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.bg-accent-1{background-color:var(--color-accent-1)}.bg-accent-2{background-color:var(--color-accent-2)}.bg-accent-3{background-color:var(--color-accent-3)}.bg-accent-4{background-color:var(--color-accent-4)}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-blue{--tw-bg-opacity:1;background-color:rgb(12 81 153/var(--tw-bg-opacity,1))}.bg-dark-blue{--tw-bg-opacity:1;background-color:rgb(21 21 56/var(--tw-bg-opacity,1))}.bg-gray{--tw-bg-opacity:1;background-color:rgb(221 221 221/var(--tw-bg-opacity,1))}.bg-gray-dark{--tw-bg-opacity:1;background-color:rgb(119 119 119/var(--tw-bg-opacity,1))}.bg-gray-darkest{--tw-bg-opacity:1;background-color:rgb(4 4 4/var(--tw-bg-opacity,1))}.bg-gray-light{--tw-bg-opacity:1;background-color:rgb(234 234 234/var(--tw-bg-opacity,1))}.bg-green{--tw-bg-opacity:1;background-color:rgb(30 162 160/var(--tw-bg-opacity,1))}.bg-light-blue{--tw-bg-opacity:1;background-color:rgb(40 161 216/var(--tw-bg-opacity,1))}.bg-light-gray{--tw-bg-opacity:1;background-color:rgb(234 234 234/var(--tw-bg-opacity,1))}.bg-lighter-gray{--tw-bg-opacity:1;background-color:rgb(247 247 247/var(--tw-bg-opacity,1))}.bg-mid-blue{--tw-bg-opacity:1;background-color:rgb(42 112 224/var(--tw-bg-opacity,1))}.bg-primary{background-color:var(--color-primary)}.bg-quiz-error{background-color:var(--color-quiz-error)}.bg-quiz-gray-1{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.bg-quiz-success{background-color:var(--color-quiz-success)}.bg-red{--tw-bg-opacity:1;background-color:rgb(230 31 31/var(--tw-bg-opacity,1))}.bg-royal-blue{--tw-bg-opacity:1;background-color:rgb(43 43 92/var(--tw-bg-opacity,1))}.bg-tan{--tw-bg-opacity:1;background-color:rgb(237 232 222/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-opacity-50{--tw-bg-opacity:0.5}.bg-opacity-65{--tw-bg-opacity:0.65}.bg-opacity-75{--tw-bg-opacity:0.75}.bg-escher-overlay{background-image:linear-gradient(102deg,rgba(43,43,92,.7),rgba(21,115,166,.7) 27%,rgba(21,114,165,.7) 76%,rgba(22,111,162,.7) 85%,rgba(21,115,166,.7) 89%,rgba(30,162,160,.7));}.bg-gradient-to-r{background-image:linear-gradient(90deg,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(0deg,var(--tw-gradient-stops))}.bg-hsw-gradient{background-image:linear-gradient(94deg,#2b2b5c,#1b6193 33%,#1573a6 50%,#1ea2a0 91%,#1ea2a0)}.bg-theme-gradient{background-image:linear-gradient(94deg,var(--color-grad-1),var(--color-grad-2) 33%,var(--color-grad-3) 50%,var(--color-grad-4) 91%,var(--color-grad-5))}.from-black{--tw-gradient-from:#000 var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position)}.from-black,.from-royal-blue{--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-royal-blue{--tw-gradient-from:#2b2b5c var(--tw-gradient-from-position);--tw-gradient-to:rgba(43,43,92,0) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.bg-cover{background-size:cover}.bg-scroll{background-attachment:scroll}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.fill-current{fill:currentColor}.stroke-accent-1{stroke:var(--color-accent-1)}.stroke-current{stroke:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.px-11{padding-left:2.75rem;padding-right:2.75rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-14{padding-top:3.5rem}.pt-16{padding-top:4rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.font-headline{font-family:Lato,Roboto,sans-serif}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.text-8xl{font-size:6rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-xl{font-size:1.25rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.uppercase{text-transform:uppercase}.normal-case{text-transform:none}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-relaxed-more{line-height:1.75}.leading-tight{line-height:1.25}.leading-tighter{line-height:1.1}.text-accent-1{color:var(--color-accent-1)}.text-accent-2{color:var(--color-accent-2)}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-brown{--tw-text-opacity:1;color:rgb(119 101 65/var(--tw-text-opacity,1))}.text-dark-blue{--tw-text-opacity:1;color:rgb(21 21 56/var(--tw-text-opacity,1))}.text-dark-gray{--tw-text-opacity:1;color:rgb(4 4 4/var(--tw-text-opacity,1))}.text-gray-dark{--tw-text-opacity:1;color:rgb(119 119 119/var(--tw-text-opacity,1))}.text-gray-darker{--tw-text-opacity:1;color:rgb(73 82 89/var(--tw-text-opacity,1))}.text-gray-darkest{--tw-text-opacity:1;color:rgb(4 4 4/var(--tw-text-opacity,1))}.text-green{--tw-text-opacity:1;color:rgb(30 162 160/var(--tw-text-opacity,1))}.text-lighter-gray{--tw-text-opacity:1;color:rgb(247 247 247/var(--tw-text-opacity,1))}.text-mid-gray{--tw-text-opacity:1;color:rgb(44 44 44/var(--tw-text-opacity,1))}.text-primary{color:var(--color-primary)}.text-quiz-error{color:var(--color-quiz-error)}.text-quiz-success{color:var(--color-quiz-success)}.text-red-error{--tw-text-opacity:1;color:rgb(177 55 55/var(--tw-text-opacity,1))}.text-royal-blue{--tw-text-opacity:1;color:rgb(43 43 92/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-zoo-gray{--tw-text-opacity:1;color:rgb(42 46 56/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.placeholder-gray-dark::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(119 119 119/var(--tw-placeholder-opacity,1))}.placeholder-gray-dark::placeholder{--tw-placeholder-opacity:1;color:rgb(119 119 119/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-40{opacity:.4}.opacity-53{opacity:.53}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px -1px rgba(0,0,0,0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,0.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 8px 10px -6px rgba(0,0,0,0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.outline{outline-style:solid}.outline-offset-0{outline-offset:0}.outline-gray{outline-color:#ddd}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.ring-primary{--tw-ring-color:var(--color-primary)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,0.1)) drop-shadow(0 1px 1px rgba(0,0,0,0.06))}.drop-shadow,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-none{transition-property:none}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-opacity{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-250{transition-duration:.25s}.duration-300{transition-duration:.3s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-3{-webkit-line-clamp:3}.line-clamp-3,.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-4{-webkit-line-clamp:4}.\[shown\:1\]{shown:1}.h-50{height:50px}.h-90{height:90px}.h-200{height:200px}.h-275{height:275px}.h-max-90{max-height:90px}.h-max-200{max-height:200px}.h-max-250{max-height:250px}.h-max-600{max-height:600px}.h-min-90{min-height:90px}.h-min-200{min-height:200px}.h-min-250{min-height:250px}.h-min-400{min-height:400px}.h-min-600{min-height:600px}.h-min-1000{min-height:1000px}.w-168{width:168px}.w-300{width:300px}.w-1200{width:1200px}.w-1600{width:1600px}.w-max-1200{max-width:1200px}.w-max-1600{max-width:1600px}.z-999{z-index:999}.z-1050{z-index:1050}.image-mask{mask-image:linear-gradient(180deg,#000 50%,transparent);-webkit-mask-image:linear-gradient(180deg,#000 50%,transparent)}@media print{.image-mask{mask-image:none;-webkit-mask-image:none}}.before\:mr-2:before{content:var(--tw-content);margin-right:.5rem}.before\:h-4px:before{content:var(--tw-content);height:4px}.before\:flex-1:before{content:var(--tw-content);flex:1 1 0%}.before\:bg-green:before{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(30 162 160/var(--tw-bg-opacity,1))}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:left-0:after{content:var(--tw-content);left:0}.after\:top-full:after{content:var(--tw-content);top:100%}.after\:ml-2:after{content:var(--tw-content);margin-left:.5rem}.after\:h-4px:after{content:var(--tw-content);height:4px}.after\:h-5px:after{content:var(--tw-content);height:5px}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:flex-1:after{content:var(--tw-content);flex:1 1 0%}.after\:bg-green:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(30 162 160/var(--tw-bg-opacity,1))}.after\:bg-primary:after{content:var(--tw-content);background-color:var(--color-primary)}.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.after\:bg-theme-gradient:after{content:var(--tw-content);background-image:linear-gradient(94deg,var(--color-grad-1),var(--color-grad-2) 33%,var(--color-grad-3) 50%,var(--color-grad-4) 91%,var(--color-grad-5))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.hover\:border-primary:hover{border-color:var(--color-primary)}.hover\:bg-accent-1:hover{background-color:var(--color-accent-1)}.hover\:bg-gray-light:hover{--tw-bg-opacity:1;background-color:rgb(234 234 234/var(--tw-bg-opacity,1))}.hover\:bg-green:hover{--tw-bg-opacity:1;background-color:rgb(30 162 160/var(--tw-bg-opacity,1))}.hover\:bg-lighter-gray:hover{--tw-bg-opacity:1;background-color:rgb(247 247 247/var(--tw-bg-opacity,1))}.hover\:bg-primary:hover{background-color:var(--color-primary)}.hover\:font-bold:hover{font-weight:700}.hover\:text-accent-1:hover{color:var(--color-accent-1)}.hover\:text-accent-4:hover{color:var(--color-accent-4)}.hover\:text-black:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.hover\:text-green:hover{--tw-text-opacity:1;color:rgb(30 162 160/var(--tw-text-opacity,1))}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:text-royal-blue:hover{--tw-text-opacity:1;color:rgb(43 43 92/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:opacity-100:hover{opacity:1}.focus\:text-accent-1:focus{color:var(--color-accent-1)}.focus\:text-green:focus{--tw-text-opacity:1;color:rgb(30 162 160/var(--tw-text-opacity,1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-primary:focus{--tw-ring-color:var(--color-primary)}.focus\:ring-royal-blue:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(43 43 92/var(--tw-ring-opacity,1))}.group:hover .group-hover\:flex{display:flex}.group:hover .group-hover\:bg-green{--tw-bg-opacity:1;background-color:rgb(30 162 160/var(--tw-bg-opacity,1))}.group:hover .group-hover\:bg-primary{background-color:var(--color-primary)}.group:hover .group-hover\:from-dark-blue{--tw-gradient-from:#151538 var(--tw-gradient-from-position);--tw-gradient-to:rgba(21,21,56,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.group:hover .group-hover\:text-green{--tw-text-opacity:1;color:rgb(30 162 160/var(--tw-text-opacity,1))}.group:hover .group-hover\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.group:focus .group-focus\:opacity-75,.group:hover .group-hover\:opacity-75{opacity:.75}@media (min-width:640px){.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:order-3{order:3}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:row-span-2{grid-row:span 2/span 2}.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mb-0{margin-bottom:0}.sm\:mb-6{margin-bottom:1.5rem}.sm\:ml-3{margin-left:.75rem}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:translate-y-0{--tw-translate-y:0px}.sm\:scale-100,.sm\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:scale-100{--tw-scale-x:1;--tw-scale-y:1}.sm\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-fs-md{grid-template-columns:2fr 1fr}.sm\:grid-cols-fsr-md{grid-template-columns:1fr 2fr}.sm\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.sm\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.sm\:grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-8{gap:2rem}.sm\:p-0{padding:0}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pb-4{padding-bottom:1rem}.sm\:align-middle{vertical-align:middle}.sm\:text-2xl{font-size:1.5rem}.sm\:text-sm{font-size:.875rem}.sm\:leading-5{line-height:1.25rem}.sm\:line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}}@media (min-width:768px){.md\:relative{position:relative}.md\:float-left{float:left}.md\:mx-0{margin-left:0;margin-right:0}.md\:mx-4{margin-left:1rem;margin-right:1rem}.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:-mt-36{margin-top:-9rem}.md\:-mt-4{margin-top:-1rem}.md\:mb-0{margin-bottom:0}.md\:mb-4{margin-bottom:1rem}.md\:mb-8{margin-bottom:2rem}.md\:ml-0{margin-left:0}.md\:mr-6{margin-right:1.5rem}.md\:mt-8{margin-top:2rem}.md\:block{display:block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-20{height:5rem}.md\:min-h-30{min-height:30rem}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:w-11\/12{width:91.666667%}.md\:w-2\/3{width:66.666667%}.md\:w-auto{width:auto}.md\:max-w-1014{max-width:1014px}.md\:flex-1{flex:1 1 0%}.md\:shrink{flex-shrink:1}.md\:shrink-0{flex-shrink:0}.md\:grid-flow-col{grid-auto-flow:column}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.md\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-nowrap{flex-wrap:nowrap}.md\:items-stretch{align-items:stretch}.md\:justify-start{justify-content:flex-start}.md\:justify-center{justify-content:center}.md\:overflow-x-visible{overflow-x:visible}.md\:px-0{padding-left:0;padding-right:0}.md\:px-2{padding-left:.5rem;padding-right:.5rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:py-12{padding-top:3rem;padding-bottom:3rem}.md\:pb-0{padding-bottom:0}.md\:pr-10{padding-right:2.5rem}.md\:pt-0{padding-top:0}.md\:pt-6{padding-top:1.5rem}.md\:text-left{text-align:left}.md\:text-right{text-align:right}.md\:text-2xl{font-size:1.5rem}.md\:text-3xl{font-size:1.875rem}.md\:text-4xl{font-size:2.25rem}.md\:text-5xl{font-size:3rem}.md\:font-bold{font-weight:700}.md\:font-normal{font-weight:400}.md\:leading-tight{line-height:1.25}}@media (min-width:1024px){.lg\:order-3{order:3}.lg\:order-4{order:4}.lg\:order-5{order:5}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:row-span-2{grid-row:span 2/span 2}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.lg\:mx-8{margin-left:2rem;margin-right:2rem}.lg\:my-0{margin-top:0}.lg\:mb-0,.lg\:my-0{margin-bottom:0}.lg\:mb-11{margin-bottom:2.75rem}.lg\:mb-2{margin-bottom:.5rem}.lg\:mb-4{margin-bottom:1rem}.lg\:mb-8{margin-bottom:2rem}.lg\:ml-auto{margin-left:auto}.lg\:mr-0{margin-right:0}.lg\:mt-0{margin-top:0}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:min-h-2{min-height:2rem}.lg\:w-1\/2{width:50%}.lg\:w-1\/4{width:25%}.lg\:w-11\/12{width:91.666667%}.lg\:w-3\/4{width:75%}.lg\:w-auto{width:auto}.lg\:min-w-2{min-width:2rem}.lg\:min-w-300{min-width:300px}.lg\:max-w-195{max-width:195px}.lg\:max-w-xs{max-width:20rem}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-fs-lg{grid-template-columns:2fr 1fr 1fr}.lg\:grid-cols-fsr-lg{grid-template-columns:1fr 1fr 2fr}.lg\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.lg\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:items-stretch{align-items:stretch}.lg\:gap-8{gap:2rem}.lg\:gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.lg\:gap-y-6{row-gap:1.5rem}.lg\:self-start{align-self:flex-start}.lg\:p-8{padding:2rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:px-5{padding-left:1.25rem;padding-right:1.25rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-3{padding-top:.75rem;padding-bottom:.75rem}.lg\:py-4{padding-top:1rem;padding-bottom:1rem}.lg\:pr-4{padding-right:1rem}.lg\:pt-8{padding-top:2rem}.lg\:text-2xl{font-size:1.5rem}.lg\:text-4xl{font-size:2.25rem}.lg\:text-lg{font-size:1.125rem}.lg\:text-xl{font-size:1.25rem}}@media (min-width:1280px){.xl\:mb-4{margin-bottom:1rem}.xl\:mb-5{margin-bottom:1.25rem}.xl\:mb-8{margin-bottom:2rem}.xl\:block{display:block}.xl\:inline-block{display:inline-block}.xl\:flex{display:flex}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:p-8{padding:2rem}.xl\:px-10{padding-left:2.5rem;padding-right:2.5rem}.xl\:py-3{padding-top:.75rem;padding-bottom:.75rem}.xl\:pl-10{padding-left:2.5rem}.xl\:text-6xl{font-size:4rem}.xl\:text-base{font-size:1rem}.xl\:text-lg{font-size:1.125rem}.xl\:line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}}@media (min-width:1536px){.\32xl\:mr-5{margin-right:1.25rem}.\32xl\:text-2xl{font-size:1.5rem}}@media (min-width:1600px){.xxl\:min-h-35{min-height:35rem}}@media print{.print\:block{display:block}.print\:hidden{display:none}.print\:h-auto{height:auto}.print\:overflow-auto{overflow:auto}} </style> <link rel="alternate" type="application/rss+xml" title="Subscribe to What's New / HowStuffWorks RSS" href="https://syndication.howstuffworks.com/rss/HSW" /><link rel="icon" href="//cdn.hswstatic.com/en-us/hsw/img/icons/favicon.svg"> <link rel="apple-touch-icon" href="//cdn.hswstatic.com/en-us/hsw/img/icons/apple-touch.png"> <link rel="manifest" href="/manifest.json"> <link rel="mask-icon" href="//cdn.hswstatic.com/en-us/hsw/img/icons/favicon-mask.svg" color="#000033"> <meta name="theme-color" content="#151538"> <script> if (GACtest !== 'test55') { setTimeout( function() { (function(d) { var e = d.createElement('script'); e.src = d.location.protocol + '//tag.wknd.ai/6044/i.js'; e.async = true; d.getElementsByTagName("head")[0].appendChild(e); }(document)); },3000); } </script> </head> <body class="hsw-page theme-hsw pt-14 md:pt-0 leaderboard-sticky computer cid-1196 interior editorial-content editorial single-page" > <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NXHP8V" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div id="header" x-data="{ showMobileMenu : false, showMobileSearch : false, showNewsletterBanner : false, showNewsletterChatbox : false }" class="fixed top-0 w-full md:relative z-1050 print:hidden"> <header class="bg-royal-blue text-white max-w-full h-14 lg:h-20" data-track-gtm="Header"> <div class="w-full px-2 md:px-4 lg:px-5 w-max-1600 mx-auto"> <div class="flex justify-between items-center h-14 lg:h-20"> <div class="shrink lg:hidden self-center"> <a class=" text-white hover:text-white focus:text-green" @click.prevent="showMobileMenu = !showMobileMenu" href="#" aria-controls="mobile-nav" :aria-expanded="showMobileMenu.toString()" data-cy="mobile-menu-icon" > <svg class="fill-current stroke-current" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="21" viewBox="0 0 32 21"> <title>Mobile Menu</title> <defs> <clipPath id="clip-path"> <rect width="32" height="21" fill="none"/> </clipPath> </defs> <g id="Repeat_Grid_60" data-name="Repeat Grid 60" clip-path="url(#clip-path)"> <g transform="translate(-158 -87)"> <line id="Line_7" data-name="Line 7" x2="29" transform="translate(159.5 89.5)" fill="none" stroke-linecap="round" stroke-width="2"/> </g> <g transform="translate(-158 -79)"> <line id="Line_7-2" data-name="Line 7" x2="29" transform="translate(159.5 89.5)" fill="none" stroke-linecap="round" stroke-width="2"/> </g> <g transform="translate(-158 -71)"> <line id="Line_7-3" data-name="Line 7" x2="29" transform="translate(159.5 89.5)" fill="none" stroke-linecap="round" stroke-width="2"/> </g> </g> </svg> </a> </div> <div class="text-center px-4 md:text-left lg:px-0"> <a class="pt-1 text-white hover:text-white" href="//www.howstuffworks.com/" data-track-gtm="Logo"> <svg class="fill-current w-168 mx-auto lg:w-auto lg:max-w-195 lg:mx-0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 90.1" width="195" height="35.139"><title>HowStuffWorks</title><g fill-rule="evenodd" clip-rule="evenodd" fill="#FFF"><path d="M379.4 51.3c12 0 20.2 7.9 20.2 19.3S391.2 90 379.4 90c-12.1 0-20.3-7.9-20.3-19.3-.1-11.5 8.2-19.4 20.3-19.4zm107.3-.1c4.2-.1 8.3 1.3 11.5 3.9l-4.9 6c-1.6-1.5-3.7-2.3-5.9-2.4-1.9-.2-3.6 1.2-3.8 3 0 1.8.9 2.4 5.6 4.1 8.4 3 10.8 5.6 10.8 11.4 0 7.7-6.2 13-14.8 13-5.2 0-10.1-2.2-13.5-6.1l5.2-6.2c2 2.6 5.1 4.1 8.4 4.3 2.3.2 4.3-1.5 4.5-3.8v-.1c0-2.2-1-2.9-5.5-4.6-8.4-3.1-10.3-5.1-10.3-10.7 0-7 5.2-11.8 12.7-11.8zm-157.2.3l9.7 22.4 9.6-21.4h11.1l-18.3 37.2H337l-9.6-22.2-9.4 22.2h-4.6l-18.2-37.2h11.1l9.3 21 9.7-22.1 4.2.1zm96.4-.2c1.5 0 2.9.3 4.3.8l-1.4 9.6c-1.4-.9-3-1.3-4.7-1.3-5.8 0-8.6 3.5-8.6 10.9V89h-9.9V52.5h9.9V58c1.8-4.1 5.9-6.7 10.4-6.7zm17.4-25.4v39.9l13.3-13.3H470l-16.6 16 18 20.5h-13.6l-13.4-15.6-1.1 1.1V89h-9.9V26l9.9-.1zm-64 34.6c-5.6-.1-10.3 4.4-10.4 10.1-.1 5.6 4.4 10.3 10.1 10.4 5.6.1 10.3-4.4 10.4-10.1v-.1c0-5.6-4.5-10.2-10.1-10.3zM381.9 0c9.4 0 18.5 5.3 18.5 17.1 0 14.7-14.8 16.3-14.8 26.4v1.8h-11.5v-2.6c0-13.7 14.3-15.2 14.3-25.5.2-3.5-2.5-6.5-6-6.8h-.9c-4.8 0-7.2 3.2-7.2 7.9v1h-11.5C362.9 7.4 370.2 0 381.9 0zM60.5 51.3c12 0 20.2 7.9 20.2 19.3S72.3 90 60.5 90c-12.1 0-20.3-7.9-20.3-19.3-.1-11.5 8.2-19.4 20.3-19.4zm53.9.2l9.7 22.4 9.6-21.4h11.1l-18.4 37.2h-4.6l-9.6-22.2-9.4 22.2h-4.6L80 52.5h11.1l9.3 21 9.7-22.1 4.3.1zM9.9 25.9v31.3c2.4-3.8 6.6-6.1 11.1-5.9 3.9-.1 7.7 1.5 10.3 4.5 2.1 2.5 2.8 5 2.8 10.3V89h-9.9V69c0-6.5-1.9-9-6.8-9-5.1 0-7.5 3.3-7.5 10.3V89H0V26h9.9zm50.5 34.6c-5.6-.1-10.3 4.4-10.4 10.1-.1 5.6 4.4 10.3 10.1 10.4 5.6.1 10.3-4.4 10.4-10.1v-.1c0-5.6-4.5-10.2-10.1-10.3zM160.4 51.2c4.2-.1 8.3 1.3 11.5 3.9l-4.9 6c-1.6-1.5-3.7-2.3-5.9-2.4-1.9-.2-3.6 1.2-3.8 3 0 1.8.9 2.4 5.6 4.1 8.4 3 10.8 5.6 10.8 11.4 0 7.7-6.2 13-14.8 13-5.2 0-10.1-2.2-13.5-6.1l5.2-6.2c2 2.6 5.1 4.1 8.4 4.3 2.3.2 4.3-1.5 4.5-3.8v-.1c0-2.2-1-2.9-5.5-4.6-8.4-3.1-10.3-5.1-10.3-10.7 0-7 5.3-11.8 12.7-11.8zm53.2 1.3v20.6c0 5.5 2.5 8.3 7.2 8.3s7.2-2.9 7.2-8.3V52.5h10v22.3c0 9.8-6.2 15.3-17.2 15.3s-17.1-5.5-17.1-15.3V52.5h9.9zm-22.1-12.4v12.4h7v8.7h-7V89h-9.9V61.3h-3.9v-8.7h3.9V40.1h9.9zm70.2-15.2c1.8 0 3.6.4 5.2 1.3v9.3c-1.4-.9-3-1.3-4.6-1.4-3.3 0-4.6 2.3-4.6 8.2v10.2h9.2v8.7h-9.2V89h-9.9V61.3H244v-8.7h3.8V40.8c0-6.2 1.2-9.5 4.8-12.4 2.5-2.2 5.7-3.4 9.1-3.5zm25.8 0c1.8 0 3.6.4 5.2 1.3v9.3c-1.4-.9-3-1.3-4.6-1.4-3.3 0-4.6 2.3-4.6 8.2v10.2h9.2v8.7h-9.2V89h-9.9V61.3h-3.8v-8.7h3.8V40.8c0-6.2 1.2-9.5 4.8-12.4 2.5-2.2 5.7-3.4 9.1-3.5z"/></g></svg> </a> </div><div class="hidden lg:block w-full md:w-11/12 w-max-1600 px-6 print:hidden"> <nav class="navbar text-white pt-3" data-cy="header-navbar" aria-label="Desktop Menu"> <div class="pl-2 flex" data-track-gtm="Channel"><a class="pr-4 text-white hover:text-white hover:font-bold" href="https://science.howstuffworks.com/" data-text="Science">Science</a> <a class="pr-4 text-white font-bold hover:text-white hover:font-bold" href="https://electronics.howstuffworks.com/tech" data-text="Tech">Tech</a> <a class="pr-4 text-white hover:text-white hover:font-bold" href="https://home.howstuffworks.com/" data-text="Home &amp; Garden">Home &amp; Garden</a> <a class="pr-4 text-white hover:text-white hover:font-bold" href="https://auto.howstuffworks.com/" data-text="Auto">Auto</a> <a class="pr-4 text-white hover:text-white hover:font-bold" href="https://people.howstuffworks.com/culture" data-text="Culture">Culture</a><div id="header-more-dropdown" class="relative inline-block" x-data="{ open: false }" data-cy="nav-more-dropdown" > <button type="button" @click="open = true" class="focus:ring-primary inline-flex justify-center w-full" :class="{ 'font-bold' : open }" > More <span class="inline-block align-middle my-auto ml-2 mr-1"><svg xmlns="http://www.w3.org/2000/svg" width="28.396" height="13.211" viewBox="0 0 28.396 13.211" style="width: 14px; height: 9px;"><title>More</title><path d="M4398.8,5158.252l13.224,10.507,12.357-10.507" transform="translate(-4397.399 -5156.842)" fill="none" stroke="#f7f7f7" stroke-linecap="round" stroke-width="2"/></svg></span> </button> <div x-show="open" @click.away="open = false" class="origin-top-right absolute right-0 mt-2 w-56 border-t-6 border-green z-10"> <div class="bg-royal-blue shadow-xs"> <div class="py-1" role="menu" aria-orientation="vertical" aria-labelledby="header-more-dropdown"> <a class="block text-white hover:text-white hover:font-bold px-4 py-2 leading-5 " role="menuitem" href="https://health.howstuffworks.com/" data-text="Health">Health</a> <a class="block text-white hover:text-white hover:font-bold px-4 py-2 leading-5 " role="menuitem" href="https://money.howstuffworks.com/" data-text="Money">Money</a> <a class="block text-white hover:text-white hover:font-bold px-4 py-2 leading-5 " role="menuitem" href="https://animals.howstuffworks.com/" data-text="Animals">Animals</a> <a class="block text-white hover:text-white hover:font-bold px-4 py-2 leading-5 " role="menuitem" href="https://lifestyle.howstuffworks.com/" data-text="Lifestyle">Lifestyle</a> <a class="block text-white hover:text-white hover:font-bold px-4 py-2 leading-5 " role="menuitem" href="https://entertainment.howstuffworks.com/" data-text="Entertainment">Entertainment</a> <a class="block text-white hover:text-white hover:font-bold px-4 py-2 leading-5 " role="menuitem" href="https://play.howstuffworks.com/" data-text="Quizzes">Quizzes</a> <a class="block text-white hover:text-white hover:font-bold px-4 py-2 leading-5 " role="menuitem" href="https://coupons.howstuffworks.com/" data-text="Coupons">Coupons</a> </div> </div> </div> </div> </div> </nav> </div><div id="nlcb" class="hidden"> <div id="nlcb-icon" class="flex-none md:hidden self-center mt-1 mr-3"> <a class="flex cursor-pointer" @click.prevent="showNewsletterChatbox = !showNewsletterChatbox; cancelTimers(); startDialogue();" href="#" aria-controls="newsletter-chatbox" :aria-expanded="showNewsletterChatbox.toString()"> <svg xmlns="http://www.w3.org/2000/svg" width="24.259" height="19.261" viewBox="0 0 24.259 19.261"> <title>Mobile Newsletter</title> <defs><style>.nla{fill:none;stroke:#eaeaea;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;}</style></defs> <g transform="translate(1.029 0.75)"> <path class="nla" d="M5.22,6H22.981A2.227,2.227,0,0,1,25.2,8.22V21.541a2.227,2.227,0,0,1-2.22,2.22H5.22A2.227,2.227,0,0,1,3,21.541V8.22A2.227,2.227,0,0,1,5.22,6Z" transform="translate(-3 -6)"/> <path class="nla" d="M25.2,9,14.1,15.654,3,9" transform="translate(-3 -6.532)"/></g> </svg> <div id="nlcb-dot" class="bg-red invisible rounded-full h-4 w-4 flex items-center justify-center -ml-2 -mt-2"> <span class="text-white text-xs">1</span> </div> </a> </div> </div><div class="text-right"> <form action="https://s.howstuffworks.com/serp" method="get" class="hidden lg:block mb-0"> <div class="flex"> <input id="keywords" name="q" class="focus:ring-primary flex-1 block px-4 py-2 min-w-225 placeholder-gray-dark text-dark-gray transition duration-150 ease-in-out text-sm leading-5" placeholder="Search..."> <button type="submit" class="inline-flex items-center self-center text-sm bg-green text-white transition-colors duration-300 ease-in-out hover:bg-primary px-3 py-2"> <svg class="fill-current" class="cursor-pointer" xmlns="http://www.w3.org/2000/svg" width="25.537" height="25.543" viewbox="0 0 25.537 25.543"> <path d="M29.737,28.187l-7.1-7.169A10.121,10.121,0,1,0,21.1,22.575L28.154,29.7a1.093,1.093,0,0,0,1.543.04A1.1,1.1,0,0,0,29.737,28.187ZM14.681,22.661a7.992,7.992,0,1,1,5.653-2.341A7.943,7.943,0,0,1,14.681,22.661Z" transform="translate(-4.5 -4.493)"/> </svg> <span class="sr-only">Submit Search</span> </button> </div> </form><a class="lg:hidden text-white hover:text-white focus:text-green" :class="{ 'hidden' : showMobileSearch }" @click.prevent="showMobileSearch = true" href="#" data-cy="mobile-search-open" > <svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25"> <path d="M29.737,28.187l-7.1-7.169A10.121,10.121,0,1,0,21.1,22.575L28.154,29.7a1.093,1.093,0,0,0,1.543.04A1.1,1.1,0,0,0,29.737,28.187ZM14.681,22.661a7.992,7.992,0,1,1,5.653-2.341A7.943,7.943,0,0,1,14.681,22.661Z" transform="translate(-4.5 -4.493)"/> </svg> <span class="sr-only">Search</span> </a><a x-cloak class="lg:hidden text-white hover:text-white focus:text-green" :class="{ 'hidden' : !showMobileSearch }" @click.prevent="showMobileSearch = false" href="#" data-cy="mobile-search-close" > <svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25"> <g transform="translate(-3.375 -3.375)"> <path d="M23.295,21.705,19.589,18l3.705-3.705a1.124,1.124,0,0,0-1.589-1.589L18,16.411l-3.705-3.705a1.124,1.124,0,0,0-1.589,1.589L16.411,18l-3.705,3.705a1.086,1.086,0,0,0,0,1.589,1.116,1.116,0,0,0,1.589,0L18,19.589l3.705,3.705a1.129,1.129,0,0,0,1.589,0A1.116,1.116,0,0,0,23.295,21.705Z" transform="translate(-2.123 -2.123)"/> <path d="M15.875,5.058a10.813,10.813,0,1,1-7.65,3.167,10.746,10.746,0,0,1,7.65-3.167m0-1.683a12.5,12.5,0,1,0,12.5,12.5,12.5,12.5,0,0,0-12.5-12.5Z"/> </g> </svg> <span class="sr-only">Close Search</span> </a> </div> </div> </div> </header><nav x-cloak :class="{ 'hidden' : !showMobileMenu }" class="bg-dark-blue text-white p-4 text-lg fixed w-full top-14 print:hidden" :aria-expanded="showMobileMenu.toString()" id="mobile-nav" data-cy="mobile-menu" aria-label="Mobile Menu" > <ul class="list-none border-b border-primary mb-2 pb-2"> <li class="my-2"><a class="text-white hover:text-white hover:font-bold" href="https://science.howstuffworks.com/">Science</a></li> <li class="my-2"><a class="text-white hover:text-white hover:font-bold" href="https://electronics.howstuffworks.com/tech">Tech</a></li> <li class="my-2"><a class="text-white hover:text-white hover:font-bold" href="https://home.howstuffworks.com/">Home &amp; Garden</a></li> <li class="my-2"><a class="text-white hover:text-white hover:font-bold" href="https://auto.howstuffworks.com/">Auto</a></li> <li class="my-2"><a class="text-white hover:text-white hover:font-bold" href="https://people.howstuffworks.com/culture">Culture</a></li> <li class="my-2"><a class="text-white hover:text-white hover:font-bold" href="https://health.howstuffworks.com/">Health</a></li> <li class="my-2"><a class="text-white hover:text-white hover:font-bold" href="https://money.howstuffworks.com/">Money</a></li> <li class="my-2"><a class="text-white hover:text-white hover:font-bold" href="https://animals.howstuffworks.com/">Animals</a></li> <li class="my-2"><a class="text-white hover:text-white hover:font-bold" href="https://lifestyle.howstuffworks.com/">Lifestyle</a></li> <li class="my-2"><a class="text-white hover:text-white hover:font-bold" href="https://entertainment.howstuffworks.com/">Entertainment</a></li> </ul> <ul class="list-none"> <li class="my-2"><a class="text-white hover:text-white hover:font-bold" href="https://play.howstuffworks.com/">Quizzes</a></li> <li class="my-2"><a class="text-white hover:text-white hover:font-bold" href="https://coupons.howstuffworks.com/">Coupons</a></li> </ul> </nav><div x-cloak :class="{ 'hidden' : !showMobileSearch }" class="bg-dark-blue text-white p-4 fixed w-full top-14"> <form action="https://s.howstuffworks.com/serp" method="get"> <div class="flex"> <input id="keywords-mobile" name="q" class="focus:ring-primary flex-1 block px-4 py-2 w-full placeholder-gray-dark text-dark-gray transition duration-150 ease-in-out sm:text-sm sm:leading-5" placeholder="Search..."> <button type="submit" class="inline-flex items-center self-center text-sm bg-green text-white px-3 py-2"> <svg class="fill-current" class="cursor-pointer" xmlns="http://www.w3.org/2000/svg" width="25.537" height="25.543" viewbox="0 0 25.537 25.543"> <path d="M29.737,28.187l-7.1-7.169A10.121,10.121,0,1,0,21.1,22.575L28.154,29.7a1.093,1.093,0,0,0,1.543.04A1.1,1.1,0,0,0,29.737,28.187ZM14.681,22.661a7.992,7.992,0,1,1,5.653-2.341A7.943,7.943,0,0,1,14.681,22.661Z" transform="translate(-4.5 -4.493)"/> </svg> <span class="sr-only">Submit Search</span> </button> </div> </form> </div><div id="nlcb-banner" class="hidden relative flex-col items-center mt-11 group" data-cy="mobile-newsletter-banner"> <div class="absolute bottom-0 flex flex-col items-center group-hover:flex bg-primary w-full"> <div class="w-5 h-5 -mt-2 self-end mr-16 rotate-45 transform bg-primary"></div> <div class="relative z-10 p-2 -mt-2 mb-2 text-lg font-bold leading-none text-white whitespace-no-wrap"> <a id="nlcb-banner-opencb" @click.prevent="showNewsletterChatbox = true; startDialogue();" class="text-white hover:text-white" href="#">Sign up for our Newsletter!</a> </div> <div class="absolute top-1/4 right-5"> <a id="nlcb-banner-close" class="text-white hover:text-white" href="#"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"> <title>Mobile Newsletter banner close</title> <defs><style>.nlb{fill:#fff;}</style></defs> <g transform="translate(-3.375 -3.375)"> <path class="nlb" d="M19.93,18.828l-2.565-2.565L19.93,13.7a.778.778,0,0,0-1.1-1.1l-2.565,2.565L13.7,12.6a.778.778,0,0,0-1.1,1.1l2.565,2.565L12.6,18.828a.752.752,0,0,0,0,1.1.773.773,0,0,0,1.1,0l2.565-2.565,2.565,2.565a.782.782,0,0,0,1.1,0A.773.773,0,0,0,19.93,18.828Z" transform="translate(-2.889 -2.888)"/> <path class="nlb" d="M13.375,4.721a8.65,8.65,0,1,1-6.12,2.534,8.6,8.6,0,0,1,6.12-2.534m0-1.346a10,10,0,1,0,10,10,10,10,0,0,0-10-10Z"/> </g> </svg> </a> </div> </div> </div><div id="newsletter-chatbox" x-cloak :class="{ 'hidden' : !showNewsletterChatbox }" x-init="initNewsletterChatbox($dispatch)" class="print:hidden" :aria-expanded="showNewsletterChatbox.toString()"> <div class="flex items-end justify-center pt-0 px-4 pb-20 sm:block sm:p-0"> <div x-description="Background overlay, show/hide based on chatbox state." x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" class="fixed inset-0 bg-black bg-opacity-75 transition-opacity"> </div><span class="hidden sm:inline-block sm:align-middle sm:h-screen" aria-hidden="true">&#8203;</span> <div class="inline-block left-0 mt-0 mx-auto w-11/12 rounded-lg shadow transform transition-all"> <div class="bg-blue p-2 text-white font-bold text-md rounded-t-lg"> <div class="flex items-center justify-items-center justify-between"> <div class="justify-self-start"><img src="//cdn.hswstatic.com/en-us/hsw/img/hsw-avatar-sm.png" width="29px"/></div> <div class="whitespace-nowrap">HowStuffWorks Newsletter</div> <div class="justify-self-end"> <svg @click="showNewsletterChatbox = false; document.getElementById('nlcb-dot').classList.add('invisible');" class="fill-current" xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25"> <title>Mobile Newsletter chat close</title> <g transform="translate(-3.375 -3.375)"> <path d="M23.295,21.705,19.589,18l3.705-3.705a1.124,1.124,0,0,0-1.589-1.589L18,16.411l-3.705-3.705a1.124,1.124,0,0,0-1.589,1.589L16.411,18l-3.705,3.705a1.086,1.086,0,0,0,0,1.589,1.116,1.116,0,0,0,1.589,0L18,19.589l3.705,3.705a1.129,1.129,0,0,0,1.589,0A1.116,1.116,0,0,0,23.295,21.705Z" transform="translate(-2.123 -2.123)"></path> <path d="M15.875,5.058a10.813,10.813,0,1,1-7.65,3.167,10.746,10.746,0,0,1,7.65-3.167m0-1.683a12.5,12.5,0,1,0,12.5,12.5,12.5,12.5,0,0,0-12.5-12.5Z"></path> </g> </svg> </div> </div> </div> <div class="bg-gray-light text-gray-darkest min-h-24"> <div class="px-2 py-3"> <div id="cbc-0" class=" items-start hidden"> <div class="pr-3 flex-none"><img src="//cdn.hswstatic.com/en-us/hsw/img/hsw-avatar-sm.png" width="40" height="40"/></div> <div id="cbt-0" class="flex rounded-xl p-2 shadow bg-white"> <svg xmlns="http://www.w3.org/2000/svg" width="28" height="8" viewBox="0 0 28 8"> <title>Mobile Newsletter chat dots</title> <defs><style>.nlda{fill:#c0c1c5;}.nldb{fill:#939197;}</style></defs> <g transform="translate(-83 -81)"> <circle class="nlda" cx="4" cy="4" r="4" transform="translate(83 81)"/> <circle class="nlda" cx="4" cy="4" r="4" transform="translate(103 81)"/> <circle class="nldb" cx="4" cy="4" r="4" transform="translate(93 81)"/> </g> </svg> </div> </div> <div id="cbc-1" class=" items-start mt-3 hidden"> <div class="pr-3 flex-none"><img src="//cdn.hswstatic.com/en-us/hsw/img/hsw-avatar-sm.png" width="40" height="40"/></div> <div id="cbt-1" class="flex rounded-xl p-2 shadow bg-white"> <svg xmlns="http://www.w3.org/2000/svg" width="28" height="8" viewBox="0 0 28 8"> <title>Mobile Newsletter chat dots</title> <defs><style>.nlda{fill:#c0c1c5;}.nldb{fill:#939197;}</style></defs> <g transform="translate(-83 -81)"> <circle class="nlda" cx="4" cy="4" r="4" transform="translate(83 81)"/> <circle class="nlda" cx="4" cy="4" r="4" transform="translate(103 81)"/> <circle class="nldb" cx="4" cy="4" r="4" transform="translate(93 81)"/> </g> </svg> </div> </div> <div id="cbc-2" class=" items-start mt-3 hidden"> <div class="pr-3 flex-none"><img src="//cdn.hswstatic.com/en-us/hsw/img/hsw-avatar-sm.png" width="40" height="40"/></div> <div id="cbt-2" class="flex rounded-xl p-2 shadow bg-white"> <svg xmlns="http://www.w3.org/2000/svg" width="28" height="8" viewBox="0 0 28 8"> <title>Mobile Newsletter chat dots</title> <defs><style>.nlda{fill:#c0c1c5;}.nldb{fill:#939197;}</style></defs> <g transform="translate(-83 -81)"> <circle class="nlda" cx="4" cy="4" r="4" transform="translate(83 81)"/> <circle class="nlda" cx="4" cy="4" r="4" transform="translate(103 81)"/> <circle class="nldb" cx="4" cy="4" r="4" transform="translate(93 81)"/> </g> </svg> </div> </div> <div id="cbc-3" class="mt-3 hidden items-start justify-end"> <div id="cbt-3" class="rounded-2xl p-2 shadow bg-light-blue text-white"></div> <div class="pl-3 flex-none"> <div class="bg-primary rounded-2xl"> <svg class="p-1" xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 22.045 25.917"> <title>Mobile Newsletter chat avatar</title> <defs><style>.nluser{fill:#fff;}</style></defs> <path class="nluser" d="M142.589,13.965h.172a4.952,4.952,0,0,0,3.784-1.637c2.066-2.329,1.723-6.322,1.685-6.7-.134-2.861-1.487-4.229-2.6-4.868A5.967,5.967,0,0,0,142.739,0h-.091a5.976,5.976,0,0,0-2.887.735c-1.127.639-2.5,2.007-2.635,4.889-.038.381-.381,4.374,1.685,6.7A4.932,4.932,0,0,0,142.589,13.965Zm-4.031-8.206c0-.016.005-.032.005-.043.177-3.848,2.909-4.261,4.079-4.261h.064c1.449.032,3.913.623,4.079,4.261a.1.1,0,0,0,.005.043c.005.038.381,3.687-1.326,5.608a3.518,3.518,0,0,1-2.764,1.149h-.054a3.506,3.506,0,0,1-2.759-1.149C138.188,9.457,138.553,5.791,138.559,5.759Z" transform="translate(-131.661)"/> <path class="nluser" d="M58.116,265.918V265.9c0-.043-.005-.086-.005-.134-.032-1.063-.1-3.548-2.431-4.342l-.054-.016a15.488,15.488,0,0,1-4.455-2.029.724.724,0,1,0-.832,1.186,16.715,16.715,0,0,0,4.9,2.238c1.25.445,1.39,1.782,1.428,3.005a1.077,1.077,0,0,0,.005.134,9.742,9.742,0,0,1-.113,1.658,19.752,19.752,0,0,1-9.462,2.2,19.865,19.865,0,0,1-9.467-2.206,9.222,9.222,0,0,1-.113-1.658c0-.043.005-.086.005-.134.038-1.224.177-2.56,1.428-3.005a16.872,16.872,0,0,0,4.9-2.238.724.724,0,1,0-.832-1.186,15.315,15.315,0,0,1-4.455,2.029c-.021.005-.038.011-.054.016-2.329.8-2.4,3.285-2.431,4.342a1.078,1.078,0,0,1-.005.134v.016a8.23,8.23,0,0,0,.274,2.431.688.688,0,0,0,.279.338A20.3,20.3,0,0,0,47.1,271.248a20.361,20.361,0,0,0,10.476-2.565.718.718,0,0,0,.279-.338A8.635,8.635,0,0,0,58.116,265.918Z" transform="translate(-36.073 -245.331)"/> </svg> </div> </div> </div> <div id="cbc-4" class="items-start mt-3 hidden"> <div class="pr-3 flex-none"><img src="//cdn.hswstatic.com/en-us/hsw/img/hsw-avatar-sm.png" width="40" height="40"/></div> <div id="chatbox-success" class="flex rounded-xl p-2 shadow bg-white"></div> </div> </div> </div> <div class="bg-white border border-gray-light rounded-b-lg"> <form id="chatbox-form"> <input type="hidden" name="formloc" value="Chatbox"> <input type="hidden" name="c" x-data="{ c : userData.country }" :value="c" /> <div style="position: absolute; left: -5000px;" aria-hidden="true"><input name="website" type="text" autocomplete="off" tabindex="-1" value="" /></div> <div class="p-1 flex items-center"> <input type="email" value="" name="email" placeholder="Enter your email" class="w-5/6 text-md p-3 placeholder-gray-dark text-gray-darkest focus:outline-none required"> <button id="chatbox-subscribe" class="p-1 m-2 text-green"> <svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="26.833" height="23" viewBox="0 0 26.833 23"> <title>Mobile Newsletter chat subscribe</title> <path d="M3.013,27.5,29.833,16,3.013,4.5,3,13.444,22.167,16,3,18.556Z" transform="translate(-3 -4.5)"/> </svg> </button> </div> </form> </div> </div> </div> </div> </div> <div class="print:hidden md:hidden fixed bottom-0 left-0 right-0 bg-light-gray h-50 z-999"> <div id="ad-wrap-mobadhesion" class="print:hidden md:hidden "><div id="ad-div-mobadhesion" class="ad-tag text-center"></div></div> </div> <main> <div class="hidden print:hidden leaderboard-banner lg:block bg-primary max-w-full text-center text-white text-xs py-2"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 hidden md:block">Advertisement</p> <div id="ad-wrap-bannerTop" class="print:hidden hidden md:block h-min-90 bg-primary"><div id="ad-div-bannerTop" class="ad-tag "></div></div> <script> (function () { var mw = 1024; if (!dfpSettings.isMobile && HSW.utilities.getViewportWidth() < mw) { var el = document.getElementById('ad-wrap-bannerTop'); var d = el.previousElementSibling; el.parentNode.removeChild(el); if (d.classList.contains('ad-disclaimer')) { d.parentNode.removeChild(d); } } })(); </script> </div> <div class="w-full md:w-11/12 w-max-1200 mx-auto px-4 pt-4 md:pt-6" id="page" data-track-gtm="Page"> <nav aria-label="Breadcrumb Links"> <div class="flex items-center divider mb-3 xl:mb-4 overflow-x-scroll md:overflow-x-visible" data-track-gtm="Breadcrumbs"> <div itemscope itemtype="https://schema.org/BreadcrumbList" class="flex flex-nowrap"> <div itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" class="hidden print:block md:block breadcrumb-item mr-8 relative whitespace-nowrap"> <a class="text-primary hover:text-royal-blue" itemprop="item" href="https://www.howstuffworks.com/"><span itemprop="name"> HowStuffWorks</span></a> <meta itemprop="position" content="1" /> </div> <div itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" class=" breadcrumb-item mr-8 relative whitespace-nowrap"> <a class="text-primary hover:text-royal-blue" itemprop="item" href="https://electronics.howstuffworks.com/tech"><span itemprop="name"> Tech</span></a> <meta itemprop="position" content="2" /> </div> <div itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" class=" breadcrumb-item mr-8 relative whitespace-nowrap"> <a class="text-primary hover:text-royal-blue" itemprop="item" href="https://computer.howstuffworks.com/"><span itemprop="name"> Computer</span></a> <meta itemprop="position" content="3" /> </div> <div itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" class=" breadcrumb-item mr-8 relative whitespace-nowrap"> <a class="text-primary hover:text-royal-blue" itemprop="item" href="https://computer.howstuffworks.com/computer-hardware-channel.htm"><span itemprop="name"> Computer Hardware</span></a> <meta itemprop="position" content="4" /> </div> <div itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" class=" breadcrumb-item mr-8 relative whitespace-nowrap"> <a class="text-primary hover:text-royal-blue" itemprop="item" href="https://computer.howstuffworks.com/computer-networking-channel.htm"><span itemprop="name"> Networking</span></a> <meta itemprop="position" content="5" /> </div> </div> </div> </nav> <div id="fb-root"></div> <div class="md:flex md:flex-nowrap"> <div id="content-well" class="relative w-full md:flex-1 md:w-auto md:pr-10 col-main " data-track-gtm="Body"> <div class="page-title flex flex-rows items-center mb-4"><h1 class="flex-grow font-headline text-3xl md:text-5xl text-royal-blue leading-tighter">What Does a Router Do?</h1> </div> <div class="mb-4"> <div class="mb-4 w-100 flex justify-between"> <div> By: <a class="text-primary" data-track-gtm="Byline" href="https://www.howstuffworks.com/hsw-contact.htm">Curt Franklin</a> &nbsp;|&nbsp; <span class="content-date byline-segment">Updated: Mar 6, 2024</span> </div> </div> <div class="bg-theme-gradient w-100 h-4px mb-4"></div> <script> function contentShare(e){return{get emailBody(){let e=document.getElementById("share-email-template").innerHTML;var t={url:Alpine.store("share").url,title:Alpine.store("share").title};return encodeURIComponent(function(e,t){for(const n in e){var r=new RegExp("<% "+n+" %>","g");t=t.replace(r,e[n])}return t}(t,e)).replace(/amp%3B/g,"")}}}document.addEventListener("alpine:init",()=>{Alpine.store("share",{url:location.href+"?utm_medium=share&utm_campaign=hsw_share",title:pageMetricsData.title,image:pageMetricsData.image,site:document.querySelector("meta[property='og:site_name']").getAttribute("content")})}); </script><div id="share-float" x-data="contentShare()" x-init="this.id = 'left'" x-cloak class="sticky top-5 print:hidden" > <div class="relative xs:hidden"> <div id="share-bar-left" class="absolute -left-12"> <ul class="flex flex-col justify-between md:flex-nowrap md:justify-start"> <li class="mt-6"> <a target="_blank" class="share-facebook text-accent-1 hover:text-accent-1" data-track-gtm="Facebook" :href="'https://www.facebook.com/sharer/sharer.php?u=' + encodeURIComponent($store.share.url) + '%26utm_source%3Dfacebook'" title="Share Content on Facebook"> <svg class="fill-current opacity-53 hover:opacity-100" xmlns="http://www.w3.org/2000/svg" width="28.299" height="27.47" viewBox="0 0 28.299 27.47" aria-labelledby="shareFacebookTitle" role="img"> <title id="shareFacebookTitle">Share Content on Facebook</title> <path id="facebook-icon" d="M28.3,13.819A13.987,13.987,0,0,0,14.149,0,13.987,13.987,0,0,0,0,13.819,13.927,13.927,0,0,0,11.939,27.47V17.813H8.346V13.819h3.593V10.774c0-3.463,2.112-5.376,5.344-5.376a22.265,22.265,0,0,1,3.167.27v3.4H18.666a2.021,2.021,0,0,0-2.306,2.158v2.592h3.924l-.627,3.995h-3.3V27.47A13.927,13.927,0,0,0,28.3,13.819Z" /> </svg> </a> </li> <li class="mt-6"> <a target="_blank" class="share-linkedin text-accent-1 hover:text-accent-1" data-track-gtm="LinkedIn" :href="'https://www.linkedin.com/shareArticle?mini=true&url=' + encodeURIComponent($store.share.url) + '%26utm_source%3Dlinkedin&amp;title=' + encodeURIComponent($store.share.title)" title="Share Content on LinkedIn"> <svg class="fill-current opacity-53 hover:opacity-100" xmlns="http://www.w3.org/2000/svg" width="28.301" height="27.64" viewBox="0 0 28.301 27.64" aria-labelledby="shareLinkedInTitle" role="img"> <title id="shareLinkedInTitle">Share Content on LinkedIn</title> <path id="linkedin-icon" d="M24.111,23.554H19.92V17.14c0-1.529-.032-3.5-2.184-3.5-2.185,0-2.519,1.664-2.519,3.385v6.526H11.027V10.365h4.026v1.8h.054a4.437,4.437,0,0,1,3.974-2.131c4.246,0,5.032,2.729,5.032,6.282v7.239ZM6.293,8.56A2.378,2.378,0,1,1,8.727,6.182,2.4,2.4,0,0,1,6.293,8.56Zm2.1,14.993h-4.2V10.365h4.2ZM26.208,0H2.088A2.041,2.041,0,0,0,0,1.991V25.649A2.04,2.04,0,0,0,2.088,27.64H26.2a2.048,2.048,0,0,0,2.1-1.991V1.991A2.049,2.049,0,0,0,26.2,0Z" /> </svg> </a> </li> <li class="mt-6"> <a target="_blank" class="share-flipboard text-accent-1 hover:text-accent-1" data-track-gtm="Flipboard" :href="'https://share.flipboard.com/bookmarklet/popout?url=' + encodeURIComponent($store.share.url) + '%26utm_source%3Dflipboard&amp;title=' + encodeURIComponent($store.share.title)" title="Share Content on Flipboard"> <svg class="fill-current opacity-53 hover:opacity-100 " xmlns="http://www.w3.org/2000/svg" width="28.299" height="28.299" viewBox="0 0 28.299 28.299" aria-labelledby="shareFlipboardTitle" role="img"> <title id="shareFlipboardTitle">Share Content on Flipboard</title> <path id="flipboard-icon" d="M0,0V28.3H28.3V0ZM22.639,11.32h-5.66v5.66H11.32v5.66H5.66V5.66H22.639Z" /> </svg> </a> </li> <li class="mt-6"> <a target="_blank" class="share-reddit text-accent-1 hover:text-accent-1" data-track-gtm="Reddit" :href="'https://www.reddit.com/submit?url=' + encodeURIComponent($store.share.url) + '%26utm_source%3Dreddit&amp;title=' + encodeURIComponent($store.share.title)" title="Share Content on Reddit"> <svg class="fill-current opacity-53 hover:opacity-100" xmlns="http://www.w3.org/2000/svg" width="28.3" height="28.3" viewBox="0 0 28.3 28.3" aria-labelledby="shareRedditTitle" role="img"> <title id="shareRedditTitle">Share Content on Reddit</title> <g id="reddit-Icon" transform="translate(-0.617 -0.617)"> <circle id="Ellipse_6" cx="14.15" cy="14.15" r="14.15" transform="translate(0.617 0.617)" /> <path id="Path_98" d="M25.344,17.9a.477.477,0,0,1,.568-.359l3.9.862a1.542,1.542,0,1,1-.162.862l-3.532-.783-1.2,5.15a11.116,11.116,0,0,1,6.4,2.119,2.269,2.269,0,0,1,3.482.274,2.218,2.218,0,0,1,.121.215,2.354,2.354,0,0,1-1.059,3.149,5.5,5.5,0,0,1-2.354,5.15,11.652,11.652,0,0,1-6.957,2.1,11.646,11.646,0,0,1-6.957-2.1,5.5,5.5,0,0,1-2.354-5.15,2.216,2.216,0,0,1-.215-.121,2.354,2.354,0,0,1-.724-3.237,2.434,2.434,0,0,1,.265-.312,2.278,2.278,0,0,1,3.217.032,11.119,11.119,0,0,1,6.236-2.116Zm1.292,11.007a1.557,1.557,0,1,0,.456-1.1A1.56,1.56,0,0,0,26.636,28.909Zm1.857,4.3a.359.359,0,0,0-.383-.589,6.08,6.08,0,0,1-7.116,0,.359.359,0,0,0-.383.589,6.669,6.669,0,0,0,7.881,0Zm-9.144-4.3a1.557,1.557,0,1,0,.456-1.1A1.56,1.56,0,0,0,19.349,28.909Z" transform="translate(-9.278 -11.812)" fill="#fff"/> </g> </svg> </a> </li> <li class="mt-6"> <a target="_blank" class="share-email text-accent-1 hover:text-accent-1" data-track-gtm="Email" :href="'mailto:?subject=' + encodeURIComponent($store.share.title) + '+-+' + encodeURIComponent($store.share.site) + '&body=' + emailBody" title="Share Content via Email"> <svg class="fill-current opacity-53 hover:opacity-100" xmlns="http://www.w3.org/2000/svg" width="28.1569" height="22" viewBox="0 0 23.584 18.427" aria-labelledby="shareEmailTitle" role="img"> <title id="shareEmailTitle">Share Content via Email</title> <path d="M24.226,6H5.358A2.328,2.328,0,0,0,3.012,8.3L3,22.123a2.338,2.338,0,0,0,2.358,2.3H24.226a2.338,2.338,0,0,0,2.358-2.3V8.3A2.338,2.338,0,0,0,24.226,6Zm0,4.607-9.434,5.758L5.358,10.607V8.3l9.434,5.758L24.226,8.3Z" transform="translate(-3 -6)"/> </svg> </a> </li> </ul> </div> </div> <script id="share-email-template" type="text/template"> Hi, I thought you would like this: <% url %>?utm_source=email&utm_medium=share&utm_campaign=hsw_share <% title %> </script> </div> <div id="editorial-main"> <div class="editorial-header"> </div> <article id="editorial-body" class="editorial-body infinite-container break-words"> <div class="page-content"> <div class="page-body se" id="page0" data-slide="0" data-track-gtm="Content"> <div class="editorial-sidebar mx-auto mb-6 md:float-left md:ml-0 md:mr-6 md:mb-4" style="max-width:290px;" data-track-gtm="Editorial Sidebar"> <figure class="fragment-media lead-image media-vertical" style="max-width: 290px;" > <picture> <source " srcset="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRlci1nZW9zdHJlYW0uanBnIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyOTB9LCJ0b0Zvcm1hdCI6ImF2aWYifX0=" type="image/avif"> <source " srcset="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRlci1nZW9zdHJlYW0uanBnIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyOTB9fX0="> <img class=" "src="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRlci1nZW9zdHJlYW0uanBnIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyOTB9fX0=" alt="A&#x20;Fujitsu&#x20;Geostream&#x20;R980&#x20;industrial&#x20;strength&#x20;router." width="290" height="350" border="0"> </picture> <noscript> "<img src="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRlci1nZW9zdHJlYW0uanBnIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyOTB9fX0=" width="290" alt="A&#x20;Fujitsu&#x20;Geostream&#x20;R980&#x20;industrial&#x20;strength&#x20;router." border="0">" </noscript> <figcaption class="media-body-wrap bg-accent-3 p-4 w-max-full text-sm text-left"> Fujitsu GeoStream R980 industrial strength router. See <a href="https://computer.howstuffworks.com/internet-connection-pictures.htm">Internet connection pictures</a> to see ways to get online. <div class="media-sub uppercase text-brown"> Photo courtesy Newstream.com </div> </figcaption> </figure> </div> <p>The Internet is one of the 20th century's greatest communications developments. It allows people around the world to send <a href="https://computer.howstuffworks.com/e-mail-messaging/email.htm">e-mail</a> to one another in a matter of seconds, and it lets you read, among other things, the articles on HowStuffWorks.com. Of course, none of this would be possible without the router, which begs the question: <b>What does a router do</b>?</p> <p>We're all used to seeing the various parts of the Internet that come into our homes and offices — the <a href="https://computer.howstuffworks.com/web-page.htm">Web pages</a>, e-mail messages, text messages, downloaded files, and streaming data that make the Internet a dynamic and valuable medium. But none of these parts would ever make it to your computer without the router. In this article, we'll help you understand exactly what a router does, and how its role is chiefly responsible for allowing the Internet to exist at all.</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-99"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline1" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline1" class="ad-tag h-max-250"></div></div> </div> </div> </div> </div> <div class="clear-both"> <div class="toc inline-block bg-accent-4 py-4 px-8 text-2xl text-lighter-gray mb-8 print:hidden" data-track-gtm="TOC"> <strong>Contents</strong> <ol class="list-outside list-decimal text-lg mt-2 ml-8 text-primary font-bold"> <li class="pb-2 pl-2 text-lg"> <a data-target="pt1" class="text-lighter-gray hover:text-green font-normal" href="#pt1">The Role of Wired or Wireless Routers</a> </li> <li class="pb-2 pl-2 text-lg"> <a data-target="pt2" class="text-lighter-gray hover:text-green font-normal" href="#pt2">Directing Traffic</a> </li> <li class="pb-2 pl-2 text-lg"> <a data-target="pt3" class="text-lighter-gray hover:text-green font-normal" href="#pt3">Providing Info to Connected Devices</a> </li> <li class="pb-2 pl-2 text-lg"> <a data-target="pt4" class="text-lighter-gray hover:text-green font-normal" href="#pt4">Transmitting Packets</a> </li> <li class="pb-2 pl-2 text-lg"> <a data-target="pt5" class="text-lighter-gray hover:text-green font-normal" href="#pt5">The Path of Data Packets</a> </li> <li class="pb-2 pl-2 text-lg"> <a data-target="pt6" class="text-lighter-gray hover:text-green font-normal" href="#pt6">Recognizing a Local Area Network</a> </li> <li class="pb-2 pl-2 text-lg"> <a data-target="pt7" class="text-lighter-gray hover:text-green font-normal" href="#pt7">Knowing Where to Send Data</a> </li> <li class="pb-2 pl-2 text-lg"> <a data-target="pt8" class="text-lighter-gray hover:text-green font-normal" href="#pt8">Logical Addresses</a> </li> <li class="pb-2 pl-2 text-lg"> <a data-target="pt9" class="text-lighter-gray hover:text-green font-normal" href="#pt9">MAC Addresses</a> </li> <li class="pb-2 pl-2 text-lg"> <a data-target="pt10" class="text-lighter-gray hover:text-green font-normal" href="#pt10">Understanding the Protocols</a> </li> <li class="pb-2 pl-2 text-lg"> <a data-target="pt11" class="text-lighter-gray hover:text-green font-normal" href="#pt11">Tracing a Message</a> </li> <li class="pb-2 pl-2 text-lg"> <a data-target="pt12" class="text-lighter-gray hover:text-green font-normal" href="#pt12">The Wireless Router and Beyond</a> </li> </ol> </div> </div> <div class="page-content relative clear-both" id="page-wrap1" x-data="{ pageVisible : true }"><a class="absolute left-0 top-n56" name="pt1"></a> <h2 class="page-title firePageview text-2xl mb-6 font-bold se" data-page-nbr="1" data-logged="false" data-page-url="router1.htm"> <span class="flex cursor-pointer " @click="pageVisible = !pageVisible" aria-expanded="true" aria-controls="page1" role="button"> <svg class="mt-3 mr-3 print:hidden shrink-0 fill-current stroke-current transition ease-in-out duration-200 transform" :class="{ 'rotate-180' : !pageVisible, '' : pageVisible }" xmlns='http://www.w3.org/2000/svg' width='22' height='10' viewbox='0 0 28.396 13.211'><path d='M4398.8,5158.252l13.224,10.507,12.357-10.507' transform='translate(-4397.399 -5156.842)' fill='none' stroke-linecap='round' stroke-width='2'/></svg> <span>The Role of Wired or Wireless Routers</span> </span> </h2> <div class="page-body se" id="page1" data-slide="1" data-track-gtm="Content" x-show.transition="pageVisible === true"> <p>When you send <a href="https://computer.howstuffworks.com/e-mail-messaging/email.htm">e-mail</a> to a friend on the other side of the country, how does the message know to end up on your friend's <a href="https://computer.howstuffworks.com/pc.htm">computer</a>, rather than on one of the millions of other computers in the world? Much of the work to get a message from one computer to another is done by routers, because they're the crucial devices that let messages flow between networks, rather than within networks.</p> <p>Let's look at what a very simple router might do. Imagine a small company that makes animated <a href="https://computer.howstuffworks.com/3dgraphics.htm">3-D graphics</a> for local <a href="https://electronics.howstuffworks.com/tv.htm">television</a> stations. There are 10 employees of the company, each with a computer. Four of the employees are animators, while the rest are in sales, accounting and management. The animators will need to send lots of very large files back and forth to one another as they work on projects. To do this, they'll use a network.</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-99"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline3" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline3" class="ad-tag h-max-250"></div></div> </div> </div> <p>When one animator sends a file to another, the very large file will use up most of the network's capacity, making the network run very slowly for other users. One of the reasons that a single intensive user can affect the entire network stems from the way that <a href="https://computer.howstuffworks.com/ethernet.htm">Ethernet</a> works. Each information <a href="https://computer.howstuffworks.com/question525.htm">packet</a> sent from a computer is seen by all the other computers on the local network. Each computer then examines the packet and decides whether it was meant for its address. This keeps the basic plan of the network simple, but has performance consequences as the size of the network or level of network activity increases.</p> <div id="rampjs_slot1" class="mb-6"></div> <p>To keep the animators' work from interfering with that of the folks in the front office, the company sets up two separate networks, one for the animators and one for the rest of the company. A wired router links the two networks and connects both networks to the Internet.</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-14"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline4" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline4" class="ad-tag "></div></div> </div> </div> </div> </div> <div class="page-content relative clear-both" id="page-wrap2" x-data="{ pageVisible : true }"><a class="absolute left-0 top-n56" name="pt2"></a> <h2 class="page-title firePageview text-2xl mb-6 font-bold se" data-page-nbr="2" data-logged="false" data-page-url="router2.htm"> <span class="flex cursor-pointer " @click="pageVisible = !pageVisible" aria-expanded="true" aria-controls="page2" role="button"> <svg class="mt-3 mr-3 print:hidden shrink-0 fill-current stroke-current transition ease-in-out duration-200 transform" :class="{ 'rotate-180' : !pageVisible, '' : pageVisible }" xmlns='http://www.w3.org/2000/svg' width='22' height='10' viewbox='0 0 28.396 13.211'><path d='M4398.8,5158.252l13.224,10.507,12.357-10.507' transform='translate(-4397.399 -5156.842)' fill='none' stroke-linecap='round' stroke-width='2'/></svg> <span>Directing Traffic</span> </span> </h2> <div class="page-body se" id="page2" data-slide="2" data-track-gtm="Content" x-show.transition="pageVisible === true"> <p>The router is the only device that sees every message sent by any computer on either of the company's networks. When the animator in our example sends a huge file to another animator, the router looks at the recipient's address and keeps the traffic on the animator's network. However, when an animator sends a message to the bookkeeper asking about an expense-account check, then the router sees the recipient's address and forwards the message between the two networks.</p> <p>One of the tools a router uses to decide where data packets should go is a configuration table. A configuration table is a collection of information, including:</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-99"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline5" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline5" class="ad-tag h-max-250"></div></div> </div> </div> <div class="list"> <ul><li><span>Information on which connections lead to particular groups of addresses</span></li><li><span>Priorities for connections to be used</span></li><li><span>Rules for handling both routine and special cases of traffic</span></li></ul> </div> <p>A configuration table can be as simple as a half-dozen lines in the smallest routers, but can grow to massive size and complexity in the very large wired routers that handle the bulk of Internet messages.</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-14"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline6" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline6" class="ad-tag "></div></div> </div> </div> </div> </div> <div class="page-content relative clear-both" id="page-wrap3" x-data="{ pageVisible : true }"><a class="absolute left-0 top-n56" name="pt3"></a> <h2 class="page-title firePageview text-2xl mb-6 font-bold se" data-page-nbr="3" data-logged="false" data-page-url="router3.htm"> <span class="flex cursor-pointer " @click="pageVisible = !pageVisible" aria-expanded="true" aria-controls="page3" role="button"> <svg class="mt-3 mr-3 print:hidden shrink-0 fill-current stroke-current transition ease-in-out duration-200 transform" :class="{ 'rotate-180' : !pageVisible, '' : pageVisible }" xmlns='http://www.w3.org/2000/svg' width='22' height='10' viewbox='0 0 28.396 13.211'><path d='M4398.8,5158.252l13.224,10.507,12.357-10.507' transform='translate(-4397.399 -5156.842)' fill='none' stroke-linecap='round' stroke-width='2'/></svg> <span>Providing Info to Connected Devices</span> </span> </h2> <div class="page-body se" id="page3" data-slide="3" data-track-gtm="Content" x-show.transition="pageVisible === true"> <p>A router, then, has two separate but related jobs:</p> <div class="list"> <ul><li><span>The router ensures that information doesn't go where it's not needed. This is crucial for keeping large volumes of data from clogging the connections of &quot;innocent bystanders.&quot;</span></li><li><span>The router makes sure that information does make it to the intended destination.</span></li></ul> </div> <p>In performing these two jobs, a router is extremely useful in dealing with network management. It joins two separate computer networks, passing information from one to the other and, in some cases, performing translations of various protocols between the two networks. It also protects the networks from one another, preventing the traffic on one from unnecessarily spilling over to the other.</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-99"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline7" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline7" class="ad-tag h-max-250"></div></div> </div> </div> <p>As the number of networks attached to one another grows, the configuration table for handling traffic among them grows, and the processing power of the router is increased. Regardless of how many networks are attached, though, the basic operation and function of the router remains the same.</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-14"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline8" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline8" class="ad-tag "></div></div> </div> </div> </div> </div> <div class="page-content relative clear-both" id="page-wrap4" x-data="{ pageVisible : true }"><a class="absolute left-0 top-n56" name="pt4"></a> <h2 class="page-title firePageview text-2xl mb-6 font-bold se" data-page-nbr="4" data-logged="false" data-page-url="router4.htm"> <span class="flex cursor-pointer " @click="pageVisible = !pageVisible" aria-expanded="true" aria-controls="page4" role="button"> <svg class="mt-3 mr-3 print:hidden shrink-0 fill-current stroke-current transition ease-in-out duration-200 transform" :class="{ 'rotate-180' : !pageVisible, '' : pageVisible }" xmlns='http://www.w3.org/2000/svg' width='22' height='10' viewbox='0 0 28.396 13.211'><path d='M4398.8,5158.252l13.224,10.507,12.357-10.507' transform='translate(-4397.399 -5156.842)' fill='none' stroke-linecap='round' stroke-width='2'/></svg> <span>Transmitting Packets</span> </span> </h2> <div class="page-body se" id="page4" data-slide="4" data-track-gtm="Content" x-show.transition="pageVisible === true"> <p>Internet data, whether in the form of a <a href="https://computer.howstuffworks.com/web-page.htm">Web page</a>, a downloaded file or an <a href="https://computer.howstuffworks.com/e-mail-messaging/email.htm">e-mail</a> message, travels over a system known as a packet-switching network. In this system, the data in a message or file is broken up into packages about 1,500 <a href="https://computer.howstuffworks.com/bytes.htm">bytes</a> long. Each of these packages gets a wrapper that includes information on the sender's address, the receiver's address, the package's place in the entire message, and how the receiving computer can be sure that the package arrived intact.</p> <p>Each data package, called a packet, is then sent off to its destination via the best available route — a route that might be taken by all the other packets in the message or by none of the other packets in the message. In a network designed for data, there are two huge advantages to the packet-switching plan:</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-99"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline9" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline9" class="ad-tag h-max-250"></div></div> </div> </div> <div class="list"> <ul><li><span>The network can balance the load across various pieces of equipment on a millisecond-by-millisecond basis.</span></li><li><span>If there is a problem with one piece of equipment in the network while a message is being transferred, packets can be routed around the problem, ensuring the delivery of the entire message.</span></li></ul> </div> </div> </div> <div class="page-content relative clear-both" id="page-wrap5" x-data="{ pageVisible : true }"><a class="absolute left-0 top-n56" name="pt5"></a> <h2 class="page-title firePageview text-2xl mb-6 font-bold se" data-page-nbr="5" data-logged="false" data-page-url="router5.htm"> <span class="flex cursor-pointer " @click="pageVisible = !pageVisible" aria-expanded="true" aria-controls="page5" role="button"> <svg class="mt-3 mr-3 print:hidden shrink-0 fill-current stroke-current transition ease-in-out duration-200 transform" :class="{ 'rotate-180' : !pageVisible, '' : pageVisible }" xmlns='http://www.w3.org/2000/svg' width='22' height='10' viewbox='0 0 28.396 13.211'><path d='M4398.8,5158.252l13.224,10.507,12.357-10.507' transform='translate(-4397.399 -5156.842)' fill='none' stroke-linecap='round' stroke-width='2'/></svg> <span>The Path of Data Packets</span> </span> </h2> <div class="page-body se" id="page5" data-slide="5" data-track-gtm="Content" x-show.transition="pageVisible === true"> <p>The routers that make up the main part of the Internet can reconfigure the paths that packets take because they look at the information surrounding the data packet, and they tell each other about line conditions, such as delays in receiving and sending data and traffic on various pieces of the network. Not all routers do so many jobs, however. Routers come in different sizes. For example:</p> <div class="list"> <ul><li><span>If you have enabled <a href="https://computer.howstuffworks.com/home-network.htm#pt5" class="in-page-link">Internet connection sharing</a> between two Windows 98-based computers, you're using one of the computers (the computer with the Internet connection) as a simple router. In this instance, the router does so little — simply looking at data to see whether it's intended for one computer or the other — that it can operate in the background of the system without significantly affecting the other programs you might be running.</span></li><li><span>Slightly larger routers, the sort used to connect a small office network to the Internet, will do a bit more. These routers frequently enforce rules concerning security for the office network (trying to secure the network from certain attacks). They handle enough traffic that they're generally stand-alone devices rather than software running on a server.</span></li><li><span>The largest routers, those used to handle data at the major traffic points on the Internet, handle millions of data packets every second and work to configure the network most efficiently. These routers are large stand-alone systems that have far more in common with <a href="https://computer.howstuffworks.com/10-types-of-computers.htm">supercomputers</a> than with your office server.</span></li></ul> </div> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-99"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline11" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline11" class="ad-tag h-max-250"></div></div> </div> </div> </div> </div> <div class="page-content relative clear-both" id="page-wrap6" x-data="{ pageVisible : true }"><a class="absolute left-0 top-n56" name="pt6"></a> <h2 class="page-title firePageview text-2xl mb-6 font-bold se" data-page-nbr="6" data-logged="false" data-page-url="router6.htm"> <span class="flex cursor-pointer " @click="pageVisible = !pageVisible" aria-expanded="true" aria-controls="page6" role="button"> <svg class="mt-3 mr-3 print:hidden shrink-0 fill-current stroke-current transition ease-in-out duration-200 transform" :class="{ 'rotate-180' : !pageVisible, '' : pageVisible }" xmlns='http://www.w3.org/2000/svg' width='22' height='10' viewbox='0 0 28.396 13.211'><path d='M4398.8,5158.252l13.224,10.507,12.357-10.507' transform='translate(-4397.399 -5156.842)' fill='none' stroke-linecap='round' stroke-width='2'/></svg> <span>Recognizing a Local Area Network</span> </span> </h2> <div class="page-body se" id="page6" data-slide="6" data-track-gtm="Content" x-show.transition="pageVisible === true"> <p>One of the crucial tasks for any router is knowing when a packet of information stays on its local network. For this, it uses a mechanism called a subnet mask<b>.</b> The subnet mask looks like an <a href="https://computer.howstuffworks.com/web-server5.htm">IP address</a> and usually reads &quot;255.255.255.0.&quot; This tells the router that all messages with the sender and receiver having an address sharing the first three groups of numbers are on the same network, and shouldn't be sent out to another network.</p> <p>Here's an example: The computer at address 15.57.31.40 sends a request to the computer at 15.57.31.52. The router, which sees all the packets, matches the first three groups in the address of both sender and receiver (15.57.31), and keeps the packet on the local network. (You'll learn more about how the addresses work in the next section.)</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-99"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline13" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline13" class="ad-tag h-max-250"></div></div> </div> </div> </div> </div> <div class="page-content relative clear-both" id="page-wrap7" x-data="{ pageVisible : true }"><a class="absolute left-0 top-n56" name="pt7"></a> <h2 class="page-title firePageview text-2xl mb-6 font-bold se" data-page-nbr="7" data-logged="false" data-page-url="router7.htm"> <span class="flex cursor-pointer " @click="pageVisible = !pageVisible" aria-expanded="true" aria-controls="page7" role="button"> <svg class="mt-3 mr-3 print:hidden shrink-0 fill-current stroke-current transition ease-in-out duration-200 transform" :class="{ 'rotate-180' : !pageVisible, '' : pageVisible }" xmlns='http://www.w3.org/2000/svg' width='22' height='10' viewbox='0 0 28.396 13.211'><path d='M4398.8,5158.252l13.224,10.507,12.357-10.507' transform='translate(-4397.399 -5156.842)' fill='none' stroke-linecap='round' stroke-width='2'/></svg> <span>Knowing Where to Send Data</span> </span> </h2> <div class="page-body se" id="page7" data-slide="7" data-track-gtm="Content" x-show.transition="pageVisible === true"> <p>Routers are one of several types of devices that make up the &quot;plumbing&quot; of a computer network. Hubs, switches and routers all take signals from computers or networks and pass them along to other computers and networks, but a router is the only one of these devices that examines each bundle of data as it passes and makes a decision about exactly where it should go. To make these decisions, routers must first know about two kinds of information: addresses and network structure.</p> <p>When a friend mails a birthday card to be delivered to you at your house, he probably uses an address that looks something like this:</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-99"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline15" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline15" class="ad-tag h-max-250"></div></div> </div> </div> <div class="blockquote mb-6"> <div class="border-l-4 border-gray-dark py-2 text-xl text-gray-dark"> <div class="px-5">Joe Smith 123 Maple Street Smalltown, FL 45678</div> </div> </div> <p>The address has several pieces, each of which helps the people in the postal service move the letter along to your house. The ZIP code can speed the process up; but even without the ZIP code, the card will get to your house as long as your friend includes your state, city and street address. You can think of this address as a logical address because it describes a way someone can get a message to you.</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-14"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline16" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline16" class="ad-tag "></div></div> </div> </div> </div> </div> <div class="page-content relative clear-both" id="page-wrap8" x-data="{ pageVisible : true }"><a class="absolute left-0 top-n56" name="pt8"></a> <h2 class="page-title firePageview text-2xl mb-6 font-bold se" data-page-nbr="8" data-logged="false" data-page-url="router8.htm"> <span class="flex cursor-pointer " @click="pageVisible = !pageVisible" aria-expanded="true" aria-controls="page8" role="button"> <svg class="mt-3 mr-3 print:hidden shrink-0 fill-current stroke-current transition ease-in-out duration-200 transform" :class="{ 'rotate-180' : !pageVisible, '' : pageVisible }" xmlns='http://www.w3.org/2000/svg' width='22' height='10' viewbox='0 0 28.396 13.211'><path d='M4398.8,5158.252l13.224,10.507,12.357-10.507' transform='translate(-4397.399 -5156.842)' fill='none' stroke-linecap='round' stroke-width='2'/></svg> <span>Logical Addresses</span> </span> </h2> <div class="page-body se" id="page8" data-slide="8" data-track-gtm="Content" x-show.transition="pageVisible === true"> <p>Every piece of equipment that connects to a network, whether an office network or the Internet, has a physical address. This is an address that's unique to the piece of equipment that's actually attached to the network cable. For example, if your desktop computer has a network interface card (NIC) in it, the NIC has a physical address permanently stored in a special memory location.</p> <p>This physical address, which is also called the MAC address (for Media Access Control), has two parts, each 3 bytes long. The first 3 bytes identify the company that made the NIC. The second 3 bytes are the serial number of the NIC itself.</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-99"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline17" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline17" class="ad-tag h-max-250"></div></div> </div> </div> <p>The interesting thing is that your computer can have several logical addresses at the same time. Of course, you're used to having several &quot;logical addresses&quot; bring messages to one physical address. Your mailing address, <a href="https://electronics.howstuffworks.com/question659.htm">telephone number</a> (or numbers) and home e-mail address all work to bring messages to you when you're in your house. They are simply used for different types of messages — different networks, so to speak.</p> <p>Logical addresses for computer networks work in exactly the same way. You may be using the addressing schemes, or protocols, from several different types of networks simultaneously. If you're connected to the Internet (and if you're reading this, you probably are), then you have an address that's part of the <a href="http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci214173,00.html" class="ext-link">TCP/IP network protocol</a>. If you also have a <a href="https://computer.howstuffworks.com/home-network.htm">small network</a> set up to exchange files between several family computers, then you may also be using the Microsoft NetBEUI protocol.</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-14"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline18" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline18" class="ad-tag "></div></div> </div> </div> </div> </div> <div class="page-content relative clear-both" id="page-wrap9" x-data="{ pageVisible : true }"><a class="absolute left-0 top-n56" name="pt9"></a> <h2 class="page-title firePageview text-2xl mb-6 font-bold se" data-page-nbr="9" data-logged="false" data-page-url="router9.htm"> <span class="flex cursor-pointer " @click="pageVisible = !pageVisible" aria-expanded="true" aria-controls="page9" role="button"> <svg class="mt-3 mr-3 print:hidden shrink-0 fill-current stroke-current transition ease-in-out duration-200 transform" :class="{ 'rotate-180' : !pageVisible, '' : pageVisible }" xmlns='http://www.w3.org/2000/svg' width='22' height='10' viewbox='0 0 28.396 13.211'><path d='M4398.8,5158.252l13.224,10.507,12.357-10.507' transform='translate(-4397.399 -5156.842)' fill='none' stroke-linecap='round' stroke-width='2'/></svg> <span>MAC Addresses</span> </span> </h2> <div class="page-body se" id="page9" data-slide="9" data-track-gtm="Content" x-show.transition="pageVisible === true"> <p>The chances are very good that you'll never see the MAC address for any of your equipment because the software that helps your computer communicate with a network takes care of matching the MAC address to a logical address. The logical address is what the network uses to pass information along to your computer.</p> <p>If you'd like to see the MAC address and logical address used by the Internet Protocol (IP) for your Windows computer, you can run a small program that Microsoft provides. Go to the &quot;Start&quot; menu, click on &quot;Run,&quot; and in the window that appears, type WINIPCFG (IPCONFIG/ALL for Windows 2000/XP). When the gray window appears, click on &quot;More Info&quot;.</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-99"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline19" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline19" class="ad-tag h-max-250"></div></div> </div> </div> <p>There's a lot of information here that will vary depending on exactly how your connection to the Internet is established, but the physical address is the MAC address of the adapter queried by the program. The IP address is the logical address assigned to your connection by your ISP or network administrator. You'll see the addresses of other servers, including the <a href="https://computer.howstuffworks.com/dns.htm">DNS servers</a> that keep track of all the names of Internet sites.</p> <p>When you've finished looking at the information, click OK. You should be very careful about giving your computer's information to other people. With your address and the right tools, an unscrupulous person could, in some circumstances, gain access to your personal information and control your system through a <a href="https://computer.howstuffworks.com/question179.htm">&quot;Trojan Horse&quot; program</a>. And let's not even get started on the subject of malware and <a href="https://www.malwarebytes.com/ransomware" class="ext-link">ransomware</a>!</p> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-14"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline20" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline20" class="ad-tag "></div></div> </div> </div> </div> </div> <div class="page-content relative clear-both" id="page-wrap10" x-data="{ pageVisible : true }"><a class="absolute left-0 top-n56" name="pt10"></a> <h2 class="page-title firePageview text-2xl mb-6 font-bold se" data-page-nbr="10" data-logged="false" data-page-url="router10.htm"> <span class="flex cursor-pointer " @click="pageVisible = !pageVisible" aria-expanded="true" aria-controls="page10" role="button"> <svg class="mt-3 mr-3 print:hidden shrink-0 fill-current stroke-current transition ease-in-out duration-200 transform" :class="{ 'rotate-180' : !pageVisible, '' : pageVisible }" xmlns='http://www.w3.org/2000/svg' width='22' height='10' viewbox='0 0 28.396 13.211'><path d='M4398.8,5158.252l13.224,10.507,12.357-10.507' transform='translate(-4397.399 -5156.842)' fill='none' stroke-linecap='round' stroke-width='2'/></svg> <span>Understanding the Protocols</span> </span> </h2> <div class="page-body se" id="page10" data-slide="10" data-track-gtm="Content" x-show.transition="pageVisible === true"> <p>The first and most basic job of the router is to know where to send information addressed to your computer. Just as the mail handler on the other side of the country knows enough to keep a birthday card coming toward you without knowing where your house is, most of the routers that forward an e-mail message to you don't know your computer's MAC address, but they know enough to keep the message flowing.</p> <p>Routers are programmed to understand the most common network protocols. That means they know the format of the addresses, how many bytes are in the basic package of data sent out over the network, and how to make sure all the packages reach their destination and get reassembled. For the routers that are part of the Internet's main &quot;backbone,&quot; this means looking at, and moving on, millions of information packages every second.</p> <p>In a modern network, every e-mail message is broken up into small pieces. The pieces are sent individually and reassembled when they're received at their final destination. Because the individual pieces of information are called packets and each packet can be sent along a different path, like a train going through a set of switches, this kind of network is called a packet-switched network.</p> </div> </div> <div class="page-content relative clear-both" id="page-wrap11" x-data="{ pageVisible : true }"><a class="absolute left-0 top-n56" name="pt11"></a> <h2 class="page-title firePageview text-2xl mb-6 font-bold se" data-page-nbr="11" data-logged="false" data-page-url="router11.htm"> <span class="flex cursor-pointer " @click="pageVisible = !pageVisible" aria-expanded="true" aria-controls="page11" role="button"> <svg class="mt-3 mr-3 print:hidden shrink-0 fill-current stroke-current transition ease-in-out duration-200 transform" :class="{ 'rotate-180' : !pageVisible, '' : pageVisible }" xmlns='http://www.w3.org/2000/svg' width='22' height='10' viewbox='0 0 28.396 13.211'><path d='M4398.8,5158.252l13.224,10.507,12.357-10.507' transform='translate(-4397.399 -5156.842)' fill='none' stroke-linecap='round' stroke-width='2'/></svg> <span>Tracing a Message</span> </span> </h2> <div class="page-body se" id="page11" data-slide="11" data-track-gtm="Content" x-show.transition="pageVisible === true"> <div class="editorial-sidebar mx-auto mb-6 md:float-left md:ml-0 md:mr-6 md:mb-4" style="max-width:290px;" data-track-gtm="Editorial Sidebar"> <figure class="fragment-media lead-image media-vertical" style="max-width: 290px;" > <picture class="lazyload"> <source " data-srcset="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRlcjEuZ2lmIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyOTB9LCJ0b0Zvcm1hdCI6ImF2aWYifX0=" type="image/avif"> <source " data-srcset="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRlcjEuZ2lmIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyOTB9fX0="> <img class=" bg-gray-light bg-opacity-50" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg==" data-src="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRlcjEuZ2lmIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyOTB9fX0=" alt="Tracing&#x20;route&#x20;transcript." width="290" height="220" border="0"> </picture> <noscript> "<img src="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRlcjEuZ2lmIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyOTB9fX0=" width="290" alt="Tracing&#x20;route&#x20;transcript." border="0">" </noscript> <figcaption class="media-body-wrap bg-accent-3 p-4 w-max-full text-sm text-left"> A tracing route transcript. </figcaption> </figure> </div> <p>If you're using a Microsoft Windows-based system, you can see just how many routers are involved in your Internet traffic by using a program you have on your computer. The program is called <a href="https://www.fortinet.com/resources/cyberglossary/traceroutes" class="ext-link">Traceroute</a>, and that describes what it does — it traces the route that a packet of information takes to get from your computer to another computer connected via an Internet service provider.</p> <p>You can use Traceroute to see how many routers are between you and any other computer you can name or know the IP address for. It can be interesting to see how many steps are required to get to computers outside your nation. For example, I decided to see how many routers were between my computer and the Web server for the British Broadcasting Corporation. The result was this:</p> <figure class="fragment-media clear-both w-max-full mx-auto mb-6 md:float-left md:ml-0 md:mr-6 md:mb-4" style="max-width: 285px;" style="max-width: 285px;"> <picture class="lazyload"> <source " data-srcset="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRlcjIuZ2lmIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyODV9LCJ0b0Zvcm1hdCI6ImF2aWYifX0=" type="image/avif"> <source " data-srcset="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRlcjIuZ2lmIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyODV9fX0="> <img class=" bg-gray-light bg-opacity-50" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg==" data-src="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRlcjIuZ2lmIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyODV9fX0=" alt="Tracing&#x20;route&#x20;transcript&#x20;between&#x20;the&#x20;U.S.&#x20;and&#x20;BBC." width="285" height="195" border="0"> </picture> <noscript> "<img src="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRlcjIuZ2lmIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjoyODV9fX0=" width="285" alt="Tracing&#x20;route&#x20;transcript&#x20;between&#x20;the&#x20;U.S.&#x20;and&#x20;BBC." border="0">" </noscript> <figcaption class="media-body-wrap bg-accent-3 p-4 w-max-full text-sm text-left"> How many routers does it take to get from the U.S. to the BBC? </figcaption> </figure> <p>You can see that it took only one more step to reach a Web server on the other side of the Atlantic Ocean than it did to reach a server two states away!</p> </div> </div> <div class="page-content relative clear-both" id="page-wrap12" x-data="{ pageVisible : true }"><a class="absolute left-0 top-n56" name="pt12"></a> <h2 class="page-title firePageview text-2xl mb-6 font-bold se" data-page-nbr="12" data-logged="false" data-page-url="router12.htm"> <span class="flex cursor-pointer " @click="pageVisible = !pageVisible" aria-expanded="true" aria-controls="page12" role="button"> <svg class="mt-3 mr-3 print:hidden shrink-0 fill-current stroke-current transition ease-in-out duration-200 transform" :class="{ 'rotate-180' : !pageVisible, '' : pageVisible }" xmlns='http://www.w3.org/2000/svg' width='22' height='10' viewbox='0 0 28.396 13.211'><path d='M4398.8,5158.252l13.224,10.507,12.357-10.507' transform='translate(-4397.399 -5156.842)' fill='none' stroke-linecap='round' stroke-width='2'/></svg> <span>The Wireless Router and Beyond</span> </span> </h2> <div class="page-body se" id="page12" data-slide="12" data-track-gtm="Content" x-show.transition="pageVisible === true"> <p>The days of relying on an ethernet cable are over! Routers have undergone significant evolution over the past few years, driven by the relentless demand for faster internet speeds, greater range, and more reliable connections. Modern wireless routers have transcended the basic functionality of merely connecting devices to the internet.</p> <p>Today, they are equipped with advanced features such as dual-band or even tri-band capabilities, allowing them to broadcast on multiple frequencies simultaneously. This advancement reduces interference and increases the capacity to support more devices without compromising the quality of connection.</p> <h3 class="font-bold text-xl mb-2">Faster Internet Access</h3> <p>Packet switched networks for your multiple devices are more dynamic than ever. The adoption of the latest Wi-Fi standards, such as <a href="https://www.tp-link.com/ca/wifi6/" class="ext-link">Wi-Fi 6 (802.11ax)</a>, marks a pivotal shift in wireless network technology. Wi-Fi 6 routers offer faster data rates, increased capacity, and improved performance in environments with many connected devices, along with better power efficiency for devices.</p> <p>Additionally, the integration of Mesh network technology in wireless routers has revolutionized the home network. By seamlessly connecting multiple router nodes to blanket a home with Wi-Fi coverage, Mesh systems ensure there are no dead zones, providing a consistent and strong Wi-Fi signal throughout larger homes.</p> <h3 class="font-bold text-xl mb-2">Tougher Network Security</h3> <p>The evolution of wireless routers also reflects in their enhanced security features. With the rise in <a href="https://www.imperva.com/learn/application-security/cyber-security-threats/" class="ext-link">cybersecurity threats</a>, modern routers now come with robust security protocols such as WPA3, which provides cutting-edge encryption.</p> <p>Furthermore, many routers now include built-in VPN support, parental controls, and the ability to manage network access through mobile apps, making network management more accessible and comprehensive for the average user. This evolution not only reflects technological advancement but also a shift towards more user-centric designs, accommodating the increasing reliance on connected devices in daily life.</p> <p>For more information on routers and related topics, check out the links on the next page.</p> <p><i>This article was updated in conjunction with AI technology, then fact-checked and edited by a HowStuffWorks editor.</i></p> </div> </div> <style> .faq { color: #707070; font-size: 1.125rem; line-height: 1.75; border-color: #a2d4d3; } .faq h3 { display: flex; align-items: center; font-weight: bold; color: #2B2B5C; font-size: 1.25rem; margin-bottom: 1.25rem; } .faq h3::before { content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Cpath d='M27.7,8.2H25.1V19.9H8.2v2.6a1.3,1.3,0,0,0,1.3,1.3H23.8L29,29V9.5A1.3,1.3,0,0,0,27.7,8.2ZM22.5,16V4.3A1.3,1.3,0,0,0,21.2,3H4.3A1.3,1.3,0,0,0,3,4.3V22.5l5.2-5.2h13A1.3,1.3,0,0,0,22.5,16Z' transform='translate(-3 -3)' fill='%2336a2a0'/%3E%3C/svg%3E"); color: #36A2A0; width: 26px; height: 26px; margin-right: 12px; } .faq h3::after { content: ''; height: 1px; background-color: #36A2A0; flex: 1 1 0%; margin-left: 12px; } .faq h5 { font-weight: bold; margin-bottom: 0.75rem; } .faq p { margin-bottom: 0.75rem; font-size: 1rem; line-height: 1.25; } .faq .questionContainer { margin-bottom: 1.5rem; } .faq .questionContainer:last-child { margin-bottom: 0; } </style> <div class="faq p-6 mt-6 mb-6 clear-both border"> <h3>Frequently Answered Questions</h3> <div class="questionContainer" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"><h5 class="question" itemprop="name">What does a internet router do?</h5><div class="answerContainer" itemprop="acceptedAnswer" itemscope itemtype="https://schema.org/Answer"><div class="answer" itemprop="text">A router is a device that forwards data packets between computer networks. Routers perform the traffic-directing functions on the Internet. A data packet is typically forwarded from one router to another router through the networks that constitute the internetwork until it reaches its destination node.</div></div></div> </div> <div class="page-content relative clear-both" id="page-wrap13" x-data="{ pageVisible : true }"><a class="absolute left-0 top-n56" name="pt13"></a> <h2 class="page-title firePageview text-2xl mb-6 font-bold" data-page-nbr="13" data-logged="false" data-page-url="router13.htm"> <span class="flex cursor-pointer " @click="pageVisible = !pageVisible" aria-expanded="true" aria-controls="page13" role="button"> <svg class="mt-3 mr-3 print:hidden shrink-0 fill-current stroke-current transition ease-in-out duration-200 transform" :class="{ 'rotate-180' : !pageVisible, '' : pageVisible }" xmlns='http://www.w3.org/2000/svg' width='22' height='10' viewbox='0 0 28.396 13.211'><path d='M4398.8,5158.252l13.224,10.507,12.357-10.507' transform='translate(-4397.399 -5156.842)' fill='none' stroke-linecap='round' stroke-width='2'/></svg> <span>Lots More Information</span> </span> </h2> <div class="page-body" id="page13" data-slide="13" data-track-gtm="Content" x-show.transition="pageVisible === true"> <h3 class="font-bold text-xl mb-2">Related HowStuffWorks Articles</h3> <div class="list"> <ul><li><span>Router Quiz</span></li><li><span>Internet Quiz</span></li><li><span><a href="https://computer.howstuffworks.com/web-server.htm">Web Server Quiz</a></span></li><li><span><a href="https://computer.howstuffworks.com/routing-algorithm.htm">How Routing Algorithms Work</a></span></li><li><span><a href="https://computer.howstuffworks.com/firewall.htm">How Firewalls Work</a></span></li><li><span><a href="https://computer.howstuffworks.com/lan-switch.htm">How LAN Switches Work</a></span></li><li><span><a href="https://computer.howstuffworks.com/web-server.htm">How Web Servers Work</a></span></li><li><span><a href="https://computer.howstuffworks.com/ethernet.htm">How Ethernet Works</a></span></li><li><span><a href="https://computer.howstuffworks.com/nat.htm">How Network Address Translation Works</a></span></li><li><span><a href="https://computer.howstuffworks.com/internet/basics/internet-infrastructure.htm">How Internet Infrastructure Works</a></span></li><li><span><a href="https://computer.howstuffworks.com/home-network.htm">How Home Networking Works</a></span></li><li><span><a href="https://computer.howstuffworks.com/vpn.htm">How Virtual Private Networks Work</a></span></li><li><span><a href="https://computer.howstuffworks.com/osi.htm">How OSI Works</a></span></li><li><span><a href="https://computer.howstuffworks.com/scsi.htm">How SCSI Works</a></span></li><li><span><a href="https://computer.howstuffworks.com/question525.htm">What is a packet?</a></span></li><li><span>Quiz Corner: WiFi Quiz</span></li></ul> </div> <h3 class="font-bold text-xl mb-2">More Great Links</h3> <div class="list"> <ul><li><span><a href="http://www.practicallynetworked.com/pg/hw_router_bkgrounder.htm" class="ext-link">Hardware Router Backgrounder</a></span></li><li><span><a href="http://www.cisco.com/warp/public/cc/so/neso/olso/wartso/wrou_wp.htm" class="ext-link">Cisco White Paper: Wavelength Routing in Optical Networks</a></span></li><li><span><a href="http://www.practicallynetworked.com/networking/mmr_intro.htm" class="ext-link">Mixed Media Router</a></span></li><li><span><a href="http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/netsys/netsysug/routconf.htm" class="ext-link">Cisco: Router Configuration Tutorial</a></span></li><li><span><a href="http://www.practicallynetworked.com/pg/router_guide_index.asp" class="ext-link">Router Comparison Chart</a></span></li></ul> </div> </div> </div> </article> <div id="modal-citation-modal" x-cloak x-data="{ open: false }" x-show="open" @citation-modal.window="open = !open" class="fixed z-10 inset-0 overflow-y-auto" aria-modal="true"> <div class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0"><div x-show="open" x-description="Background overlay, show/hide based on modal state." x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" class="fixed inset-0 bg-black bg-opacity-75 transition-opacity" aria-hidden="true"> </div><span class="hidden sm:inline-block sm:align-middle sm:h-screen" aria-hidden="true">&#8203;</span><div x-show="open" x-description="Modal panel, show/hide based on modal state." x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" x-transition:enter-end="opacity-100 translate-y-0 sm:scale-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100" x-transition:leave-end="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" class="inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full" role="dialog" aria-modal="true" aria-labelledby="modal-headline" @click.away="open = false"> <div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4"> <div class="text-left"> <div class="text-xl font-bold" id="modal-headline"> Cite This! </div> <div class="mt-2"> <p class="font-bold">Please copy/paste the following text to properly cite this HowStuffWorks.com article:</p> <aside id="citationText" class="w-max-full mt-4 bg-accent-3 border border-accent-5"> <div class="relative p-7"> <div class="absolute top-0 right-0"> <button onclick="copyCitation()" class="inline-flex items-center self-center btn text-xs p-1"> <svg class="fill-current cursor-pointer" xmlns="http://www.w3.org/2000/svg" width="17" height="20" viewBox="0 0 23.625 29.25"> <path d="M20.813,3.375h-8.4A2.812,2.812,0,0,0,9.563,6.152v.6H9.035A2.812,2.812,0,0,0,6.188,9.527v20.25a2.872,2.872,0,0,0,2.848,2.848H23.66a2.812,2.812,0,0,0,2.777-2.848V29.25h.6A2.812,2.812,0,0,0,29.813,26.4V12.375Zm0,3.136,5.864,5.864H20.813Zm3.375,23.266a.568.568,0,0,1-.527.6H9.035a.626.626,0,0,1-.6-.6V9.527A.568.568,0,0,1,9.035,9h.527V26.965a2,2,0,0,0,2.285,2.285h12.34ZM27.563,26.4a.568.568,0,0,1-.527.6H12.41a.626.626,0,0,1-.6-.6V6.152a.568.568,0,0,1,.6-.527h6.152v9h9Z" transform="translate(-6.188 -3.375)"/> </svg> <span id="copyState" class="items-center self-center pl-2">Copy</span> </button> </div> <div> Curt Franklin "What Does a Router Do?" 31 July 2000.<br/>HowStuffWorks.com. &lt;https://computer.howstuffworks.com/router.htm&gt; 26 February 2025 </div> </div> </aside> <script> function copyCitation() { var copyText = document.getElementById('citationText').innerHTML;copyText = copyText.replace(/(<([^>]+)>)/ig, ' ').replace(/\s+/ig, ' ').replace(/^\s+/,'');var e = document.createElement('textarea'); e.innerHTML = copyText; copyText = e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue; var copyState = document.getElementById('copyState'); copyToClipboard(copyText); copyState.innerHTML = 'Copied'; setTimeout(() => { copyState.innerHTML = 'Copy'; }, 1000); } const copyToClipboard = str => { const el = document.createElement('textarea'); el.value = str; el.setAttribute('readonly', ''); el.style.position = 'absolute'; el.style.left = '-9999px'; document.body.appendChild(el); el.select(); document.execCommand('copy'); document.body.removeChild(el); }; </script> </div> </div> </div> <div class="bg-lighter-gray px-4 py-3 sm:px-6 flex flex-row-reverse"><span class="flexrounded-md shadow-sm"> <button @click="open = false" type="button" class="inline-flex justify-center btn py-2 px-7 xl:py-3 xl:px-10 text-sm xl:text-lg"> Close </button> </span> </div> </div> </div> </div> <div class="bg-accent-3 p-6 xl:p-8 mb-8 lg:mb-11 clear-both print:hidden"> <div class="flex flex-col md:flex-row"> <div class="shrink self-center" id="share-bar-bottom"></div> <div class="flex-grow text-center pt-6 md:text-right md:pt-0 self-center font-bold text-lg"> <a class="text-black underline" data-track-gtm="Citation" id="citation-link-1196" x-data @click.prevent="$dispatch('citation-modal')" href="#">Citation</a> </div> </div> </div><script id="share-html-bottom" type="text/template"> <ul class="flex flex-wrap justify-between md:flex-nowrap md:justify-start"> <li class="flex-none w-full mb-4 text-center md:shrink md:w-auto md:mr-6 md:mb-0 mb:text-left self-center"><span class="font-bold text-royal-blue">Share:</span></li> <li class="mr-6 self-center"> <a target="_blank" class="share-facebook text-accent-1" data-track-gtm="Facebook" href="<% facebookURL %>" title="Share Content on Facebook"> <svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 35.997 35.779" aria-labelledby="shareBarFacebookTitle" role="img"> <title id="shareBarFacebookTitle">Share Content on Facebook</title> <path d="M36,18a18,18,0,1,0-20.811,17.78V23.2h-4.57V18h4.57V14.033c0-4.511,2.687-7,6.8-7a27.68,27.68,0,0,1,4.029.352v4.429H23.744a2.6,2.6,0,0,0-2.933,2.811V18H25.8L25,23.2H20.811V35.779A18,18,0,0,0,36,18Z"/> </svg> </a> <li class="mr-6 self-center"> <a target="_blank" class="share-linkedin text-accent-1" data-track-gtm="LinkedIn" href="<% linkedInURL %>" title="Share Content on LinkedIn"> <svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="28.301" height="27.64" viewBox="0 0 28.301 27.64" aria-labelledby="shareBarLinkedInTitle" role="img"> <title id="shareBarLinkedInTitle">Share Content on LinkedIn</title> <path d="M24.111,23.554H19.92V17.14c0-1.529-.032-3.5-2.184-3.5-2.185,0-2.519,1.664-2.519,3.385v6.526H11.027V10.365h4.026v1.8h.054a4.437,4.437,0,0,1,3.974-2.131c4.246,0,5.032,2.729,5.032,6.282v7.239ZM6.293,8.56A2.378,2.378,0,1,1,8.727,6.182,2.4,2.4,0,0,1,6.293,8.56Zm2.1,14.993h-4.2V10.365h4.2ZM26.208,0H2.088A2.041,2.041,0,0,0,0,1.991V25.649A2.04,2.04,0,0,0,2.088,27.64H26.2a2.048,2.048,0,0,0,2.1-1.991V1.991A2.049,2.049,0,0,0,26.2,0Z"/> </svg> </a> </li> <li class="md:mr-6 self-center"> <a class="share-email text-accent-1" data-track-gtm="Email" href="<% emailURL %>" title="Share Content via Email"> <svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="28.1569" height="22" viewBox="0 0 23.584 18.427" aria-labelledby="shareBarEmailTitle" role="img"> <title id="shareBarEmailTitle">Share Content via Email</title> <path d="M24.226,6H5.358A2.328,2.328,0,0,0,3.012,8.3L3,22.123a2.338,2.338,0,0,0,2.358,2.3H24.226a2.338,2.338,0,0,0,2.358-2.3V8.3A2.338,2.338,0,0,0,24.226,6Zm0,4.607-9.434,5.758L5.358,10.607V8.3l9.434,5.758L24.226,8.3Z" transform="translate(-3 -6)"/> </svg> </a> </li> </ul> </script> <script id="share-email-bottom" type="text/template"> Hi, I thought you would like this: <% url %>?utm_source=email&utm_medium=share&utm_campaign=hsw_share <% title %> </script> <script> var loadShare = function () { var s = HSW.assetUrl + 'js/share.min.js'; function initShare () { HSW.share.init('bottom', 'https://computer.howstuffworks.com/router.htm', 'What\u0020Does\u0020a\u0020Router\u0020Do\u003F', '', { }); } if (typeof HSW.share !== 'undefined') { initShare(); } else { HSW.utilities.loadScript(HSW.assetUrl + 'js/share.min.js', true, initShare); } }; HSW.utilities.delayLoad(loadShare); </script> </div> <script>const relatedIds = [14058], contArticleIds = [14058]</script> <script>function setupRelated(e,t,n){return{content:[],promoted:!1,parentContentId:e,parentContentLocale:t,paginatedSetupFn:n,init(){if("undefined"!=typeof relatedContent)this.setupModule(relatedContent);else{let e=this,t=HSW.site.toLowerCase();HSW.utilities.loadJson(`${HSW.domainApi}/related/${t}/${this.parentContentId}?w=300&locale=${this.parentContentLocale}`,t=>{e.setupModule(t)})}},setupModule(e){this.content=e.filter(e=>!relatedIds.contains(e.id));let t=this.content.filter(e=>void 0!==e.category),n=t.filter(e=>["article","list","article-with-html-code","article-structured"].includes(e.type.toLowerCase())),i=contArticleIds.concat(n.map(e=>e.id));i.length>0?this.$dispatch("populate-pending",{items:i}):this.$dispatch("disable-continuous",{disabled:!0});let a={event:"raw-event",eventCategory:"page-interaction",eventAction:"loaded"};if(dataLayer.push({...a,...{eventLabel:"related-programmatic"}}),relatedIds.length){let e={eventLabel:"related-editorial"};dataLayer.push({...a,...e})}if("undefined"!=typeof promotedRecirc&&3==promotedRecirc.length&&0==HSW.utilities.isMobile()){this.promoted=!0,this.content.unshift(promotedRecirc[0],promotedRecirc[1],promotedRecirc[2]);let e={eventLabel:"related-promoted"};dataLayer.push({...a,...e}),this.$nextTick(()=>{let e=document.querySelectorAll(".promoted-recirc-item"),t=new IntersectionObserver((e,t)=>{e.forEach(e=>{if(e.isIntersecting){let n=e.target,i=n.getAttribute("href"),a=parseInt(n.dataset.block)+1;dataLayer.push({event:"raw-event",eventCategory:"page-interaction",eventAction:"viewed",eventLabel:i,eventValue:a}),t.unobserve(n)}})},{threshold:.75});e.forEach(e=>{t.observe(e)})})}try{"function"==typeof this.paginatedSetupFn&&this.paginatedSetupFn(t[0].href)}catch(e){console.warn(e)}this.$nextTick(()=>{let e=document.getElementById("related-hero").querySelectorAll(".lazyload");HSW.utilities.lazyLoadElements(e),dataLayer.push({event:"object-load",eventAction:"related-content"})})}}}</script> <div id="related-hero" class="mb-6 lg:mb-11 print:hidden" data-track-gtm="Related Content" x-cloak x-data="setupRelated(1196, 'en-us', null)" x-show="!HSW.utilities.isMobile() || !pageMetricsData.continuousUX" > <div class="flex items-center mb-4 after:bg-theme-gradient after:flex-1 after:content-[''] after:h-4px" :class="{ 'hidden' : !content.length }"> <div class="mr-3 mb-0 text-3xl font-bold font-headline text-royal-blue">More Awesome Stuff</div> </div> <div class="grid grid-cols-1 grid-rows-6 lg:grid-cols-3 lg:grid-rows-2 gap-8 mb-8"> <template x-for="(c, i) in content.slice(0, 6)" :key="i"> <a class="flex flex-col text-white group transition-none bg-gray" :data-track-gtm="(promoted && i < 3 ? 'Promoted' : '')" :class="(promoted && i < 3 ? 'promoted-recirc-item' : '')" :href="c.href + (c.query_string ? '?' + c.query_string : '')" :target="(c.href.indexOf(HSW.domain + '.com') === -1 ? '_blank' : '_self')" :data-block="i" > <picture class="lazyload"> <img decoding="async" src="" :data-src="c.hero_image" :alt="c.hero_image_specs.alt_tag ? c.hero_image_specs.alt_tag : c.title" :width="c.hero_image_specs.width" :height="c.hero_image_specs.height" class="block object-cover w-100 group-hover:opacity-75 mx-auto" style="min-height: 10.9375rem; height: 8.75rem; transition: opacity 0.25s ease-in-out;"> </picture> <div class="flex-1 overflow-hidden text-lg font-bold font-headline bg-accent-2 mb-0 py-2 px-3 pb-4 group-hover:text-white md:leading-tight"> <span class="inline-block text-sm mb-2" x-text="c.category ? c.category.title : (c.site ? c.site.title : (c.curation_category ? c.curation_category[1].title : ''))"></span> <div class="line-clamp-3" x-text="c.title"></div> </div> </a> </template> </div> <a class="print:hidden" href="https://computer.howstuffworks.com/routing-algorithm.htm" data-track-gtm="Feature 2"> <div class="flex up-next flex-col lg:flex-row lg:items-stretch mb-8"> <picture class="lazyload"> <source " data-srcset="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRpbmctYWxnb3JpdGhtNy5naWYiLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjI0MH0sInRvRm9ybWF0IjoiYXZpZiJ9fQ==" type="image/avif"> <source " data-srcset="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRpbmctYWxnb3JpdGhtNy5naWYiLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjI0MH19fQ=="> <img class="bg-tan bg-gray-light bg-opacity-50" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg==" data-src="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRpbmctYWxnb3JpdGhtNy5naWYiLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjI0MH19fQ==" alt="" width="240" height="149" border="0"> </picture> <noscript> "<img src="https://media.hswstatic.com/eyJidWNrZXQiOiJjb250ZW50Lmhzd3N0YXRpYy5jb20iLCJrZXkiOiJnaWZcL3JvdXRpbmctYWxnb3JpdGhtNy5naWYiLCJlZGl0cyI6eyJyZXNpemUiOnsid2lkdGgiOjI0MH19fQ==" width="240" alt="" border="0">" </noscript> <div class="bg-tan p-4 lg:min-w-300 flex-grow"> <div class="hidden md:block font-bold text-black">You May Like</div> <div class="text-xl font-bold mb-2">Routing Algorithms</div> <span class="btn inline-block lg:hidden xl:inline-block py-2 px-7 xl:text-base">Explore More</span> </div> </div> </a> <div class="grid grid-cols-1 grid-rows-6 lg:grid-cols-3 lg:grid-rows-2 gap-8 mb-8"> <template x-for="(c, i) in content.slice(6, 12)" :key="i"> <a class="flex flex-col text-white group transition-none bg-gray" :href="c.href + (c.query_string ? '?' + c.query_string : '')" :target="(c.href.indexOf(HSW.domain + '.com') === -1 ? '_blank' : '_self')" :data-block="i" > <picture class="lazyload"> <img decoding="async" src="" :data-src="c.hero_image" :alt="c.hero_image_specs.alt_tag ? c.hero_image_specs.alt_tag : c.title" :width="c.hero_image_specs.width" :height="c.hero_image_specs.height" class="block object-cover w-100 group-hover:opacity-75 mx-auto" style="min-height: 10.9375rem; height: 8.75rem; transition: opacity 0.25s ease-in-out;"> </picture> <div class="flex-1 overflow-hidden text-lg font-bold font-headline bg-accent-2 mb-0 py-2 px-3 pb-4 group-hover:text-white md:leading-tight"> <span class="inline-block text-sm mb-2" x-text="c.category ? c.category.title : (c.site ? c.site.title : (c.curation_category ? c.curation_category[1].title : ''))"></span> <div class="line-clamp-3" x-text="c.title"></div> </div> </a> </template> </div> </div> <p class="ad-disclaimer clear-both text-xs text-center mb-1 hidden md:block">Advertisement</p> <div id="ad-wrap-inline1" class="print:hidden hidden md:block ad-inline mb-8 bg-gray w-max-full h-min-90 text-center"><div id="ad-div-inline1" class="ad-tag "></div></div> <script> (function () { var mw = 1200; if (!dfpSettings.isMobile && HSW.utilities.getViewportWidth() < mw) { var el = document.getElementById('ad-wrap-inline1'); var d = el.previousElementSibling; el.parentNode.removeChild(el); if (d.classList.contains('ad-disclaimer')) { d.parentNode.removeChild(d); } } })(); </script> <div class="sticky-container ad-container print:hidden md:hidden h-min-400 mb-6"> <div class="sticky top-99"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 md:hidden">Advertisement</p> <div id="ad-wrap-mobinline0" class="print:hidden md:hidden ad-inline ad-mobinline bg-gray w-max-full h-min-250"><div id="ad-div-mobinline0" class="ad-tag h-max-250"></div></div> </div> </div> <script> (function () { if (HSW.utilities.isMobile() && pageMetricsData.continuousUX) { const nodes = document.querySelectorAll('.ad-mobinline'); var maxId = 0; nodes.forEach((n) => { let idStr = n.getAttribute('id'); let id = parseInt(idStr.replace('ad-wrap-mobinline', '')); maxId = Math.max(maxId, id); }); const newId = maxId + 1; document.getElementById('ad-wrap-mobinline0').setAttribute('id', 'ad-wrap-mobinline' + newId); document.getElementById('ad-div-mobinline0').setAttribute('id', 'ad-div-mobinline' + newId); } })(); </script><div class="mb-8" id="continuous-load" x-data="continuousLoad()" x-init="init()" x-show="pendingItems" @populate-pending.window="pendingItems = $event.detail.items" @disable-continuous.window="if ($event.detail.disabled) { shutdown() }"> <div id="continuously-loaded"></div> <div class="h-64 w-full flex text-royal-blue items-center justify-center" id="continuous-load-trigger"> <svg class="animate-spin -ml-1 mr-3 h-5 w-5 " xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24"> <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path> </svg> <span>Loading...</span> </div> </div> <script> function continuousLoad(){return{originalUrl:null,originalPageMetricsData:null,triggerElement:null,observer:null,orgObserver:null,pendingItems:[],items:[],newContentObserver:null,fetching:!1,disabled:!1,init(){const t=this;this.originalUrl=location.href,this.originalPageMetricsData={...pageMetricsData},this.triggerElement=document.querySelector("#continuous-load-trigger"),this.loadedDiv=document.querySelector("#continuously-loaded"),"off"!==HSW.utilities.hashArgs.continuous?this.disabled?this.triggerElement.parentNode.removeChild(this.triggerElement):(this.observer=new IntersectionObserver(function(e){!0===e[0].isIntersecting&&t.getNextContent()},{rootMargin:"1000px 0px",threshold:0}),this.observer.observe(this.triggerElement),this.newContentObserver=new IntersectionObserver(function(e){var i=null;if(e.forEach(t=>{t.isIntersecting&&t.intersectionRatio>0&&(i=t.target)}),i){let e=i.dataset.contentId;if(pageMetricsData.contentid==e)return;let a=t.itemByContentId(e);if(!1===a)return;if(pageMetricsData={...a},history.pushState&&location.href!=pageMetricsData.href)try{history.pushState(null,pageMetricsData.title+" | HowStuffWorks",pageMetricsData.href)}catch(t){console.warn(t)}document.title=pageMetricsData.title+" | HowStuffWorks",Alpine.store("share",{title:pageMetricsData.title,url:pageMetricsData.href,image:pageMetricsData.image})}},{threshold:[0]})):this.triggerElement.parentNode.removeChild(this.triggerElement)},itemByContentId(t){var e=!1;return this.items.forEach(i=>{i.contentid==t&&(e=i)}),e},getNextContent(){if(!this.pendingItems||!this.pendingItems.length||this.disabled)return;if(this.fetching)return;this.fetching=!0;const t=this;0===this.items.length&&history.pushState&&null===this.orgObserver&&(this.orgObserver=new IntersectionObserver(function(e){if(!1===e[0].isIntersecting&&history.pushState&&location.href!=t.originalUrl){let e={...t.originalPageMetricsData};pageMetricsData=e,document.title=pageMetricsData.title+" | HowStuffWorks",history.pushState(null,document.title,t.originalUrl),Alpine.store("share",{title:pageMetricsData.title,url:location.href,image:pageMetricsData.image})}},{threshold:[0]}),this.orgObserver.observe(document.getElementById("continuously-loaded")));const e=this.pendingItems.shift(),i=this.items.length+2;if(HSW.utilities.isMobile()){var a=0;document.querySelectorAll(".ad-mobinline").forEach(t=>{let e=t.getAttribute("id"),i=parseInt(e.replace("ad-wrap-mobinline",""));a=Math.max(a,i)});var r=a+1}try{fetch(`${HSW.domainApi}/continuous/${e}`).then(t=>t.json()).then(a=>{let n=function(t){var e=`<div id="content-loaded-${t.id}" class="new-content-loaded" style="contain: layout;">\n\t\t\t\t<div class="page-title flex flex-rows items-center mb-4">\n\t\t\t\t\t<h1 class="flex-grow font-headline text-3xl md:text-5xl text-royal-blue leading-tighter">${t.title}</h1>\n\t\t\t\t</div>\n\n\t\t\t\t<p class="mb-4">`;t.byline_authors_html&&(e+=`By: ${t.byline_authors_html}`),t.byline_authors_html&&t.byline_date_html&&(e+="&nbsp;|&nbsp;"),t.byline_date_html&&(e+=t.byline_date_html);var i=t.body_html.replaceAll('"pt','"pt'+t.id+"_");return e+=`\n\t\t\t\t</p>\n\t\t\t\t<div class="bg-hsw-gradient w-100 mb-4"></div>\n\n\t\t\t\t<div class="editorial-body mb-8">${i=i.replaceAll("#pt","#pt"+t.id+"_")}</div>\n\n\t\t\t</div>`}(a);this.loadedDiv.innerHTML+=n,document.title=a.title+" | HowStuffWorks";let s="content-loaded-"+a.id,l=document.getElementById(s);l.dataset.contentId=a.id;let o=l.querySelectorAll(".lazyload");HSW.utilities.lazyLoadElements(o),HSW.ux.editorial.init({twitter:!0,facebook:!0,instagram:!0}),l.querySelectorAll(".toc a").forEach(t=>{t.addEventListener("click",t=>{t.preventDefault();let e=t.target.dataset.target,i=document.querySelector("a[name='"+e+"']");i?i.scrollIntoView({behavior:"auto"}):console.error("Unable to locate target with name "+e)})});try{if(userData.adsActive)if(HSW.utilities.isMobile()){l.querySelectorAll(".ad-mobinline").forEach(t=>{t.setAttribute("id","ad-wrap-mobinline"+r),t.childNodes[0].setAttribute("id","ad-div-mobinline"+r),void 0!==HSW.ads&&HSW.pq.add(()=>{HSW.ads.addNewUnits(["ad-div-mobinline"+r])},"ads"),r++})}else{let t=document.createElement("div");t.setAttribute("id","ad-after-"+e),t.classList.add("ad-inline","mb-8","bg-gray","w-max-full","h-min-90","text-center");let a=document.createElement("div");a.setAttribute("id","ad-div-inline"+i),t.appendChild(a),l.after(t),void 0!==HSW.ads&&HSW.pq.add(()=>{HSW.ads.addNewUnits(["ad-div-inline"+i])},"ads")}}catch(t){console.error(t)}if(window.setupSinglePageUX(l),history.pushState)try{history.pushState(null,a.title+" | HowStuffWorks",a.href)}catch(t){console.warn(t)}var c=[];a.taxonomy.forEach((t,e)=>{c[e]=t.title.toLowerCase()});var d=c.join("/"),h=[];a.authors.forEach((t,e)=>{h[e]=t.first_name.toLowerCase()+" "+t.last_name.toLowerCase()});var g=h.join(",");pageMetricsData.href=a.href,pageMetricsData.title=a.title,pageMetricsData.tax=d,pageMetricsData.aType=a.asset_type,pageMetricsData.cType=a.type+"-continuous",pageMetricsData.template=a.template,pageMetricsData.source=a.source,pageMetricsData.sponsor=a.sponsor,pageMetricsData.author=g,pageMetricsData.contentid=a.id,pageMetricsData.image=a.hero_image,pageMetricsData.page=0,pageMetricsData.pubDate=a.publish_date.slice(0,10),pageMetricsData.editDate=a.last_editorial_date.slice(0,10);const u=/[^\da-z_]/i;let p=HSW.utilities.isMobile()?"hsw_lite":"hsw";a.taxonomy.slice(1,3).forEach((t,e)=>{p+="|"+t.title.replace(u,"").toLowerCase()}),pageMetricsData.adUnit=p,Alpine.store("share",{title:pageMetricsData.title,url:pageMetricsData.href,image:pageMetricsData.image}),function(t,e){let i=t.href.split(".com/").pop();dataLayer.push({event:"virtual-page-view",virtualPageUrl:i,virtualPageTitle:document.title,pageNbr:0}),dataLayer.push({event:"raw-event-interactive",eventCategory:"page-interaction",eventAction:"continuous-load",eventLabel:"new-content",eventValue:e+1,virtualPageUrl:t.href})}(a,this.items.length);const m={...pageMetricsData};t.items.push(m);for(var f=document.getElementsByClassName("new-content-loaded"),v=0;v<f.length;v++)t.newContentObserver.observe(f[v]);t.fetching=!1})}catch(e){console.error(e),t.fetching=!1}var n;0===this.pendingItems.length&&((n=this).observer.unobserve(n.triggerElement),n.triggerElement.parentNode.removeChild(n.triggerElement),n.$dispatch("disable-ad-fill",{disabled:!0}))},shutdown(){this.triggerElement.parentNode.removeChild(this.triggerElement)}}} </script> </div> </div><div class="hidden print:hidden md:shrink-0 md:block relative flex-none col-rail" style="width: 300px; max-width: 300px;" data-track-gtm="Rail"> <div class="sticky-container ad-container print:hidden hidden md:block h-min-1000 mb-8"> <div class="sticky top-0"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 hidden md:block">Advertisement</p> <div id="ad-wrap-rail1" class="print:hidden hidden md:block bg-gray w-max-full h-min-250"><div id="ad-div-rail1" class="ad-tag h-max-600"></div></div> </div> </div> <div class="sticky-container ad-container print:hidden hidden md:block h-min-1000 mb-8"> <div class="sticky top-0"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 hidden md:block">Advertisement</p> <div id="ad-wrap-rail2" class="print:hidden hidden md:block bg-gray w-max-full h-min-250"><div id="ad-div-rail2" class="ad-tag h-max-600"></div></div> </div> </div> <div class="sticky-container ad-container print:hidden hidden md:block h-min-1000 mb-8"> <div class="sticky top-0"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 hidden md:block">Advertisement</p> <div id="ad-wrap-rail3" class="print:hidden hidden md:block bg-gray w-max-full h-min-250"><div id="ad-div-rail3" class="ad-tag h-max-600"></div></div> </div> </div> <div class="mb-8" id="ad-fill" x-data="adFill()" x-init="init(4)" @disable-ad-fill.window="disabled = $event.detail.disabled"> <div id="rr-ad-fill"></div> <div class="h-64 w-full" id="continuous-ad-load-trigger"></div> </div> <script> var railAdTemplate = ` <div class="sticky-container ad-container print:hidden hidden md:block h-min-1000 mb-8"> <div class="sticky top-0"> <p class="ad-disclaimer clear-both text-xs text-center mb-1 hidden md:block">Advertisement</p> <div id="ad-wrap-rail9999" class="print:hidden hidden md:block bg-gray w-max-full h-min-250"><div id="ad-div-rail9999" class="ad-tag h-max-600"></div></div> </div> </div> `; var railAdLastTemplate = ` <p class="ad-disclaimer clear-both text-xs text-center mb-1 hidden md:block">Advertisement</p> <div id="ad-wrap-rail9999" class="print:hidden hidden md:block sticky top-0 mb-8 bg-gray w-max-full h-min-250"><div id="ad-div-rail9999" class="ad-tag h-max-600"></div></div> `; function adFill(){return{triggerElement:null,observer:null,isObserverPolyfilled:!1,nextIndex:0,maxIndex:30,disabled:!1,init(e){if("off"===HSW.utilities.hashArgs.ads)return;if("article-structured"==pageMetricsData.cType||HSW.utilities.isMobile()||!1===userData.adsActive)return;const t=this;this.triggerElement=document.querySelector("#continuous-ad-load-trigger"),this.nextIndex=e||this.nextIndex,"IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"isIntersecting"in window.IntersectionObserverEntry.prototype&&"intersectionRatio"in window.IntersectionObserverEntry.prototype?(this.observer=new IntersectionObserver(function(e){!0===e[0].isIntersecting&&t.getNextAd()},{rootMargin:"1000px 0px",threshold:.01}),this.observer.observe(this.triggerElement)):(this.isObserverPolyfilled=!0,window.alpineInfiniteRRScroll={scrollFunc(){var e=t.triggerElement.getBoundingClientRect();e.top<window.innerHeight&&e.bottom>=0&&t.getNextAd()}},window.addEventListener("scroll",window.alpineInfiniteRRScroll.scrollFunc))},getNextAd(){if(this.disabled)return;var e=document.createElement("template");let t=document.querySelectorAll(".col-rail .sticky-container")[this.nextIndex-2];if(this.nextIndex<this.maxIndex){var i=railAdTemplate.replaceAll("rail9999","rail"+this.nextIndex).trim();e.innerHTML=i;var n=e.content.firstChild;t.after(n)}else{i=railAdLastTemplate.replaceAll("rail9999","rail"+this.nextIndex).trim();e.innerHTML=i;var r=e.content.firstChild;n=e.content.lastChild;t.after(n),t.after(r)}if(HSW.pq.add(()=>{try{HSW.ads.addNewUnits(["ad-div-rail"+this.nextIndex])}catch(e){}},"ads"),this.nextIndex==this.maxIndex)return this.isObserverPolyfilled?window.removeEventListener("scroll",window.alpineInfiniteRRScroll.scrollFunc):this.observer.unobserve(this.triggerElement),void this.triggerElement.parentNode.removeChild(this.triggerElement);this.nextIndex++}}} </script> </div> </div> </div> </main> <script>var nlValidLocs=["Newsletter","Popup","Footer","Chatbox"],nlIsLanding=["home page","landing page"].contains(pageMetricsData.aType),nlShown=!1,nlModalTimer=!1,nlIconTimer=!1,nlBannerTimer=!1,nlDialogueDone=!1;function ajaxNewsletterForm(e,t,n,i){var s=document.getElementById(e);document.getElementById(t).addEventListener("click",function(a){a.preventDefault();var l=document.getElementById(t);l.disabled=!0;var o=document.getElementById(i),r=document.getElementById(n);if(o.classList.add("hidden"),r.classList.add("hidden"),"chatbox-form"==e){var c=document.getElementById("cbc-3");document.getElementById("cbt-3").innerHTML=s.querySelector("input[type='email']").value,c.classList.remove("hidden");var d=document.getElementById("cbc-4")}if(isValidEmail(s)){var u=s.querySelector("input[name='website']");if(u.value&&u.value.length)return!1;"chatbox-success"==n?(r.innerHTML="Subscribing...",d.classList.remove("hidden")):(r.innerHTML="Subscribing...",r.classList.remove("hidden")),submitSubscribeForm(s,r,o)}else o.innerHTML="Please provide a valid email address.","chatbox-form"==e&&d.classList.remove("hidden"),o.classList.remove("hidden"),l.disabled=!1})}function submitSubscribeForm(e,t,n){var i=new XMLHttpRequest;i.open("POST","/newsletter/signup",!0),i.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");var s=new FormData(e),a=new URLSearchParams(s).toString();n.classList.add("hidden"),t.classList.add("hidden"),i.onload=function(){if(this.status>=200&&this.status<400){var i=JSON.parse(this.response);if(0==i.error){if("chatbox-success"==t.id){t.innerHTML='<div>You\'re subscribed!</div><div class="ml-1"><img src="https://cdn.hswstatic.com/en-us/hsw/img/raising-hands.png"/></div>';var s=e.querySelector("input[name='email']");s.classList.remove("text-gray-darkest"),s.classList.add("text-gray-dark"),s.value="You're subscribed!",document.getElementById("nlcb-dot").classList.add("invisible"),document.getElementById("nlcb-icon").classList.remove("animate-wiggle")}else t.innerHTML=i.message;t.classList.remove("hidden");var a=document.getElementById("signup-form");void 0!==a&&null!=a&&a.classList.add("hidden");var l=document.getElementById("signup-success");void 0!==l&&null!=l&&l.classList.remove("hidden");var o=e.querySelector("input[name='formloc']");dataLayer&&"object"==typeof o&&o.value&&o.value.length&&nlValidLocs.includes(o.value)&&dataLayer.push({url:location.pathname+location.hash,eventCategory:"page-interaction",eventAction:"subscribe",event:"raw-event-interactive",eventLabel:"MailChimp : "+o.value+" : Subscribe"}),setCookie("hsw_nlsub","Y",3154e7)}else{if(n.innerHTML=i.message,n.classList.remove("hidden"),"chatbox-success"==t.id)var r=e.querySelector("button");else r=e.querySelector("input[type='submit']");r.disabled=!1}}else n.innerHTML=i.message,n.classList.remove("hidden")},i.onerror=function(){n.innerHTML=data.message,n.classList.remove("hidden")},i.send(a)}function isValidEmail(e){var t=e.querySelector("input[type='email']");return!(""==t.value||!/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/gim.test(t.value))}function initNewsletterModal(e){!0!==HSW.utilities.isMobile()&&!0!==HSW.utilities.hasNewsletterCookie()&&!0!==fromNl&&!0!==nlIsLanding&&HSW.pq.add(()=>{nlModalTimer=setTimeout(function(){ajaxNewsletterForm("popup-form","popup-subscribe","popup-success","popup-failure"),e("newsletter-modal"),newsletterShown("Popup")},2e4)})}function initNewsletterChatbox(e){!1===HSW.utilities.isMobile()||!0===HSW.utilities.hasNewsletterCookie()||!0===fromNl||nlIsLanding||HSW.pq.add(()=>{document.getElementById("nlcb").classList.replace("hidden","flex");var t=document.referrer;t.includes("howstuffworks.com")||t.includes("hswinternal.com")?document.getElementById("nlcb-dot").classList.remove("invisible"):(nlIconTimer=setTimeout(function(){document.getElementById("nlcb-dot").classList.remove("invisible"),document.getElementById("nlcb-icon").classList.add("animate-wiggle")},5e3),nlBannerTimer=setTimeout(function(){var e=document.getElementById("nlcb-banner");e.classList.add("animate-fadein"),e.classList.replace("hidden","flex")},5200)),document.getElementById("nlcb-banner-close").addEventListener("click",function(e){e.preventDefault(),document.getElementById("nlcb-banner").classList.replace("flex","hidden")}),ajaxNewsletterForm("chatbox-form","chatbox-subscribe","chatbox-success","chatbox-success"),e("newsletter-chatbox")})}function newsletterShown(e){!1===window.nlShown&&(setCookie("hsw_nl","Y",2592e6),dataLayer&&nlValidLocs.includes(e)&&dataLayer.push({url:location.pathname+location.hash,eventCategory:"page-interaction",eventAction:"shown",event:"raw-event",eventLabel:"MailChimp : "+e+" : Shown"})),window.nlShown=!0}function cancelTimers(){clearTimeout(nlIconTimer),clearTimeout(nlBannerTimer)}function startDialogue(){newsletterShown("Chatbox"),document.getElementById("nlcb-banner").classList.replace("flex","hidden");document.getElementById("chatbox-success");if(0==nlDialogueDone){var e=1;['<div>Hey there!</div><div class="mt-1 ml-1"><img src="https://cdn.hswstatic.com/en-us/hsw/img/waving-hand-sign.png"/></div>',"<div>It's a crazy world out there. If you'd like to stay up to date (or go down really fun rabbit holes), we think you'd really like our newsletter. Unsubscribe anytime.</div>","<div>Enter your email to get our newsletter.</div>"].forEach(function(t,n){var i=document.getElementById("cbc-"+n);setTimeout(function(){i.classList.replace("hidden","flex")},e),e+=900;var s=document.getElementById("cbt-"+n);setTimeout(function(){s.innerHTML=t},e),e+=1100}),nlDialogueDone=!0}}</script> <div id="async-footer"></div> <script> HSW.utilities.docReady(function() { var request = new XMLHttpRequest(); var elm = document.getElementById('async-footer'); request.open('GET', 'https://www.howstuffworks.com/export/async-footer?nlPopup=1&nlFooter=1&locale=en-us', true); request.onload = function() { if (this.status >= 200 && this.status < 400) { elm.innerHTML = this.response; if (document.getElementById('subscribe-form') != null) { ajaxNewsletterForm('subscribe-form','subscribe-submit','subscribe-success','subscribe-failure'); } } else { elm.innerHTML = "an error occurred. status=" + this.status; } }; request.onerror = function() { elm.innerHTML = "an error occurred." + this.status; }; request.send(); }); </script> <script>HSW.utilities.loadScript(HSW.assetUrl + 'js/ux.editorial.min.js', true, function () { HSW.ux.editorial.init({ 'twitter' : false, 'facebook' : false, 'instagram' : false, }); });</script> <script>window.setupSinglePageUX=function(e){e=e||document;var t=new IntersectionObserver(function(e,t){Array.prototype.forEach.call(e,function(e){var a=e.target.dataset.logged,r=e.target.dataset.pageUrl,g=e.target.dataset.pageTitle||e.target.textContent.trim(),n=parseInt(e.target.dataset.pageNbr);e.isIntersecting&&"false"===a&&(dataLayer.push({event:"virtual-page-view",virtualPageUrl:r,virtualPageTitle:g,pageNbr:n}),e.target.dataset.logged="true",t.unobserve(e.target))})},{rootMargin:"0px",threshold:.5}),a=e.querySelectorAll(".firePageview");Array.prototype.forEach.call(a,function(e){t.observe(e)})},window.setupSinglePageUX();</script> <script> dfpSettings.ads = new Array; dfpSettings.ads.push('ad-div-bannerTop'); dfpSettings.ads.push('ad-div-mobadhesion'); dfpSettings.ads.push('ad-div-inline1'); dfpSettings.ads.push('ad-div-inline2'); dfpSettings.ads.push('ad-div-inline3'); dfpSettings.ads.push('ad-div-inline4'); dfpSettings.ads.push('ad-div-inline5'); dfpSettings.ads.push('ad-div-inline6'); dfpSettings.ads.push('ad-div-inline7'); dfpSettings.ads.push('ad-div-inline8'); dfpSettings.ads.push('ad-div-inline9'); dfpSettings.ads.push('ad-div-inline10'); dfpSettings.ads.push('ad-div-inline11'); dfpSettings.ads.push('ad-div-inline12'); dfpSettings.ads.push('ad-div-inline13'); dfpSettings.ads.push('ad-div-inline14'); dfpSettings.ads.push('ad-div-inline15'); dfpSettings.ads.push('ad-div-inline16'); dfpSettings.ads.push('ad-div-inline17'); dfpSettings.ads.push('ad-div-inline18'); dfpSettings.ads.push('ad-div-inline19'); dfpSettings.ads.push('ad-div-inline20'); dfpSettings.ads.push('ad-div-inline1sponsor'); dfpSettings.ads.push('ad-div-inline2sponsor'); dfpSettings.ads.push('ad-div-mobinline1'); dfpSettings.ads.push('ad-div-mobinline2'); dfpSettings.ads.push('ad-div-mobinline3'); dfpSettings.ads.push('ad-div-mobinline4'); dfpSettings.ads.push('ad-div-mobinline5'); dfpSettings.ads.push('ad-div-mobinline6'); dfpSettings.ads.push('ad-div-mobinline7'); dfpSettings.ads.push('ad-div-mobinline8'); dfpSettings.ads.push('ad-div-mobinline9'); dfpSettings.ads.push('ad-div-mobinline10'); dfpSettings.ads.push('ad-div-mobinline11'); dfpSettings.ads.push('ad-div-mobinline12'); dfpSettings.ads.push('ad-div-mobinline13'); dfpSettings.ads.push('ad-div-mobinline14'); dfpSettings.ads.push('ad-div-mobinline15'); dfpSettings.ads.push('ad-div-mobinline16'); dfpSettings.ads.push('ad-div-mobinline17'); dfpSettings.ads.push('ad-div-mobinline18'); dfpSettings.ads.push('ad-div-mobinline19'); dfpSettings.ads.push('ad-div-mobinline20'); dfpSettings.ads.push('ad-div-mobinline21'); dfpSettings.ads.push('ad-div-mobinline22'); dfpSettings.ads.push('ad-div-mobinline23'); dfpSettings.ads.push('ad-div-mobinline24'); dfpSettings.ads.push('ad-div-mobinline25'); dfpSettings.ads.push('ad-div-mobinline26'); dfpSettings.ads.push('ad-div-mobinline27'); dfpSettings.ads.push('ad-div-mobinline28'); dfpSettings.ads.push('ad-div-mobinline29'); dfpSettings.ads.push('ad-div-mobinline30'); dfpSettings.ads.push('ad-div-mobinline1sponsor'); dfpSettings.ads.push('ad-div-mobinline2sponsor'); dfpSettings.ads.push('ad-div-rail1'); dfpSettings.ads.push('ad-div-rail2'); dfpSettings.ads.push('ad-div-rail3'); dfpSettings.ads.push('ad-div-rail4'); dfpSettings.ads.push('ad-div-rail5'); dfpSettings.ads.push('ad-div-rail6'); dfpSettings.ads.push('ad-div-rail7'); dfpSettings.ads.push('ad-div-rail8'); dfpSettings.ads.push('ad-div-rail9'); dfpSettings.ads.push('ad-div-rail10'); dfpSettings.ads.push('ad-div-rail11'); dfpSettings.ads.push('ad-div-rail12'); dfpSettings.ads.push('ad-div-rail13'); dfpSettings.ads.push('ad-div-rail14'); dfpSettings.ads.push('ad-div-rail15'); dfpSettings.ads.push('ad-div-rail16'); dfpSettings.ads.push('ad-div-rail17'); dfpSettings.ads.push('ad-div-rail18'); dfpSettings.ads.push('ad-div-rail19'); dfpSettings.ads.push('ad-div-rail20'); dfpSettings.ads.push('ad-div-rail21'); dfpSettings.ads.push('ad-div-rail22'); dfpSettings.ads.push('ad-div-rail23'); dfpSettings.ads.push('ad-div-rail24'); dfpSettings.ads.push('ad-div-rail25'); dfpSettings.ads.push('ad-div-rail26'); dfpSettings.ads.push('ad-div-rail27'); dfpSettings.ads.push('ad-div-rail28'); dfpSettings.ads.push('ad-div-rail29'); dfpSettings.ads.push('ad-div-rail30'); </script> <script> HSW.pq.add(() => { if (GACtest !== 'test55') { if (userData.adsActive) { HSW.utilities.loadScript(HSW.assetUrl + 'js/ads.min.js'); } else { HSW.utilities.loadScript(HSW.assetUrl + 'js/fallback.min.js'); } } }, 'ads'); </script> <script defer src="https://rampjs-cdn.system1.com/ramp.js"></script> <script> HSW.utilities.docReady(() => { HSW.pq.add(() => { const rsocSegments = {"default":"c2showstuffworks0004","EXPO1922_ABOVE_TITLE":"c2showstuffworks0014","EXPO1922_BELOW_IMAGE":"c2showstuffworks0024","test55":"c2showstuffworks0034"}; let testId = GACtest || 'default'; if (!rsocSegments) { return; } // Fallback on 'default' if no other segment is found try { if (typeof rsocSegments[testId] === 'undefined' && typeof rsocSegments['default'] !== 'undefined') { testId = 'default'; } if (typeof rsocSegments[testId] === 'undefined') { return; } } catch (e) { console.error('Error initializing RSoC: ', e) return; } (function(w,r){w[r]=w[r]||function(){(w[r]['q']=w[r]['q']||[]).push(arguments)},w[r]['t']=1*new Date()})(window,'_rampJs'); let rampSetup = { init: { segment: rsocSegments[testId] }, terms: rampKeywords }; if (testId !== 'default') { rampSetup.content_experiment_id = testId; } if (HSW.env != 'prod') { rampSetup.referrer = "https://howstuffworks.com/"; rampSetup.testMode = true; } _rampJs(rampSetup); }, 'ads'); }); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10