Switch

En switch, även nätverksväxel, är en nätverkskomponent som styr datatrafik mellan olika noder i ett nätverk. Ordet switch är engelska och betyder omkopplare. Switchen arbetar på lager 2 i OSI-modellen, det vill säga att den hanterar och använder MAC-adresser (Media Access Control) för att ta beslut om på vilken port den mottagna ramen (dataramen) skall skickas ut. Vanligen avses switchar för Ethernet, men motsvarande enheter fanns för andra typer av nät, såsom Token Ring och FDDI. Det är ett vanligt fenomen att folk förväxlar switch med nätverkshubb, då deras utseende är snarlikt. Dock är det en stor skillnad mellan switchar och hubbar.

När ett datapaket, kallat en ram, anländer till en switch, så inspekteras det helt eller delvis, se nedan, och switchen jämför dess destinationsadress med innehållet i sin vidarebefordringsdatabas, CAM-tabellen (Content Addressable Memory), i vilken den har en mappning mellan MAC-adresser och sina portar. Paketet skickas ut på den port som matchar MAC-adressen. Om destinationsadressen inte finns i CAM-tabellen skickas paketet ut på samtliga portar utom den där paketet anlände. 

En hub arbetar på lager 1 i OSI-modellen och har ingen CAM-tabell. En hub repeterar den binära strömmen av ettor och nollor ut på samtliga portar.

Lokala nätverk skapade med hubbar skapar en logisk bussnätstopologi, switchar däremot ger logiska stjärnnät. På bussnät kan man bara kommunicera i halv duplex och kollisioner kan uppstå om två noder påbörjar en sändning i samma ögonblick. På nät där alla noder är anslutna till switchar, så ger dessa dedicerade kanaler för kommunikationen mellan två noder. Kollisioner kan inte uppstå och full duplex, samtidig trafik i båda riktningarna, är möjlig, förutsatt att den fysiska kopplingen tillåter det. Dessutom kan flera noder kommunicera samtidigt. Om nod A kommunicerar med nod B, så kan nod C och D samtidigt kommunicera genom samma switch, eftersom trafiken är åtskild i olika kanaler.

Hur en switch lär sig MAC-adresser 
En Ethernet-switch lär sig adresserna till varje enhet på nätverket genom att läsa av käll-MAC-adressen i varje ram som skickas och noterar sedan den, samt vilken inkommande port ramen anlände genom. Switchen sparar sedan informationen i sin vidarebefordringsdatabas, CAM.

Varje gång en MAC-adress sparas i CAM så får den en tidsstämpel. Detta gör att adressen kan sparas under en användarbestämd tid. Varje gång en MAC-adress noteras av switchen så får den en ny tidsstämpel. Om den användarbestämda tiden löper ut och MAC-adressen inte noterats av switchen så raderas posten.

Switch-loopar och Spanning Tree Protocol 

På nätverk där tre eller fler switchar är inkopplade kan administratörer av misstag, eller för att skapa redundanta datavägar, koppla samman switcharna mellan flera portar. Detta kan potentiellt leda till nätverksloopar, där switch A skickar en ram till switch B som skickar till switch C som skickar till switch A, osv. CAM-tabellerna på switchar är gjorda för högsta möjliga hastighet och innehåller inga möjligheter till alternativa vägval, till skillnad från de mera avancerade tabeller som routrar använder för sina vägval.

För att undvika loopar så inaktiveras därför vissa vägar. I exemplet ovan skulle exempelvis förbindelsen mellan switch A och C kunna vara inaktiverad, trots att det faktiskt finns en anslutning mellan dem. Skulle anslutningen mellan A och B tas bort eller bli trasig, så kan A – C-förbindelsen automatiskt aktiveras i stället. Denna redundans gör nätverket mer tåligt för störningar.

Vilka vägar som skall aktiveras och avaktiveras bestäms genom att switcharna kommunicerar med varandra med Spanning Tree Protocol.

Symmetrisk och asymmetrisk switchning 
Symmetrisk switchning sker när data förmedlas mellan portar som har samma bandbredd till exempel mellan 10 Mb/s portar eller mellan 100 Mb/s portar.

Asymmetrisk switchning tillhandahåller anslutning mellan portar med olika bandbredd till exempel en kombination av 10 Mb/s och 100 Mb/s segment. Detta är speciellt användbart i ett nätverk där flera klienter kommunicerar med en och samma server samtidigt. Detta kräver en högre bandbredd på den port som servern är ansluten till för att undvika en flaskhals.

Switchningsmetoder 
Det finns två olika huvudmetoder som switchen kan använda sig av för att vidarebefordra en ram, store-and-forward och cut-through. Cut-through finns dessutom i två varianter, fast-forward och fragment-free.

Store-and-forward 
Hela ramen lagras till dess att den har tagits emot av switchen och sedan vidarebefordras den. Felupptäckten är hög då switchen söker igenom hela ramen efter fel samtidigt som den tas emot. Om switchen upptäcker fel i ramen, så skickas den helt enkelt inte vidare.

Denna metod innebär att nätverkets latenstid, fördröjning, kan bli hög om många stora dataramar skickas. Med en fullängds Ethernetram blir latensen något större än 1526*8 gånger bittiden (den tid det tar att sända en bit). Denna metod är dock den enda som klarar asymmetrisk switchning (se ovan).

Cut-through 
Början av datapaketet lagras till dess att mottagaradressen har mottagits. Då påbörjas vidarebefordran av ramen innan resten av den har mottagits. Latenstiden i nätverket blir lägre men felupptäckten är betydligt sämre än med store-and-forward. Det finns två olika typer av cut-through-switchning.

Fast-forward-switchning
Om inget annat anges är detta standardmetoden för cut-through. Denna metod ger allra minst latens i nätverket. När en ram skickas in på en switch som vidarebefordrar baserat på fast-forward-switchning så kommer switchen att skicka vidare så fort den kan avgöra vilken utgående port som ska användas, det vill säga så fort den avläst destinationsadressen. Detta gör att ingen felsökning görs och felaktiga ramar kan vidarebefordras på nätverket. Latensen blir större än 14*8 gånger bittiden.
Fragment-free-switchning
Fragment-free-switchning filtrerar ut kollisionsfragment på nätverket och tar emot ramen till och med hela dess huvud, innan den skickas vidare på nätverket. På så sätt kan man kontrollera korrektheten hos båda adresserna och informationen från LLC-protokollet innan ramen skickas vidare. De flesta fel upptäcks på detta sätt. Latensen blir något större än 22*8 gånger bittiden.

Adaptiv switchning
Somliga switchar kan själva avgöra vilken metod som skall användas utifrån angivna tröskelvärden. Om den exempelvis befinner sig i cut-through-läge så skickas alla ramar vidare, men felkontroll görs i efterhand. Om en så stor andel av ramarna befinns vara felaktiga att tröskelvärdet överskrids, så ändrar switchen läge till store and forward. Om kvalitén sedan förbättras så att tröskelvärdet underskrids så återgår switchen till cut-through-läge.

Multilayer-switchning
Nuförtiden finns också så kallade lager-3-, multilayer- eller layer 3–4-switchar. Den huvudsakliga skillnaden mellan dessa switchar och vanliga är att dessa även arbetar i lager 3 och 4 i OSI modellen. Detta innebär att dessa förutom switchfunktionen klarar av samma sak som en router.

Det finns också speciella switchar för lastbalansering. Exempelvis kan en databas replikeras mellan olika maskiner som har varsin identisk kopia av den. En lastbalanserande switch används då för att dirigera trafiken mellan dem, så att de delar på jobbet att hantera anslutningar från klienter. Switchar för lastbalanseringar arbetar på nivå 7 (applikation) i OSI-modellen.

Managed kontra unmanaged
Enkla switchar för mindre nät är av typen unmanaged, det vill säga sedan de anslutits så finns det inget man kan göra för att påverka trafiken. Professionella switchar är oftast "managed", dvs. man kan ansluta till dem och som administratör utföra ett antal åtgärder.
 Switchen kan garantera en QoS (Quality of Service) mellan vissa noder i nätet, så att trafik mellan dem prioriteras före annan trafik.
 Switchen kan dela upp ett större LAN i två eller fler mindre delar, virtuella LAN (VLAN). Dessa delar fungerar som om de vore fysiskt åtskilda. De utgör skilda broadcastdomäner och trafiken mellan dem måste gå genom en router. (Routningen kan ske inuti switchen om det är en nivå 3- eller 4-switch.)
 Switchen kan föra logg över den trafik som skickas.

Uplink
När man kopplar ihop en switch med en dator med TP-kabel, så används traditionellt en "rak" kabel. För att koppla ihop en switch med en annan switch, så kan man antingen använda en "korsad" kabel, eller så använder man uplink funktionen på den ena switchen. På somliga switchar är detta en dedicerad port, som eventuellt aktiveras genom en knapp. Moderna switchar har i allmänhet en inbyggd sensorfunktion som känner av på vilka ledare motparten kommunicerar. Om denna sensor finns på alla portar, så kan man använda såväl raka som korsade kablar, oavsett vad slags enhet man kopplar in. Detta kallas auto-uplink.

Se även
 Repeater
 Nätverkshubb
 Brygga
 Gateway
 Router
 VLAN
 Shortest Path Bridging

Datorkommunikation