802 3x Flow Control

background image

Adam Bukowski

24.05.2011

802.3x Flow Control

Ogólnie


W standardzie 802.3x, definiującym tryb full-duplex, zdefiniowany został opcjonalny

element kontroli ruchu oparty o ramki typu PAUSE. Takie ramki pozwalają, aby jedna stacja mogła
tymczasowo wstrzymać cały ruch pochodzący z innej stacji(poza ramkami MAC Control).

Załóżmy, że mamy dwie stacje A i B połączone ze sobą oraz działające w trybie full-duplex.

Stacja A wysyła bardzo dużo ramek w stronę B, co powoduje przeciążenie stacji B (np. brak
miejsca w buforze). Stacja B może wtedy wysłać ramkę PAUSE, w której określa żeby stacja A
wstrzymała transmisję na określony czas. Gdy stacja A odbierze ramkę PAUSE, wstrzymuje
wysyłanie kolejnych danych, co pozwoli odciążyć stację B. Po upłynięciu określonego czasu pauzy,
stacja A kontynuuje transmisję.

Warto zauważyć, że protokół pauzowania stacji jest dwukierunkowy. To znaczy stacja A

może wysyłać ramki do stacji B, oraz stacja B do stacji A. Ramki PAUSE można wysyłać nawet
podczas gdy stacja jest w stanie pauzy.

Wsparcie dla obsługi ramek PAUSE jest opcjonalne. Urządzenie może wspierać tylko część

obsługi ramek PAUSE, tzn może mieć możliwość tylko wysyłania, albo tylko odbierania. Zdolność
obsługi jest komunikowana w procesie autonegocjacji, co pozwala obu stronom wybrać odpowiedni
tryb pracy.

Szczegółowo

Ramka IEEE 802.3x PAUSE jest zdefiniowana w Aneksie 31B specyfikacji IEEE 802.3.
Ramka typu PAUSE jest typem ramki MAC Control – kod typu 88-08 (hex).
MAC Control Opcode ramki PAUSE to 00-01 (hex).

Format ramki

Preamble

(7-bytes)

Start Frame

Delimiter

(1-byte)

Dest. MAC

Address (6-

bytes)

= (01-80-

C2-

00-00-01)

or unique

DA

Source

MAC

Address (6-

bytes)

Length/Type

(2-bytes)

= 802.3

MAC

Control

(88-08)

MAC

Control
Opcode

(2-bytes)

= PAUSE

(00-01)

MAC

Control

Parameters

(2-bytes)

= (00-00 to

FF-FF)

Reserved

(42-bytes)

= all zeros

Frame
Check

Sequence

(4-bytes)


Adres docelowy

Może być multicastowym adresem 01-80-C2-00-00-01. W standardzie 802.1D określone
zostało, że ramki z takim adresem nie mają być przekazywane poprzez mosty do innych
segmentów sieci.

Może być adresem stacji docelowej.


MAC Control Paramaters

Dla ramki typu PAUSE określony jest tylko jeden dwubajtowy parametr oznaczający ilość

background image

jednostek czasu pause_quanta, na który stacja ma zaprzestać transmisji. Jednostka pause_quanta
odpowiada czasowi transmisji 512 bitów.

W zależności od szybkości łącza transmisję można wstrzymać na określony czas.

Maksymalna ilość jednostek pause_quanta to 0xFFFF czyli 65535, co daje poniższą tabelę:

Szybkość

pause_time

pause_quanta

Czas wstrzymania

10 Gbps

0xFF-FF

0.0512 µs

3.35 ms

1 Gbps

0xFF-FF

0.512 µs

33.55 ms

100 Mbps

0xFF-FF

5.12 µs

333.53 ms

Sposób działania stacji
Wyróżniamy dwa stany stacji. Stan nadawania oraz stan pauzy. W stanie pauzy stacja może wysyłać
tylko ramki MAC Control (czyli m.in. ramkę PAUSE).
Gdy stacja odbierze poprawną ramkę PAUSE:

jeśli pause_time = 0 przechodzi w stan nadawania

jeśli pause_time > 0 ustawia odpowiednio czas do odczekania

Oznacza to, że gdy stacja jest w trybie pauzy można ją w tym trybie zatrzymać na dłużej, albo ją
przełączyć w tryb nadawania wysyłając ramkę z pause_time = 0.

Gdy stacja jest w trybie pauzy odbieranie danych odbywa się normalnie.

Autonegocjacja Flow Control

Wybranie trybu pracy obu stacji odbywa się podczas procesu autonegocjacji. Jeśli stacja ustawi
odpowiednio bity A5 oraz A6 jak poniżej, oznacza to, że jest to jedyny akceptowany tryb pracy.
Zatem dla 0,1 stacja akceptuje tylko stan gdzie to ona będzie wysyłać ramki PAUSE. Dla 1,0 stacja
wymaga, aby druga stacja wysyłała jak i odbierała ramki PAUSE. W innym przypadku w ogóle
rezygnuje z „pauzy”. Dla 1,1 stacja akceptuje dodatkowo to, że ta druga może tylko wysyłać.
Wspomniane „umowy” pokazuje tabela 28B-3.

background image

Priority-based Flow Control

Standard 802.1Qbb ma na celu możliwość sterowania obciążeniem na zasadzie takiej jak

802.3x Flow Control, jednakże w odniesieniu to ruchu klasowego zdefiniowanego w dodatku
P802.1p, który został włączony do 802.1D – 1998. Został opracowany przez Cisco i włączony do
standardów IEEE.

Różnica ramki w stosunku do 802.3x PAUSE, jest taka, że dla każdej klasy ruchu jest

osobne pole mówiące o tym czy ruch ma być wstrzymany oraz na ile. Różnice dobrze przedstawia
poniższy rysunek:

Rysunek 1: źródło [5]

background image

Kie

dy wysyłać pauzę

Stacja musi wyznaczyć sobie pewien określony moment zapełnienia bufora, w którym

nakaże zaprzestać transmisji. Wyróżniamy dwa poziomy zapełnienia buforu wejściowego portu:

 XOFF threshold – w trybie nie-pauzy należy nakazać pauzę, kiedy osiągniemy ten poziom

 XON threshold – w trybie pauzy należy przywrócić ruch, kiedy osiągniemy ten poziom.

Należy też pamiętać, że stacja rozpocznie nadawanie kiedy minie odliczanie czasu pauzy

ustawionego w ramce, co może nastąpić zanim osiągniemy poziom XON threshold.

Problemy z TCP

Jak wiemy protokół TCP implementuje własny mechanizm kontroli ruchu w sieci. Polega on

na stopniowym zwiększaniu ilości wysyłanych ramek w zależności od odbierania potwierdzeń.
Poniżej krótki opis działania kontroli przepływu protokołu TCP pokazujący dlaczego mogą
wystąpić problemy przy włączonym protokole 802.3x Flow Control.

Ilustracja 1: źródło [6] str. 3

background image

Powolny start (slow start) (P1)

Na początku wysyłana jest jedna ramka. Następnie na każde odebrane potwierdzenie

zwiększany jest rozmiar okna przesuwnego o jeden. Po odebraniu pierwszego potwierdzenia
pozwalamy na obecność dwóch ramek w sieci. Po odebraniu każdego następnego potwierdzenia
możemy wysłać kolejne dwie ramki – jedną za tą, której potwierdzenie odebraliśmy, kolejną, bo
zwiększyliśmy rozmiar okna.

Unikanie przeciążenia (congestion avoidance) (P2)

W momencie gdy okno osiągnie rozmiar ss_threshold (w [6] piszą, że to połowa

maksymalnego rozmiaru okna) przechodzimy w tryb wolniejszego zwiększania okna. Dopiero gdy
odbierzemy tyle potwierdzeń ile wynosił rozmiar okna, to zwiększamy rozmiar okna o jeden aż
osiągniemy maksymalny rozmiar okna.

Faza okna maksymalnie otwartego (P3)

Okno jest maksymalnie otwarte. W zależności od implementacji TCP występują różne

sposoby reakcji na utracone ramki, a każdy z nich powoduje zmniejszenie rozmiaru okna. Jako
utracone ramki rozumiemy też te, dla których minął czas ich potwierdzenia timeout. Dla naszych
rozważań nie potrzebujemy znać dokładnego sposobu działania algorytmów obsługi przeciążenia
sieci. Opis działania można znaleźć w [5], [6].

Konkluzja

Wstrzymanie ruchu w sieci spowodowane mechanizmem 802.3x Flow Control powoduje

zatrzymanie ruchu ramek protokołu TCP. Jako, że kontrola przepływu TCP odbywa się w warstwie
wyższej niż 802.3x Flow Control, wstrzymywanie ramek powoduje upływanie czasu timeout i
stacja uznaje, że nie udało się danej ramki przesłać, sieć jest przeciążona, trzeba zmniejszyć rozmiar
okna i ponownie wysłać ramkę. Powoduje to spadek wydajności sieci. Obszerniejszą analizę tematu
można znaleźć w [6].

1.

http://www.techfest.com/networking/lan/ethernet3.htm

2.

http://homepage.cem.itesm.mx/raulm/pub/mimicry/opodis06.pdf

3. specyfikacja IEEE 802.3
4.

http://www.ieee802.org/1/pages/802.1bb.html

Ilustracja 2: źródło [6] str. 4

background image

5.

http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-
542809_ns783_Networking_Solutions_White_Paper.html

6. The interaction of the TCP flow control procedure in end nodes on the proposed flow control

mechanism for use in IEEE 802.3 switches , J. Wechta, A. Eberlein, F. Halsall Department of
Electrical & Electronic Engineering University of Wales, Swansea, UK

7.

Http://tnt.tele.pw.edu.pl/include/didactics/swus_tcp_v1.pdf

- Badanie sprawności protokołu

TCP , Politechnika warszawska , instytut telekomunikacji - Warszawa, 2006

8.

http://en.wikipedia.org/wiki/TCP_congestion_avoidance_algorithm


Wyszukiwarka

Podobne podstrony:
PP Flow Control by Using High Aspect Ratio microactuators
Detecting Metamorphic viruses by using Arbitrary Length of Control Flow Graphs and Nodes Alignment
04 Conditionals and Control Flow
Control Flow Graphs as Malware Signatures
Control Flow to Detect Malware
Detecting self mutating malware using control flow graph matching
04 Conditionals and Control Flow
04 Conditionals and Control Flow
Damage Control Plan
derivation flow equation prof J Kleppe
14 Controllingid 15298 ppt
802 11 Bezpieczeństwo
Controlling w przedsiębiorstwie
IEEE 802 id 209525 Nieznany
overview simatic controllers 04 2007 en plc
Control System Toolbox
control el heater pl
instrumenty Controllingu - praca zaliczeniowa (7 str), Zarządzanie(1)

więcej podobnych podstron