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:

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

Försök 2: En mellanliggande router och en störkälla
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