Inkapsling (Datornätverk)
Inkapsling är en process inom datorkommunikation. I normalfallet infogas data från lager N i en protokollstack, i datapaket (Protocol Data Units), på lager N-1, eventuellt efter att ha delats upp i mindre datasegment eller paketfragment. Det nya paketet förses pakethuvud och eventuell en svans bestående av styrdata såsom adressinformation och felupptäckande kod. På mottagarsidan packar motsvarande lager upp paketet genom att ta bort kontrolldata och eventuellt sätta samman paketfragment eller datasegment till större paket, filer eller meddelanden. Varje lager kan på detta vis sköta en väldefinierad och strikt avgränsad uppgift. Man kan likna processen vid hur ett brev förses med detaljerat brevhuvud, läggs i ett kuvert med adressetikett, som läggs i och tas ut ur olika säckar, lådor och containrar med sina adressetiketter. Ansvariga på en viss nivå behöver inte bry sig om innehållet, utan enbart om adressetiketten på den nivån. TunnlingUndantag från ovanstående är tunnling, som är en form av inkapsling som bryter mot kommunikationsstackens ordningsföljd. Data från ett visst lager inkapslas i paket på samma eller högre nivå. Cross-layer-optimeringInkapsling och skiktade protokoll är inte optimalt ur alla synvinklar (lastens vikt blir större, och samma information upprepas på adressetiketterna), men ger flexibilitet. På samma sätt är skiktade protoll inom datakommunikation inte alltid optimala, utan kan fördröja kommunikationen och lägga till extra overhead, men ger flexibilitet så att ett lager kan förändras utan att hela systemet behöver anpassas. Inom forskning studeras ibland cross-layer-optimering. Detta innebär att man frångår protokollstackens strikta uppdelning för att effektivisera resursutnyttjandet, och utnyttja information från andra lager. Detta kan exempelvis utnyttjas i vissa routingprotokoll och paketschemaläggningsalgoritmer för att åstadkomma differentierad Quality of Service eller anpassa till tillfälliga störningar på en radiokanal. ExempelEftersom den vanligaste protokollstacken för nätverk idag är TCP/IP-modellen, så exemplifieras processen här med HTTP-meddelanden som inkapslas i TCP-segment, som inkapslas i IP-datagram, som inkapslas i Ethernetramar. ApplikationsdataI TCP/IP-modellen förses ofta data som skall skickas med ett huvud med metainformation på applikationsnivån. Detta huvud varierar beroende på angivet protokoll. Så här kan ett utdrag se ut från en HTTP-överföring, när servern har svarat: HTTP/1.x 200 OK Date: Wed, 02 Jan 2008 18:28:49 GMT Server: Apache X-Powered-By: PHP/5.1.2 Content-Language: sv Last-Modified: Wed, 02 Jan 2008 17:48:42 GMT Content-Encoding: gzip Content-Length: 16517 Content-Type: text/html; charset=utf-8 Connection: keep-alive Efter detta huvud följer de faktiska data som är överföringens syfte att förmedla. TCP-segment eller UDP-datagramProtokollet TCP eller UDP delar vid behov upp applikationsdatan i mindre datagram, kallade segment på denna nivå. Applikationsnivåns eventuella huvud är som vilken data som helst i segmentet och behöver inte dupliceras i varje enstaka datagram. IP-paketSegmenten förses med ett IP-huvud och blir då IP-paket. Segmenten kan vid behov också delas upp i mindre delar för att rymmas i dessa. IP-huvudet innehåller bland annat adress för mottagaren och avsändaren. Normalt är IP-paketen intakta hela vägen från sändare till mottagare. Ethernet-ramIP-paket som skickas på lokala nätverk som använder Ethernet eller Token Ring, men för det mesta också de som skickas på WAN, kapslas in i s.k. ramar. Vilket innebär att de förses med huvud och fot, också kallad svans. Vid behov kan IP-paketen behöva delas upp för att rymmas inuti Ethernet-ramen. Ethernetramen används bara för ett enda hopp mellan nätverksnoder. Ett IP-paket kan alltså komma att kapslas in i (och tas ut ur) åtskilliga ramar. Fysiska signalerPå den fysiska nivån omvandlas ramarna till elektriska, optiska eller radiovågssignaler och överförs bit för bit eller symbol för symbol. Se även |