Överföringsmetoder


Nu när vi redan har gått igenom olika typer av MAC-adresser och sett hur switchen bygger upp sin MAC-adresstabell, är det dags att fokusera på nästa steg: hur switchar faktiskt vidarebefordrar ramarna.

En switch kan använda olika överföringsmetoder när en ram ska skickas från avsändare till mottagare. De två vanligaste metoderna är:

  • Store-and-forward switching – där hela ramen tas emot, lagras och kontrolleras innan den skickas vidare.
  • Cut-through switching – där switchen börjar vidarebefordra ramen redan när den läst av destinationsadressen.

Valet av metod påverkar både prestanda och tillförlitlighet i nätverket. Därför är det viktigt att förstå skillnaderna mellan dessa två arbetssätt.

Store-and-forward switching

Vid store-and-forward switching lagrar switchen hela ramen i sitt buffertminne (ASIC-baserat) innan den skickas vidare. Under tiden analyserar switchen ramens styrinformation för att läsa ut MAC-destinationsadressen.

Samtidigt beräknas ett CRC-värde (Cyclic Redundancy Check), som är en matematisk kontroll baserad på ramens bitar. Detta jämförs med det FCS-värde (Frame Check Sequence) som är inbakat i slutet av ramen. Eftersom FCS ligger sist i ramen måste switchen alltid ta emot hela ramen innan kontrollen kan göras.

  • Om värdena matchar anses ramen vara felfri och skickas vidare på rätt port.
  • Om värdena inte matchar kasseras ramen direkt, vilket förhindrar att felaktiga ramar sprids i nätverket och sparar bandbredd.

Varje inkommande ram kontrolleras alltså innan den vidarebefordras. Samtidigt kan switchen ta emot och lagra flera ramar i bufferten, vilket är viktigt när portar med olika hastigheter används. På så sätt undviks fel som annars skulle kunna uppstå vid överföringen.

Bilden nedan visar fem inkommande ramar som var och en ska kontrolleras innan de vidarebefordras.

Observera att Ethernet-ramar kan variera i storlek från minsta 64 byte till största 1518 byte enligt standard. Detta innebär att fördröjningen i en switch påverkas av ramens storlek – ju större ram, desto längre tid tar det för switchen att ta emot, analysera och vidarebefordra den.

I vissa nätverk används även så kallade jumbo frames, som kan vara upp till cirka 9000 byte. Dessa används framför allt i servermiljöer och datacenter för att minska antalet ramar och därmed öka effektiviteten, men de kräver att både switchar och nätverkskort har stöd för funktionen.

Cut-through switching

Till skillnad från store-and-forward finns metoden cut-through switching. Här börjar switchen vidarebefordra ramen redan efter att de första 6 bytena (destinationsadressen) har lästs in, utan att vänta på resten av ramen. Detta ger mycket låg latens, men innebär också att felaktiga ramar kan spridas i nätet eftersom ingen CRC-kontroll görs.

Det finns två varianter av cut-through switching:

  • Fast-forward switching – Switchen skickar vidare ramen omedelbart efter att destinationsadressen har lästs. Detta ger lägst latens, men även felaktiga ramar vidarebefordras. Latensen mäts som First In, First Out (FIFO) – från första mottagna bit till första skickade bit.
    Bild 4: Fast-forward switching

  • Fragment-free switching – Switchen väntar in de första 64 bytena av ramen innan den skickar den vidare. Anledningen är att de flesta kollisioner och fel i CSMA/CD-baserade nätverk uppstår under de första 64 byten. Om dessa är felfria antas resten av ramen vara korrekt. Denna metod är därför en kompromiss mellan tillförlitligheten hos store-and-forward och den låga latenstiden hos fast-forward.

Teknisk detalj: Fragment-free användes främst i äldre half-duplex-nätverk med kollisioner. I moderna full-duplex-nätverk är kollisioner mycket sällsynta, vilket gör att fast-forward eller store-and-forward är vanligare.

Minnesbuffring i switchar

En Ethernet-switch kan använda buffring för att tillfälligt lagra ramar innan de skickas vidare. Detta är särskilt viktigt när en utgående port är upptagen på grund av trängsel (congestion). Ramen lagras då i minnet tills porten blir ledig och kan skickas vidare.

Det finns två huvudsakliga metoder för minnesbuffring:

Minnesbuffring i switchar
Metod Beskrivning
Portbaserad buffring Ramar lagras i separata köer kopplade till specifika in- och utgångsportar. En ram kan endast skickas vidare när alla ramar före den i kön har behandlats. Detta kan göra att en enda ram blockerar efterföljande ramar, även om de hade kunnat skickas till andra, lediga portar.
Delad minnesbuffring Alla ramar lagras i en gemensam buffert som delas mellan alla switchportar. Buffertutrymmet fördelas dynamiskt och varje ram länkas till rätt destinationsport, så att en ram kan tas emot på en port och skickas ut på en annan utan att flyttas mellan olika köer.
 

Notera: Delad minnesbuffring gör det möjligt att hantera större ramar och minskar risken för att ramar tappas bort. Detta är särskilt viktigt vid asymmetrisk switching, där portar har olika hastigheter, till exempel när en server är ansluten till en 10 Gbps-port och klienter till 1 Gbps-portar.

Jämförelse – fördelar och nackdelar

Portbaserad buffring

  • Enkel att implementera
  • Varje port har sin egen kö
  • Risk för head-of-line blocking (en ram kan blockera alla andra i kön)
  • Mindre flexibel vid asymmetrisk trafikbelastning

Delad minnesbuffring

  • Flexibel – buffertminnet fördelas där det behövs mest
  • Färre tappade ramar vid asymmetrisk trafik
  • Möjliggör effektiv QoS (prioritering av trafik)
  • Kräver mer avancerad hårdvara och är därför dyrare att implementera

Duplex och hastighetsinställningar

Två av de mest grundläggande inställningarna på en switchport är hastighet (bandbredd) och duplexläge. För att kommunikationen ska fungera korrekt måste dessa matcha på båda sidor av länken (t.ex. mellan switch och dator).

  • Full duplex – båda ändar kan skicka och ta emot samtidigt (som en motorväg med två körfält).
  • Half duplex – endast en sida kan skicka åt gången (som en enkelriktad gata där bilar får köra växelvis).

De flesta switchar och nätverkskort har stöd för autonegotiation, en funktion som gör att två enheter automatiskt förhandlar fram bästa möjliga hastighet och duplexläge. Om båda stöder full duplex väljs detta tillsammans med högsta gemensamma hastighet.

Exempel: PC-A kan arbeta i 10 eller 100 Mbps och både full- och half duplex. Switch S1 port 1 stöder även 1000 Mbps (1 Gbps). Om båda använder autonegotiation blir resultatet 100 Mbps full duplex (eftersom PC-A inte stöder 1 Gbps).

Obs! De flesta Cisco-switchar och Ethernet-NIC:ar har autonegotiation aktiverat som standard. Gigabit Ethernet (1 Gbps och uppåt) fungerar alltid i full duplex och kräver autonegotiation enligt IEEE-standarden.

Duplex mismatch

Ett av de vanligaste prestanda problemen på 10/100 Mbps-länkar är duplex mismatch, som uppstår när den ena porten är inställd på full duplex och den andra på half duplex.

Detta kan hända när:

  • en eller båda portar återställs och autonegotiation misslyckas, eller
  • en användare manuellt ändrar inställningen på ena sidan men inte på den andra.
  • Resultatet blir kollisioner och CRC-fel, vilket ger kraftigt försämrad prestanda.

Bästa praxis: båda sidor ska antingen ha autonegotiation aktiverat, eller båda ska vara manuellt inställda på samma hastighet och duplexläge (helst full duplex).

Auto-MDIX

Förutom rätt duplex-inställning är det också viktigt att rätt kabeltyp används. Tidigare gällde följande:

  • Crossover-kabel för lika enheter (t.ex. switch–switch eller router–router).
  • Straight-through-kabel för olika enheter (t.ex. switch–host).
  • Direktkoppling mellan router och host krävde crossover.

Idag stöder de flesta switchar funktionen auto-MDIX (Automatic Medium-Dependent Interface Crossover). När den är aktiverad känner switchen automatiskt av kabeltypen och justerar portens sändar- och mottagarpinnar. Det betyder att du kan använda vilken kabel som helst (crossover eller straight-through) till en 10/100/1000 Mbps-port, oavsett enhet på andra sidan.

Obs! Auto-MDIX är som standard aktiverat på Cisco-switchar som kör IOS 12.2(18)SE eller senare. Funktionen kan dock stängas av. Därför är det bra att känna till korrekt kabeltyp – även om auto-MDIX vanligtvis löser det automatiskt.

Teknisk detalj: Auto-MDIX fungerar genom att switchen elektroniskt kan växla sändar- och mottagarpinnar (Tx/Rx). På fiberanslutningar behövs det inte, eftersom fiberkablar alltid är korsade (Tx → Rx).