Frame Forwarding and Filtering with an Ethernet Switch

Acest articol isi propune sa evidentieze cele doua functii de baza ale unui switch Ethernet:

  • Frame forwarding
  • Filtering

Un switch este un echipament de Layer 2, care lucreaza la nivelul Data Link din cadrul stivei OSI. Asta inseamna ca switch-ul este capabil sa inteleaga semnificatia campurilor din header-ul de Ethernet.

Header-ul de Ethernet are urmatoarea structura:

Preamble

SoF

MAC Destination

MAC Source

802.1Q tag

EtherType

Payload

FCS

EoF

Campul Preamble este un camp pe 7 bytes care are rolul de a face sincronizarea in nodul sursa si nodul destinatie. Cu alte cuvinte, acest camp anunta nodul destinatie ca urmeaza sa primeasca un frame.

Campul SoF (Start of Frame) este un camp pe 1 byte (10101011) care anunta inceputul frame-ului. Dupa ultimul bit al acestui camp incepe efectiv frame-ul trimis de nodul sursa.

Campul MAC Destination contine adresa MAC de destinatie (6 bytes).

Campul MAC Source indica adresa MAC a sursei care a transmis frame-ul (6 bytes).

Campul 802.1Q tag, pe 4 octeti, indica VLAN-ul din care face parte nodul care a transmis frame-ul. VLAN-ul este o tehnologie de Layer 2, cu ajutorul careia mai multi utilizatori pot fi grupati in subnet-uri diferite, dupa anumite criterii.

Campul EtherType indica protocolul de Layer 3 care este incapsulat de frame (2 bytes).

Campul Payload reprezinta datele primite de la nivelul superior, de la Network Layer, care de obicei sunt pachete IPv4. Acest camp are o dimensiune variabila, maxim 1500 de bytes.

Campul FCS este un camp pe 32 de biti care are rolul de a verifica integritatatea frame-ul in drumul sau catre destinatie. FCS-ul este verificat de fiecare echipament care primeste frame-ul.

Campul EoF (End of Frame) are rolul de a indica sfarsitul frame-ului.

Acum ca am vazut componenta header-ului si a trailer-ului de Ethernet, vom discuta despre modul in care un switch proceseaza frame-urile.

Vom considera schema din figura de mai jos:

 

 

 

Consideram ca PC1 doreste sa comunice cu PC2. PC1 va construi un frame cu adresa sursa MAC 0000.1111.0001 si cu adresa destinatie MAC 0000.2222.0002 si va trimite acest frame catre switch.

Switch-ul primeste frame-ul si inainte de orice alta procesare, verifica integritatea frame-ului cu ajutorul campului FCS. Daca frame-ul trece de acest test, switch va trece la procesarea frame-ului. Pentru a-si indeplini functiile switch-ul foloseste o structura de date numita tabela de adrese MAC. Popularea acestei tabele se face mapand adresele MAC sursa de porturile pe care switch-ul primeste frame-urile. Deci cand switch-ul nostru primeste frame-ul de la PC1 va trece in tabela MAC urmatoarea intrare:

Port

MAC

Fa0/2

0000.1111.0001

Switch-ul trebuie apoi sa trimita frame-ul catre destinatie. Pentru acest lucru foloseste adresa MAC destinatie din frame, 0000.2222.0002, pe care o compara cu intrarile din tabela MAC pentru a vedea portul pe care trebuie sa trimita frame-ul catre destinatie. Se observa ca switch-ul nu stie pe ce port se afla MAC-ul destinatie. In acest caz switch-ul va trimite frame-ul pe toate porturile (flooding) cu exceptia portului pe care l-a primit (filtering). Frame-ul va ajunge la toate nodurile conectate la switch care nu vor procesa frame-ul decat la nivelul Data Link, unde vor observa ca nu li se adreseaza, cu exceptia PC-ului 2 care va procesa frame-ul intrucat i se adreseaza.

 

 

Consideram ca PC1 si PC2 au o comunicatie bidirectionala. Asta presupune ca PC2 va trebui sa i raspunda lui PC1, si o va face cu un frame care are ca adresa sursa 0000.2222.0002 si ca adresa destinatie 0000.1111.0001.

 

 

 

Frame-ul de la PC2 ajunge la switch, unde, ca si mai inainte, se verifica FCS-ul. Apoi switch-ul va invata ca pe portul fa0/3 se afla MAC-ul 0000.2222.0002.  Tabela MAC a switch-ului va arata ca mai jos:

Port

MAC

Fa0/2

0000.1111.0001

Fa0/3

0000.2222.0002

Switch-ul va folosi adresa destinatie a frame-ului, 0000.1111.0001, care stie ca se afla pe portul fa0/2, pentru a trimite frame-ul catre nodul destinatie.

In cele ce urmeaza vom folosi o topologie care va evidentia mai mult rolul de filtering pe care switch-ul il exercita asupra frame-urilor. Topologia este cea de mai jos:

 

 

Consideram ca si mai devreme comunicatia dintre PC1 SI PC2, cu urmatoarea deosebire: cele 2 noduri sunt conectate la un hub. Hub-ul este un dispozitiv care lucreaza la Physical Layer, care preia un semnal primit pe un port al sau, il curata, il amplifica si il trimite pe toate porturile cu exceptia celui pe care l-a primit. Datorita acestui comportament hub-ul se mai numeste si un repetor multiport (multiport repeater).

PC1 trimite un frame catre PC2 cu MAC-ul sursa 0000.1111.0001  avand MAC-ul destinatie 0000.2222.0002. Acest frame va ajunge la hub, care il va propaga pe toate porturile cu exceptia celui pe care l-a primit, deci il va scoate pe porturile 1, 2, 3.

 

 

Deci frame-ul va ajunge si la switch, care va crea o intrare in tabela MAC de forma:

Port

MAC

Fa0/24

0000.1111.0001

PC2 primeste frame-ul de la PC1, il proceseaza si ii va raspunde cu un alt frame care are adresele MAC inversate: adresa sursa 0000.2222.0002 si adresa destinatie 0000.1111.0001.

 

 

Hub-ul primeste frame-ul si il trimite pe porturile 1, 3, 4, deci si switch-ul va primi frame-ul destinat lui PC1. Va crea o noua intrare in tabela sa MAC unde va trece MAC-ul 0000.2222.0002 pe portul fa0/24:

Port

MAC

Fa0/24

0000.1111.0001

Fa0/24

0000.2222.0002

Switch-ul se uita la MAC-ul destinatie al frame-ului, 0000.1111.0001, si vede ca trebuie sa scoata frame-ul pe portul fa0/24, pe acelasi port pe care l-a primit. Aici intra in discutia functia de frame filtering: switch-ul nu va forward-a un frame catre o destinatie daca acea destinatie se afla pe acelasi port pe care switch-ul a primit initial frame-ul.

PC1 va primit doar frame-ul trimis de catre hub, deci nu va primi frame-uri duplicate (copii identice ale aceluiasi frame) si nu va fi nevoit sa proceseze aceleasi frame-uri de doua ori, ceea ce duce la economisire de putere de procesare si de latime de banda.