# Fibre Channel over Ethernet

Fibre Channel over Ethernet (FCoE) è uno standard sviluppato dal gruppo di lavoro FC-BB-5 del T11, pubblicato il 4 giugno 2009 e inviato all'INCITS per la pubblicazione e la ratificazione come standard ANSI.
FCoE permette di mappare i frame Fibre Channel su una rete IEEE 802.3 full-duplex. In questo modo è possibile utilizzare le connessioni 10 gigabit Ethernet per il trasporto dei pacchetti Fibre Channel senza modificare il protocollo e le funzionalità Fibre Channel. Per operare, FCoE ha bisogno di una rete lossless ethernet che garantisca un trasporto senza perdita di pacchetti indispensabile al trasporto del traffico SCSI che è incapsulato all'interno dei pacchetti Fibre Channel.
FCoE permette di consolidare il traffico Fibre Channel sulla connessione Ethernet utilizzata per i dati permettendo così una più semplice connettività dei server all'infrastruttura garantendo allo stesso tempo la piena compatibilità con tutto il software sviluppato per Fibre Channel in quanto il trasporto dei pacchetti fibre Channel è trasparente e sono garantite tutte le funzionalità native incluso lo zoning. Sono necessarie apposite schede di rete, chiamate CNA (Converged Network Adapter), e switch ethernet per il trasporto e l'instradamento di FCoE mentre tutte le altre componenti della server farm, incluso i sistemi operativi, rimangono invariate rispetto ad una soluzione nativa Fibre Channel.

## Premesse storiche

Ethernet è di gran lunga il protocollo più diffuso per le connessioni dati fra host. In un centro elaborazione dati alle connessioni ethernet si aggiungono molto spesso anche le connessioni Fibre Channel oltre ad alcune connessioni proprietarie in ambito HPC. In un server tradizionale le connessioni ethernet sono utilizzate per la trasmissione di dati da e verso altri server e/o client, mentre le connessioni Fibre Channel sono utilizzate per lo scambio di dati con la Storage Area Network. Un server può quindi presentare sia interfacce di rete ethernet per il trasporto del traffico IP che interfacce Fibre Channel per il trasporto del traffico dati verso la SAN. Le connessioni ethernet sono gestite da uno switch ethernet con connessioni solitamente a 1 Gb/s, mentre quelle Fibre Channel a un Fibre Channel switch con connessioni a 2 o 4 Gb/s (sono disponibili anche connessioni a 8/16Gb/s su alcuni nuovi apparati ma probabilmente l'introduzione di FCoE contrasterà/affiancherà il decollo di questa tecnologia anche se la Fibre Channel Industry Association (FCIA) nelle sue presentazioni propone entrambe le tecnologie).

### Tipologie di traffico dati

All'interno di un CED si possono trovare essenzialmente tre tipologie di traffico dati:
* LAN: Il classico traffico LAN, che opera su IPv4 e IPv6, deve continuare ad utilizzare la rete ethernet in modo nativo in quanto gli investimenti fatti in questi ultimi tre decenni sono troppo ingenti per pensare di passare ad una tecnologia alternativa. Questo traffico dati generalmente non è sensibile alla latenza ed è in grado di recuperare in modo efficiente la perdita di uno o più pacchetti.
* IPC: Il traffico per la comunicazione tra processi (IPC) in un computer cluster è caratterizzato da piccoli pacchetti di segnalazione e sincronizzazione solitamente molto sensibili alla latenza e pacchetti di grandi dimensioni per la sincronizzazione o il trasferimento di grandi quantità di dati fra un sistema e l'altro. Il Clustered file system, il cluster di database (es.: Oracle RAC) e i sistemi di gestione di macchine virtuali (es. VMware Server e Hyper-V) sono esempi di computer cluster. Tutti questi sistemi di cluster hanno alla base anche uno storage condiviso che molto spesso opera attraverso connessioni Fibre Channel.
* Fibre Channel: Fibre Channel è diventato il protocollo più utilizzato per la connettività dedicata ai sistemi storage nei CED e una sua sostituzione con un altro protocollo che non gestisce lo zoning, come ad esempio iSCSI, creerebbe notevoli problematiche e pregiudicherebbe grandi investimenti effettuati.
Vi è, però, una sentita necessità di consolidamento in un'unica infrastruttura sia per semplificare il cablaggio sia per ottimizzare i costi dell'hardware e i costi di gestione pur garantendo le specificità e peculiarità delle attuali tecnologie.

### 10 gigabit Ethernet

L'avvento delle tecnologie di trasmissione a 10 gigabit Ethernet permettono di disporre di una banda sufficiente per trasportare contemporaneamente su un'unica connessione ridondata sia il traffico IP che quello Fibre Channel. Sfortunatamente, però, ethernet ed IP sono protocolli lossy ossia tollerano una perdita di un pacchetto e prevedono dei meccanismi rapidi di ritrasmissione mentre il protocollo SCSI trasportato dai pacchetti Fibre Channel non permette il recupero di un singolo pacchetto e richiede una completa rinegoziazione della connessione, operazione che, oltre ad essere molto onerosa in termini di tempo, può comportare anche degli errori a livello applicativo. SCSI, infatti, è stato pensato come un protocollo adatto ad operare su brevissime distanze (pochi metri) e su connessioni sicure.

#### Lossless ethernet

Per garantire una connessione lossless, Fibre Channel utilizza un sistema a credit Buffer-to-Buffer (B2B) in cui, in fase di inizializzazione, le due estremità di un collegamento si scambiano le informazioni relative alla configurazione dei buffer. Uno scambio di dati avviene solo se è disponibile almeno un buffer libero. In questo modo si può garantire un livello di sicurezza di trasmissione adatto a trasmettere pacchetti SCSI.
Ethernet non è stato pensato come protocollo lossless e prevede lo scarto di un pacchetto in questi casi:
* Frame error: ossia errore di trasmissione. Facilmente eliminabile riducendolo a tassi insignificanti all'interno di un CED grazie alle moderne tecnologie di cablaggio.
* Collision: Ethernet è un protocollo che ammette la collisione. Con i moderni switch e le connessioni full-duplex non esiste la possibilità di collisione fra due trasmissioni.
* Congestion: La congestione avviene quando si verifica un buffer overflow, ossia quando non è possibile inviare su una linea tutti i pacchetti che si hanno in ingresso in quanto la velocità di trasmissione risulta inferiore alla velocità con cui i pacchetti sono ricevuti. Ethernet non supporta un meccanismo a credit come si ha per Fibre Channel ma ha uno strumento di controllo di flusso che permette di evitare le congestioni: il pacchetto PAUSE.

##### PAUSE

Il frame PAUSE è utilizzato per richiedere la sospensione della trasmissione di pacchetti permettendo, così, l'implementazione di un controllo di flusso che può evitare la congestione. Il frame PAUSE è un frame standard ethernet senza tag ossia non appartenente ad alcuna VLAN. Il frame opera, quindi, sul collegamento sospendendo il traffico di tutte le VLan.
Il frame (come si può vedere nell'illustrazione qui a fianco) è così composto
* Byte 1-6: Indirizzo MAC di destinazione 01:80:C2:00:00:01
* Byte 7-12: Indirizzo MAC della sorgente
* Byte 13-14: Ethertype=0x8808 tipo di pacchetto ethernet
* Byte 15-16: OpCode=0x0001
* Byte 17-18: Pause Time. Durata della pausa richiesta in Pause Quanta. Un Pause Quanta è il tempo necessario a trasmettere 512 bit, quindi, dipende dalla velocità di trasmissione.
* Byte 19-60: Padding (riempimento) di 42 byte.
* Byte 61-64: CRC codice di controllo del frame

##### Priority Flow Control

Per rendere più efficiente il controllo di flusso, invece del frame PAUSE, Cisco ha proposto l'utilizzo del frame Priority Flow Control (PFC) che definisce un Pause Quanta per ciascuna delle 8 code definite dal protocollo IEEE 802.1Q tramite il campo user priority definito dal protocollo IEEE 802.1p.
Il frame (come si può vedere nell'illustrazione qui a fianco) è così composto:
* Byte 1-6: Indirizzo MAC di destinazione 01:80:C2:00:00:01
* Byte 7-12: Indirizzo MAC della sorgente
* Byte 13-14: Ethertype=0x8808 tipo di pacchetto ethernet
* Byte 15-16: OpCode=0x0101 (unico tipo ammesso)
* Byte 17-18: Class enable vector, un vettore che indica se il valore Time di ciascuna classe è valido o meno. Il byte più significativo è posto a 0 mentre i bit di quello meno significativo sono posti a 1 se il relativo Time n è valido, altrimenti sono posti a 0.
* Byte 19-20: Time class 0. Equivalente del Pause Time ma con riferimento alla priority 0.
* Byte 21-22: Time class 1. Equivalente del Pause Time ma con riferimento alla priority 1.
* Byte 23-24: Time class 2. Equivalente del Pause Time ma con riferimento alla priority 2.
* Byte 25-26: Time class 3. Equivalente del Pause Time ma con riferimento alla priority 3.
* Byte 27-28: Time class 4. Equivalente del Pause Time ma con riferimento alla priority 4.
* Byte 29-30: Time class 5. Equivalente del Pause Time ma con riferimento alla priority 5.
* Byte 31-32: Time class 6. Equivalente del Pause Time ma con riferimento alla priority 6.
* Byte 33-34: Time class 7. Equivalente del Pause Time ma con riferimento alla priority 7.
* Byte 35-60: Padding (riempimento) di 26 byte.
* Byte 61-64: CRC codice di controllo del frame

##### Vantaggi e svantaggi del lossless ethernet

Non è molto diffusa l'implementazione del frame PAUSE, ne tanto meno la sua evoluzione (PFC) proposta da Cisco, poiché gli standard IEEE definiscono il meccanismo di base ma non, in modo particolareggiato, l'intero meccanismo e lasciano la strada aperta a diverse implementazioni con la conseguente difficoltà di standardizzazione fra diversi produttori.
L'adozione su una rete ampia che vada oltre quella specifica e dedicata del CED creerebbe, inoltre, delle grandi problematiche di gestione e causerebbero un notevole aumento di delay di trasmissione che creerebbero notevoli problemi a molti protocolli. Si potrebbe arrivare anche a situazioni limite di blocco di una rete dovuto ad una richiesta circolare di buffer deadlock.
Per poter trasportare in modo nativo il traffico di storage, ossia il protocollo SCSI, come si è detto è indispensabile evitare la perdita di pacchetti dovuta a problemi di congestione, inoltre protocolli come NFS potrebbero trarne vantaggio mentre più in generale il protocollo TCP ha un meccanismo di recupero dei pacchetti persi molto efficiente e a sua volta utilizza lo scarto (drop) dei pacchetti per controllare a livello più alto la congestione.

##### Congestion Notification

Per armonizzare queste differenze fra diversi produttori e gestire in modo efficiente la congestione è stato proposto il protocollo 802.1Qau. Il protocollo CN permetterà funzionalità aggiuntive su una infrastruttura che implementa il controllo di flusso basato sulle classi IEEE 802.1p Class Based Flow Control (CBFC).

### Trasporto di IP su Fibre Channel

In passato ci si è concentrati molto sul trasporto di IP sull'infrastruttura Fibre Channel ma la diffusione della rete ethernet e le considerazioni sopra riportate hanno decretato l'abbandono, almeno commerciale, di queste tecnologie. Queste sono le principali RFC proposte per il trasporto del traffico IP su Fibre Channel:
* (EN) RFC 2625 - IP and ARP over Fibre Channel - Giugno 1999 - Rimpiazzata da RFC 4338
* (EN) RFC 3831 - Transmission of IPv6 Packets over Fibre Channel - Luglio 2004 - Rimpiazzata da RFC 4338
* (EN) RFC 4338 - Transmission of IPv6, IPv4, and Address Resolution Protocol (ARP) Packets over Fibre Channel - Gennaio 2006 - Modificata in parte da RFC 5994
* (EN) RFC 5994 - IANA Allocation Guidelines for the Address Resolution Protocol (ARP) - Aprile 2009

## FCoE

FCoE è un nuovo standard che è stato proposto nell'aprile 2007 dal gruppo di lavoro FC-BB-5 dell'INCITS T11.
L'idea alla base di questa proposta è molto semplice: realizzare una convergenze delle connessioni dati trasportando ciascun pacchetto Fibre Channel all'interno di un pacchetto ethernet.

### FCoE o FCoCEE

Entrambi i termini sono corretti. FCoCEE è l'acronimo di Fibre Channel over Convergence Enhanced Ethernet ossia Fibre Channel sulla rete ethernet evoluta con le tecnologie abilitanti necessarie per il protocollo FCoE.

### Principi di funzionamento

Per ethernet FCoE è semplicemente un altro protocollo di livello superiore da trasportare alla stessa stregua di IPv4, IPv6 e IPX.
Per Fibre channel è una modalità di collegamento tramite un nuovo tipo di cavo: la rete ethernet.
Nell'immagine qui a fianco si può notare come i server siano collegati, per ridondanza, a due switch in grado di gestire il protocollo FCoE su una singola connessione lossless ehternet. Gli switch sono a loro volta collegati alla rete LAN e all'infrastruttura SAN. Ciascuno switch FCoE è connesso solo ad una SAN tramite collegamenti Fibre Channel, questo per garantire la separazione del traffico fra le due SAN garantendo così la massima continuità di servizio anche in caso di collasso di uno dei due sistemi.
Il protocollo SCSI continua ad essere incapsulato all'interno dei pacchetti Fibre Channel mentre questi sono incapsulati a loro volta frame per frame in pacchetti ethernet consentendo così al FCoE layer di essere assolutamente privo di stato e di non richiedere frammentazione o riassemblaggio dei pacchetti.

### Strutture di FCoE

Nell'immagine qui a fianco si può vedere come il protocollo FCoE si pone nei confronti di ethernet, a basso livello, e di Fibre Channel ad alto livello. FCoE si posiziona allo stesso livello di IP ma è assai più semplice essendo senza stato.
Un server che utilizza una connessione FCoE è semplicemente uno SCSI initiator come un server connesso tramite Fibre Channel in modo nativo mentre uno storage connesso tramite FCoE è uno SCSI target.
Per gestire la SAN possono, quindi, essere utilizzati i tool sviluppati per Fibre Channel in modo del tutto trasparente in quanto a livello applicativo non è possibile sapere se la connessione è FCoE o Fibre Channel nativa.
In realtà per poter operare su una nuvola ethernet FCoE si avvale di due protocolli:
* FCoE è il protocollo di base per il trasporto dei dati. È utilizzato per il trasporto della maggior parte dei frame Fibre Channel e di tutto il traffico SCSI.
* FIP (FCoE Initialization Protocol) è il protocollo di controllo. È utilizzato per scoprire entità Fibre Channel connesse alla lossless ethernet. Effettua, inoltre, il login e logout ai dispositivi Fibre Channel.
I due protocolli hanno due diversi ethertype.

#### Frame FCoE

Nel diagramma a lato è illustrato l'incapsulamento dei frame FCoE:
* Ethernet Header: normale frame ethernet con ethertype=FCoE - 12 byte MAC address + 4 byte IEEE 802.1Q
** FCoE Header: informazioni di controllo (Ver, SOF) - 16 byte
*** Fibre Channel Header: frame standard Fibre Channel - 24 byte
**** Fibre Channel payload: dati trasportati dal protocollo Fibre Channel (pacchetto SCSI) - da 28 a 2112 byte
*** CRC - 4byte
** EOF - 1 byte (EOF) + 3 byte di riempimento
* FCS - 4 byte
Come si è già detto ciascun frame Fibre Channel viene incluso in un frame ethernet la cui dimensione può variare da 64 byte a 2180 byte. Il Maximum Transmission Unit su ethernet normalmente è di 1518 quindi non è sufficiente per FCoE. È indispensabile l'adozione di un'infrastruttura che supporti jumbo frame di 2,5 KB. I frame di questa lunghezza generalmente sono chiamati baby jumbo frame per differenziarli da quelli di più grosse dimensioni che normalmente sono di 9 KB.
Un frame FCoE ha il seguente formato:
* Destination MAC address: 48 bit - come per Fibre Channel over IP (FCIP) descritto in RFC 3643
* Source MAC address: 48 bit - come per FCIP descritto in RFC 3643
* IEEE 802.1Q: 32 bit - come per FCIP descritto in RFC 3643, permette la suddivisione del traffico dati in più VLan e include il priority field
* Ethertype: 16 bit - FCoE ha uno specifico ethertype 0x8906
* Version: 4 bit - Versione del protocollo FCoE
* Reserved: 100 bit - questi bit permettono di garantire la lunghezza minima del pacchetto ethernet che è di 64 byte anche in presenza di pacchetti Fibre Channel da trasportare di 28 byte. In questo modo non è mai necessario inserire un riempimento (pad) in un pacchetto FCoE.
* SOF: 8 bit - Start Of Frame, come per FCIP descritto in RFC 3643
* Fibre Channel Frame: Frame da trasportare incluso il suo CRC. Il frame trasportato è esattamente quello che sarebbe inviato su una connessione Fibre Channel nativa.
* EOF: 8 bit - End Of Frame, come per FCIP descritto in RFC 3643
* Reserved: 24 bit di riempimento
* Ethernet FCS: 32 bit - come per FCIP descritto in RFC 3643

#### Frame FIP

Il FCoE Initialization Protocol (FIP) è un protocollo di controllo che permette di individuare dispositivi in grado di operare tramite FCoE in una rete ethernet. FIP, inoltre, permette di negoziare le modalità di comunicazione e il MAC address da utilizzare.
Il funzionamento tipico prevede una Discovery Phase in cui all'invio di un messaggio multicast di richiesta sia le CNA che gli Switch FCoE rispondono identificandosi.
Successivamente il FIP gestisce il login all'infrastruttura Fibre Channel tramite i comandi Fibre Channel FLOGI/FDISC. L'accettazione di questi comandi da parte dello switch FCoE permette lo scambio di dati tramite frame FCoE.
Un frame FIP ha il seguente formato:
* Destination MAC address: 48 bit
* Source MAC address: 48 bit
* IEEE 802.1Q: 32 bit
* Ethertype: 16 bit - FIP ha uno specifico ethertype 0x8914
* Version: 4 bit - Versione del protocollo FCoE
* Reserved: 24 bit -
* Encapsulated FIP Operation: esistono 7 tipi di operazioni possibili e ciascuno ha una lunghezza predefinita quindi il tipo di comando definisce anche la lunghezza di questo campo
* Pad: riempimento per garantire la lunghezza minima del frame
* Ethernet FCS: 32 bit

#### Tipi di porte FCoE

FcoE è strutturato in modo molto simile a FCIP come descritto nella FC-BB-4 in quanto FCoE è incluso nella FC-BB-5 che è la sua evoluzione. Tre sono i tipi di porte presenti:
* VN_Port: una porta ethernet di una CNA. Il MAC address di una VN_Port sarà utilizzato come indirizzo sorgente o destinazione di un frame FCoE.
* VF_Port: una porta di uno switch FCoE a cui è collegata una VN_Port.
* VE_Port: una porta di uno switch FCoE utilizzata per connettere un altro switch.
Un ENode (FCoE Node), invece, è un adattatore Fibre Channel implementato all'interno di una CNA. Le CNA possono avere più di una porta ethernet, in questo caso, ciascuna di queste sarà una VN_Port dell'ENode.

### Converged Network Adapter

Le Converged Network Adapter (CNA) sono delle schede di rete in grado di garantire una connessione, normalmente a 10 Gb/s, su lossless ethernet supportando il protocollo FCoE.
Le CNA in realtà sono composte da due sistemi differenti:
* Scheda di rete ethernet
* Controller Fibre Channel
Anche a livello di sistema operativo vengono viste come due componenti separate. Se, ad esempio, una scheda CNA fosse installata in un ambiente windows, troveremo una scheda Fibre Channel nella sezione Controller SCSI e RAID e una scheda ethernet nella sezione Schede di rete.
Di conseguenza queste schede richiedono due driver, uno per la sezione Fibre Channel e uno per quella di LAN. Una delle principali caratteristiche che rendono così promettente questa tecnologia è proprio la presenza di queste due unità. Se si considera, infatti, lo schema qui a fianco, si può notare che, rispetto ad un sistema tradizionale con connessioni separate per LAN e Storage, cambia solamente la parte evidenziata in giallo, tutte le altre rimangono invariate. FCoE non richiede, per essere implementato, nessuna modifica agli attuali sistemi operativi ne tanto meno all'infrastruttura di LAN o SAN. Gli unici due attori coinvolti sono la CNA e lo switch con supporto FCoE a cui sono attestate le varie CNA.
In una CNA sono presenti uno o più controller Fibre Channel con le stesse funzionalità dei normali controller su schede Fibre Channel, l'unica differenza e che questi controller incapsulano i pacchetti in un frame ethernet e li passano quindi al controller ethernet per la trasmissione, il controller ethernet li riceve e semplicemente li inoltra sulla connessione lossless ethernet. In ricezione il controller ethernet passa i pacchetti FCoE direttamente al controller Fibre Channel. La componente del sistema operativo che gestisce le comunicazioni SCSI, quindi, non sarà in grado di capire se i pacchetti SCSI provengano da una connessione Fibre Channel dedicata o da FCoE.

#### Dispositivi presenti sul mercato

La componente Fibre Channel è sicuramente molto più complessa della componente ethernet in una CNA, quindi i primi esempi di CNA sono giunti da QLogic e da Emulex.
Molte implementazioni oggi sono basate sulla virtualizzazione dei sistemi operativi, quindi i sistemi ospiti hanno la necessità di accedere alle risorse esterne condivise del sistema operativo ospitante. Per velocizzare queste operazioni Cisco ha introdotto una CNA con la peculiarità di poter rendere disponibili 128 interfacce virtuali. In questo modo queste interfacce virtuali possono essere liberamente configurate come schede ethernet o Fibre Channel e rese disponibili ai vari sistemi operativi presenti nel sistema scaricando così i compiti di virtualizzazione delle comunicazioni ethernet e Fibre Channel dal processore principale e trasferendo il lavoro di instradamento allo switch esterno anche per le comunicazione fra un'interfaccia virtuale e l'altra.

##### Storage con CNA

Anche i dispositivi di storage possono essere dotati di CNA, nell'esempio qui a fianco si vede che i due sistemi di storage fanno uso di connessioni lossless ethernet per connettersi agli switch. In questo caso la semplificazione del cablaggio non è così importante perché gli storage sono sempre in numero molto inferiore rispetto ai server. Si aprono però degli scenari decisamente interessanti.
La completa eliminazione di connessioni Fibre Channel permette di rendere il sistema più omogeneo, e consente la concentrazione di tutte le configurazioni, sia ethernet sia Fibre Channel, in un unico dispositivo, lo switch ehternet con funzionalità FCoE.
L'aspetto più interessante è però la flessibilità che la struttura ethernet porta in dote a questa configurazione. Sarà, infatti, assai più semplice la dislocazione dello storage in ambienti separati superando anche distanze importanti e senza la necessità della realizzazione di un'infrastruttura ad hoc. Tutto questo permette una decisiva semplificazione dei sistemi di ridondanza e disaster recovery, unita ad un migliore utilizzo delle connessioni in fibra fra edifici diversi che vedrebbero automaticamente i link ottimizzati, in quanto sullo stesso collegamento transiterebbero tutti i vari protocolli. Un potenziamento della connessione con l'aggiunta, ad esempio, di un link parallelo permetterebbe automaticamente di aggiungere banda a tutti i protocolli.
Sullo stesso collegamento si potranno gestire più servizi:
* Management della SAN
* FCoE
* FCIP
* iSCSI
* NAS
Alcuni produttori di storage fra cui NetApp hanno annunciato sistemi di storage con supporto nativo per FCoE mentre altri, fra cui EMC², hanno preferito concentrare gli sforzi sullo sviluppo di switch FCoE.

#### Implementazioni software di FCoE

In sistemi di piccole dimensioni che non hanno la necessità di avere delle alte prestazioni di I/O, si può anche utilizzare una soluzione interamente software. Una soluzione completa di pubblico dominio basata su linux è il progetto open source Open-FCoE. Questo sviluppo è stato incluso in diverse distribuzioni linux fra cui SUSE e Red Hat. Microsoft, invece, non intende supportare per il momento FCoE come implementazione software.

##### Analizzatore di protocollo

Il software per analisi di protocollo Wireshark (precedentemente chiamato Ethereal) ha il supporto per la cattura e decodifica dei pacchetti FCoE.

### Switch FCoE

Uno switch FCoE contiene all'interno sia uno switch ethernet (ethernet bridge) sia uno switch Fibre Channel con il supporto dello zoning o un Fibre Channel Forwarder (FCF).
Uno switch FCoE potrebbe anche non avere porte Fibre Channel native e quindi non avere un FCF, ma deve essere comunque in grado di supportare tutte le estensioni ethernet sopra evidenziate e possedere le funzionalità di switch Fibre Channel operando solo su frame FCoE in una situazione come quella descritta in storage con CNA.
Qui a lato è evidenziato lo schema a blocchi di uno switch FCoE con FCF. Il sottosistema FCoE incluso nel modulo FCF si fa carico di incapsulare i frame Fibre Channel all'interno di frame FCoE e viceversa. In questo modo dei dispositivi con porte Fibre Channel possono essere connessi alle porte FC mentre le CNA possono essere connesse alla porte ethernet e tramite lo switch FCoE operare come in una normale SAN Fibre Channel.
Questa architettura è coerente con quella di un router multiprotocollo, quindi la funzionalità FCF può essere aggiunta ad un router multiprotocollo come quello esistente all'interno di molti switch layer 3.

## Ulteriori considerazioni
### FCoE e iSCSI

A primo avviso FCoE può essere visto come un sostituto totale di iSCSI vista la completa compatibilità con Fibre Channel. In realtà i due protocolli, molto probabilmente, continueranno a coesistere e alcuni produttori implementano sulla stessa CNA entrambi i protocolli.
Sicuramente il ruolo di iSCSI verrà ridimensionato dall'introduzione di FCoE ma non scomparirà. Qui di seguito si possono vedere i punti di forza delle due soluzioni:
* iSCSI è sicuramente più adatto per le soluzioni di fascia bassa non richiedendo nessuna implementazione particolare della rete ethenet e operando su TCP/IP permette il suo utilizzo anche in ambito geografico. Esistono, inoltre, molte implementazioni software di server iSCSI e praticamente tutti i sistemi operativi attuale hanno un supporto per connessioni client iSCSI.
* FCoE è stato pensato per i CED in ambito locale dove la presenza di infrastrutture Fibre Channel è ampia. FCoE consente di utilizzare le stesse utility e funzionalità utilizzate su Fibre Channel oltre a fornire tutto il supporto per lo zoning. FCoE non ha bisogno di uno stack TCP/IP ed è quindi molto più efficiente di iSCSI.