1. Nettlaget - generelt
-
a) Gi en beskrivelse av hovedoppgavene til nettverkslaget, og knytt dette opp til begrepene pålitelig/upålitelig og forbindelsesfri/forbindelsesorientert.
Hovedoppgaven til nettlaget er å transportere pakker fra SAP på toppen av avsenders nettlag, gjennom nettet og til SAP på toppen av mottakers nettlag. Ofte vil pakkene måtte passere mange rutere underveis. Nettlaget er det laveste laget som tar seg av ende til ende transmisjon, i motsetning til linklaget som håndterer flytting av rammer over enkeltlinker. Nettverkstjenesten kan være forbindelsesorientert, eller -fri. Uavhengig av dette er oppgavene til nettlaget adressering og ruting. Dersom tjenesten er forbindelsesorientert, må nettlaget i tillegg ha støtte for glidende vindu, flytkontroll, og metningskontroll. Upålitelig forbindelsesfri tjeneste representert ved Internett, imotsetning til forbindelsesorientert pålitelig tjeneste som kan knyttes til telefonsystemer.
-
b) Gi eksempler på lag 3 protokoller i TCP/IP-modellen som er hhv forbindelsesorienterte og -løse.
TCP og UDP hhv
2. Nettlaget - Ruting/forwarding
-
Forklar hva som liggger i de tre datagram, virtuell forbindelse og kilderuting. Beskriv fordeler og ulemper ved dem.
Datagram: hver pakke inneholder den komplette adressen til destinasjonen. Switchen/ruteren benytter så denne informasjonen til å avgjøre hvor pakken skal sendes videre. Datagram er veldig enkle å sende, og kan sendes til enhver tid til enhver node, uten at avsender trenger bekymre seg for hvilken vei pakken tar. Imidlertid er det ikke garantert at datagram når målet sitt; de kan gå tapt på veien, og avsender har ingen måte å finne ut av dette. En annen effekt, som normalt er uønsket, er at den innbyrdes rekkefølgen av datagram kan endres, noe som kan forekomme når ulike datagram følger ulike veier gjennom nettet. Denne rutingmetoden medfører også noe kompleksitet for ruterne når det gjelder å bygge rutingtabeller. En siste draw-back er at samtlige pakker må inneholde destinasjonsadressen.
Virtuell forbindelse (virtual circuit, VC): en VC vil si at alle pakker fra en bestemt node, X, følger samme vei til en bestemt node, Y. For at en VC skal fungere må det først opprettes en forbindelse, ved at den host som ønsker å opprette forbindelsen sender en setup-message. Denne spesielle pakken vil da traversere nettet og sette av ressurser i de ruterne den er innom. Hver ruter som kan tilby VC'er, må vedlikeholde en tabell over de VC'er den har. Fordelen er at hver pakke som sendes kun trenger inneholde VCI, noe som er betydelig mindre enn en komplett adresse. I tillegg besørger VC at alle pakkerekkefølgen bevares. På den annen side er VC'er sårbare overfor brudd i kretsen; skulle en link/ruter gå ned må hele kretsen reetableres.
Kilderuting: avsenderen er ansvarlig for at pakken inneholder den info som behøves for å få den frem til mottaker. Dvs at den må legge inn samtlige adresser/porter pakken skal passere underveis. Fordelen her er at ruterne blir svært enkle, mens avsenderen blir mer kompleks ved at den må kjenne til hele nettverket. Overhead i pakkene kan bli uforskammet stort, avhengig av hvor mange rutere pakken skal passere.
-
Hvilke hovedklasser rutingalgoritmer finnes for nettverkslaget? Gi eksempler, og forklar kort hvordan de virker.
ikke-adaptiv ruting: rutingtabellene beregnes på forhånd basert på topologi og evt. antatt belastning.
adaptiv ruting: rutingtabellen kan ikke forandres dynamisk når linjer brytes eller trafikk endres.De tre hovedklassene algoritmer er distance vector, link state og hierarkisk ruting. Distance Vector er ruting med avstandsvektorer (Bellmann-Ford algoritmen, ARPANET inntil 1979). Hver ruter opparbeider en tabell med avstand og vektor til alle andre noder. Nodene kjenner i utgangspunktet bare sine egne naboer, men ettersom denne info spres i nettet , kjenner alle nodene avstand og veil til alle andre. Dette gjøres ved at alle noder informerer sine naboer om sin egen kjennskap til andre noder i form av (Destination,cost) tupler. Nodene som mottar disse vil da oppdatere sine interne rutetabeller bestående av (Destination,Cost,Nexthop)-tupler, og bringe disse videre til sine egne naboer. Denne info spres i to tilfeller: ved faste protokollavhengige intervall, samt ved såkalte trigged updates (når man har oppdatert sin egen tabel)
Link state ruting er basert på Dijkstras shortest path algoritme hvor alle noder er kjent med hele nettets topologi. I Internett benyttes Open Shortest Path First. Flodbølgeprinsippet benyttes for å etablere graf over topologi. Linktilstanden spres ved hjelp av såkalte link-state packets (LSP), som inneholder følgende: ID til LSP sitt opphav, liste av direkte tilkoblede naboer og kost tilknyttet disse, sekvensnr og TTL.
-
Datagram må rutes som separate pakker, mens alle pakker i en forbindelsesorientert transmisjon følger samme vei. Betyr dette at nett som støtter virtuelle kretser aldri trenger å rute isolerte pakker mellom to steder?
For å rute en enkelt pakke mellom to steder i en forbindelsesorientert omgivelse, må man likevel etablere og koble ned en VC. Man må derfor koble opp, sende pakke og koble ned med all den overhead dette innebærer. Det er selvsagt ikke umulig å sende enkeltpakker over en VC, snarere et spesialtilfelle.
-
Vil pakker som sendes gjennom en virtuell krets noen gang komme frem i en annen rekkefølge enn de ble utsendt i ?
Dette vil ikke være ønskelig, fordi man i så fall må innføre buffring i endemaskinen og sortere pakkene ved mottak. Man kunne altså like gjerne ha benyttet datagram. Reordning kan heller ikke forekomme siden samtlige pakker passerer de samme rutere i samme rekkefølge