Fibre Channel w zarysie
- Andrzej Janikowski,
- 01.03.2002
Media transmisyjne
Szybkość
Rys. 5. Łącza i ścieżka Fire Channel
Kontrola przepływu danych
Konieczność sterowania przepływem danych ujawnia się w chwilach przeciążenia. W takim wypadku urządzenie może być zmuszone do pominięcia części ramek. W protokole Fibre Channel wbudowano mechanizmy przeciwdziałające utracie transmitowanych danych. Urządzenie nadające może transmitować ramki do odbiorcy tylko wtedy, kiedy jest on gotowy do odbioru. Przed transmisją danych obydwa urządzenia przechodzą procedurę, w wyniku której otrzymują wzajemny dostęp do siebie. Podczas tego procesu ustalana jest liczba ramek, jaką odbiorca jest w stanie jednorazowo odebrać, czyli tzw. credit. Po przesłaniu takiej liczby ramek nadawca czeka z wysłaniem kolejnych, dopóki odbiorca nie zasygnalizuje gotowości odbioru kolejnej porcji danych. Dzięki temu nie dochodzi do wysłania większej liczby ramek, niż mogą pomieścić bufory urządzenia odbiorcy. Fibre Channel używa dwóch rodzajów sterowania strumieniem: bufor-bufor i węzeł końcowy-węzeł końcowy.
Bufor-bufor (Buffer-to-buffer)
Ten typ sterowania strumieniem stosuje się tylko między portem N a portem F lub pomiędzy dwoma portami N. Obydwa porty wymieniają informacje o liczbach ramek, które może przyjąć jeden od drugiego. Taka liczba staje się dla drugiego portu wartością BB_Credit i pozostaje stała, jak długo porty mają dostęp do siebie (są zalogowane). Kiedy na przykład porty A i B komunikują się ze sobą, to A może ogłosić gotowość przyjmowania 4 ramek z B, a B - 8 ramek z A. W takiej sytuacji wartością BB_Credit dla portu B będzie 4, a BB_Credit dla A będzie 8.
Rys. 6. Przykład struktury łącza Fibre Channel
Węzeł-węzeł (End-to-end)
Sterowanie strumieniem end-to-end odnosi się do portów N źródła i przeznaczenia zamiast do indywidualnych łączy. Koncepcja jest podobna do tej z użyciem buforów. Kiedy dwa porty N uzyskują do siebie dostęp, wówczas ogłaszają, ile przestrzeni buforowej mogą sobie udostępnić. Te wartości stają się EE_Credit. Z kolei EE_Credit_CNT oznacza liczbę nie odebranych ramek. Jest ustawiona na 0 po uzyskaniu dostępu i zwiększana o jeden dla każdej ramki transmitowanej do drugiego portu albo zmniejszana o jeden przy odbiorze ramki ACK Link Control z portu. Ramka ACK może oznaczać, że port otrzymał i przetworzył jedna ramkę, N ramek lub całą sekwencję ramek.
Klasy usług
Fibre Channel definiuje strategie komunikacji zwane klasami usług. Zastosowanie danej klasy wynika zwykle z rodzaju transmitowanych danych. Klasy różnią się typem kontroli przepływu danych. Gdy dwa porty typu N mają dokonać wymiany danych lub gdy port typu N uzyskuje dostęp do przełącznicy, musi istnieć przynajmniej jedna wspólna klasa usług obsługiwana przez obydwa porty. Jest to konsekwencją tego, że sekwencja bądź wymiana dokonywane są w ramach jednej klasy usług. Informacje o wspieranych klasach wymieniane są w czasie logowania do portu typu N lub do przełącznicy.