Ethernet MAC adresser

En Ethernet MAC-adress består av 48 bitar uttryckta som 12 hexadecimala siffror (4 bitar för varje hexadecimalt siffra). Jag tar upp först talsystemet och därefter adressering med hexadecimala siffror.

Hexadecimal talsystem

ch9-ethernet-13
Bild 1: Hexadecimalt talsystem

Ordet “Hex” indikerar att 16 symboler ingår i talsystemet vilket definierar basen 16. Med 16 symboler från 0 till 9 samtA, C, D, E och F) byggs upp hexadecimala talen. Varje hexadecimal nummer kan representeras i binär med 4 bitar som ger 16 kombinationer.

Bild 1 illustrerar binära kombinationer från 0000 till 1111 som motsvarar 0 till F hexadecimalt och 0 till 15 decimalt. För att representerar decimala tal från 16 uppåt används ytterligare fyra bitar.

Relationen mellan bytes och hexadecimala talen kan förklaras som följande:

  • Med 8 bitar kan representeras två hexadecimala siffror som kan placeras parvis, från 0000 0000 till 1111 1111 dvs. 00 till FF
  • Nollor i början finns alltid även för ensiffriga tal t. ex 0000 0101 motsvarar 05 eller bara 5.

Vanligtvis representeras hexadecimala tal med prefix 0x i början av talet (t.ex. 0x73) eller en nedsänkt 16. Mindre vanligt är hexadecimala tal betecknas med ett H i slutet t.ex. 73H. Men eftersom nedsänkt text inte används i en terminal/kommandoprompt eller programmeringsmiljöer är den tekniska representation med texten 0x att föredra, t. ex. 0x0A och 0x73

MAC-adresstruktur

MAC-adressernas 12 hexadecimala siffror delas upp i två grupper av 6 eller 3 byte. De första 6 hexadecimala siffror identifierar leverantörer av hårdvara (NIC). De andra 6 hexadecimala siffror kombineras av leverantörer när de adresserar deras nätverksprodukter eller tjänster. Det är ett globalt sätt för att säkerställa att varje MAC-adress är unik i hela världen.

ch9-ethernet-12
Bild 2: MAC adressers struktur

IEEE är standardiseringsorganisationen som reglerar MAC-adresser. Denna organisation kräver leverantörer att följa två enkla regler:

  1. Alla MAC-adresser tilldelade till ett nätverkskort eller annan Ethernet-enhet måste använda leverantörens OUI (de 3 första byte).
  2. Alla MAC-adresser med samma OUI måste tilldelas ett unikt värde som leverantörer får med kombinationer av de 3 systa byte r) i de sista 3 byte i adressen.

MAC-adressen är ofta refererat som en burned-in address (BIA) för att den inprogrammeras i ett ROM (Read Only Memory) minne på nätverkskortet. De innebär att en MAC-adress kodas in i ett ROM-chip permanent, att den inte kan ändras av programvara. Men datorer kopierar deras MAC-adresser till RAM minnet vid start och då kan deras MAC-adresser ändras tillfälligt. Vid ramidentifikation jämförs MAC adressen lagrad i RAM minnet med destinationens MAC adress registrerad i ramen för att avgöra om meddelandet vidarebefordras till högre skikten.

Ramöverföring

Kommunikation mellan nätverksenheter kräver flera adresseringar såsom fysiska, logiska, portnummer, protokollnummer o.s.v. MAC-adresser är direkt associerade till ramöverföring. Det illustreras med bild 3 som följande:

  • Dator H1 behöver skicka ett meddelande till dator H3. Data inkapslas i paket och paketet i ramar. Varje ram har avsändarens och mottagarens MAC-adresser lagrade i sin header.
  • Switchar lär sig MAC-adresser från alla anslutna nätverksenheter så att den kan binda ihop avsändare och mottagare. Men när en switch inte har exempelvis destinationens MAC-adress skickar switchen samma meddelande till alla nätverksenheter.
  • Varje nätverksenheter kontrollerar adressering i ramarnas header så att dem kan besluta att ta emot eller ignorera ankommande ramar. Om allting stämmer tas emot ramarna och skickas till övre skikten.

MAC-adresser representationer

Olika maskin-och programvarutillverkare kan representera den hexadecimala MAC-adressen i olika format. Adressformaten Kan likna:

  • 00-05-9A-3C-78-00
  • 00:05:09 A: 3C: 78:00
  • 0005.9A3C.7800

I en Windows dator kan tas fram datorns MAC-adressen (Physical Address) med hjälp av kommandot IPCONFIG eller GETMAC (getmac /v /fo list). I en Linux-dator kan användas kommandot IFCONFIG.

Bild 3: IPCONFIG

Ethernet Unicast, Multicast och Broadcast

I ett Ethernet nätverk används olika MAC adresser för L2 unicast, multicast, och broadcast kommunikation.

Unicast

En unicast MAC-adress är en unik adress som används när en ram sänds från en avsändarenhet till en destinationsenhet. I exemplet som visas i figuren en host med IP-adressen 192.168.1.5 (avsändare) begär en webbsida från servern med IP-adressen 192.168.1.200.

ch9-ethernet-16
Bild 4: Unicast

För att ett unicast-paket ska skickas och tas emot måste specificeras paketets avsändare och destinations IP adresser i paketets header. I ramens header specificeras respektive MAC adress. IP-adresser och MAC-adresser kombineras för att leverera data till en specifik destinationsenhet.

Broadcast

I en broadcast kommunikation innehåller paketet en destinations IP-adress som har alla ettor i hostdelen (255). Det innebär att alla enheter i det lokala nätet kommer att ta emot broadcast paketet. Många nätverksprotokoll t.ex. Dynamic Host Configuration Protocol (DHCP) och Address Resolution Protocol (ARP), använder broadcast.

ch9-ethernet-17
Bild 5: Broadcast

Hur kombinerar ARP L2 och L3 adresser i sina broadcast? Svaret illustreras med bilden ovan. På bilden behöver varje L3 adress en L2 adress. I ett Ethernet-nätverk är broadcast MAC-adress 48 bitar kodad som FF-FF-FF-FF-FF-FF.

Multicast

Multicast-adresser tillåter avsändarenheten skicka ett paket till en grupp av enheter. Enheter som tillhör till en multicast-grupp tilldelas specifika IP Multicast-adresser från 224.0.0.0 till 239.255.255.255. Eftersom dessa adresser representerar en grupp av adresser kan dem endast användas som destination för ett paket. Avsändaren kommer alltid att ha en unicast-adress.

Exempel på tillfällen där multicast-adresser används är spel på Internet där många spelare är anslutna på distans men de spelar samma spel. En annan exempel är distansutbildning via videokonferenser där många studenter är anslutna till samma klass.

Precis som unicast och broadcast kommunikation måste multicast kommunikation baseras på en association mellan multicast IP adress och multicast MAC adress. Den multicast MAC-adressen är ett speciellt värde som börjar med 01-00-5E hexadecimalt. Värdet avslutas genom att omvandla 23 bitar av IP multicast gruppadress för att länka till de återstående 6 hexadecimala tecken i MAC adressen.

Bild 6: IP – MAC adressassociation i Multicast

För att associera en IP multicast adress till en MAC multicast adress associeras 23 bitar i IP respektive MAC adresser.

Vilken multicast MAC adress har följande IP multicast adress 224.192.16.1?

  • En MAC adress är 48 bitar lång och en IPv4 adress är 32 bitar lång.
  • Multicast MAC adress börjar alltid men 01-00-5E (24 bitar).
  • Den 25:e bit sätts till 0 och då återstår 23 bitar som associeras till de 23 bitar i IP adressen.
  • Av de första 9 bitar i IP adressen är redan uppsatt de första 4 bitar till 1110 (klass D). Resterande 5 bitar associeras inte till multicast trafik och därför är möjligt att en enhet får multicast paket även om enheten inte tillhör till multicast gruppen, vilket innebär inte några problem eftersom mottagande enhet tar bort paketet.
  • I adressen 224.192.16.1 ignoreras den första oktett och omvandlas den andra oktett till binär
    • 192 = 1100 0000 den första ettan sätts till 0 (se ovan) och då talet blir 0100 0000 eller 0x40.
    • 16 = 0001 0000 eller 0x10.
    • 1 = 0000 0001 eller 0x01.

MAC multicast adressen till IP multicast adressen 224.192.16.1 är 01-00-5E-401001

ch9-ethernet-18
Bild 7: Multicast

Multicas IP adress är 224.0.0.1 vilket ger multicast MAC adress 01-00-5E-000001 
Andra oktett 0 blir 0x00
tredje oktett 0 blir 0x00
fjärde oktett 1 blir 0x01