Ethernet flödeskontroll

Wireshark-skärmdump av en Ethernet "Paus"-ram

Ethernet-flödeskontroll är en mekanism för att tillfälligt stoppa överföringen av data på Ethernet- familjens datornätverk . Målet med denna mekanism är att undvika paketförlust i närvaro av överbelastning i nätverket .

Den första flödeskontrollmekanismen, pausramen , definierades av IEEE 802.3x- standarden. Den efterföljande prioritetsbaserade flödeskontrollen , som definieras i IEEE 802.1Qbb -standarden, tillhandahåller en flödeskontrollmekanism på länknivå som kan styras oberoende för varje tjänsteklass (CoS), enligt definitionen av IEEE P802.1p och är tillämplig på datacenterbryggningsnätverk (DCB) och för att möjliggöra prioritering av röst över IP (VoIP), video över IP och databassynkroniseringstrafik framför standarddatatrafik och massfilöverföringar.

Beskrivning

En sändande station (dator eller nätverksswitch ) kan sända data snabbare än den andra änden av länken kan acceptera det. Med hjälp av flödeskontroll kan den mottagande stationen signalera att avsändaren begär avbrytande av sändningar tills mottagaren kommer ikapp. Flödeskontroll på Ethernet kan implementeras i datalänklagret .

Den första flödeskontrollmekanismen, pausramen , definierades av Institute of Electrical and Electronics Engineers (IEEE) arbetsgrupp som definierade full duplex Ethernet-länksegment. IEEE-standarden 802.3x utfärdades 1997.

Pausa ram

En överväldigad nätverksnod kan skicka en pausram, som stoppar sändningen av avsändaren under en viss tidsperiod. En ram för mediaåtkomstkontroll (MAC) ( EtherType 0x8808) används för att bära pauskommandot, med kontrollopkoden inställd på 0x0001 ( hexadecimal ). Endast stationer som är konfigurerade för full duplex kan skicka PAUSE-ramar. När en station vill pausa den andra änden av en länk, skickar den en pausram till antingen den unika 48- bitars destinationsadressen för denna länk eller till den 48-bitars reserverade multicast-adressen 01-80 -C2-00-00- 01 . Användningen av en välkänd adress gör det onödigt för en station att upptäcka och lagra adressen till stationen i andra änden av länken.

En annan fördel med att använda denna multicast-adress uppstår genom användningen av flödeskontroll mellan nätverksväxlar. Den speciella multicast-adress som används väljs från ett adressintervall som har reserverats av IEEE 802.1D -standarden som specificerar funktionen hos switchar som används för bryggning . Normalt kommer en ram med en multicast-destination som skickas till en switch att vidarebefordras till alla andra portar på switchen. Detta intervall av multicast-adresser är dock speciellt och kommer inte att vidarebefordras av en 802.1D-kompatibel switch. Istället förstås ramar som skickas till detta område som ramar avsedda att endast påverkas inom omkopplaren.

En pausram inkluderar den period av paustid som begärs, i form av ett tvåbyte ( 16-bitars), heltal utan tecken (0 till 65535). Detta nummer är den begärda paustiden. Paustiden mäts i enheter för paus "kvanta", där varje enhet är lika med 512 bittider .

År 1999 hade flera leverantörer stöd för att ta emot pausramar, men färre implementerade att skicka dem.

frågor

En ursprunglig motivering för pausramen var att hantera nätverksgränssnittskontroller (NIC) som inte hade tillräckligt med buffring för att hantera fullhastighetsmottagning. Detta problem är inte lika vanligt med framsteg i busshastigheter och minnesstorlekar. Ett mer troligt scenario är överbelastning av nätverket inom en switch. Till exempel kan ett flöde komma in i en switch på en länk med högre hastighet än den det går ut, eller flera flöden kan komma in över två eller flera länkar som totalt sett är mer än en utgångslänks bandbredd. Dessa kommer så småningom att förbruka någon mängd buffring i switchen. Om du blockerar den sändande länken kommer dock alla flöden över den länken att försenas, även de som inte orsakar någon överbelastning. Denna situation är ett fall av head-of-line blockering (HOL) och kan inträffa oftare i kärnnätsväxlar på grund av det stora antalet flöden som i allmänhet aggregeras. Många switchar använder en teknik som kallas virtuella utdataköer för att eliminera HOL-blockeringen internt, så de kommer aldrig att skicka pausramar.

Efterföljande ansträngningar

Trängselhantering

En annan insats påbörjades i mars 2004 och i maj 2004 blev den IEEE P802.3ar Congestion Management Task Force. I maj 2006 reviderades arbetsgruppens mål för att specificera en mekanism för att begränsa den överförda datahastigheten till ungefär 1 % granularitet. Begäran drogs tillbaka och arbetsgruppen upplöstes 2008.

Prioriterad flödeskontroll

Ethernet-flödeskontroll stör Ethernet-klassens tjänst (definierad i IEEE 802.1p ), eftersom data för alla prioriteringar stoppas för att rensa befintliga buffertar som också kan bestå av lågprioritetsdata. Som en lösning på detta problem Cisco Systems sin egen utökning av prioritetsflödeskontroll till standardprotokollet. Denna mekanism använder 14 byte av 42-byte utfyllnad i en vanlig pausram. MAC-kontrollopkoden för en prioriterad pausram är 0x0101. Till skillnad från den ursprungliga pausen indikerar Priority Paus paustiden i kvanta för var och en av åtta prioritetsklasser separat. Utvidgningen standardiserades därefter av projektet Priority-Based Flow Control (PFC) som godkändes den 27 mars 2008, som IEEE 802.1Qbb. Utkast 2.3 föreslogs den 7 juni 2010. Claudio DeSanti från Cisco var redaktör. Arbetet var en del av arbetsgruppen för överbryggande av datacenter , som utvecklade Fibre Channel over Ethernet .

Se även

externa länkar