Așa cum am discutat, un switch analizează câteva sau toate pachetele înainte de a le trimite la hostul de destinație. Un switch Ethernet ar putea folosi o tehnică de buffering pentru a stoca frame-uri înainte de a le trimite. Buffering-ul poate fi utilizat și atunci când portul de destinație este ocupat din cauza congestionării și switch-ul stochează frame-ul până când nu mai poate fi transmis.

Așa cum se arată în figură, există două metode de buffering al memoriei: bazată pe port și memoria partajată.

Buffering-ul Memoriei bazată pe Porturi

În buffering-ul memoriei bazate pe porturi, frame-urile sunt stocate în cozi care sunt legate de anumite porturi de intrare și ieșire. Un frame este transmis către portul de ieșire doar atunci când toate frame-urile aflate înaintea sa în coadă au fost transmise cu succes. Este posibil pentru un singur frame să întârzie transmisia tuturor frame-urile din memorie din cauza unui port de destinație ocupat. Această întârziere apare chiar dacă celelalte frame-uri ar putea fi transmise către porturi de destinație deschise.

Buffering-ul Memoriei Partajate

Buffering-ul memoriei partajate depozitează toate frame-urile într-o memorie tampon comună, pe care o pot accesa toate porturile switchului. Cantitatea de memorie tampon necesară unui port este alocată în mod dinamic. Frame-ul din buffer sunt legate în mod dinamic la portul de destinație. Acest lucru permite pachetului să fie primit pe un port si apoi să fie transmis unui alt port, fără a îl muta într-o coadă diferită.

Switchul păstrează o hartă a frame-ului la link-urile portului pentru a arăta unde trebuie trimis un pachet. După ce frame-ul a fost transmis cu succes, aceasta se șterge. Numărul de frame-uri stocate în buffer este restricționat de dimensiunea întregii memorii tampon și nu este limitată la un buffer cu un singur port. Acest lucru permite ca frame-urile mai mari să fie transmise și să se renunțe la mai puține frame-uri. Acest lucru este important în special pentru switching-ul asimetric. Switching-ul asimetric permite rate de date diferite pe porturi diferite. Acest lucru permite să fie dedicată mai multă lățime de bandă pentru anumite porturi, cum ar fi un port conectat la un server.