TTM4100 Kommunikasjon, tjenester og nettverk

Denne siden baserer seg på mine tanker og tolkninger rundt emnet KTN. Informasjonen presentert på denne siden er hentet fra blant annet boken Computer Networking: A Top-Down Approach og dens nettside, samtaler med andre studenter, kompendium fra andre studenter og forelesninger ved NTNU. 

Emnebeskrivelse

Ved første øyekast kan KTN virke som et tørt og kjedelig fag, og det er det faktisk også til en viss grad. Men med riktig innstilling kan det også være ganske interessant. Tenk på det: hver dag bruker du telefonen din, er på internett, strømmer kanskje filmer på Netflix, holder deg oppdatert med nyheter i sanntid, og kommuniserer med venner, blant annet. Det er faktisk ganske verdifullt å ha en viss forståelse for hvordan alt dette faktisk fungerer, og det er nettopp det KTN handler om.

Det er et digert pensum i KTN, så her gjelder det å starte tidlig med lesingen, før du gjør uendelig med eksamensoppgaver. 

Med bare et enkelt Google-søk finner du mange KTN-kompendier som er ganske brukbare. Jeg vil likevel sterkt anbefale å lese læreboken og se så mange videoer som mulig på nettsiden til læreboken.

Lærebok/pensum

 - Book Cover

Boka som er pensum i dette emnet er Computer Networking: A Top-Down Approach av James F. Kurose og Keith W. Ross. 

Her er en link til nettsiden til boka, der finner du notater og ulike oppgaver som kan være hjelpsomme. 

Jeg hadde ikke boka fysisk, noe som gikk helt fint. Boka finnes som pdf-fil (da kan du spare litt penger). Men jeg anbefaler å ha den fysisk dersom du skal lese hele, bare fordi det er mer behagelig. 

Kompendium

Her har jeg samlet det jeg syntes var viktigst fra pensum. Det er også vedlagt som word-doc så du kan skrive det ut eller legge til ekstra informasjon hvis du vil det. 

ps: beklager litt miks av engelsk og norsk

Overblikk over pensum

 

Lag

Plassering

Funksjon

Fysisk lag     

Nettverkshardware

Håndterer den fysiske overføringen av data over nettverksmediet, inkludert elektriske, optiske eller trådløse signaler.                                                                                  

Datalinklag

Nettverksgrensesnittkort (NIC-er) og svitsjer

Gir pålitelig punkt-til-punkt dataoverføring, feildeteksjon og flytkontroll mellom direkte tilkoblede nettverksenheter.                                                                                  

Nettverkslag

Rutere

Ansvarlig for rutetilordning av pakker på tvers av flere nettverk, inkludert IP-adresseallokering, pakkevideresending og nettverksadressering.                                                            

Transportlag

Sluttsystemer (datamaskiner) og nettverksutstyr

Gir ende-til-ende dataoverføringstjenester, inkludert segmentering, pålitelig levering, flytkontroll og multiplexing/demultiplexing av datastrømmer.                                             

Applikasjonslag

Sluttsystemer (datamaskiner)              

Representerer ulike applikasjoner og tjenester som bruker nettverket, som nettlesing, e-post, filoverføring og andre protokoller på høyt nivå.                                                              

Application layer
Application layer

Dette laget håndterer applikasjonsprogrammene som bruker nettverket, og gir brukeren tilgang til nettverkstjenester som e-post, filoverføring og web surfing. En nettverksfunksjon ved applikasjonslaget er oversetting mellom hostname og IP-adresser (DNS). Pakken av informasjon på applikasjonslager kaller vi en melding (eng. message)

Protokoller
HTTP (HyperText Transfer Protocol)

HTTP er hjertet til internettet. Det er implementert i et klientprogram og et serverprogram. Programmene kommuniserer ved å sende meldinger til hverandre. Strukturen til disse meldingene er kontrollert av HTTP.  HTTP bruker TCP som sin underliggende transportprotokoll. Det er en stateless protokoll, som ikke vedlikeholder noe av informasjonen om klientene sine. HTTP kan både ha persistent og non-persistent forbindelser.

Non-persistent og persistent connections

Når en TCP-forbindelse blir etablert må applikasjonen bestemme seg for om hvert request/response-par skal sendes over en separat eller samme TCP-forbindelse.

User-server interaction

Som nevnt er HTTP-servere stateless, de lagrer ikke informasjon fra klienten. En server håndterer tusen TCP-tilkobligner samtidig, derfor ønsker de å idetifisere brukere for å begrense brukertilgangen og tilrettelegge for akkurat denne brukeren. Derfor brukes cookies. Dette tillater nettsteder å holde oversikt over brukere. Cookies har 4 komponenter:

  • Headerline i HTTP request meldingen med headerfelt Cookie
  • Headerline i HTTP response meldingen, med headerfelt Set-cookie
  • en cookie-fil lagret på brukerens endesystem og styrt av brukerens nettleser
  • en backend database på nettstedet
Web caching

Web cache/proxy server: en nettverksentitet som tilfredsstiller HTTP forespørsler på vegne av en webserver. Cachen har en egen lagringsenhet og holder kopier av nylige forespurte objekter

  1. nettleseren lager en TCP-tilkobling til nettbufferen og sender den en HTTP request for objektet på nettbufferen
  2. nettbufferen sjekker om den har en kopi lagret lokalt. Dersom dette er tilfellet returnerer nettbufferen det objektet med en HTTP-respons til klient-nettleseren
  3. dersom nettbufferen ikke har objektet, åpner nettbufferen en TCP-tilkobling til den originale serveren. Nettbufferen forespør om objektet, nettserveren sender objektet med en HTTP-response til nettbufferen
  4. når nettbufferen får objektet, lagrer den en kopi lokalt og sender en kopi i en HTTP response-melding, til klient nettleseren (over den eksisterende tcp-tilkoblingen)

Web cache (1) reduserer responstiden og (2) reduserer trafikken på institusjonens tilgangskobling til internettet, noe som igjen reduserer kostnader.

For å sjekke at versjonen av et objekt som er lagret på web cachen er den nyeste versjonen, sender web cachen en conditional GET melding til serveren. Det fungerer slik:

  1. Når en klient forespør et objekt, henter nettbufferen dette fra en webserver, og slenger på Last-Modified i headeren.
  2. Når en annen klient, en uke senere også forespør samme objekt, sender nettbufferen en conditional GET melding til serveren for å sjekke om objektet er endret på eller ikke.
SMTP (Simple Mail Transfer Protocol)

Dette er hovedapplikasjonsprotokollen for elektronisk post. Den bruker også TCP som sin underliggende transportprotokoll. SMTP fungerer ved å koble til en SMTP-server gjennom port 25, som er dedikert til SMTP-trafikk. Når en bruker sender en e-postmelding fra en e-postklient, som for eksempel Microsoft Outlook eller Gmail, så sender e-postklienten denne meldingen til SMTP-serveren. SMTP-serveren validerer og sender deretter e-postmeldingen til mottakerens SMTP-server gjennom internett. Hvis alt går bra og meldingen blir akseptert av mottakerens SMTP-server, så blir den til slutt levert til mottakerens innboks. SMTP er en push protocol, den sendende mailserveren sender en fil til en mottakende mailserver.

Post Office Protocol (POP3)

Det er en internettstandard for å hente e-postmeldinger fra en e-postserver til en e-postklient. Med POP3 tilgang kan Bob slette, lagre, markere og organisere mailene sine i mapper og strukturer på sin lokale maskin. Den foregår i tre faser, autorisasjon, transaksjonering og oppdatering.

  1. Autorisering: User agent sender brukernavn og passord, for å autentisere brukeren
  2. Transaksjon: User agenten bruker kommandoene list (hente mail-størrelsene), retrive (hente innholdet), delete (slette mail), og quit.
  3. Oppdatering: Etter å ha behandlet quit-kommandoen går POP3-serveren i oppdateringsfasen og fjerner meldinger fra postkassen.
IMAP (Internet Message Access Protocol)
  1. Her lagres organiseringen av e-poster på en ekstern server slik at man har tilgang på din mail-struktur på enhver maskin
  2. IMAP-serveren assosierer en melding med en mappe, når en mail først innkommer er den assosiert med INBOX-mappen
  3. IMAP protokollen tillater en bruker å lage mapper, og flytte eposter til forskjellige mapper
FTP (File Transfer Protocol)

Brukes for å overføre filer på nett. Den bruker to TCP-forbindelser samtidig. Det blir sendt data over den ene, mens den andre tar seg av autorisering, endring av mapper på serveren og lignende. I motsetning til HTTP, må FTP vite om tilstanden (state) til brukeren.

DNS (Domain Name System)

DNS fungerer som en mellommann mellom domenenavn og IP-adresser, og gjør det mulig for datamaskiner å kommunisere på internett ved hjelp av meningsfulle og lettleselige navn i stedet for tallkoder.

Domain Name System er et hierarkisk navnesystem for enhver ressurs koblet til Internettet eller et privat nettverk. Det oversetter domenenavn (hostnames) til IP-adresser. Før en klient kan starte en TCP-forbindelse med en server, må den spørre DNS om å «oversette» URLen. En DNS kan også gjøre aliasing, hvis en server har et langt domenenavn. Et domene kan ha canonical names (hotmail.com), som er aliaser for deres ekte navn (relay1.west-coast.hotmail.com).

Når DNS skal finne IP-adressen til f.eks. et .com-domene, kontakter det først en av 13 root DNS servers i verden, som gir IP-adresse til .com-servers som kontaktes og gir IP-adresse til .com-domenet du ønsket. DNS-hierarkiet består av root DNS servers på toppen, Top-level Domain servers på andrenivå (ansvarlig for com, org, net, edu osv), authorative DNS servers på tredjenivå (organisasjoners IP, web- og mailservere). DNS bruker UDP.

Utfordringer ved DNS

Single point of failure: dersom DNS-serveren krasjer, gjør også hele internettet det

Traffic volume: en enkel DNS server må håndtere alle DNS-forespørsler

Langveis sentralisert database: en enkelt DNS-server kan ikke være nærme alle de spørrende klientene, dette vil føre til forsinkelser

Vedlikehold: en enkelt DNS-server måtte holde data for alle hosts, den må være stor og må kunne oppdateres kontinuerlig

Arkitektur til nettverksapplikasjoner
Klient-server arkitektur
  1. Klienten ber om informasjon eller tjenester fra en server.
  2. Serveren gir informasjon eller tjenester til klienten.
  3. Disse kommuniserer direkte over et nettverk.
  4. Klienten er vanligvis en brukervennlig applikasjon som samhandler med brukeren, samler informasjon og sender forespørsler til serveren. Serveren behandler disse forespørslene, henter data og sender en respons til klienten.
Peer-to-peer arkitektur (P2P)
  1. Hver node i nettverket kan fungere både som klient og server. Ingen sentral server som håndterer kommunikasjon mellom nodene.
  2. Hver node kommuniserer direkte med andre noder i nettverket.
  3. Hver node kan bidra med ressurser, lagring og båndbredde.
  4. Gjør systemet mer effektivt da nodene kan dele ressurser og distribuere oppgaver mellom seg
  5. Mer robuste enn klient-server nettverk, da det ikke er one-point-of-failure som kan ta ned hele nettverket
  6. Ulemper : Vanskelig å sikre et P2P-nettverk, fordi det er flere inngangspunkter for angripere
Prosesser i webapplikasjoner

Det er viktig å forstå at det ikke er programmer, men prosesser som kommuniserer i en kommunikasjonsøkter mellom to applikasjonsprogrammer.

Grensesnittet mellom prosesser og datanettverket

En socket er grensesnittet mellom applikasjonslaget og transportlaget innad i en host. Det refereres til som Application Programming Interface (API).

Transporttjenester tilgjengelig for applikasjoner

  1. Pålitelig dataoverføring
  2. Gjennomstrømning (throughput)
  3. Timing
  4. Sikkerhet

TCP services (transmission control protocol)

TCP er egentlig en protokoll i transportlaget, men det gir mange tjenester til applikasjonslaget, derfor tar vi det med her.

En connection-oriented protokoll som sikrer pålitelig dataoverføring mellom to enheter ved å etablere en virtuell krets eller tilkobling før dataoverføringen. TCP tilbyr dette til applikasjoner som bruker denne tjenesten:

  1. Connection-oriented service: en handshaking som gjør klienten og serveren klare til å sende/motta pakker. Klienten og serveren utveksler transportlagskontroll informasjon med hverandre før applikasjonsmeldingen kan begynne å flyte.
  2. Reliable data transfer service: lover at data som blir sendt kommer i riktig rekkefølge uten noen feil
  3. Opphopningsmekanismer: endrer hastigheten på sendingsprosessen når nettverket mellom sender og mottaker er fullt med andre ting
  4. feilkontroll- og flytkontrollmekanismer: sikre dataintegritet og forforhindre tap

UDP services (User Datagram Protocol)

UDP er en connectionless protokoll som ikke etablerer tilkobling før dataoverføring. Ingen feilkontroll- og flytkontrollmekanismer som gjør den mindre pålitelig enn TCP. Det er heller ingen garanti for at pakkene kommer frem. Hvorfor bruke UDP dersom det suger så mye?

Jo fordi det er raskere og mer effektivt enn TCP.  

Transport layer
Transport layer

Dette laget håndterer pålitelig overføring av data mellom applikasjoner. Det opprettholder forbindelsen mellom avsender og mottaker, sørger for at alle dataene når fram i riktig rekkefølge, og kan også håndtere feilretting og flytkontroll. En transportlagspakke refererer vi til som et segment.

På den sendende siden konverteres applikasjons-meldingene til transportlags-pakker, også kjent som segmenter. Segmenter dannes ved å dele opp applikasjonsmeldingen i mindre biter og legge på transportlags-header til hver bit. Dette segmentet blir sendt til nettverkslaget, hvor segmentet blir innkapslet i en nettverkslagspakke (datagram) og sendt til destinasjonen.

På den mottakende siden, henter nettverkslaget segmentet innkapslet i datagrammet opp til transportlaget. Her blir segmentet prosessert og dataen gjøres tilgjengelig for den mottakende applikasjonen.

Forholdet mellom transport- og nettverkslaget

  • Transportlaget gir logisk kommunikasjon mellom prosesser som kjører på ulike hosts
  • Nettverkslaget gir logisk kommunikasjon mellom hosts

Visse tjenester kan bli tilbudt av transportlagsprotokoller, selv om de underliggende nettverksprotokollene ikke tilbyr samme tjeneste på nettverkslag. F.eks. kan transportprotokollen tilby pålitelig dataoverføring, selv om den underliggende nettverksprotokollen er upålitelig

Oversikt over transportlaget på internettet

  • Internettet har to transportlagsprotokoller, UDP og TCP
    • En av disse må velges nå man skal lage en nettverksapplikasjon
  • Internettets nettverksprotokoll kalles IP (Internet Protocol), som tilbyr logisk kommunikasjon mellom hosts
    • Best-effort delivery service, d.v.s. at den gjør så godt den kan for å levere segmenter mellom verter, men gir ingen garanti, derfor er IP sagt å være en upålitelig tjeneste
  • Det mest grunnleggende ansvaret for UDP og TCP er å utvide IPs leveringstjeneste mellom to endesystemer til en leveringstjeneste mellom to prosesser som kjører på endesystemene
  • Utvidelse av vert-til-vert levering til prosess-til-prosess levering kalles transportmultipleksing og demultipleksing

Protokoller

En transportlagsprotokoll tilbyr logisk kommunikasjon mellom applikasjonsprosesser kjørende på forskjellige hosts. Disse protokollene implementeres i endesystemer og ikke i rutere.

TCP (Transmission Control Protocol):

TCP er en tilkoblingsorientert tjeneste som sikrer pålitelig dataoverføring mellom to enheter ved å etablere en virtuell krets eller tilkobling før selve overføringen. En applikasjon som bruker TCP vil få disse tjenestene

  • Connection-oriented service: klienten og serveren utveksler transportlagskontroll informasjon med hverandre før applikasjonslagmeldingene kan begynne å flyte. Dette er den såkalte handshaking-prosedyren, som lar klientene og servene til å bli klare til å sende/motta pakker.
  • Reliable data transfer service: TCP lover at data som blir sendt vil ikke ha noen feil og vil komme i riktig rekkefølge

TCP inkluderer også en opphopningsmekanisme, denne tjenesten endrer hastigheten på en sendingsprosess når nettverket mellom sender og mottaker er fullt med andre ting.

Det bruker feilkontroll- og flytkontrollmekanismer for å sikre dataintegritet og forhindre tap av data.

TCP gir en full-duplex service, det vil si at data kan bevege seg fra Host A til Host B, samtidig som data beveger seg fra Host B til Host A.

TCP brukes ofte for applikasjoner som krever pålitelig og ordnet levering av data, for eksempel nettlesing, filoverføring og e-post.

Selve etableringen

Klient-prosessen på applikasjonen sier til transportlaget at den vil etablere en TCP forbindelse til en prosess i serveren

clientSocket.connect((serverName,serverPort))

 TCP i klienten lager så en TCP-forbindelse med serveren ved å sende et TCP-segment. Serveren svarer med TCP melding, som svares fra klienten igjen med en TCP-melding.

  1. Klienten sender et TCP-segment uten noe data til serveren. Dette segmentet kalles SYN-melding (synchronize). SYN biten er satt til 1. Sekvensnummeret A er valgt tilfeldig av klienten.
  2. Serveren godtar forespøreselen fra klienten ved å svare med et SYNACK segment. Dette er også uten noe data. SYN biten er satt til 1. Acknowledgement feltet er satt til å være A+1. Serveren velger sitt eget sekvensnummer B som det setter i sekvensnummer feltet.
  3. Klienten sender så enda et TCP segment uten data fra applikasjonen. SYN biten settes til 0. Sekvensnummeret settet til A+1. ACK nummeret settet til B+1.

TCP bruker flow control i form av receive window som spesifiseres i headeren.

Flow control i transportlaget handler om å regulere datastrømmen mellom sender og mottaker for å hindre at mottakeren blir overveldet av data. Dette sikrer at data overføres jevnt og uten tap.

Congestion control i transportlaget handler om å unngå overbelastning i nettverket ved å justere overføringshastigheten for å hindre at det dannes køer og tap av data. Dette bidrar til effektiv nettverksytelse. De ulike stegene i congestion control hos TCP er:

Slow Start: dette er startfasen i en TCP-forbindelse. Da begynner klienten å sende få pakker og venter på ACKs. For hver acknowlegdement klienten får øker den antall pakker eksponentielt.

 Congestion avoidance: Når sender når en viss terskel, kjent som Congestion Avoidance treshold, vil den gå fra slow start mode til congestion avoidance mode. Nå øker den congestion window lineært og ikke eksponensielt. Den legger til ett segment per RTT (round trip time).

Fast recovery: Denne mekanismen blir tatt i bruk når man oppdager packet loss, på grunn av tre duplikater av samme ACK nummer. CWND blir da mindre og reduserer transmission rate. Når den missede pakken er sent på nytt, går senderen tilbake til congestion avoidance mode.

UDP (User Datagram Protocol):

UDP legger til en header med source og destination port på segmentet. Det er (nesten) alt UDP gjør før den sender videre til nettverkslaget. Der får pakken en IP-header, og blir så sendt videre uten garanti mot datatap. Fordelene med UDP er at man ikke trenger en tilkobling først, det kan sendes så mange pakker man vil og UDP headers tar mindre plass enn TCP (8 byte mot 20).

UDP er derimot en tilkoblingsløs protokoll som ikke etablerer en tilkobling før dataoverføring. Den gir ikke noen feilkontroll- eller flytkontrollmekanismer, noe som gjør den mindre pålitelig enn TCP. UDP tilbyr unreliable data service, d.v.s. ingen garanti på at pakker kommer frem. Det er ingen handshaking før de to prosessene starter å kommunisere. Imidlertid er UDP raskere og mer effektiv enn TCP fordi den ikke trenger å legge til mye informasjon ved tilkobling og sjekke for feil. UDP brukes ofte for applikasjoner som krever rask og sanntids dataoverføring, som online gaming, video streaming og VoIP (Voice over Internet Protocol).

UDP sender med en checksum på pakken. Det gjør det mulig å sjekke om bits i pakken har blitt endret på. Checksummen bruker enerkomplement og fungerer på følgende måte:

  1. Summer sammen de tre 16-bit ord (source port, destination port, lengde) i segmentet.
  2. Hvis det er overflyt (mer enn 16 bits) utføres end around carry, som vil si at man adderer overflyten med resultatet.
  3. Inverter alle bits.
  4. Når pakken mottas, summeres de 4 16-bit ord (tre som tidligere, siste er checksummen). Resultatet skal være 16 enere.

Her er en bra video å se for å forstå checksum og enerkomplement. 

Grunner til å velge UDP over TCP

  • Finere applikasjonsnivå kontroll over hvilke data som er sendt og når
  • Ingen tilkoblingsetablering
  • Ingen tilkoblingstilstand
  • Små pakke-header overhead
Multipleksing og demultipleksing

Multiplexing: samle databiter ved kildeverten fra forskjellige sockets, innkapsling av hver data-bit med header-informasjons for å opprette segmenter.

Demultiplexing: lese av headeren på et segment og sørge for at den blir levert til riktig socket. 

Connection-less multiplexing and demultiplexing UDP

En udp-port identifiseres med en tuppel av (destinasjonens IP-adresse, destinasjons port). Hvis host A med portnummer 19157 vil sende data til host B med portnummer 46428, lager transportprotkollen i host A et transportlagssegment som inkluderer dataen, kildeportnummeret, destinasjonsportnummeret og to andre verdier. Nettverkslaget innkapsler meldingen i et IP-datagram.

Når segmentet når host B, vil transportlaget eksaminere destinasjonsportnummeret og sende segmentet til den spesifikket socketen.

Connection-oriented multiplexing and demultiplexing TCP

TCP-socekten er identifisert med en firtuppel (kilde IP-adresse, kilde portnummer, destinasjons IP-adresse, destinasjonsportnummer). Alle fire verdiene brukes for å demultiplekse segmentet til riktig socket.

Network layer
Network layer

Dette laget håndterer routing-funksjonalitet og adressering mellom nettverk. Det er ansvarlig for å bestemme den mest effektive ruten for å overføre data fra en enhet til en annen. Dette er det øverste laget i ruteren. Nettverklagspakker refererer vi til som datagrammer.

Nettverkslaget er implementert i hver eneste enhet koblet til internettet.

Dette laget har to hovedfunksjoner: forwarding og routing. Forwarding flytter pakker fra en ruters input-link til riktig output-link (se for deg et veikryss). Routing finner ruten fra source til destinasjon (se for deg google maps som viser deg veien fra Trondheim til Oslo).

Data plane: Logikken rundt forwarding. Lokalt per ruter.

Control plane: Logikken rundt routing. «network-wide»

Per-router control plane

I control plane samhandler alle routing-algoritmene i hver og en av ruterene. Det er et lokalt forwarding table i alle ruterne. Hvordan disse tabellene blir laget er forskjellen på tradisjonell routing algorithm tilnærming og Software Defines Networking (SDN) tilnærming.

I den tradisjonelle tilnærmingen har alle rutere en routing-alogritme som samhandler med andre algoritmer i andre rutere til å beregne verdiene i forwarding table.

Protokoller
IP (Internet Protocol):

IP tilbyr logisk kommunikasjon mellom hosts. Den har best effort delivery service, d.v.s. den gjør så godt den kan for å levere segmenter mellom hosts, men gir ingen garanti, derfor er IP sagt å være en upålitelig tjeneste.

  • Det mest grunnleggende ansvaret for UDP og TCP er å utvide IPs leveringstjeneste mellom to endesystemer til en leveringstjeneste mellom to prosesser som kjører på endesystemene. Utvidelse av vert-til-vert levering til prosess-til-prosess levering kalles transportmultipleksing demultipleksing

IP fungerer ved å segmentere data i mindre pakker, også kjent som datagrammer, som inneholder en del av den opprinnelige datamengden, samt en header som inneholder informasjon om pakken, som avsenderens IP-adresse, mottakerens IP-adresse og andre metadata.

Når et datagram blir sendt, så reiser den gjennom forskjellige rutere i nettverket som bestemmer den mest effektive ruten for å levere pakken til mottakeren. Ruteren undersøker mottakeradressen i headeren på hvert datagram og sender deretter datagrammet videre til neste ruter som vil levere det nærmere mottakeren.

Når datagrammet når sin endelige destinasjon, så blir den rekonstruert til den opprinnelige datamengden.

ICMP (Internet Control Message Protocol):

ICMP brukes mellom hosts og rutere for å overføre informasjon over nettverk-laget.

ARP (Address Resolution Protocol):

Address Resolution Protocol (ARP) oversetter mellom IP- og MAC-adresser. Hosts og rutere har en ARP tabell i minnet, som kan oversette mellom IP og MAC. I tabellen finnes også en time-to-live (TTL) verdi. Når denne går ut, slettes innlegget i tabellen.

Link layer
Link layer

Dette laget håndterer overføring av data mellom enheter på samme nettverk. Laget sender datagrammer gjennom en rekke rutere mellom kilden og destinasjonen. Den sørger for at dataene blir sendt riktig ved hjelp av adressering, og sørger også for feilretting og flytkontroll. En koblingspakke blir referert til som en frame.

Det er to forskjellige nettverkskoblinger med to forskjellige linklagskanaler:

Broadcast link: flere sender-noder og flere mottaker-noder, alle tilkoblet samme broadcast channel

Broadcast channels: kobler sammen verter i trådløse LANs, satellittnettverk, hybrid fiber-coaxial cable (HCF) aksessnettverk.

Point-to-point link: består av én sendernode og én mottakernode

Point-to-point channels: mellom to rutere koblet sammen med langdistansekobling.

Node: enheter som kjører en linklagsprotokoll, hosts, rutere, svitsjer osv.

Kobling/link: kommunikasjonskanaler som kobler nabonoder sammen med koblingssti.

Tjenester tilbudt av Linklagsprotokoller:

Framing

Innkapsling av nettverkslagets datagram til et linklags-frame.

Link access

En medium access control (MAC) protocol som anger reglene for en frame som skal bli overført på linken.

Reliable delivery

Garanterer å levere hvert nettverksdatagram over linken uten feil. Dette blir oppnådd med acknowledgements og re-sendinger.

Error detection and correction

En mekanisme for å oppdage bitfeil som har skjedd i linklagsmaskinvaren i den mottakende delen.

 
Flow control

Analogi:

Hastigheten en lærer lærer bort kunnskap til sine elever kan man tenke på som flowen av kunnskap. Dersom læreren kan veldig mye og pøser på med informasjon, vil ikke studentene greie å ta alt til seg og får ikke med seg alt. Derfor må læreren finne den hastigheten som fungerer for elevene.

På samme måte er det når to datamaskiner skal kommunisere. Flow kontroll er en «speed matching mechanism», som koordinerer mengden med data som blir sendt før man mottar en ack-melding. Det er mottakeren som bestemmer hastigheten etter dens kapasitet.

Error-Detection and -Correction Techniques

Den forklarer hvordan data ved sending av noden blir supplert med feildeteksjons- og -korreksjonsbiter (EDC) for å beskytte mot bitfeil. Dataen D, sammen med EDC, sendes som en koblingsnivå-frame til mottakende node. Ved mottakende node kan de mottatte bitene avvike fra de opprinnelige på grunn av bitfeil underveis.

Utfordringen for mottakeren er å avgjøre om den mottatte dataen (D’) er den samme som den opprinnelige dataen (D), basert på mottatte D’ og EDC’. Feildeteksjons- og -korreksjonsteknikker kan noen ganger oppdage bitfeil, men det kan fortsatt være ubemerkede bitfeil. Dette betyr at mottakeren kan levere et korrupt datagram til nettverkslaget eller være uvitende om korrupte felt i rammeoverskriften. Derfor ønskes et feildeteksjonsskjema med lav sannsynlighet for ubemerkede bitfeil, selv om det kan medføre større beregnings- og overføringskostnader.

Tre teknikker for å finne feil i overført data; Parity Checks, Checksumming, Cyclic Redundancy checks

Parity Checks

Dataen D som blir send gjennom en link, har d bits. I et partalls-paritetsskjema, vil senderen inkludere en ekstra bit og velger dens verdi slik at antallet 1-ere er partall. For oddetalls-paritetsskjemaer, er paritetsbiten bestemt slik at det er oddetall antall 1-ere.

Når mottakeren mottar dataen og ser at det er et oddetall med 1-ere i partalls-paritetsskjemaet, vet mottakeren at en feil har skjedd.

Man kan også bruke to-dimensjonal paritetsskjemaer. Bitene i dataen blir delt inn i kolonner og rader. Dette gjør det enklere å finne eksakt sted der feilen er. Mottakerens evne til både å detektere og rette feil er kjent som forward error correction (FEC).

Checksumming Methods

Checksumming methods er teknikker som brukes for å oppdage feil i dataoverføring ved å legge til en ekstra verdi, kalt en checksum, til dataene. Checksum beregnes ved hjelp av en matematisk formel som tar hensyn til bitmønsteret i dataene. Ved mottak av dataene beregnes checksummen på nytt, og den sammenlignes med den opprinnelige checksummen. Hvis checksummen ikke samsvarer, indikerer det en feil i dataoverføringen.

I checksumming metoder behandles dataene som korte sekvenser av k-biters heltall. En enkel checksum metode er å summere heltallene og bruke summen som feildeteksjonsbits. Internettchecksummen er basert på dette prinsippet, der 16-biters heltall summeres og eneskomplementet av summen blir brukt som checksummen. Mottakeren sjekker checksummen ved å ta eneskomplementet av summen av mottatte data og sjekke om resultatet er alle 0-biter. Checksumming metoder gir relativt svak beskyttelse mot feil sammenlignet med syklisk redundansesjekk (CRC), som vanligvis brukes på linklaget. Checksumming brukes ofte på transportlaget i programvareimplementeringer, mens CRC brukes på linklaget i maskinvareimplementeringer.

  • I TCP og UDP protokollene, er Internett checksummen regnet ut over alle felt (header og data)
  • I IP er checksummen utregnet kun over IP-headeren (Siden UDP- eller TCP-segmentet har sin egen checksum)
Cyclic Redundancy Check (CRC)

Med CRC er det mulig å se bitstrengen som skal sendes som et polynom, der koeffisienter er 0- og 1-verdier, med operasjoner på bitstrengen tolket som polynom aritmetikk.

Vi har en d-bit med data D, som skal sendes mellom to noder. Senderen og mottakeren må først bli enige om r+1 bit mønster, kjent som generator, G. Den biten lengst til venstre i G må være 1.

For et stykke data vil senderen velge r tilleggsbits, R, og legge dem til D slik at det resulterende d+r bitmønsteret er nøyaktig delelig med G, ved bruk av modulo-2 aritmetisk.

Feilsøkingsprosessen:

  • Mottaker deler de mottatte bitene d+r med G. Hvis resten er ikke-null, vet mottaker at en feil har oppstått; ellers blir dataene aksepter som riktige.
Protokoller

Multiple access problem: mange noder som sender frames samtidig, disse kolliderer når de kjører gjennom samme broadcast channel. Den mottakende noden vil ikke få noe ut av de kolliderende rammene.

Multiple access protocols

Analogi: Klasserom med en lærer som stiller et spørsmål. Alle elevene svarer samtidig og det blir kaos I klasserommet. Det er læreren sin job og sørge for at elevene svare en av gangen.

Slik er det også i en kanal over et medium. Dersom kanalen er eksklusive mellom sender og mottaker (point-to-point kanaler) er dette ingen problem, men dersom kanalen deles av mange noder oppstår det kollisjoner. Vi kan se på multiple access protocols som læreren i klasserommet som ordner opp i dette kaoset.

Channel partitioning protocols

Channel partitioning protokoller refererer til en samling nettverksprotokoller og teknikker som brukes til å dele en kommunikasjonskanal eller nettverksmedium inn i flere tidsintervaller, frekvensbånd eller kodefølger. Dette gjør det mulig for flere brukere eller enheter å dele den samme kanalen uten å forstyrre hverandre. Disse protokollene brukes vanligvis i ulike kommunikasjonssystemer for å administrere og tildele ressurser effektivt.

Time-division-multiplexing (TDM):

!! ikke bland time frame med linklagets pakke som heter frame !!

Tiden blir delt inn i tidsrammer. Hvor hver tidsramme (time frames) blir delt inn i tidsluker (time slots). Når nettverket etablerer en forbindelse over en link, gir nettverket en tidsluke til hver forbindelse (hver node).

Når noden har en pakke å sende, må den sende den pakken under den tildelte tidsluken i tidsrammen. Tidsluke-størrelsen er ofte tilpasset slik at en pakke rekker å bli sendt i den bestemte tidsluken. 

Ulemper:

  • Selv om kun én node bruker linken, er den begrenset til R/N bps i dens tidsluke.
  • Selv om kun én node bruker linken, må den vente til det er sin tur, sel vom ingen andre bruker linken.
Frequency-division-multiplexing (FDM):

FDM deler R bps-kanalen inn i frekvenser og gir hver node en frekvens. Når det er N noder, lager den egentlig N separate kanaler, en til hver node. De mindre kanalene har en hastighet på R/N bps.

Ulemper

  • Selv om kun én node bruker linken, er den begrenset til R/N bps.
Code Division Multiple Access (CDMA)

CDMA gir hver node en unik kode. Noden bruker denne koden til å enkode bitene i pakken som skal sendes.

Random Access Protocols

Alle nodene kan sende data dersom mediumet er ledig. Nodene sender pakker på maksimal hastighet, Rbps. Når det skjer en kollisjon sendes pakken på nytt, til den kommer fram til mottaker-noden. Ingen stasjon har større prioritet enn andre stasjon.

Slotted ALOHA

Antar at

  • Alle frames består av L bits
  • Tiden er delt inn i luker på L/R sekunder
  • Noder begynner kun å sende frames i starten av en tidsluke
  • Nodene er synkronisert, alle vet når tidslukene begynner
  • Hvis to eller flere frames kolliderer, vet alle nodene dette før tidsluken er over

Slotted Aloha sin funksjon i nodene er

  • Når en node har en ny frame å sende, venter den til starten av en ny tidsluke, og sender hele framen in denne tidsluken
  • Hvis det ikke skjer en kollisjon kan noden forberede den neste framen
  • Hvis det er en kollisjon, får noden vite dette før tidsluken er over og sender pakken på nytt
  • p forteller oss om sannsynligheten for at pakken sendes suksessfullt til mottaker

Fordeler

  • Sender med full hastighet nå den noden er den eneste aktive noden
  • Enkel protokoll
Pure ALOHA

ALOHA er en enkel protokoll for mediadeltagelse i datanettverk, spesielt i trådløse nettverk. Protokollen er oppkalt etter den berømte ånden på Hawaii-øyene. Slik fungerer pure ALOHA:

  1. Random aksess: I ALOHA-protokollen har hver deltaker lov til å sende data når som helst uten å måtte vente på en spesifikk tidsplan.
  1. 2. Kollisjoner: Når to eller flere deltakere sender data samtidig, oppstår en kollisjon. Dette skjer fordi deltakerne ikke koordinerer sendingene sine på forhånd.
  1. Tilbakemelding: Når en kollisjon oppstår, mottar senderen en tilbakemelding (et signal) om at kollisjonen har skjedd.
  1. Tilfeldig ventetid: Etter å ha mottatt tilbakemelding om en kollisjon, venter senderen en tilfeldig tid før den prøver å sende data igjen. Dette reduserer sjansen for at kollisjonen skal skje igjen.

Sannsynligheten for at ingen andre noder sender i intervallet når sendingsnoden sender er (1 – p)N-1

Sannsynligheten for en suksessfull overføring (og at ingen andre sender i nodens sendeintervall) blir da p(1 – p)2(N-1).

Dette gir en maksimum effektivitet på un 1/(2e), som nøyaktig er halvparten av max. effekten til slotted ALOHA. Det er prisen å betale for en fullt desentralisert ALOHA protokoll.

Carrier Sense Multiple Access (CSMA)

Vi ønsker å minimere antall kollisjoner, derfor er det visse regler denne protokollen innfører. Vi kan sammenligne det med menneskelig «normer» i samtaler:

  • Listen before speaking. Dersom noen snakker, venter man til de er ferdige. I nettverksverdenen kaller vi dette carrier sensing – en node hører på kanalen før den overfører. Dersom en ramme fra en annen node er i ferd med å bli overført inn i kanalen venter den til er et lite mellomrom uten overføringer.
  • If someone else begins talking at the same time, stop talking. I nettverksverdenen kaller vi dette collision detection – en overførende node hører på kanalen når den overfører. Dersom den merker at en annen node overfører en konflikt-ramme, stopper noden overføringen og venter en tilfeldig stund før den begynner å denne sense-and-transmit-when-idle sykelen.

Disse to kjennetegner protokollene CSMA og CSMA med kollisjon deteksjon (collision detection).

CSMA

  1. Node B begynner å sende sin frame.
  2. Node sjekker om det er noen i kanalen, men bitsene fra framen til node B har ikke nådd node D enda, derfor sender node D sin frame.
  3. De to sendingene forstyrrer hverandre og lager channel propagation delay, dette vil også ha noe å si for ytelsen til pakkene

CSMA med kollisjonsdeteksjon

Når en node oppdager en kollisjon, stopper den sendingen helt til kanalen er ledig.

Det er klart at å legge til kollisjonsdeteksjon i en protokoll hjelper protokollutførelsen ved ikke å overføre en ubrukelig, skadet ramme.

Når node D oppdager at node B allerede bruker kanalen, vil node D vente til kanalen er ledig og deretter fortsetter sendingen av pakken.

Taking turn protocols

Stasjonene snakker med hverandre for å finne ut av hvilken stasjon som har rett til å sende sin pakke først.

Polling protocol
  • En av nodene betegnes som hovednode
  • Hovednoden velger hvem som skal få lov til å sende frames gjennom kanalen. Den sier først til node en at den kan sende opptil et maksimalt antall pakker. Deretter er det node 2 sin tur osv.
  • Eliminerer kollisjoner og tomme spor som oppstår i random access-protokoller, og gir høyere effektivitet.
  • Introduserer en polling delay, som er tiden det tar å sende en melding til en node.
  • Problemer oppstår når det bare er én aktiv node, da må den aktive noden spørre alle de andre nodene mellom hver gang den har sendt det maksimale antallet rammer.
  • Hvis hovednoden feiler, blir hele kanalen ubrukelig.
Token-passing-protokoll:
  • Ingen hovednode er til stede i nettverket.
  • En spesiell ramme kalt en token blir forvekslet mellom nodene i et bestemt mønster, for eksempel syklisk.
  • Når en node mottar en token, beholder den tokenen hvis den har en ramme å sende. Hvis ikke, sender den tokenen umiddelbart videre til neste node.
  • Hvis noden ønsker å sende, beholder den tokenen, sender det maksimale antallet rammer og sender deretter tokenen videre.
  • Hvis en node krasjer, kan hele kanalen krasje da det ikke lenger er noen mekanisme for å overføre tokenen.
DOCSIS (The Link-Layer Protocol for Cable Internet Access):
  • DOCSIS (Data-Over-Cable Service Interface Specifications) er et sett med protokoller og nettverksarkitektur som brukes i
  • Kabelaksessnettverket kobler sammen tusenvis av boligkabelmodemer med et kabelmodemtermineringsystem (CMTS) ved nettverkets hodeende.
  • DOCSIS bruker frekvensdelingsmultipleksing (FDM) for å dele nedstrøms- og oppstrømsnettverksegmenter i flere frekvenskanaler.
  • Nedstrømsrammer sendes fra CMTS til modemene og går til alle modemene på nedstrømskanalen.
  • Oppstrømsrammer sendt fra modemene er mer interessante, da det er flere sendere (kabelmodemer) og en mottaker (CMTS) på oppstrømskanalen. Dette kan føre til kollisjoner.
  • Oppstrømskanalen er delt opp i tidsluker (TDM-ish), og CMTS bestemmer hvilke kabelmodemer som får sende i hver tidsluke ved å sende en MAP-melding langs nedstrømskanalen.
  • Kabelmodemene sender mini-luke-forespørselsrammer til CMTS for å indikere at de har data å sende.
  • Kabelmodemene kan ikke oppdage kollisjoner eller opptatte kanaler, men de merker en kollisjon hvis de ikke mottar bekreftelse på rammen i neste nedstrømskontrollmelding.
  • Når en kollisjon oppstår, bruker kabelmodemet en binær eksponentiell backoff-mekanisme.
  • Kabelaksessnettverket demonstrerer flere tilgangsprotokoller i handling, inkludert FDM, TDM, random access og sentralt allokerte tidsluker.
Switched Local Area Networks

Et Switched Local Area Network (LAN) er et nettverk som bruker nettverkssvitsjer for å koble sammen enheter som datamaskiner, skrivere og servere i samme geografiske område, for eksempel et kontor eller et hjemmenettverk.

En nettverkssvitsj er en enhet som sender dataene som kommer inn på en nettverksport (et fysisk grensesnitt) til den riktige destinasjonen basert på MAC-adressen til enheten. MAC-adressen er en unik identifikator som tildeles til nettverkskortet til hver enhet som er koblet til nettverket.

Når en pakke med data kommer inn på en nettverkssvitsj, leser den MAC-adressen til destinasjonen og oppretter en kobling mellom den innkommende nettverksporten og utgangsporten som er koblet til enheten med riktig MAC-adresse. Dette gjør at dataene kan sendes direkte til riktig enhet uten å bli sendt til alle enheter i nettverket.

Address Resolution Protocol (ARP) brukes i et Switched LAN for å kartlegge IP-adresser til MAC-adresser. Når en enhet trenger å kommunisere med en annen enhet i nettverket, sender den en ARP-forspørsel for å finne MAC-adressen til målenheten. Denne informasjonen blir deretter lagret i en ARP-tabell i enhetene i nettverket, slik at fremtidig kommunikasjon kan skje direkte ved hjelp av MAC-adressen uten å måtte gjennomføre ARP-oppslaget på nytt.

MAC addresser (media access control)
  • Det er ikke selve hosten som har linklagsadresser, men deres adaptere, dvs. nettverksinterfacene
  • En host eller ruter i en multiple network-interface flere linklagsadresser assosiert med den.
  • En linklagsadresse kalles en LAN adresse, en fysisk adresse eller MAC-adresse
  • Som regel & bytes lang som gir 2^48 mulige MAC adresser, heksadesimal-notasjon
  • IEEE vedlikeholder MAC-adresserommet
  • Gir for eksempel et selskap et adresserom på e av 2^24 adresser ved å bestemme de første 24 bitene av MAC-adressene og lar selskapet bestemme de unike kombinasjonene av de siste 24 bitene for hvert adapter
  • En adapters MAC endrer seg ikke ut fra hvor adapteren er. En pc med ethernet-interface har samme MAC-adresse uansett hvor PC-en befinner seg. Dette er stor forskjell fra IP adresser
  • Man kan sammenligne MAC-adresse med personnummer og IP-adresse med postnummer
  • Når en adapter ønsker å sende en frame, vil den legge in MAC-adressen til destinasjonsadapteren inn i framen og sende denne inn i LAN-et.
Address Resolution Protocol (ARP)

Oversetter mellom nettverkslagsadresser (IP-adresser) og linklagsadresser (MAC-adresser).

La oss si at hosten med IP adresse 222.222.222.220 vil sende et IP-datagram til host ved IP adresse 222.222.222.222. Kilden og destinasjonen er i samme subnettverk. Kilden må da gi datagrammet og MAC-adressen for destinasjonen som adapteren på et linknivå gjør om til en frame.

Den sendende hosten bruker ARP for å finne MAC-adressen fra IP-adressen. ARP-modulen tar inn en IP-adresse, slår denne opp i en tabell og spytter ut MAC-adressen. Hver vert har ARP-tabell i minnet. Den inneholder også en time-to-live (TTL), når denne går ut slettes innlegget i tabellen.

En node har nødvendigvis ikke mappingen for alle andre noder i subnettet.

En typisk utløpstid for en oppføring er 20 minutter fra når en oppføring er plassert i et ARP-bord.

Fungerer nesten på samme måte som DNs, men en viktig forskjell mellom de er at DNs oversetter vertsnavn for verter hvor som helst på internettet. ARP løser IP-adresse kun for verter og rutergrensesnitt på samme delnett. Hver vert har ARP-tabell i minnet. Den inneholder også en time-to-live (TTL), når denne går ut slettes innlegget i tabellen.

Hvordan fungerer ARP?

Når en enhet ønsker å kommunisere med en annen enhet i nettverket og kjenner IP-adressen til målenheten, men ikke dens MAC-adresse, sender den en ARP-forespørsel som inneholder sin egen IP-adresse og MAC-adresse, samt IP-adressen til målenheten. Denne ARP-forespørselen sendes ut som en kringkasting (broadcast) i nettverket, slik at alle enheter i nettverket mottar den.

Når den opprinnelige enheten mottar ARP-svarpakken, legger den informasjonen i sin ARP-tabell, som er en midlertidig lagring av IP-MAC-par. Deretter kan enheten bruke MAC-adressen til målenheten for å sende data direkte til den uten å måtte utføre ARP-oppslaget igjen.

Dersom noden ikke har destinasjonsnodens MAC-adresse i tabellen, må senderen bruke ARP-protokollen for å finne denne adressen. Det lages en spesiell ARP pakke med flere felt inkludert senderens og mottakerens IP- og MAC-adresser. Adapteren sender framen inn i subnettet, dette nås til alle andre adpatere i nettverket. Alle sjekker sin tabell og dersom man har en match sender man denne tilbake den spørrende noden.

 

Sende datagram utenfor subnettet

Verten må først finne MAC-adressen til ruteren som er koblet til subnettet. Dette gjøres ved hjelp av ARP-protokollen, der verten sender en ARP-forespørsel og ruteren svarer med sin MAC-adresse.

Når verten har ruterens MAC-adresse, sender den datagrammet til ruteren ved å innkapsle det i en frame og angi ruterens MAC-adresse som destinasjon. Ruteren mottar rammen, konsulterer sin forwardingtabell for å bestemme riktig grensesnitt å videresende datagrammet til, og sender det videre til grensesnittet som leder til destinasjonssubnettet.

For å sende datagrammet fra ruteren til den endelige destinasjonsverten, bruker ruteren ARP-protokollen på nytt for å finne MAC-adressen til målenheten i destinasjonssubnettet. Ruteren sender deretter datagrammet innkapslet i en ny ramme til destinasjonsverten ved å bruke riktig MAC-adresse som måladresse.

På denne måten kan datagrammet bli rutet fra den opprinnelige verten til ruteren og deretter videre til den endelige destinasjonsverten utenfor subnettet ved hjelp av ARP for å finne de nødvendige MAC-adressene for kommunikasjonen.

Ethernet

Ethernet er en kablet LAN-teknologi som har dominert markedet siden 1970-tallet. Det har utviklet seg og vokst og er fortsatt den mest utbredte kablede LAN-teknologien i dag. Ethernet brukes i lokale nettverk på samme måte som Internett brukes i et globalt nettverk.

Ethernet var det første distribuerte høyhastighetsnettverket og ble raskt akseptert av nettverksadministratorer. Andre LAN-teknologier som token-ring, FDDI og ATM var mer komplekse og dyrere, noe som gjorde at Ethernet fortsatte å være det foretrukne valget.

 

I begynnelsen brukte Ethernet en coax-bus for å koble noder. Senere ble hubbaserte stjernetopologier vanligere. Med en hubbasert stjernetopologi blir vertene direkte koblet til en hub med kobberkabel. Huben sender kopier av dataene til alle tilkoblede enheter, noe som gjør det til et broadcast LAN.

            En hub er en fysisklags-enhet som virker på individuelle bits i stedet for frames.

Dersom en hub mottar rammer fra to forskjellige interfacer samtidig, oppstår en kollisjon, og nodene som skapte rammene må sende dem på nytt.

På 2000-tallet ble huben erstattet med en switch i Ethernet-installasjoner. En switch er en kollisjonsfri pakkesvitsj som fungerer på lag 2, i motsetning til rutere som opererer gjennom tre lag. Ethernet-rammen inneholder forskjellige felt, inkludert datafeltet som bærer IP-datagrammet, destinasjons- og kildeadresser, typefeltet for å multiplexe nettverkslagprotokoller og CRC-feltet for feildeteksjon.

Ethernet-teknologiene gir en upålitelig og connectionless tjeneste (uten handshaking) til nettverkslaget. Dette gjør Ethernet enkelt og billig, men det kan føre til hull i datastrømmen. UDP-applikasjoner vil oppleve disse hullene, mens TCP-applikasjoner vil gjenoppbygge manglende data ved hjelp av TCP-protokollen.

 

Ethernet kommer i mange forskjellige typer, inkludert 10BASE-T, 10BASE-2, 100BASE-T, 1000BASE-LX og 10GBASE-T. Disse standardene angir hastigheten og det fysiske mediet som brukes i Ethernet-installasjoner.

 

Ethernet har utviklet seg fra å bruke koaksialkabel til punkt-til-punkt-segmenter av tvunnet kobberkabel eller fiber-optiske kabler. Det har også blitt stadig raskere, med Gigabit Ethernet som en utvidelse av de tidligere standardene. Gigabit Ethernet har en hastighet på 1000 Mbps og er kompatibel med eksisterende Ethernet-utstyr.

 

Link-Layer switches

Oppgaver utført av en svitsj:

En svitsj mottar innkommende koblingslagsrammer og sender dem videre til utgående koblinger. Den er gjennomsiktig for både verter og rutere, og de er ikke klar over at en svitsj tar imot og videresender pakker mellom kilden og destinasjonen.

For å utføre disse oppgavene trenger svitsjen buffere for midlertidig lagring, og den utfører både filtrering og videresending av rammene. Dette skjer ved hjelp av en svitsjtabell som inneholder oppføringer for mange av vertene og rutere i et LAN (Local Area Network). Hver oppføring i tabellen består av følgende informasjon:

  • MAC-adresse
  • Svitsjinterfacet som er koblet til MAC-adressen
  • Tidspunktet da oppføringen ble lagt til i tabellen

En viktig forskjell mellom rammekommunikasjon og datagramkommunikasjon er at svitsjer videresender pakker basert på MAC-adresser, i motsetning til IP-adresser. Svitsjtabellen er også bygget på en annen måte enn videresendingstabellen.

Selvlæring:

Svitsjer er selvlærende, noe som betyr at tabellen deres bygges automatisk og dynamisk. Tabellen er i utgangspunktet tom, og for hver ramme som mottas, lagrer svitsjen følgende informasjon:

  • MAC-adressen i rammen som kilden (source address field)
  • Grensesnittet som rammen ble mottatt fra
  • Nåværende tidspunkt

Svitsjen sletter en adresse i tabellen hvis ingen rammer har blitt mottatt fra den spesifikke adressen som kildeadresse i en viss tidsperiode (aldringstid). Svitsjer er også enkle å installere (plug-and-play) og støtter full-dupleks kommunikasjon, noe som betyr at de kan motta og sende pakker samtidig.

Egenskaper ved koblingslagsvitsjing:

Koblingslagsvitsjing, levert av svitsjer, har flere fordeler sammenlignet med kringkastingsbaserte forbindelser som busser eller stjernetopologier basert på hub:

  • Unngåelse av kollisjoner: Svitsjer forhindrer kollisjoner i lokale nettverk (Local Area Networks) ved å isolere hver forbindelse. Dette resulterer i bedre ytelse sammenlignet med kringkastingsbaserte forbindelser.
  • Heterogene koblinger: Svitsjer tillater ulike koblinger i et nettverk å operere med forskjellige hastigheter og mediatyper, siden hver svitsj isolerer en kobling fra de andre.
  • Administrasjon: Svitsjer gir forbedrede nettverksadministrasjonsfunksjoner, inkludert bedre sikkerhet, muligheten til å oppdage og isolere feilfunksjonelle adaptere, og innsamling av statistikk om båndbreddebruk, kollisjonsrater og trafikktyper for nettverksadministratorer.

Switch Poisoning:

Switch Poisoning er en velkjent type angrep mot svitsjer. Dette angrepet innebærer å sende en stor mengde pakker med falske kilde-MAC-adresser for å fylle opp svitsjens MAC-adressetabell. Dette resulterer i at de fleste rammene blir kringkastet og dermed blir sårbare for avlytting.

Svitsjer vs. Rutere:

Svitsjer skiller seg fra rutere ved at de videresender pakker basert på MAC-adresser (lag 2), mens rutere videresender pakker basert på nettverksadresser (for eksempel IP-adresser, lag 3). Svitsjer har fordeler som plug-and-play-funksjonalitet, høy filtrerings- og videresendingshastighet på lag 2, men er begrenset til spenntre-topologi for å forhindre kringkastingsstormer. Rutere tillater hierarkisk adressering, ruting basert på beste vei og beskyttelse mot kringkastingsstormer på lag 2, men krever konfigurering av IP-adresser og har lengre behandlingstid per pakke på grunn av lag 3-prosessering.

Valget mellom svitsjer og rutere avhenger av nettverkets størrelse, kompleksitet og spesifikke krav til trafikkisolering, skalerbarhet og funksjonalitet.

Implementering av Linklaget:

Linklaget er vanligvis implementert i en internettadapter, som også er kjent som en nettverksgrensesnittkort (NIC). Mye av kontrollfunksjonaliteten til linklaget er faktisk utført av maskinvaren.

DNS og ARP:

La oss se på hvordan DNS (Domain Name System) og ARP (Address Resolution Protocol) fungerer i nettverket når en bruker som heter Bob prøver å nå nettstedet www.google.com.

  1. Bob skriver inn URL-en for www.google.com i nettleseren sin. Denne handlingen utløser opprettelsen av en TCP-pakke som skal brukes til å sende en HTTP-forespørsel til www.google.com.

  2. For å lage denne TCP-pakken må Bobs datamaskin først vite IP-adressen til www.google.com.

  3. Operativsystemet på Bobs datamaskin sender en DNS-forespørselsmelding, som blir pakket inn i et UDP-segment med destinasjonsport 53 (DNS-serverporten). Dette UDP-segmentet blir deretter innkapslet i et IP-datagram.

  4. Dette IP-datagrammet blir plassert i en Ethernet-ramme og sendt til gatewayruteren. For å finne MAC-adressen til gatewayruteren, må Bobs datamaskin utføre ARP-protokollen.

  5. En ARP-forespørselsmelding blir kringkastet, og den inneholder informasjon om destinasjonsadressen. Denne meldingen blir sendt som en Ethernet-ramme til svitsjen, som leverer rammen til alle tilkoblede enheter i tillegg til gatewayruteren.

  6. Gatewayruteren mottar denne rammen med ARP-forespørselen og svarer med ARP-svarmeldingen, som inneholder MAC-adressen til ruteren.

Dette gjør at Bobs datamaskin kan fullføre TCP-pakken med riktig destinasjonsadresse og sende den til riktig sted på nettverket.

Wireless and mobile networks
Wireless and mobile networks

Wireless: kommunikasjon over trådløse koblinger

Mobility: håndtere den mobile brukeren som endrer sin posisjon og sin tilknytning til ulike nettverk

Wireless networks har følgende elementer

Wireless hosts

    • Datamaskin, smarttelefon osv.

Wireless links

    • En host kobler seg til en basestasjon eller til andre wireless hosts gjennom en wireless link. Forskjellige teknologier har forskjellige overføringsrater. Dekningsområde og koblingsrate er to nøkkelegenskaper blant nettverksstandarder

Base station

    • Ansvarlig for sending og mottak av data til og fra en trådløs host som er tilknyttet den basestasjonen, samt koordiner overføringen av flere trådløse hosts som den er tilknyttet til. Tilknyttet til betyr (1) at hosten befinner seg innenfor basestasjonens trådløse kommunikasjonsdistanse og (2) hosten bruker den basestasjonen for å videresende data mellom hosten og det større nettverket. Celltowers i mobilnett er eksempler på basestasjoner.
    • Hosts tilknyttet en basestasjon refereres til som opprererende i infrastrukturmodus, siden alle tradisjonelle nettverkstjenester er gitt av nettverket som en host kobles til via en basestasjon.

Ad-hoc nettverk har trådløse hosts ingen infrastruktur å koble seg til, de må selv sørge for tjenester som routing, adressetildeling, DNS osv.

    • Når en mobil host beveger seg utenfor rekkevidde til en basestasjon og inn i rekkevidden til en annen, vil den endre sin tilknytning i det større nettverket, dette er handoff

Network infrastructure

    • Det større nettverket som en trådløs host kan ønske å kommunisere med

Disse elementene ^ kan kombineres på forskjellige måter og danne ulike typer trådløse nettverk

Single-hop, infrastructure-based Single-hop infrastructure-less Multi-hop, infrastructure-based Multi-hop, infrastructure-less
En basestasjon tilkoblet et større kablet nettverk. All kommunikasjon over en enkelt trådløs hop. Eksempler: 3G mobilnett.
Ingen basestasjon. En av nodene i dette enkelthopp-nettverk kan koordinere overføringene til de andre nodene. Eksempler: Bluetooth
Basestasjon tilstede. Trådløse noder kan måtte videresende kommunikasjon via andre trådløse noder for å kunne kommunisere via basestasjonen. Dette er for eksempel wireless mesh networks.
Ingen basestasjon. Noder må videresende meldinger blant flere noder for å nå en destinasjon. Noder kan også være mobile. En kjent klasse av nettverk, kjent som mobile ad hoc-network (MANETs). Vehicle ad hoc-network (VANET).
Decreasing signal strength Interference from other sources Multipath propagation
Elektromagnetisk signal dempes når det passerer gjennommateriell, som resulterer i redusert signalstyrke (path loss)
Radiokilder som overfører signaler i samme frekvensnivå kan forstyrre signalene til nettverket. Dersom to trådløse nettverk operer på den vanlige frekvensen 2.4 GHz, kan man anta at det elektromagnetiske støyet kan ødelegge ytelsen til begge kildene.
Radiosignaler som reflekteres i gjenstander og bakken og tar baner av forskjellige lengder mellom en avsender og en mottaker. Det å flytte objekter kan føre til multipath propagation.
Wireless links and Network characteristics
SNR og BER

Signal-to-noise ratio (SNR)

  • Mål på styrken til det mottatte signalet og støyet fra miljøet rundt
  • Målt i desibel

Bit-error ratio (BER)

  • Sannsynligheten for at en overført bit som blir mottatt har error hos mottakeren

SNR vs. BER:

SNR (Signal-to-Noise Ratio) handler om hvor sterkt signalet ditt er sammenlignet med støyen i kommunikasjonen din. Jo høyere SNR, jo bedre er kvaliteten på signalet, og jo lavere er feilraten (BER – Bit Error Rate).

Hvis SNR er høy, har du færre feil i dataene dine. Men hvis du bruker en modulasjonsteknikk som sender mange biter samtidig, kan BER øke selv med god SNR.

Valget av hvordan du sender dataene dine (din “physical layer”) tilpasses ofte til forholdene i kanalen. SNR og BER kan endre seg når du beveger deg eller når miljøet endrer seg.

Det skjulte terminalproblemet:

Dette handler om situasjoner der fysiske objekter, som for eksempel fjell, kan blokkere signaler og gjøre dem svakere. Når du har mange enheter som prøver å sende samtidig i et trådløst nettverk, blir det mer komplisert enn i et kablet nettverk på grunn av disse hindringene.

WiFi: 802.11 wireless LAN
WiFi arkitektur

Her ser du hovedkomponentene i WiFi:

Trådløse hosts kommuniserer med basestasjoner. Fundamentalbyggeklossen er BSS (basic service set). BSS inneholder en eller flere trådløse stasjoner o gen basestasjon som kalles access point (AP). I et hjemmenettverk er AP ofte implementer i ruteren, som kobler BSS-ene til internettet.

Som med Ethernet-enheter har WiFi enheter også en 6-byte MAC-adresse lagret i firmwaren til stasjonens adapter.

Hver AP har også sitt MAC-adresse for sitt trådløse interface.

Infrastruktur trådløse LAN: trådløse LAN som distribuerer AP-er.

Channels og Association

Oppsett av Wi-Fi og Wi-Fi-jungelen:

Når du setter opp et Wi-Fi-tilgangspunkt (AP), gir det seg selv et navn kalt SSID. Dette er hva du ser når du ser etter tilgjengelige nettverk på PC-en din. I tillegg velger administratoren en kanal for AP-en. Wi-Fi fungerer på forskjellige frekvensområder mellom 2.4 GHz og 2.485 GHz. Innenfor dette området er det 11 delvis overlappende kanaler å velge mellom.

En Wi-Fi-jungel er et sted hvor du mottar et sterkt signal fra to eller flere AP-er. For eksempel, når du er på en kafé med mange Wi-Fi-nettverk rundt.

Tilkobling til Wi-Fi-jungelen:

Når du sitter på en kafé, må du koble deg til ett av AP-ene i Wi-Fi-jungelen for å få tilgang til internett. Når du gjør dette, opprettes en virtuell forbindelse mellom enheten din og AP-en. Dette gjør det mulig å sende data til og fra enheten din.

For at enheten din skal kunne koble seg til en AP og vite hvilke AP-er som er tilgjengelige i Wi-Fi-jungelen, bruker Wi-Fi-standarden noe som kalles “beacon frames.”

Beacon Frames:

Beacon frames er signaler som sendes ut av AP-ene med AP-ens navn (SSID) og MAC-adresse. Din trådløse enhet vet at AP-ene sender ut disse beacon frames, så den søker etter dem og velger en AP å koble seg til. Det er ingen spesiell regel for å bestemme hvilken AP du kobler deg til; enheten din velger bare den sterkeste signalet.

Passiv skanning

  • AP-er sender beacon frames
  • Hosten skanner kanaler og høret etter beacon frames
  • Host sender Association Request frame til den valgte AP-en
  • Ap-en svarer med Association Response frame

Aktiv skanning

  • Broadcaste en probe request frame (sonderamme) som blir mottatt av alle AP-ene innenfor hostens rekkevidde
  • AP-ene responderer med Probe response frames
  • Den trådløse hosten velger en AP og sender Association request frame
  • Den valgte AP-en svarer med Association response frame
802.11 MAC (multiple access control) protokoll

De trådløse stasjonene vil sende frames samtidig over samme kanal, da trengs det en multiaksessprotokoll for å koordinere disse overføringene.

Som vi vet fra tidligere er det tre klasser med multiple access protokoller:

  • Channel partitioning
  • Random access
  • Taking turns

 802.11 valgte random access, nærmere bestemt CSMA (carrier sense multiple access) med collision avoidance. Hver stasjon sjekker kanalen før sending og la vær å sende hvis den er i bruk.

 

Siden 802.11 trådløse LAN ikke bruker kollisjondeteksjon sendes hele framen i sin helthet. Ved kollisjoner vil dette sende ytelsen til selve multiaksessprotokollen. Men WiFi bruker flere kollisjonsunngåelsesteknikker.

Linklags acknowlegdment-skjema:

For å ha oversikt og kontrollere sendingene bruker 802.11 MAC-protokollene koblingsbekreftelser. Når destinasjonen mottar en frame som passerer CRC (cyclic redundancy check), venter den er tidsperiode kalt Short Inter-Frame Spacing (SIFS). Deretter sender den en bekreftelses frame. Hvis senderen ikke mottar en bekreftelse innen en viss tid, forutsetter den at en feil har oppstått og sender framen på nytt.

Selve CSMA/CA protokollen:

Senderstasjonen:

  1. Dersom stasjonen merker at kanalen er tom, sendes rammen etter en kort tid kjent som Distributed Inter-Frame Space (DIFS)
  2. Hvis ikke kanalen er tom, vil stasjonen bestemme en tilfeldig backoff-verdi ved å bruke binær eksponentiell backoff og telle ned denne ver Dersom det oppdages aktivitet i kanalen imens den teller ned, stopper telleren og enheten må vente igjen.
  3. Når nedtelleren er null, vil stasjonen sende hele framen og venter på bekreftelse
  4. Hvis det ikke kommer noe ACK, vil den gå tilbake til steg 2
Hva er skjulte terminaler?

Skjulte terminaler er et begrep som brukes i trådløse nettverk for å beskrive en situasjon der to enheter (A og C) er utenfor rekkevidden til hverandre, men begge er innenfor rekkevidden til en tredje enhet (B). På grunn av denne topologien kan enhetene A og C ikke direkte oppdage hverandres tilstedeværelse.

Problemet oppstår når enhetene A og C ønsker å kommunisere med enhet B samtidig. Siden A og C ikke kan høre hverandre, kan de begge tro at mediumet er ledig og begynne å sende samtidig. Dette resulterer i en kollisjon, og ingen av pakkene når frem til destinasjonen.

Den skjulte terminalproblematikken kan føre til tap av dataoverføringseffektivitet og redusert ytelse i trådløse nettverk. For å takle dette problemet, kan trådløse nettverksprotokoller som 802.11 bruke mekanismer som RTS/CTS (Request to Send/Clear to Send) for å håndtere konflikter mellom skjulte terminaler. Ved å bruke RTS/CTS utveksler enhetene signaler for å varsle hverandre om deres tilstedeværelse og reservasjon av mediumet. Dette bidrar til å redusere kollisjoner og forbedre effektiviteten i trådløs kommunikasjon i nærvær av skjulte terminaler.

CSMA/CA-protokollen bruker også en funksjon som kalles Request to Send (RTS) og Clear to Send (CTS). Dette brukes for reservere aksessen til kanalen. Senderen sender en RTS til AP-en og indikerer den totale tiden nødvendig for å overføre en frame og ACK framen. Når en AP mottar denne RTS meldingen, kringkaster den ut en CTS melding. Denne meldingen har to funksjoner: Å gi sender eksplisitt tillatelse for å sende og for å instruere andre stasjoner til å ikke sende under den reserverte tiden.

 

RTS og CTS øker ytelsen ved:

  • Det skjulte terminalproblemet blir redusert
  • Siden RTS og CTS rammene er korte, vil en kollisjon mellom dem vare kort

 

Selvom RTS/CTS kan hjelpe å redusere kollisjoner introduserer den også forsinkelser og bruker kanalresursser.

Derfor brukes RTS/CTS kun for å reservere kanalen for overføring av lange data-rammer.

IEEE 802.11 FRAME

Payload og CRC field: IP-datagrammet eller en ARP-pakke

Sequence Number: Tillater mottaker å skille mellom nye pakker og re-sendinger av gamle pakker.

Duration: en tidsperiode som inkluderer tiden for å overføre framen og tilden til å overføre en bekreftelse (RTS/CTS)

Frame Control Fields: inneholder mange subfelter; felttypene (RTS, CTS, ACK og frame), til og fra brukes til å definere betydningen av de forskjellige adressefeltene. WEB sier om kryptering er brukt eller ikke.

Mobility in the Same IP subnet

For å øke rekkevidde kan man benytte seg av flere BSS (Basic Service Set) i samme IP-subnett, dette øker mobiliteten. La oss ta for oss scenario i bildet over. Host H1 beveger seg fra BSS1 til BSS2. H1 kan beholde sin IP-adresse og alle dens pågående TCP-tilkoblinger fordi alle stasjonene i de to BSS-ene er i samme IP-subnett.

Les bok eller kompendium for mer info om hva som skjer når H1 flytter seg.

Cellular Internet Access

Cellular Internet Access gir deg muligheten til å koble deg på internet ved hjelp av mobilnettverk. Den gir brukere denne adgangen trådløst gjennom mobile enheter som f.eks. en smarttelefon. Dette blir som en utvidelse av det mobile nettverket. Pensum det året jeg hadde eksamen inkluderte ikke 1G, 2G, 3G, men vi hadde om 4G og 5G derfor inkluderer jeg kun det her. 

4G LTE (Long Term Evolution) arkitektur og elementer

Mobile device (UE: user equipment)

Host sin trådløse/mobile enhet (tlf, laptop osv)

Basestation (eNode-B)

Kobler enhetne på LTE nettverket

Home subscriber server (HSS)

Plassert i en mobil enhets hjemme nettverket, denne gir også autentifisering og tilgang privilegier i hjemme nettverk.

Serving gateway (S-GW), Packet Data Network Gateway (P-GW) og andre nettverk routers

Rutere som koordinerer forwarding til andre nettverk

Mobility Management Entity (MME)

Koordinerer de mobile enhetne: autorisering, mobile management (paging device location).

Setter opp path fra enheten til P-GW.

LTE protocol stacks

  • Packet Data Convergence (PDCP): gir IP-header compression og krypterer og dekrypterer IP datagram
  • Radio Link Control (RLC): fragmenterer og setter sammen store IP-datagram og sørger for pålitelig dataoverføring
  • Medium Access Control (MAC): ansvarlig for å sørge for at overføringen går greit, og bruk av transmission slots.
Multimedia
Multimedia networking applications

Multimediapplikasjon: enhver nettverksapplikasjon som tilbyr lyd eller video

PROPERTIES OF VIDEO
  • Den viktigste egenskapen ved video er den høye dataraten. Dette betyr at videoer ofte har mye data som trenger å bli sendt, vanligvis et sted mellom 100 kbps og 3 Mbps. En viktig ting å vite om videoer er at de kan bli komprimert for å endre kvaliteten basert på dataraten.

    Video er egentlig bare en rekke bilder som vises i rask rekkefølge. Det er to typer “overflødig informasjon” i video som blir utnyttet når vi komprimerer den:

    1. Plassmessig redundans: Dette betyr å komprimere innenfor hvert enkelt bilde. For eksempel, bilder med mye hvitt kan komprimeres mye, fordi mye hvitt ser ganske likt ut uansett hvor i bildet det er.

    2. Tidsmessig redundans: Dette handler om å komprimere basert på likheter mellom bilder som kommer etter hverandre. Hvis to bilder ligner mye på hverandre, kan vi bare sende forskjellen mellom dem i stedet for hele bildet.

    Du kan også komprimere video ved å lage flere versjoner av den med forskjellige kvalitetsnivåer, slik at brukeren kan velge den versjonen som passer best med den tilgjengelige internettforbindelsen deres.

PROPERTIES OF AUDIO
  • Digital lyd tar opp mye mindre båndbredde sammenlignet med video. For å forstå digital lyd, la oss se på hvordan det fungerer:

    1. Fra analog til digital: Først tar vi et analogt lydsignal (som er kontinuerlig) og bryter det ned til små biter som datamaskinen kan forstå.

    2. Sampling: Dette innebærer å ta små øyeblikksbilder av lyden på jevne tidspunkter. Tenk på det som å ta raske bilder av lyden.

    3. Kvantisering: Nå, for hvert av disse øyeblikksbildene (samples), runder vi av verdien til nærmeste tall. Dette kalles kvantisering. Det gir oss et endelig antall mulige verdier for hver sample.

    4. Bits: Til slutt, vi representerer hver av disse kvantiseringsverdiene ved hjelp av et bestemt antall biter. Jo flere biter, jo mer nøyaktig er representasjonen, men også mer data som må sendes.

    Eksempler på lydkodingsteknikker:

    • PCM (Pulse Code Modulation): Dette er en vanlig måte å kode lyd på, men det brukes ikke så ofte på internettet.

    • MP3: Dette er en populær kompresjonsteknikk for musikk i nær CD-kvalitet. MP3 kan komprimere musikken til forskjellige datarater, avhengig av ønsket kvalitet.

Typer multimediapplikasjoner:

Streaming lagret lyd og video:
    • Dette er når du ser eller hører noe online, men det er allerede opptatt og lagret på en server.
    • Du kan spille av videoen mens du mottar den fra serveren.
    • Du kan også gjøre ting som å pause, spole eller endre hastigheten på avspillingen.
    • Data må mottas fra serveren i tide for at videoen skal spille jevnt.
Sanntids samtaler over IP:
      • Dette er som å snakke med noen på telefonen, men over internett.
      • Samtaler må være svært raske, så forsinkelse er et stort problem.
      • Systemet er fleksibelt nok til å håndtere mindre feil i lyd eller video.
Streaming av direktesendt lyd og video:
    • Dette er som å høre på radio eller se på TV over internettet.
    • Du mottar dataene mens sendingen pågår.
    • Du kan også hente inn tidligere deler av sendingen hvis du kommer for sent.

Metoder for streaming:

  • UDP Streaming:

    • Serveren sender video i samme hastighet som klienten ser på den.
    • For eksempel, hvis klienten bruker 2 Mbps (megabits per sekund) og hver UDP-pakke er 8 000 biter, sender serveren en pakke hver 4 millisekunder.
  • HTTP Streaming:

    • Serveren har videofiler.
    • Klienten ber om disse filene ved å lage en tilkobling til serveren og be om videoen.
    • Serveren sender videoen så raskt som nettverket tillater.
    • Applikasjonsbufferen på klienten lagrer videoen slik at det er mulig å spille av videoen selv om båndbredden blir dårligere.
  • Adaptiv HTTP Streaming:

    • Dette er en oppgradering av HTTP Streaming.
    • Du har flere versjoner av videoen tilgjengelig, avhengig av båndbredden.
    • Klienten laster ned små deler (chunks) og velger neste chunk basert på tilgjengelig båndbredde.

Content Distribution Networks (CDN):

  • Dette er som å ha flere kopier av videoene dine på forskjellige steder over hele verden.
  • Det hjelper med å redusere ventetiden og belastningen på serverne.
  • Det finner den nærmeste kopien av videoen for deg ved hjelp av forskjellige metoder, for eksempel hvor du befinner deg, målinger av forsinkelse og tap, eller eksisterende tilkoblinger.
Datasikkerhet
Security in computer networks
Sikker kommunikasjon har følgende egenskaper:

Confidentiality: Bare senderen og tiltenkt mottaker skal kunne tolke meldinger som sendes, så de må være kryptert.

Message Integrity: Sender og mottaker vil kunne forsikre seg om at innholdet i  meldingen ikke er endret på.

Endpoint authentication: Sender, og mottaker skal kunne bekrefte identiteten sin.

Operational security: Nettverk må være beskyttet utenfra

Handlinger en inntrenger potensielt kan gjøre:

  • Eavesdrop: sniffe eller opptak av meldinger på en kanal
  • Impersonation: utgjøre seg for å være en annen (spoof)
  • Hijacking: kapre pågående økt
  • Denial of service: nekte tjenesten å legitimere nettverksbrukere ved å overbelaste systemressurser
Prinsipper i kryptografi

Krypteringsteknikker tillater sender å skjule data slik at en inntrenger ikke kan få noe informasjon av dataen.

Plaintext: meldingen i sin originale form

Chipertext: den krypterte meldingen

Siden krypteringsteknikken er kjent for alle, må det være noe hemmelig informasjon kun tilgjengelig for sender og mottaker. Dette er en nøkkel K. Krypteringsalgoritmen tar inn meldingen m og nøkkelen til Alice KA og gjør dette om til ciphertekst KA(m).

Bob, mottakeren av meldingen dekrypterer ciphertekst med sin nøkkel KB slik KB(KA(m)) = m.

Symmetrisk nøkkelsystem: Alice og Bob deler samme nøkkel K

Asymmetrisk (offentlig) nøkkelsystem: et par av nøkler blir brukt. Den ene kjent for hele verden, den andre kun kjent for enten Alice eller Bob.

Symmetric Key Cryptography:

Ceasar cipher

Hver bokstav blir byttet ut med den k neste bokstaven i alfabetet (modulo lengden av alfabetet).

Monoalphabetic cipher

Hver bokstav blir byttet ut med en annen, men hvilken bokstav dette er, er tilfeldig. I dette tilfellet har sender og mottaker hver sin kopi av denne mappingen fra en bokstav til en annen. Hver bokstav har en substitusjonsbokstav.

Polyalphabetic cipher

Flere monoalphabetic cipher-algoritmer brukes på meldingen der en spesifikk cipher er brukt til å kryptere en bokstav på en gitt posisjon i plaintext-meldingen. Ceaser ciphere brukes i et repeterende mønster som f.eks. C1, C1, C2, C1, C2.

Block ciphers

  • Brukes i sikre internettprotokoller
  • Meldingen er prosessert i blocker av k bits. Hver blokk blir kryptert uavhengig av de andre.
  • Dette gir 2k! Mulige mappinger og er derfor vanskelig å dekryptere uten tilgang til nøkkelen
  • Vanskelig å implementere siden Alice og Bob må vedlikeholde et table med 264 inngangsverdier.
  • Block cipher bruker vanligvis funksjoner som simulerer tilfeldig permuterte tabeller.

Cipher Block Chaining (CBC)

  • Sender med en tilfeldig verdi i den første meldingen som brukes til å kryptere de resterende blokkene
  • Denne verdien skrives som c(0)

Her er en enkel forklaring på hvordan CBC fungerer:

  1. Del teksten inn i blokker: Først deles teksten som skal krypteres, vanligvis representert som en sekvens av bytes, opp i blokker av en fast størrelse. For eksempel kan hver blokk være 64 eller 128 bits.
  2. Initialiseringsvektor (IV): En initialiseringsvektor er en tilfeldig generert verdi som har samme størrelse som en blokk. IV brukes som en startverdi for den første blokken i krypteringsprosessen.
  3. XOR-operasjon: Den første blokken av teksten blir XOR-operert med IV. Resultatet blir deretter kryptert ved hjelp av en krypteringsalgoritme, for eksempel AES (Advanced Encryption Standard), ved hjelp av en nøkkel.
  4. Chaining: Resultatet av den første blokken blir deretter XOR-operert med innholdet i den neste blokken av teksten. Denne prosessen fortsetter for hver blokk i teksten. Med andre ord blir resultatet av en blokk brukt som en del av inndata til å kryptere den neste blokken.
  5. Krypteringsnøkkel: Den samme krypteringsnøkkelen brukes til å kryptere hver blokk av teksten.
  6. Avslutning: Den siste blokken kan ha en lengde som er mindre enn blokkstørrelsen. I så fall blir den blokken fylt ut med en passende padding for å matche blokkstørrelsen.
  7. Krypteringsresultat: Resultatet av CBC-kryptering er en sekvens av krypterte blokker som kan sendes eller lagres trygt.

 

For å dekryptere bruker mottakeren den samme nøkkelen og reverserer prosessen. Hver blokk blir dekryptert og XOR-operert med den forrige krypterte blokken for å gjenopprette den opprinnelige teksten.

Public Key Encryption
  • Nyttig for kryptering, autentisering og digitale signaturer
  • Alice vil sende en melding til Bob. Bob har to nøkler, en offentlig og en privat nøkkel som kun Bob vet om.
  • KB+ er den offentlige nøkkelen, KB er den private nøkkelen
  • Alice henter den offentlige nøkkelen og krypterer meldingen: KB+(m)
  • Bob bruker sin private nøkkel til å dekryptere KB (KB+(m)) = m
  • Problemer
    • Siden Bob har en offentlig nøkkel, kan alle sende krypterte meldinger til han, inkludert folk som hevder å være Alice
    • Da blir det nødvendig med digital signatur
Message Integrity and Digital Signatures

Når Bob mottar en fra Alice må kan verifisere:

  1. At meldingen faktisk ble sendt fra Alice
  2. At meldingen ikke er endret på underveis

Cryptographic Hash Function

  • En hashfunksjon tar inn en input m, og regner ut en streng H(m) med en gitt størrelse. (også kjent som hash)
  • Eksempler på hash er internet checksum og CRC
  • Det er umulig å finne to forskjellige meldinger x og y slik at H(x) = H(y)
  • Umulig for inntrenger å erstatte en melding for en annen melding som er beskyttet av hashfunksjon
  • Kjente hashfunksjoner
    • MD5 regner ut en 128-bits hash
    • SHA-1 regner ut en 160-bits
    • De nye standardene i dag er SHA-256 og SHA-512

Message Authentication Code (MAC)

  1. Alice lager en melding m og utregner hashen H(m)
  2. Alice legger H(m) = h til meldingen m, og lager utvidet melding (m, h) som sendes til Bob
  3. Bob mottar meldingen og regner ut H(m). Dersom H(m) = h, konkluderer Bob med at alt er bra

I tillegg til kryptografisk hashfunksjon trenger meldingen også integritet. Dette uføres ved å legge ved en autentiseringsnøkkel s, delt mellom sender og mottaker.

  1. Alice lager medling m, og beregner hashen av m+s: H(m+s) (kalles for message authentication code (MAC)
  2. Alice legger MAC-meldingen med meldingen og sender (m, H(m+s)) til Bob
  3. Bob mottar den utvidede meldingen (m,h) og vet s. Han regner så ut MAC-en og dersom den stemmer overens med Alice sin, vet han at alt er bra.
Digital Signatur
  • Må være verifiserbar og umulig å forfalske
  • Når bob signerer en melding, legger han ved noe som er unikt for han
  • Bob har en offentlig og en privat nøkkel, begge unike for han.
  • Bob sender meldingen m og meldingen kryptert med sin private nøkkel KB(m)
  • Alice dekrypterer med Bob sin offentlige nøkkel KB+(KB(m)) og kan verifisere at Bob sende meldingen

Det er ikke alltid man trenger å signere data, fordi kryptering koster mye penger og det kan være overkill. En mer effektiv tilnærming kan være å introdusere hashfunksjonen i den digitale signaturen. Og heller kryptere hashen av meldingen som er mye kortere enn selve meldingen.

Public Key certification: en offentlig nøkkel tilhører en bestemt enhet

La oss si Bob skal bestille pizza og sender bestillingen, med hans hjemmeadresse til Pizza-leverandøren. Han sender meldingen og krypterer hashen av meldingen med hans private nøkkel. Pizza-leverandøren verifiserer bestillingen ved å dekryptere med Bobs offentlige nøkkel.

MEN tenk om Trude også skal bestille pizza og legger ved Bobs navn og Bobs adresse i bestillingen. Hun krypterer meldingen med hennes private nøkkel. Pizza-leverandøren verifiserer den de tror er Bob men Trudes offentlige nøkkel og verifiserer en bestilling fra Bob som egentlig ikke var fra Bob.

Det hjelper ikke at man sender med sin private nøkkel som blir autorisert av den offentlige nøkkelen, for da kan man jo late som man er andre. Derfor må man knytte den offentlige nøkkelen til en bestemt entitet, dette gjøres av Certification Authority (CA). De validerer identiteten og gir ut sertifikater. De har følgende roller:

  1. verifiserer at en entitet er den som den sier den er
  2. lager sertifikat som binder den offentlige nøkkelen til entitetens identitet

Secure E‐mail

Det er mulig å tilby sikkerhetstjenester til alle de fire øverste lagene i internettprotokollstakken. Det er flere grunner til at vi implementerer sikkerhetstjenester i applikasjons og transportlaget i tillegg til nettverkslaget:

  • sikkerhet i nettverkslaget kan ikke gi brukernivå sikkerhet
  • en nettbutikk kan ikke stole på IP-lagssikkerhet til å godkjenne en kunde som kjøper varer på handlestedet.
  • Lettere å distribuere nye Internett-tjenester i de høyere lagene i protokollstakken

Et eksempel er Pretty Good Privacy (PGP) som tilbyr sikker epost.

Vi fortsetter med analogien om at Alice vil sende mail til Bob, og Trudy vil trenge inn.

Ved sikker e-mail er de samme egenskapene som tidligere

  • Konfidensialitet
  • Sender autentifisering
  • Meldingsintegritet
  • Mottaker autentifisering

Offentlig nøkkel kryptografi

  • Alice krypterer eposten med Bob sin offentlige nøkkel
  • Bob dekrypterer med sin private nøkkel
  • Selv om det funker er det lite effektivt for lange meldinger
  • Bruker session Key for å løse effektivitetsproblemet.
  • Alice velger en tilfeldig symmetrisk session key Ks, krypterer meldingen m med Ks, deretter krypterer Ks med Bob sin offentlige nøkkel og legger denne med meldingen og sender eposten

Bob bruker sin private nøkkel til å få den symmetriske nøkkelen som han igjen bruker til å dekryptere meldingen

For å sikre autentisering og meldingsintegritet kan man se på et annet system.

  1. Alice hasher meldingen sin og får H(m)
  2. Hun signerer hashmeldingen med sin private nøkkel
  3. Setter sammen den ukrypterte meldingen med signaturen til pakken og sender til Bob

 

Når Bob får pakken vil han

  1. bruke Alice sin offentlige nøkkel for å autentisere Alice
  2. sammenligne resultatet med sin egen hash H(m)

La oss nå se på et system som tilbyr konfidensialitet, sender-autentisering og meldingsintegritet. Dette gjøres ved å kombinere de to systemene over.

Securing TCP Connections: TLS

Kryptografi kan forbedre TCP med sikkerhetstjenester. Denne forbedrede versjonen av TCP kalles Secure Sockets Layer (SSL). En modifisert versjon av SSL kalt Transport Layer Security (TLS) er blitt standardisert.

Dersom URL-en i nettleseren begynner med https i stedet for http, vet du at du bruker SSL.

En forenklet versjon av SSL har tre faser:

Handshake

  1. Bob etablerer tcp-connection
  2. verifisere at Alice er Alice
  3. sende «master secret key» til Alice

Key Derivation

Bob og Alice bruker MS (master secret) til å generere fire nøkler:

  1. EB = krypterignsnøkkel for data sendt fra Bob til Alice
  2. MB = MAC-nøkkel for data sendt fra Bob til Alice
  3. EA = krypteringsnøkkel ofr data sendt fra Alice til Bob
  4. MA = MAC-nøkkel for data sendt fra Alice til Bob

Data transfer

Med alle disse fire nøklene, kan de starte å sende sikret data til hverandre over TCP-tilkoblingen. SSL deler datastrømmen inn i records, legger til en MAC til hver record for integritetsjekking og krypterer denne pakken.

Vi antar at hvert TCP-segment innkapsles nøyaktig i en record, la oss se hvordan Alice prosesserer disse segmentene. For å hindre at en inntrenger omrokkerer på rekkefølgen til tcp-segmentene innfører vi sequence numbers.

  1. TCP kjørende hos Alice sender to records til SSL-sublaget
  2. SSL vil dekryptere de to recordene
  3. SSL hos Alice vil bruke MAC-en i hver record for å verifisere dataintegriteten itl hver av de to recordene
  4. SSL vil så di den dekrypterte bytestrømmen av de to recordene til applikasjonslaget, men de vil være i motsatt rekkefølge.

For å hindre dette ^ bruker vi sekvensnumre. Bob vedlikeholder en sekvensnummer-teller som inkrementerer for hver SSL-record han sender.

Kompendium som dokument