Aktiva nätverk
www.e.kth.se/~e94_rab/aktivhtml.html
av Ralf Boström e94, 740327-0635
Inledning
Ett aktivt nätverk har många fördelar jämfört med ett vanligt passivt nätverk.
De aktiva nätverken tillåter användarna att själva programmera
in funktioner i nätverken, vilket gör nätverken mer flexibla och gör det lättare
att införa nätverkstjänster med olika krav på QoS (quality of service).
Tidigare har utvecklingen av nya nätverkstjänster bromsats av det faktum att
man varit tvungen att invänta införandet av nya standarder i nätverken innan
tjänster med nya krav på QoS har kunnat användas.
Med införandet av aktiva nätverk blir användarna inte längre beroende av
nya standarder utan kan själva programmera nätverken att uppföra sig efter
deras specifika behov. Möjligheten att kunna styra nätverken medför också att man
bättre kan optimera nätverket för varje enskild tjänst, vilket ökar nätverkets
prestanda.
I den här skriften redogörs för hur de aktiva nätverken är
uppbyggda och fungerar, speciellt noggrant beskrivs de aktiva noderna som
utgör grunden för ett aktivt nätverk. Denna rapport kommer också att beskriva principerna
för och ge exempel på de sk aktiva protokollen, som är benämningen på dom
protokoll som utnyttjar möjligheten att programmera funktionaliteten i aktiva
nätverk. I rapporten diskuteras även olika synvinklar på prestandan i ett aktivt
nätverk jämfört med prestandan i ett "vanligt" passivt nätverk. Slutligen
beskrivs en implementation av ett aktivt nätverk och de mätningar
som har gjorts på detta.
Vad är ett aktivt nätverk?
Ett vanligt nätverk fungerar som en passiv förmedlare av data. Nätverkets enda
uppgift är att transportera paket av data mellan en sändare och en mottagare.
Paketen som ankommer till mottagaren ser precis ut som de paket som
ursprungligen lämnade sändaren.
I ett aktivt nätverk kan paketens innehåll ändras på vägen över nätverket. Det
aktiva nätverket har möjlighet att manipulera datat i paketen. Det är i nätverkets
noder, dvs i bryggor, routrar och switchar, som dessa manipuleringar sker.
De noder i nätverket som har möjlighet att genomföra manipuleraringar av paket
brukar benämnas aktiva noder. Ett aktivt nätverk består alltså av en eller flera
aktiva noder och kan även innehålla ett antal vanliga noder, som inte har
möjlighet att modifiera paketen. Som regel brukar de aktiva noderna förbinda
länkar med stora skillnader i bandbredd, eftersom en aktiv nod har möjlighet
att modifiera paketen så att övergången mellan länkarna sker smidigt.
Aktiva nätverk öppnar möjligheter för en rad nya applikationer och kan användas
för att minska en del av de problem som finns i dagens nätverk med tex stockningar
(congestion) och dåligt utnyttjande av bandbredd.
Aktiva noder
En aktiv nod innehåller en samling funktioner som kan appliceras på de inkommande
paketen. En aktiv nod har också ett antal parametrar som beskriver dess tillstånd.
Tillståndet består av följande delar: en ingångskö, en utgångskö samt en samling generiska
parametarar som tex routingtabeller och tabeller för switchning. Paketen som ankommer
till den aktiva noden innehåller en identifikator som talar om vilken funktion som ska
appliceras på dom samt eventuellt några inparametrar till funktionen.
Hur funktionen manipulerar paketen beror dels på de inparametrar som följde
med paketet och dels på den aktiva nodens tillstånd (antalet paket i köerna mm).
Ett paket kan tex komma att behandlas på ett sätt då det är stockningar på
länkarna och på ett annat sätt när det inte är det.
Fördefinierade- och programmerbara aktiva noder
Man skiljer mellan aktiva noder med fördefinerade funktioner och programmerbara
aktiva noder. I de förra har funktionerna implementerats vid tillverknigen eller så
har de implementerats av den person som är anvarig för driften av noden.
En programmerbar nod är mer allmän än en fördefinierad nod. Den tillåter att användarna
själva online kan programmerar in funktioner i noden. En användare som använder
en applikation som kräver att noderna uppför sig på ett visst sätt kan i förväg skicka
paket med programkod till noderna som definerar de funktioner som ska appliceras på
de efterföljande paket som tillhör applikationen. Den här överföringen av programkod till noderna
sker lämpligtvis automatiskt mha någon typ av aktivt protokoll som applikationen använder.Genom att på detta sätt relativt
enkelt kunna införa egna funktioner i noderna öppnas möjligheter för användarna att
införa QoS (quality of service) som är anpassat just för den applikation som dom använder.
Noderna i ett aktivt nätverk behöver således inte innehålla stöd för alla olika applikationer
utan det kan applikationerna själva dynamiskt programmera in i noderna.
Aktiva protokoll
Skillnaden mellan ett aktivt protokoll och ett vanligt protokoll är att dom vanliga
protokollen endast kommunicerar end-to-end, dvs kommunikationen sker mellan
sändaren och mottagaren. Ett aktivt protokoll kan även kommunisera med noder
som ligger mellan sändaren och mottagaren och programmera in funktioner i dessa.
Nedan följer några exempel på aktiva protokoll som med fördel skulle kunna
användas i aktiva nätverk.
Lagring av webbdokument i nodernas cacheminne: Ett aktivt protokoll kan användas
för att snabba upp hämtningen av webbdokument från en webbserver, för klienter som ligger
inom samma domän. Dom noder som ligger mellan servern och klienterna programmeras
att sparar dom senast hämtade webbdokumenten i ett cacheminne. Om en förfrågan från en
klient anländer till en mellanliggande nod, och noden har det efterfrågade webbdokumentet
i sitt cachehminne (beroende på att en annan klient inom samma domän tidigare efterfrågat
samma dokument), kan noden skicka över det efterfrågade webbdokumentet till klienten. På så
sätt flyttas informationen närmare klienterna och överföringen av dokumenten går fortare.
Auktioner online: Antag att en server har en auktion online och mottager anbud från
olika klienter som är utspridda över Internet. Ibland kommer anbuden från klienterna
att vara för låga och då måste servern behandla dessa anbud och skicka ett meddelande
till den berörda klienten som talar om att anbudet var för lågt. Detta förfarande upptar en
stor del av serverns resurser och medför att dess arbete går långsamt. Det skulle
därför vara fördelaktigt om man kunde få noderna som ligger mellan servern och klienten
att överta ansvaret att meddela klienterna vid för låga anbud. Då kan servern fås
att helt ägna sitt arbete åt dom relavanta anbuden.
Mha ett aktivt protokoll som programmerar dom mellanliggande noderna med det högsta budet
kan servern överlämna denna funktion åt noderna. Protokollet programmerar noderna till att
dynamiskt cacha det aktuella budet, jämföra de inkommande anbuden med detta, och i de
fall anbuden är för låga, meddela klienterna om detta.
Mixning av data från sensorer: Antag att man har ett antal sensorer utspridda på olika
ställen i ett nätverk och att man vill mixa ihop signalerna från de olika sensorerna. Det kan
tex vara mikrofoner som registrerar olika ljud som man vill höra samtidigt. Det kommer att
innebära mycket arbete för servern att själv mixa ihop alla signalerna. Man kan underlätta
serverns arbete genom att låta de noder som ligger mellan sensorerna och servern , och
mottar signaler från fler än en sensor, att själva mixa ihop signalerna. På så sätt blir servern
avlastad och får ett mindre antal signaler att mixa ihop.
Media transformeringar: När man ska skicka ljud och bild över nätverk används olika
tekniker för att komprimera datat. Vissa tekniker komprimerar datat mer än andra vilket
medför att bilderna inte kan återges lika exakt. Beroende på vilka krav man har på bildernas
detaljrikedom använder man olika komprimeringsformat. Om man har mycket bandbredd
kanske man vill använda ett format som återger bilden väldigt exakt men inte komprimerar
den så mycket. Är den tillgängliga bandbredden mindre väljer man ett format som komprimerar
bilden mer. Men om man skickar bilder över flera nätverk kan ju den tillgängliga bandbredden
i de olika nätverken variera. I passiva nätverk måste sändaren välja ett visst
komprimeringsformat innan han skickar över bilden. I ett aktivt nätverk kan man dock
programmera noderna som ligger mellan sändren och mottagaren att själva välja
komprimeringsformat beroende på hur stor bandbredd som finns tillgänglig på nätverken.
På så sätt kan man optimera överföringen och minska risken för stockningar på länkarna
som förbinder noderna.
Prestanda i aktiva nätverk
Ett aktivt nätverk kan i många fall utföra operationer som gör att överföringen
av data sker effektivare. Men eftersom dessa operationer sker inuti själva
nätverket tar det längre tid för paketen att färdas från sändaren till mottagaren.
När man studerar ett aktivt nätverks prestanda är det därför viktigt att inte bara kolla
överföringshastigheten utan istället inrikta sig på hur applikationerna uppför
sig. Man bör alltså undersöka prestandan på applikationsnivå. Det händer ju också att
vissa paket avisas i ett aktivt nätverk för att minska den bandbredd som applikationen
använder. Detta är ju en fördel eftersom då lämnar man mer bandbredd åt andra
applikationer. Detta medför dock att det skickas färre paket och därmed minskar
överföringshastigheten vilket ju felaktigt kan tolkas som om det aktiva nätverket har
långsammare överföring. Det gäller alltså att inte stirra sig blind på
överföringshastigheten när man jämför aktiva nätverk med passiva nätverk.
Implementation och utvärdering av ett aktivt nätverk
I artikeln "An architecture for active networking" beskrivs en implementation av
ett aktivt nätverk som har gjorts på Georgia Institute of technology i Atalanta.
Nätverket innehåller 3 arbetsstationer vilka fungerar som sändare, mottagare
och störkälla. Genom att konfigurera störkällan så att den sänder ut paket på
nätverket kan man skapa stockningar vid den router som kopplas in mellan
sändaren/störkällan och mottagaren. Paketen som anländer till routrarna innehåller
en tuppel (f,m,a). f indentifierar den funktion som är är knuten till datat i paketet,
m är en vektor som talar om vilka av routerns tillståndsparametrar som funktionen
är beroende av och a är en vektor med eventuella inparametrar till funktionen.
Testapplikation
För att testa prestandan i nätverket använder man en applikation som
överför MPEG-komprimerade filmsekvenser mellan sändaren och mottagaren.
En filmsekvens kodad i MPEG-format består av 3 olika ramar (frames): I-, B-
och P-ramar. En I-ram och ett antal B- och P-ramar bildar tillsammans en
bildsekvens, en GOP (group of pictures), och måste avkodas tillsammans.
Mottagaren kan alltså inte avkoda bildsekvensen förrän samtliga ramar som
tillhör den bildsekvensen har anlänt.
Man vill jämföra hur prestandan i nätverket skiljer sig i de fall då routrarna
fungerar som vanliga passiva routrar och när man har programmerat in speciellt
för MPEG anpassade funktioner i dom. Dessa funktioner utför olika typer av
sk "smarta bortkastningar". Det innebär att routrarna ibland kastar bort speciellt
utvalda paket för att effektivisera överföringen. Hur paketen som kastas bort
väljs ut specifiseras av dom inprogrammerade funktionerna.
Dom funktioner som programmeras in i routrarna beskrivs nedan:
Partial Packet Discard (PPD): den metod som vanliga passiva routrar använder
sig av vid stockningar. När routerns köer är fulla slängs alla inkommande paket bort.
I de fall då routrarna ska fungera som passiva routrar kommer endast denna
funktion att finnas inprogrammerad.
Frame Level Discard (EMD): ser till att ett paket bara får ställas i routerns kö
om hela den ram som paketet tillhör också får plats i kön. Får ramen inte plats
slängs paketet bort. På så sätt undviker man risken för att mottagaren blir tvungen
att ta emot paket som den ändå inte kan avkoda pga att resten av ramen inte kom
fram.
Group of Picture Discard (GOP): Om en I-ram har blivit bortkastad ser
denna funktion till att även dom tillhörande P- och B-ramarna kastas bort. Detta är
fördelaktigt eftersom om inte I-ramen ankommer till mottagaren så kommer
P- och B-ramarna ändå att kastas bort av mottagaren, eftersom dom inte kan avkodas
utan I-ramen. P- och B-ramarna hade alltså bara tagit upp bandbredd i onödan
om dom hade skickats vidare till mottagaren.
Undersökna egenskaper
För att kunna utvärdera nätverkets uppförande i olika försök mäter man följande
egenskaper:
- Andelen mottagna I-ramar: ju fler I-ramar som anländer till mottagaren dessto fler
bildsekvenser anländer till mottagaren. Detta är alltså ett bra mått på den kvalitet
som filmen har hos mottagaren.
- Andelen paket som slängs bort av mottagaren: hur många paket som har skickats
från routern till mottagaren i "onödan". Ju fler paket som slängs bort av mottagaren
dessto sämre har nätets bandbredd utnyttjats.
Resultat
I försöken skickar sändaren ut paket med hastigheten 1 Mbps.
Försök 1: En mellanliggande router, ingen störkälla
- Ca 80% av I-ramarna anländer till mottagaren då GOP och EMD används.
Inga paket kastas bort vid mottagaren.
- Då endast PPD används anländer 60% av I-ramarna.
Ett litet antal paket slängs då bort hos mottagaren.
Försök 2: En mellanliggande router och en störkälla
- GOP och EMD klarar att överföra 80% av I-ramarna utan att några paket kastas
bort hos mottagaren.
- Med PPD anländer endast 50% av I-ramarna. Och så mycket som 95% av paketen
kastas bort av mottagaren.
Resultaten från de bägge försöken visar att det går att överföra bildsekvenser med högre
kvalitet när man använder ett aktivt nätverk. Från resultaten kan man också utläsa att
bandbredden utnyttjas bättre av det aktiva nätverket. Speciellt tydligt blir detta då man
har infört stockningar på nätverket.
Slutsatser
Aktiva nätverk ger applikationerna möjlighet att kontrollera nätverkets beteende.
Detta medför följande fördelar:
möjlighet till effektivare utnyttjande av bandbredden,
större möjlighet att undvika stockningar vid nätverksnoderna samt gör det
lättare att utveckla nya applikationer med olika krav på QoS.
Det har gjorts ett antal implementationer av aktiva nätverk, bla den implementation som
beskrevs i denna skrift. Mätningar på dessa nätverk har bekräftat de ovan beskrivna
fördelarna och det är därför troligt att användningen av aktiva nätverk kommer att bli
vanligare i framtiden.
Källor
Improving the Performance of Distributed Applications Using Active Networks
av Ulana Legedza, David J. Wetherall, John Guttag
An Architecture for Active Networking
av Samarat Bhattacharjee, Kenneth L. Calvert, Ellen W. Zegura
On Active Networking and Congestion
av Samarat Bhattacharjee, Kenneth L. Calvert, Ellen W. Zegura