Avdeling for informasjons- teknologi CFH/28.09.04 Løsningsforslag til eksamen i Datakommunikasjon IAI20202 7. november 2003 09.00 13.00 Ingen hjelpemidler tillatt Alle delspørsmål teller i utgangspunktet like mye. Karakteren settes allikevel ut fra en helhetsvurdering av besvarelsen. Det er tillatt å benytte engelske ord og uttrykk i besvarelsen. Forsøk å svare kort og konsist der det er mulig. Oppgavesettet består av totalt 4 sider. Studenten er selv ansvarlig for å kontrollere at oppgavesettet er fullstendig. Side 1
1. Applikasjonslaget a) HTTP kan benytte både persistente og ikke-persistente (non-persistent) forbindelser. Forklar forskjellen på en HTTP-overføring med en persistent og en ikkepersistent forbindelse. Hvilke fordeler har man med persistente forbindelser for HTTP? Ikke-persistent: hvert objekt knyttet til en web-side overføres i en egen TCPforbindelse. Persistent: alle objekter tilhørende en web-side kan overføres ved hjelp av samme TCP-forbindelse. Fordelene med persistente forbindelser er derfor at serveren ikke trenger å opprette mer enn én TCP-forbindelse, noe som er ressursbesparende for en server med mange b) I forbindelse med HTTP og web, benyttes noen ganger cookies. Forklar hvordan cookies fungerer og hvorfor det benyttes. Når en nettleser ber om en side på et nettsted som benytter cookies, vil serveren generere et cookie-nummer og lage et innslag i nettstedets database for dette IDnummeret. Serveren vil deretter gi en respons til nettleseren som inneholder dette cookie-nummeret (i Set-cookie:-header-feltet). Nettleseren lagre dette nummeret sammen med server-navnet i en cookie fil på brukerens maskin. Ved alle etterfølgende forespørsler til det samme nettstedet, vil nettleseren inkludere dette cookie-nummeret. Cookies benyttes for at nettsteder skal kunne følge brukerens bevegelser på nettstedet, f eks huske hvor langt han/hun var kommet i et gjøremål, lage handlekurvfunksjonalitet osv. Dette er nødvendig siden HTTP er tilstandsløs og ikke husker foregående forespørsler. c) Gjør kort rede for begrepet socket. Socket er grensesnittet mellom en applikasjon og transportlagsprotokollen (TCP eller UDP). d) I DNS kan det benyttes både rekursive og iterative forespørsler (queries). Forklar forskjellen på disse. Hvorfor benyttes normalt iterative forespørsler mot rotnavnetjenere? Rekursiv forespørsel: navnetjeneren fullfører forespørselen på vegne av den som spør og returnerer resultatet. Iterativ forespørsel: navnetjeneren gir den som spør adressen til en annen navnetjener som så må spørres. Man gjør normalt iterative forespørsler mot rot-navnetjenere for ikke å belaste disse med å måtte fullføre forespørsler på andres vegne. De har nok å gjøre som de har. 2. Transportlaget a) Anta at maskin A ønsker å opprette en TCP-forbindelse med maskin B. Lag en skisse som viser oppkoblingssekvensen mellom A og B og beskriv hva som skjer. Side 2
klient tjener SYN, seq = client_isn SYN, ACK, seq = server_isn, ack = client_isn + 1 ACK, seq = client_isn + 1, ack = server_isn + 1 Den som tar initiativet til kommunikasjonen, sender et segment med SYN-flagget satt, og inkluderer sitt tilfeldig valgte sekvensnummer, client_isn (ISN = initial sequence number). Dersom motparten aksepterer forbindelsen, svarer den med et segment med SYNflagget satt, og inkluderer sitt eget initielle sekvensnummer, server_isn, samt kvitteringsnummeret for motpartens SYN-segment (ack-verdi = client_isn + 1). ACKflagget viser at sekvensnummeret i ack-feltet er en kvittering for mottatte data. Initiativtager kvitterer til slutt på motpartens SYN-segment. b) Forklar kort begrepene flytkontroll og metningskontroll. (Forklaringen kan gjøres på generelt grunnlag. Med dette menes at det ikke er nødvendig å gå inn på hvordan det gjøres i TCP) Flytkontroll: mekanisme for å hindre at sender oversvømmer mottager med data. Metningskontroll: mekanisme for å hindre at nettet blir mettet (oversvømmet med pakker). c) Forklar hva som foregår når TCP mottar tre duplikatkvitteringer. Senderen sender en rekke segmenter rett etter hverandre. Ett av dem kommer bort. Mottager vil da kvittere for det siste segmentet som kom i sekvens hver gang han får et nytt segment. Kall de segmentene som sendes for nummer 1, 2, 3, 4, 5, 6 og 7. Anta nå at segment 2 forsvinner mens de andre kommer fram. Mottager vil da sende kvittering for segment nummer 1 når han mottar de etterfølgende segmentene. Når han har mottatt segment 3, 4 og 5, vil mottager ha sendt kvittering for nr 1 fire ganger, og sender vil forstå at segment 2 er kommet bort selv om timeren ikke er løpt ut. d) TCP vil tolke begge de to hendelsene timeout og mottak av tre duplikatkvitteringer (ACK) som at nettet er i metning. Forklar hvorfor dette normalt er en fornuftig tolkning. Fordi det at et segment forsvinner som regel skyldes at det har blitt kastet pga overflow i et ruterbuffer. I noen tilfeller vil det kunne skyldes at en ramme er kastet på lag 2 pga bitfeil. e) Hvordan reagerer TCPs metningskontrollmekanisme på en timeout? Segmentet blir retransmittert. Side 3
Metningsvinduet (CongWin) settes til én MSS (maximum segment size). Threshold (parameteren som angir hvor TCP går fra slow start-fasen til congestion avoidance-fasen) settes til halvparten av verdien som metningsvinduet hadde da timeouten inntraff. TCP går i slow-start f) I TCP benyttes følgende tre ligninger: 1) EstimatedRTT = (1 α) EstimatedRTT + α SampleRTT 2) DevRTT = (1 β) DevRTT + β SampleRTT EstimatedRTT 3) TimeoutInterval = EstimatedRTT + 4 DevRTT Forklar betydningen av disse tre ligningene, og beskriv hva de benyttes til. I første ligning estimeres en verdi for RTT (round trip time, rundetiden, dvs. tiden det tar for et lite segment å gå fra sender til mottager og tilbake igjen). Dette gjøres ved at RTT måles hyppig (omtrent hver RTT). Den RTT-verdien man da får for et segment, kalles SampleRTT. Denne benyttes til å lage et estimat for den forventede RTT. α er en vektfaktor, normalt 0.125. Deretter (ligning 2) gjøres et estimat av hvor stor variasjonen i RTT er for øyeblikket (β er en vektfaktor, normalt 0.25). Jo større forskjellen er mellom den sist målte verdien av RTT og den estimerte verdien av RTT, jo større vil verdien av DevRTT være. Til sist beregnes timeout-intervallet. Dette settes til den estimerte rundetiden pluss en sikkerhetsmargin som er avhengig av hvor store variasjoner vi for øyeblikket har i rundetiden. Timeout intervallet er den tiden senderen venter på en kvittering før segmentet anses for å være tapt og må retransmitteres. g) Forklar hva portnumre brukes til. Portnumre brukes til å adressere en bestemt prosess i en maskin. 3. Nettlaget a) Gitt følgende IP-adresse: 192.168.21.0/10. Hva angir denne adressen? Den angir at de første 10 bit av adressen 192.168.21.0 er nettadressen, mens de 22 siste bit er maskinadressen. Det var en liten felle i denne oppgaven. 192.168.0.0 192.168.255.255 er et privat - adresseområde. Dersom man benytter bare de 10 første bit til nettadresse, har vi mulig adresseområde fra 192.128.0.0 til 192.191.255.255. Dette går tvers gjennom det private adresseområdet, og er derfor ikke et lovlig adresseområde. b) Forklar hvorledes NAT (network address translation) virker. Side 4
NAT-ruter må: For utgående datagrammer: erstatte avsender IP-adresse og portnummer med NAT IP-adresse og nytt portnummer. Maskiner som svarer vil da bruke NAT IP-adresse og det nye portnummer som destinasjons-adresse. huske (i NAT translasjonstabell) hvert (avsender IP-adresse, portnummer) til (NAT IP-adresse, nytt portnummer) translasjonspar innkommende datagrammer: erstatte NAT IP-adresse og det nye portnummer i destinasjonsfelter med de korresponderende avsender IP-adresse og portnummer lagret i NAT-tabell c) Det er i boka beskrevet to teknikker slik at IPv4 og IPv6 kan sameksistere i et nett. Disse er betegnet dual-stack og tunneling. Beskriv disse teknikkene. Dual stack: ruteren kjører samtidig både IPv4 og IPv6, og kan håndtere begge typer datagrammer. Tunneling: Et IPv6-datagram som skal inn på en del av nettet som kun kjører IPv4, legges inn i datafeltet på et IPv4-datagram. Deretter rutes det gjennom IPv4-delen av nettet inntil det kommer til en IPv6-ruter som pakker opp datagrammet og plukker ut IPv6-datagrammet fra data-delen. d) Lag en skjematisk skisse av en ruters viktigste deler. Angi de viktigste oppgavene til hver enhet. Oppslag og videresending Linjeterminering Linklagsprosessering Utgangsbuffer og bufferhåndtering Linjeterminering Linklagsprosessering Svitsjematrise Linjeterminering Linklagsprosessering Oppslag og videresending Linjeterminering Linklagsprosessering Utgangsbuffer og bufferhåndtering Ruterprosessor Linjeterminering: fysisk lag Linklagsprosessering: innramming, feilsjekking, CSMA/CD osv Oppslag og videresending: oppslag for å finne ut hvilken utgang datagrammet skal overføres til og sende datagrammet inn på svitsjematrisen. Svitsjematrise: knytter en inngang sammen med ønsket utgang Ruterprosessor: ruterens CPU, kjører rutingprotokollen og holder styr på rutinginformasjon og rutingtabeller. Distribuerer rutingtabellen til hver av inngangene. Utgangsbuffer og bufferhåndtering: mellomlagrer pakker for utsending, styrer hvilken pakke som blir valgt for utsending (scheduling og trafikkforming (policing)). Side 5
e) Forklar hvordan head-of-the-line (HOL) blokkering kan oppstå i en ruter. Grønn pakke som skal til ledig utgang, blir allikevel stående i kø på inngangen fordi rød pakke foran i køen blokkerer veien. Denne røde pakken konkurrerer med en annen rød pakke om å få komme til samme utgang. Den andre vinner, og den røde pakken blokkerer derfor veien for den grønne. f) Forklar virkemåten til mobil IP i grove trekk. hjemmenett HA (ruter) 2. FA (ruter) 3. MN Internett fremmed nett CN 1. ruter MN (mobil node) registrerer seg hos en FA (fjernagent) som informerer HA (hjemmeagent) om dette. CN (corresponding node) sender til mottagerens normale IP-adresse. HA avskjærer denne IP-pakken, legger den inn i et nytt datagram og setter på MNs care-of-adresse (COA), og sender den til MNs nåværende FA, som sørger for å levere den til MN. 4. Linklaget a) I Ethernet benyttes CSMA/CD som tilgangsprotokoll (eller MAC-protokoll). Forklar hvordan CSMA/CD fungerer. Når en node skal sende en ramme, lytter den først på nettet for å se om det er andre som sender. Side 6
- Dersom mediet er ledig, starter den sending. Mens den sender fortsetter noden å lytte etter kollisjoner. Dersom den ikke oppdager noen kollisjon under utsendingen av rammen, regner noden seg ferdig med den sendte rammen. Dersom den oppdager en kollisjon, avbryter den straks sendingen av rammen og sender ut et jamme-signal. Deretter gjør den en eksponentiell backoff, dvs at den tilfeldig velger en ventetid fra en eksponentielt økende mengde. - Dersom nettet/mediet er opptatt, venter noden inntil den andre sendingen er over pluss en kort tid, og starter så sendingen av rammen. b) Hva benyttes ARP (address resolution protocol) til? Forklar virkemåten til ARP. ARP benyttes når man kjenner en nodes IP-adresse og ønsker å finne dens MACadresse. Virkemåte: den som ønsker å finne en nodes MAC-adresse, sender ut en ARPforespørsel i en kringkastingsramme på lokalnettet inneholdende IP-adressen til den noden den ønsker å finne MAC-adressen til. Den noden som gjenkjenner sin IPadresse, svarer med en ARP-respons inneholdende dens MAC-adresse, adressert direkte til den som spurte. c) Man sier ofte at en bro er selvlærende. Forklar hvordan en bro lærer. Når en ramme kommer inn på et av broens interface, forstår broen at avsenderen må ligge på den delen av lokalnettet som er knyttet til nettopp dette interfacet. Den lager derfor et innslag i sin bro-tabell, som sier at noden med denne MAC-adressen ligger på dette interfacet. Neste gang det kommer en ramme adressert til denne MACadressen, vil broen vite hvilket interface den skal videresende rammen til. 5. Multimediakommunikasjon over Internett Figuren nedenfor kan brukes ved besvarelse av delspørsmålene i denne oppgaven. Figuren viser generering, mottak og avspilling av pakker som tilhører en telefonsamtale som foregår over Internett. pakker genererte pakker mottatte pakker avspillingsforsinkelse p - r avspillingsforsinkelse p - r tid r p p' Side 7
a) Hvorfor har kurven som viser mottatte pakker en annen form enn kurven som viser genererte pakker? Dette skyldes at pakkene opplever ulik forsinkelse gjennom nettet (jitter). b) I multimedieapplikasjoner opererer man ofte med to former for pakketap: nettverkstap (network loss) og forsinkelsestap (delay loss). Forklar kort hvordan disse typer pakketap oppstår. Nettverkstap: en pakke kastes i en ruter inne i nettet pga oversvømmelse i ruterens buffer (evt. kan en pakke kastes pga bitfeil). Forsinkelsestap: en pakke kommer for sent fram til mottageren til å bli avspilt til rett tid, og må derfor kastes. c) Hva angir begrepet avspillingsforsinkelse ( playout delay )? Hvilke fordeler har man med en stor avspillingsforsinkelse? Hvilke fordeler har man med en liten avspillingsforsinkelse? Avspillingsforsinkelse er tiden som går fra mottager begynner å motta data til den begynner avspillingen av disse data. Fordeler med stor avspillingsforsinkelse: eliminerer (i stor grad) forsinkelsestapene. Fordelere med liten avspillingsforsinkelse: bedre interaktivitet (f eks: ved telefonsamtale over nettet, kan ikke avspillingen av tale hos mottageren skje mer enn ca 400 ms etter at avsenderen ytret seg). Side 8