TTM4100: Kommunikasjon – Tjenester og nett
Raske tips
- Læreboka har en nettside med applets hvor du kan se animasjoner av forskjellige deler av pensum.
- Det finnes quizzer basert på gamle eksamenssett Intoit - hvor det er mulig å legge til egne oppgaver og diskutere med andre, eller Kramster!
Kapittel 1 : Computer Networks and the Internet
Kapittel 1.1 : What is the Internet?
Endepunktene i et nettverk er koblet sammen av communication links og packet switches. For å ha tilgang til internett må endepunktene gjennom en ISP. Endepunktene kommuniserer ved å sende hverandre pakker (packets). Disse pakkene må bruke protokoller for å fortelle hvor de skal. Den vanligste protokollkombinasjonen er TCP/IP.
Kapittel 1.2 : The Network Edge
Endepunktene, også kalt hosts, blir ofte delt inn i klienter (clients) og tjenere (servers). Det finnes forskjellige måter klienter kan koble seg opp mot nettet. DSL, kabel og fiber står nevnt i boka. For å koble seg til nett på faste steder bruker klientene Ethernet eller WiFi (trådløs internett). 3G og LTE har mye lengre rekkevidde og benyttes derfor når klienten ikke er i nærheten av et fast punkt.
Kapittel 1.3 : Packet Switching
Packet switches består stort sett av routers og link-layer switches. Det tar
I tillegg kan det komme ekstra forsinkelse ved at en pakke må vente på at forrige pakke er ferdig med å bli sendt. I mellomtiden blir pakken lagret i en output buffer. Denne typen forsinkelse, queuing delay, er vanskelig å regne på og finnes ingen formel for som er pensum. Når en output queue (køen som skal sendes videre av en router) er full, skjer det pakketap (packet loss): Pakken blir forkastet og kommer ikke fram til destinasjonen sin.
Når en pakke kommer til en router, slår routeren opp i en forwarding table for å finne ut av hvilken utgående forbindelse pakken burde sendes videre på. Circuit switching fungerer på en annen måte. Her må senderen «reservere» tilkoblingen. Dette brukes for eksempel med hjemmetelefoner. Hverken packet eller circuit switching er 'best', men passer til hvert sitt bruk.
Kapittel 1.4 : Delay, Loss and Throughput in Packet-Switched Networks
Det finnes forskjellige typer forsinkelser. Total nodal delay(den totale forsinkelsen) er summen av:
Processing delay | Tiden det tar for å undersøke pakkens header og finne ut hvor den skal sendes. |
Queueing delay | Tiden det tar å vente på at andre pakker skal bli sendt ut på linken. |
Transmission delay | Tiden det tar for å skyve pakken ut på linken (som er "veien" mellom nodene). (L/R) |
Propagation delay | Tiden det tar for å reise fra en node til den neste. (d/s) |
Total end-to-end-delay er tiden det tar fra start til slutt, altså veien gjennom alle ruterne. Denne delayen er:
I dette eksemplet er det N-1 rutere. Antar her at nettverket er uncongested slik at queueing delay er neglisjerbart.
I en kobling med flere switcher mellom den, brukes transmisjonsforsinkelsen til flaskehalsen.
En viktig faktor som spiller inn på queuing delay er traffic intensity. Traffic intensity er forholdet La/R der L er bits, a er pakker per sekund og R er transmisjonsraten. Dersom La/R > 1 vil det komme flere pakker inn til køen enn køen klarer å sende videre, og queuing delay vil raskt stige mot uendelig. Det er derfor ønskelig å designe er nettverkssystem slik at traffic intensity aldri blir over 1.
Instantaneous throughput til enhver tid er raten man mottar en fil med akkurat der og da, målt i bits/sec. Dersom en fil består av F bits og det tar T sekunder å motta den så er average throughput F/T bits/sec.
Kapittel 1.5 : Protocol Layers and Their Service Models
Nettverksprotokoller er delt inn i lag. Internettsprotokollen er delt inn i fem lag.
Navn | Forklaring | Eksempler | Informasjonsenhet |
Application layer | Toppnivå-protokoller som direkte samhandler med programvare. | HTTP, SMTP, FTP, DNS | message |
Transport layer | Sørger for end-to-end kommunikasjon. | TCP, UDP | segment |
Network layer | Fikser alt som ligger mellom hosts, eks. hvor en pakke skal sendes videre for å komme til sin destinasjon. Dette er det øverste laget i en router. | IP | datagram |
Link Layer | Protokoller for hvordan data skal legges over på det fysiske laget (flyttes fra en node til den neste). | Ethernet, 802.11b/g/n | frame |
Physical layer | Det fysiske, altså typen kabel eller antenne. | Twisted-pair, Nettverksadapter, Fiber .. | bits |
Det finnes også andre protokollstakker, som for eksempel OSI modellen.
Kapittel 2 : Application Layer
Kapittel 2.1 : Principles of Network Applications
En prosess må kommunisere gjennom (minst) en socket. Hver socket er koblet til et portnummer som er unik for datamaskinen. Slik er det mulig å vite hvilket program som skal motta pakker etter at de har kommet til riktig IP adresse.
Hvilken transport layer protocol som brukes påvirker overføringshastighet, beskyttelse mot pakketap, garanti for når neste pakke har kommet og sikkerhet. TCP forsikrer at serveren finnes og at pakkene kommer i riktig rekkefølge og uten tap. UDP har verken garantier eller begrenset throughput.
Kapittel 2.2 : The Web and HTTP
HyperText Transfer Protocol (HTTP) blir brukt for å overføre informasjon om nettsider. Når klienten spør om en nettside, sender serveren først HTML-filen, og andre objecter i hver sin pakke etterpå. HTTP støtter cookies og web caching.
Web cache (aka Proxy server) er en nettverksentititet som kan besvare HTTP-forespørsler fra klienter. Den ser om den har objektene klienten ber om lokalt, og hvis ikke sender den selv en request til serveren og henter disse objektene. Den operer altså som server og klient samtidig. Poenget med en web cache er å redusere responstiden for klienter. En web cache blir gjerne kjøpt og installert av ISP-er for å redusere responstiden for sine kunder, men f.eks. kan også et skolenettverk la alle klientene sine requests gå via en web cache. Årsaken til dette vil gå fortere er at tilkoblingen mellom klient og cache gjerne har større båndbredde enn den ut mot nettet (eks. er nettet til NTNU mye raskere internt enn hvis du må hente data utenfra.)
HTTP støtter både persistent og non-persistent connections. I en persistent connection blir alle forespørsler og svar sendt over samme forbindelse. For non-persistent må klienten opprette en ny tilkobling til serveren for hver forespørsel. HTTP har persistent connections som standard.
Kapittel 2.3 : File Transfer: FTP
Ikke pensum vår 2017
File Transfer Protocol (FTP) 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.
Kapittel 2.4 : Electronic Mail in the Internet
Simple Mail Transfer Protocol (SMTP) blir brukt til å sende mail. Denne protokollen er gammel, og krever at alt blir sendt i 7-bit ASCII. Dette krever litt ekstra arbeid når vi vil ha æ, ø, å og vedlegg i eposten. Når epost blir sendt, går den fra brukeren til epostserveren til brukeren, så til epostserveren til mottaker. Hvis en av maskinene ikke får kontakt med neste ledd, prøver den igjen senere. Mottakeren kan bruke POP3, IMAP eller en webløsning (HTTP) til å hente eposten sin fra serveren.
Kapittel 2.5 : DNS - The Internet's Directory Service
Domain name system (DNS) oversetter domenenavn (hostnames) til IP-adresser. DNS bruker UDP. 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.
Øverst i «DNS hierarkiet» ligger rot-DNS-servere. Det er omlag 400 slike servere i verden, og styres av 13 forskjellige organisasjoner. Under dem kommer top-level domain (TLD) servere, som er delt inn etter domenenavnendelser (.org, .com, .no, ...). Under de har hvert domene en authorative DNS. I tillegg finnes lokale DNS-servere, for eksempel på et universitet. For å finne IPen til et sted, kan en lokal DNS spørre en av rotserverne. Etter det kan enten rotserveren eller den lokale DNSen spørre videre. Årsaken til at det ikke nødvendigvis tar lang tid å skaffe IP til et domene er altså at man gjerne har mer nærliggende DNS-servere (enn rotserverne) som kan ha cachet domenet.
DNS er med i alle operasjoner hvor domener (hostnames) er med, altså kan (og er gjerne) DNS være en aktør når man sender e-post, kobler seg på en FTP-server osv.
Kapittel 2.6 : Peer-to-peer Applications
I et P2P nettverk er alle klienter også servere. Den mest brukte P2P-protokollen er BitTorrent. Der blir filer delt inn i biter (chunks). Fordelen med det er at det er mulig å laste opp selv om klienten ikke har hele filen. Deltakerne i nettverket vet om hverandre ved å kontakte en tracker. Da får man en TCP-forbindelse med andre peers i nettverket. P2P nettverk bruker en distributed hash table (DHT) for å knytte filer/data til IP-adreser.
Distribution time
Kapittel 3 : Transport Layer
Kapittel 3.1 : Introduction and Transport-Layer Services
På nettet kan man bruke to transport-layer protocols, UDP (user data protocol) og TCP (transmission control protocol).
Kapittel 3.2 : Multiplexing and Demultiplexing
Ved multiplexing legger man på en header i databitene som kommer fra sockets. Da er det mulig å finne ut av hvilken socket segmentet skal til når den har nådd frem til riktig host (demultiplexing). UDP og TCP forteller hvilken socket segmentet skal til ved å si hvilken port segmentet skal til og kommer fra. Portnummer går fra 0 til 65535, og alt til og med 1023 er reservert for kjente protokoller. HTTP bruker for eksempel 80. Ved UDP blir segmenter med forskjellig source eller port sendt til samme port, mens TCP sender dem til forskjellige sockets.
Kapittel 3.3 : Connectionless Transport: UDP
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 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:
- Summer sammen de tre 16-bit ord (source port, destination port, lengde) i segmentet.
- Hvis det er overflyt (mer enn 16 bits) utføres end around carry, som vil si at man adderer overflyten med resultatet.
- Inverter alle bits.
- Når pakken mottas, summeres de 4 16-bit ord (tre som tidligere, siste er checksummen). Resultatet skal være 16 enere.
Kapittel 3.4 : Principles of Reliable Data Transfer
ARQ protokollen er en måte å sjekke på om den sendte informasjonen har blitt mottatt riktig. For å oppnå dette, kreves tre ting:
- Error detection. En måte å finne ut av om det har skjedd bitfeil.
- Receiver feedback. Muligheten til å sende tilbakemelding om pakken har blitt mottatt riktig. Det sendes en ACK når alt er bra, og NAK når det har skjedd en feil.
- Retransmission. Når det har skjedd en feil i sendingen av pakken, skal det være mulig å sende på nytt.
For å vite hvilke pakker som har blitt mottatt uten feil, er det mulig å legge på et sequence number. I tillegg kan avsenderen ha en timer. Hvis den ikke har mottatt en ACK innenfor en viss tid, sendes pakken på nytt.
- Stop-and-wait-protocol. Her sendes en pakke om gangen. Neste blir sendt når en ACK har blitt mottatt. Hvis en timeout skjer, sendes samme pakke en gang til. Her er sekvensnummeret 0 eller 1.
- Pipelining. Her økes intervallet for sekvensområdet og avsender og mottaker bruker et større buffer. Dermed er det mulig å sende ut mange pakker samtidig. Etterpå kan serveren finne ut av hvilke pakker som må bli sendt på nytt.
- Go-Back-N. Her er det en begrensning på antall pakker vi ikke har fått en ACK på innen tidsrammen. Disse pakkene kommer rett etter hverandre. Med en begrensning på for eksempel 8, vil pakke 11 ikke bli sendt før vi har fått en ACK på pakkene 0-3.
- Selective repeat. Her er det også en begrensning på pakker vi ikke har fått ACK på innen tidsrammen. Forskjellen fra Go-Back-N er at mottakeren sender en ACK for alle pakker, og avsenderen sender bare pakkene som den ikke har fått en ACK tilbake for på nytt. Pakkene som kommer i feil rekkefølge blir bufret hos mottakeren, frem til den har alle pakker den trenger for å sette dem i riktig rekkefølge, før de blir sendt videre i mottakeren sitt system.
Kapittel 3.5 : Connection-Oriented Transport: TCP
TCP har flere egenskaper.
- Full-duplex service: Hvis det er en forbindelse mellom prosess A på en host og prosess B på en annen host, kan kommunikasjon gå begge veier samtidig.
- Point-to-point: Det finnes bare en sender og mottaker i hver forbindelse.
- Three-way handshake: For å få en tilkobling, sender A et bestemt segment, B svarer med et annet bestemt segment, hvorpå A svarer med et tredje segment.
- Hvis en fil, for eksempel et bilde, er større enn maximum segment size (MSS), blir den delt opp i flere segmenter.
- TCP bruker en slags mellomting mellom go-back-n og selective repeat.
På Wikipedia står det forklart hvordan TCP-headeren ser ut. Sekvensnummerne på pakkene øker med størrelsen på den forrige pakken. Det vil si, første pakke er 0, neste har nummeret til antall bytes den første pakken hadde, osv. ACK-nummeret som blir sendt tilbake, er sekvensnummeret til neste pakke mottakeren forventer å få. Pakkene som kommer for tidig blir endten forkastet eller tatt vare på til de kan plasseres i rekkefølge. Da kan mottakeren sende en høyere ACK tilbake. I mellomtiden kan mottakeren sende en duplicate ACK, som gjentar summen av bytes frem til siste in-order pakke.
TCP har bare en timer. Den teller fra den siste pakken som avsenderen ikke har fått ACK på enda. Hvis tiden går ut, blir pakken sendt på nytt. Ellers blir timeren restartet hver gang vi får en ACK med høyere verdi enn vi har fått tidligere, eller når timeren ikke teller.
Three-way-handshake fungerer ved at klienten først sender en pakke (SYN-segmenten) med SYN biten satt til 1. I tillegg sender klienten med et tilfeldig generert segmentnummer av sikkerhetsgrunner. Serveren åpner et buffer, svarer med en ACK og sender en pakke (SYNACK-segmentet) med SYN biten satt til 1, acknowledgementnummeret er segmentnummeret til klienten pluss en og et annet, tilfeldig generert, segmentnummer. Klienten åpner et buffer når den får SYNACK-segmentet, og sender en pakke med SYN biten lik 0 og acknowledgenummeret lik serveren sitt segmentnummer pluss en.
For å avslutte en TCP-tilkobling sender klienten en pakke med FIN-biten satt til 1. Deretter venter klienten (FIN-WAIT-1) på en ACK fra serveren. Så venter klienten (FIN-WAIT-2) på en FIN-pakke fra serveren. Klienten sender så en ACK og går inn i TIME-WAIT, for å sende ACK på nytt hvis det trengs. Hvis den timer ut, er forbindelsen avsluttet.
Kapittel 3.6 : Principles of Congestion Control
Congestion, tap av transportlagsegmenter, skjer når for mange kilder sender for mye data på en gang. Ruteren kan ikke sende mer enn en pakke videre om gangen, og har begrenset med buffer. I tillegg kan pakker bli sendt flere ganger, som skaper mer trafikk for ruteren.
Vi skiller mellom to typer congestion control.
- End-to-end congestion control: Transportlagene i endesystemene må ta seg av congestion control fordi nettverkslaget ikke støtter det. Nettverkslaget informerer ikke en gang om congestion. TCP/IP er i denne situasjonen.
- Network-assisted congestion control: Rutere kan sende tilbakemelding om congestion, for eksempel ved å sende en choke packet.
Kapittel 3.7 : TCP Congestion Control
Siden ruterne ikke forteller TCP hvor ofte pakker bør sendes, prøver TCP å finne ut av det selv. TCP starter med en maksgrense på antall pakker den ikke har fått en ACK fra (som indirekte bestemmer hastighet). Hvis TCP merker en timeout eller trippelACK, bør grensen settes ned. Hvis dette ikke skjer, kan TCP prøve å øke grensen. Hvor mye grensen kan justeres finner TCP ut av ved å se på hvor fort den får ACKer tilbake. Boka nevner tre algoritmer for å finne ut av dette: slow start, congestion avoidance og fast recovery. TCP bruker alle tre.
Kapittel 4 : Network Layer
Bortsett fra 4.4.5, 4.6 og 4.7.
Kapittel 4.1 : Introduction
For å flytte pakker fra senderen til mottaker, benytter nettverkslaget seg av to viktige funksjoner:
- Forwarding. Når en ruter får en pakke, må den sendes videre til neste ruter på veien til mottakeren.
- Routing. Refererer til den omfattende prosessen som avgjør ende-til-ende-ruter i nettverket for pakker fra kilde til destinasjon.
Kapittel 4.2 : Virtual Circuit and Datagram Networks
Ikke pensum vår 2017
Virtual circuit: Nettverk som bare tilbyr connection service på nettverkslaget er kalt Virtual Circuit eller (VC) nettverk. En VC består av:
- En vei (path), en serie av linker og rutere)
- VC nummere (et nummer for hver link på veien).
- Forwarding tabell på hver ruter på veien.
Pakker som blir sendt over VC får et VC-nummer på headeren. Dette nummeret er linknummeret, og den blir endret på i hver ruter til å få riktig nummer for neste link.
Datagram network: Nettverk som bare tilbyr connectionless service på nettverkslaget er kalt datagram nettverk. Når et endesystem vil sende en pakke, stempler den pakken med adressen den skal til, og sender den på nettverket. Når pakken kommer til en ruter så bruker ruteren destinasjonsaddressen til pakken for å forwarde pakken videre.
Kapittel 4.3 : What's Inside a Router?
Et moderne ruter er vanligvis satt sammen av 4 hoveddeler:
- Input ports: Her skjer oppslag i forwardingtabellen og linklayerfunksjoner. I tillegg er dette fysiske porter på ruteren. Hver port har en kopi av forwardingtabellen, fordi det er mer effektivt enn å gjøre mange oppslag i prosessoren.
- Switching fabric: Denne delen kobler input- og outputporter sammen. Switching skjer enten i minnet, på bus eller crossbar.
- Output ports: Fysisk utgang.
- Routing prosessor: Oppdaterer routing tabellen og gjør andre nettverksfunksjoner som ikke er pensum.
Kapittel 4.4 : The Internet Protocol (IP): Forwarding and Addressing in the Internet
Datagrammene som kommer til ruteren blir splittet opp der og satt sammen igjen i ruteren i den andre enden. Alle inputporter til en ruter danner et subnet. IP adressene til subnettet er et subnet mask. For eksempel 223.1.1.0/24, hvor de 24 første (av 32) bit er fastsatt. Alle IPer i dette subnettet har adressen 223.1.1.xxx. ISPer deler ut IPadresser. Maskiner som ikke er servere trenger ikke fast IP, så de blir tildelt en IP ved å bruke dynamic host configuration protocol (DHCP).
Kapittel 4.5 : Routing Algorithms
Routing algoritms er algoritmer som prøver å finne raskest vei mellom endepunktene. Disse algoritmene kan deles inn på forskjellige måter:
- Global routing algorithms (aka link-state (LS) algorithms) har oversikt over hele nettverket, og beregner korteste vei fra A til B
- Decentralized routing algorithms har ikke oversikt over hele nettverket. I bruk kommuniserer nabonoder med hverandre og kartlegger korteste vei videre.
En annen måte å dele de inn bredt på er:
- Static routing algorithms router sakte over tid og er gjerne et resultat av menneskers 'fikling' (eks. en sysadmin som endrer en forwarding table)
- Dynamic routing algorithms endrer routingveier med trafikk og topologiforandring. En dynamisk routing algoritme kan kjøres periodisk eller i direkte respons til forandringer. De er responsive til forandring, men kan oftere forårsake problemer som routing loops og oscillasjon (svingning) i routing.
Algoritmer som tar hensyn til trafikkbelastning kalles load-sensitive.
Nettverk der alle kostnader er kjent blir ofte referert til som link-state algoritmer. Problemet som skal løses da er en variant av en-til-en kortest vei, og dermed kan for eksempel Dijkstras algoritme benyttes. I tilfeller der ruteren ikke har oversikt over hele nettet, brukes distance-vector routing protokollen (DV algoritme). En til alle noder kan løses ved for eksempel Bellman-Ford algoritmen.
Kapittel 5 : Link Layer and Local Area Networks
Kapittel 5.1 : Introduction to the Link Layer
Når vi snakker om datalink-laget, blir alle hosts, rutere, switches og WiFi-aksesspunkter kalt noder. Mellom disse nodene går kommunikasjonsstier, links. En link går mellom noder, uten en annen node mellom dem. Linklaget er vanligvis implementert i hardware. Forskjellige protokoller for linklaget har implementert forskjellige tjenester. Noen av tjenestene er:
- Frame: En "ramme" på dataene. Har flere formater, men alltid et datafelt for datagrammet og en eller flere headere. Format spesifiseres av link-layer protokollen.
- Framing: Å legge på linklag spesifikk data på nettverkslagpakken, slik at det blir en frame.
- Link access: MAC-protokollen (medium access controll) spesifiserer når det er mulig å sende en frame over linken. Dette er ikke et problem før flere noder deler samme link.
- Reliable delivery: En garanti for at nettverkslag-datagrammer kommer over linken uten tap. Dette blir ofte brukt av trådløse linklager.
- Error detection and correction: Muligheten til å finne og rette opp feil i frames.
Kapittel 5.2 : Error-Detection and -Correction Techniques
Feil blir ikke alltid oppdaget. Dette delkapitlet tar for seg noen måter feil blir oppdaget i linklaget.
- Parity checks. I tillegg til pakken blir det sendt en ekstra bit, slik at det finnes et odde (odd parity) eller partall (even parity) antall enere. Denne metoden oppdager bare feil hvis det har skjedd i et odde antall bits.
- Two-dimensional parity. Dataen som blir sendt er delt opp i rader og kolonner. Det blir sendt parity bits for alle rader og kolonner, i tillegg til en bit for summen av dem. Dette tillater også å rette opp hvis det bare har skjedd en feil.
- Cyclic Redundancy Check codes. Sender og mottaker avtaler først et tall, G. For hver D antall bits legges det til r bits, R, slik at
$\frac{D*2^r}{G} = R$ .
Kapittel 5.3 : Multiple Access Links and Protocols
Det finnes to typer links. En point-to-point link har en sender og en mottaker. En broadcast link, derimot, kan ha flere noder. Dette kan gjøre det vanskelig å snakke med flere noder samtidig. Multiple access protocols definerer hvordan nodene skal oppføre seg. Disse protokollene er delt inn i tre kategorier:
- Channel partitioning protocols. Alle noder får tildelt time slots hvor de kan sende pakker.
- Time-division multiplexing (TDM). Tiden er delt inn i time frames, som har en time slot til hver node. Maksimal overføringshastighet for en node er
$\frac{\text{maks hastighet i kanalen}}{\text{antall noder}}$ . - Frequency-division multiplexing (FDM). Fungerer som TDM, men alle noder får tildelt en egen frekvens.
- Code division multiple access (CDMA). Deler ut en kode til hver node.
- Time-division multiplexing (TDM). Tiden er delt inn i time frames, som har en time slot til hver node. Maksimal overføringshastighet for en node er
- Random access protocols. Nodene sender pakker på maksimal hastighet. Når det skjer en kollisjon sender pakken på nytt.
- Slotted ALOHA. Tiden er delt inn i slots, hver stor nok til å overføre en frame. Når en node vil overføre noe, venter den til en ny frame starter. Hvis det skjer en kollisjon, blir alle noder informert før framen er over. For hver frame etter en kollisjon, har noden en sannsynlighet
$p$ for å prøve å sende pakken på nytt. - ALOHA. Fungerer på samme måte som slotted ALOHA, bortsett fra at vi ikke har synkronisering av slots. Det vil si at frames kan delvis overlappe, og sannsynligheten for kollisjon er større.
- Carrier sense multiple access (CSMA). Noder sender ikke før de har spurt om noen andre sender. Likevel kan det skje kollisjoner, på grunn av propagation delay.
- Carrier sense multiple access with Collision Detection(CSMA/CD). Forsøker å sende. Hvis det blir kollisjon avbrytes sending, og man venter. Bruker exponential backoff algoritmen for å bestemme ventetiden før en pakke sendes på nytt etter kollisjon. Intervallet som den tilfeldige ventetiden velges fra øker eksponensielt.
- Slotted ALOHA. Tiden er delt inn i slots, hver stor nok til å overføre en frame. Når en node vil overføre noe, venter den til en ny frame starter. Hvis det skjer en kollisjon, blir alle noder informert før framen er over. For hver frame etter en kollisjon, har noden en sannsynlighet
- Taking-turns protocols. Ingenting sender med mindre noden får beskjed om at det er dens tur til å sende pakker.
- Polling protocol. En master node sier ifra når en annen node kan sende et bestemt antall frames.
- Token-passing protocol. Ingen master node. En node sender maks en bestemt antall pakker, så gir den beskjed til neste node at det er dens tur.
Kapittel 5.4 : Switched Local Area Networks
Switched local area networks er nettverk som er koblet sammen ved hjelp av svitsjer. For å vite hvor i linklaget en pakke skal, er det inkludert en adresse i dataen i linklaget, MAC adressen. Dette er ikke adressen til en maskin, men til nettverksadapteren.
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.
Kapittel 5.5 : Link Virtualization: A Network as a Link Layer
Ikke pensum vår 2017
VLAN, virtual local area networks, tillater å ha flere virtuelle nettverk på et fysisk nettverk.
Kapittel 6 : Wireless and Mobile Networks
Bortsett fra 6.5 - 6.8.
Forskjeller mellom wired og wireless networks:
- Et trådløst nettverk bytter ut ethernettkortene med NIC kort (network interface controller) som bruker elektromagnetisk strålig for å kommunisere. I stedet for en switch har vi et access point.
- I et trådløst nettverk kan man oppleve større fall i signalstyrke fra access pointet, enn signalet fra en switch i et tradisjonelt nettverk. Signalstyrken svekkes av å måtte passere gjennom materie og selv i åpent rom.
- Radiokilder som overfører signaler i samme frekvensområder kan forstyrre signalene til nettverket. Dersom to trådløse nettverk opererer på den vanlige frekvensen 2.4 GHz kan man anta at det elektromagnetiske støyet vil ødelegge ytelsen til begge kildene.
- Multipath propagation: oppstår når signaler for samme prosess kommer frem til destinasjonen fordi de for eksempel hopper rundt på objekter, dette fører til at forstyrrelse av signalet som kommer frem til mottakeren.
Kapittel 6.1 : Introduction
Trådløse nettverk består av trådløse hosts (laptop, mobil), trådløse links og basestasjoner (rutere, basestasjoner til mobilnett).
Kapittel 6.2 : Wireless Links and network Characteristics
Code division multiple access (CDMA) er en channel partitioning protocol og mye brukt i trådløse nettverk og mobile nettverk. I CDMA er hver bit som blir sendt encoded ved å gange biten med et signal (koden) som forandrer seg i en svært høy rate (kalt chipping rate). Altså sendes
Kapittel 6.3 : WiFi: 802.11 Wireless LANs
Fire standarderer. 802.11 b/a/g/n. De opererer på ulike frekvenser og har ulike hastigheter - b gå til 11 Mbps, a og g til 54 Mbps mens n kan gå til 600 Mbps. Den store nyheten i n-standarden er bruken av to eller flere antenner på sendersiden, og to eller flere antenner på mottakersiden. De mottar og sender ulike signaler. Dette kalles multiple-input multiple-output (MIMO).
Standarden er hovedsakelig bygd på arkitekturen basic service set (BSS). En BSS har en basestasjon kalt access point (AP) I hjemmenettverk er det vanlig at ruter og AP er samme enhet. 802.11 bruker en random access protocol CSMA with collision avoidance (CSMA/CA) som protokoll
Navnet på et trådløst nettverkspunkt kalles Service Set Identifier (SSID). AP har også en kanal, dvs. en kanal innad i frekvensområdet i standarden. Det er 11 mulige kanaler. De overlapper. To kanaler overlapper ikke dersom de er adskilt med fire kanaler eller mer (eks. kanal 6 og 11 overlapper ikke).
Når man er "tilkoblet" et nettverk er man i praksis assosiert med et nettverk.
Av standarden sender AP ut beacon frames med sitt SSID og MAC-adresse slik at man kan assiosiere seg (koble til) dem. Når enheten lytter på dette kalles det passive scanning. Active scanning er når enheten broadcaster en probe frame til alle AP innenfor rekkevidde. APs svarer. Når man har valgt et AP sender enhet en DHCP discovery message til AP for å få en IP i subnettet.
Kapittel 6.4 : Cellular Internet Access
Bruker terminologien fra Global System for Mobile Communications (GSM). En "utgave" er en generasjon. Det er ikke en enkelt organisasjon som setter spesifikke krav for hver generasjon, men her er en oversikt.
1G | Støtte for tale. Analogt FDMA-systemarkitektur. |
2G | Støtte for tale. Digital. Kombinerer FDM og TDM (radio) som grensesnitt. Dette betyr at man har at kanalen deles inn i et antall F frekvensbånd, og i hvert enkelt bånd deles tiden opp i T slots. Kan da ha F - T samtidige samtaler. Base station controller (BSC) allokerer BTS-radiokanal til hver kunde og finner mobiltelefoner (paging) ved oppringing. Mobile switching center (MSC) avgjør hvorvidt en enhet kan koble seg på nettverket (har betalt el.) |
2.5G | 2G med GPRS (Generalized Packet Radio Service). |
3G | Tale og data. Raskere. Tanken var å la 2G-nettverket være som det var, og legge til ekstra datafunksjonalitet. |
4G - Long-Term Evolution (LTE) Store fordeler fremfor 3G;
Evolved Packet Core (EPC) | Både tale og data fraktes som datagram. Er best effort. Ettersom det ikke er ideelt med best effort for Voice-over-IP (VoIP) er det EPC sin oppgave å behandle nettverksressurser slik at man kan tilby høy kvalitet på tjenesten. EPC tillater flere type radio access networks, inkludert 2G og 3G sine. |
LTE Radio Access Network | Bruker frequency division multiplexing og time division multiplexing på nedstrøms. Dette kalles orthogonal frequency division multiplexing (OFDM). Dette betyr smalere og flere slots. Hver enhet får flere slots. Kan reallokere slots hvert millisekund. Bruker også MIMO-antenner på en ny måte. Tillater opptil 50 Mbps oppstrøm og opptil 100 Mbps nedstrøm. |
Alternativ til LTE er WiMAX. Lite brukt.
Kapittel 7 : Multimedia Networking
Bortsett fra 7.4 og 7.5.
Kapittel 7.1 : Multimedia Networking Applications
En multimedia network application er enhver nettverksapplikasjon som benytter lyd eller video. Video bruker mer båndbredde enn kun lyd, og lyd tar mer båndbredde enn kun bilder. Fordi multimedia gjerne er stort, benytter man gjerne komprimering. Ulike typer komprimering:
Spatial redundancy | Komprimering innad i bilder. Bilder med mye hvitt kan naturlig nok bli komprimert mye |
Temporal redundancy | Komprimering på bakgrunn av likhet mellom bilder. Det er ingen vits å pakke to bilderammer hvis de er helt like. |
Kapittel 7.2 : Streaming Stored Video
UDP Streaming
Server sender video i en rate som matcher raten klienten ser på videon i, eks. klient konsumerer i 2 Mbps og hver UDP-pakke holder 8k bits med video - da vil server transmitte en pakke hvert
Som med FTP vil man ofte ha en ekstra forbindelse for signaler for å pause og spole, altså en "kommandolinje." Til dette benyttes RTSP-protokollen (Real-Time Streaming Protocol).
Ulemper med RTP/UDP:
- Det er ikke garantert å gi kontinuerlig playback fordi båndbredde mellom klient og server er uforutsigbart.
- Nødvendig med en media control server for å prossessere klient-til-server interaktivitet
- Mange brannmurer blokkerer UDP-trafikk
HTTP Streaming
HTTP-server har videofilen. Klienten når den ved å benytte en URL til den, og etablerer en TCP-forbindelse med et HTTP GET request. Serveren sender video i en HTTP response så raskt som TCP congestion og flow control tillater. Avspiller henter nye frames fra application buffer. De aller fleste streamingtjenester bruker HTTP streaming, inkl. YouTube og Netflix (i CDN)
Adaptive HTTP streaming and DASH
HTTP streaming kommer til litt kort, bla. med at det bare har en versjon av videoen uavhengig av båndbredde. Med Dynamic Adaptive Streaming over HTTP (DASH) løser man dette problemet. Video er 'encoded' til flere versjoner. URL til hver enkelt versjon ligger i en manifest-fil på serveren. Dette er det første klienten requester. Klienten laster ned en chunk av gangen og måler båndbredde og velger neste chunk med en rate determination algoritme. Er båndbredden lav vil den velge chunk fra den versjonen med lavere kvalitet.
Content Distribution Networks
Det er tre problemer med å bygge et enormt datasenter for all video man skal streame:
- Hvis klienten er langt fra datasenteret vil data gå via mange linker og mange ISPer, og hvis en av disse har lavere throughput enn det som er nødvendig vil kvaliteten bli dårligere
- Populære videoer vil bli sendt over det samme nettverket mange ganger, og dette er bortkastet båndbredde
- Ett datasenter - ett point of failure. Går senteret eller en av linkene til senteret ned, så er ikke noe innhold tilgjengelig lenger.
Som følge av dette bruker alle store innholdsleverandører et Content Distribution Network (CDN). Servere flere steder i verden lagrer videoene og annen type data, også forsøker man å peke hver klient til en passende CDN-plassering. CDNs er organiserte web caches.
Alternativt kan man ha en private CDN hvor et tredjeparts CDN distribuerer ditt innhold og andres. Netflix og Hulu bruker for eksempel Akamai's CDN for sitt innhold.
Når man plasserer ut locations i et CDN kan det gjøres på to måter:
Enter Deep | Enter deep into the access networks of ISPs. Dette gjøres ved å sette clustere (grupper) av servere hos access ISPs over hele verden. Målet er å komme så nær brukeren som mulig, og senke antallet linker og rutere mellom klient og CDN cluster. Vanskelig å vedlikeholde |
Bring home | Bring the ISPs home. Dette gjøres ved å bygge store clustere, men et lavere antall. Binder clusters sammen med private high-speed nettverk. Enklere å vedlikeholde, kan gi høyere forsinkesle og mindre througput. |
Det finnes flere strategier for å velge ut hvilken cluster man skal laste ned innhold fra. Ulike strategier er f.eks. å velge den som er geografisk nærmest, ta real-time målinger av delay og tap mellom cluster og client og velge den beste, bruke allerede pågående tilkoblinger mellom cluster og klienter og se på deres tidsforsinkelser eller bruke IP anycast som kobler en klient til en forhåndsbestemt cluster ved bruk av klientens IP-adresse.
Kapittel 7.3 : Voice-over-IP
VoIP er best effort.
Kan tolerere pakketap mellom 1 og 20 prosent. Forsinkelse under 150 msec merkes ikke. Mellom 150 og 400 msec er ikke ideelt, men akseptabelt. Mer enn 400 msec kan ødelegge for interaktiviteten og flyten.
Fordi forsinkelse varierer kan tiden det tar fra en pakke er generert til den mottas og leses variere. Dette fenomenetet kalles packet jitter, og man har måter å håndtere det. Det gjøre stort sett ved å sende et timestamp før hver chunk, samt forsinke avspillingen av chunks hos mottaker.
Kapittel 8 : Security in Computer Networks
Nytt pensum vår 2017, kun 8.1,8.2(minus side 684-688 i 6 utgave), 8.3, 8.5(intro) og 8.5.1, 8.6, 8.7(intro) og 8.71, 8.8(intro) og 8.8.1, 8.9(intro) og 8.9.1.
Kapittel 8.1 : What is Network Security?
Sikker kommunikasjon må ha følgende:
Confidentiality | Bare senderen og mottakeren skal kunne tolke meldingen som sendes, så den må være kryptert |
Message integrity | Melding må ikke endres underveis i sendingen. |
End-point authentication: | Mottakeren skal vite hvem meldingen kommer fra og senderen skal vite at meldingen kommer frem til rett sted. |
Operational security: | Nettverk må være beskyttet mot angrep utenfra. |
Kapittel 8.2 : Principles of Cryptography
Kryptografiteknikker og algoritmer sørger for at meldingene blir kryptert mellom sender og mottaker slik at det kun er disse to som kan tolke meldingen.
Symmetric key cryptography
Flere algoritmer har blitt utviklet for å kryptere tekst der sender og mottaker deler en hemmelig nøkkel. Eksempler på algoritmer er:
Caesar 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. |
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. |
Block ciphers
Block cipher-algoritmer brukes i dagens internett, til bl.a. å beskytte epost, TCP tilkoblinger og network-layer transport.
Idèen er at hver melding blir delt opp i blokker på k bits også krypteres hver blokk uavhengig av de andre. Dette gir
Public key encryption
I public key encryption krypteres meldingen med en public key
Kapittel 8.3 : Message Integrity and Digital Signatures
En mottaker må kunne være sikker på at en mottatt melding faktisk er sendt av den som er oppgitt som sender og ikke er endret underveis i sendingen.
Cryptographic Hash functions
En hashfunksjon tar en input m og regner ut en string av gitt størrelse H(m), kjent som en hash. En kryptografisk hashfunksjon må tilfredsstille følgende krav:
- It is computationally infeasible to find two messages x and y so that H(x) = H(y).
To vanlige hashfunksjoner som har blitt mye brukt er MD5 og SHA-1. MD5 regner ut en 128-bits hash mens SHA-1 regner ut en 160-bits. Hverken MD5 eller SHA-1 anses som sikre i dag da begge har blitt knekt, og den nye standaren er SHA-256, SHA-512 osv.
Message Authentication Code (MAC)
Message integrity kan oppnås ved å sende en melding sammen med ens hash, H(m). For å være sikker på at det faktisk er senderen (og ikke en inntrenger) som har sendt meldingen kan man bruke en hemmelig string s som bare sender og mottaker vet om til å regne ut en MAC (Message Authentication Code), H(s+m), og sende denne sammen med meldingen (sender (m, H(s+m)). Mottakeren vil da oppdage om noen uten kjennskap til s prøver å sende en melding utgitt som senderen. Den mest brukte MAC-en i dag er HMAC.
Digital Signatures
En digital signatur må være verifiserbar og ikke mulig å forfalske. En måte å legge ved en digital signatur er ved kryptere en melding eller en hash vha. ens private key,
Fordi man bruker den offentlige nøkkelen
Kapittel 8.5 : Securing E-Mail
Sikkerhet kan implementeres i alle de fire øverste protokoll-lagene. For å sikre epost-sending i applikasjonslaget brukes flere av de tidligere nevnte metodene.
Kapittel 8.6 : Securing TCP connections: TLS
For å sikre TCP-koblinger må vi et lag lengre ned enn for epost. Den sikre typen TCP kalles Transport Layer Security (TLS). TLS brukes f.eks. for å sikre at ingen får tilgang til betalingsinformasjon over internett og brukes av alle nettlesere og web-servere verden over. Det er TLS 1.1/1.2 som er i bruk når URL-en starter med https istedenfor den vanlige http. Secure Socket Layer (SSL) har vært i bruk tidligere, men blir nå ansett som svært sårbar. Det gjelder for tidligere versjoner av SSL fra 3.0. Det samme gjelder for TLS versjon 1.0.
The big picture
En simplifisert utgave av SSL har tre faser: handshake, key derivation og data transfer. I handshake-fasen skjer 3 ting:
- En TCP-tilkobling settes opp.
- Det sjekkes om tilkoblingen er med ønsket server, ved å motta serverens public key og sjekke dets CA-sertifikat.
- En Master key Secret (MS) kryptert med serverens public key sendes.
Videre i key derivation-fasen genereres det 4 nye nøkler; en krypteringsnøkkel for data sendt fra A til B, en krypteringsnøkkel for data sendt fra B til A, en MAC-nøkkel for data sendt fra B til A og en MAC-nøkkel for data sendt fra A til B. Krypteringsnøklene brukes til å kryptere dataen som sendes, mens MAC-nøklene brukes til å sjekke integriteten til dataen som sendes (at dataen ikke endres underveis).
I data transfer-fasen sendes dataen mellom partene. Dette skjer ved at SSL deles datastrømmen inn i records, legger til en MAC og krypterer record+MAC med en av krypteringsnøklene. For å stoppe inntrengere fra å omrokkere på dataene som sendes bruker også SSL sequence numbers, men istedenfor å legge dette direkte i headeren legges sekvensnummeret inn i beregningen av MAC.
Kapittel 8.7 : Network-layer security: IPsec and VPN
IPsec er en protokoll som gir sikkerhet til nettverkslaget. Ofte brukes IPsec til å lage såkalte VPNs, som er private nettverk som kjøres over det åpne internettet. Dette gjøres ved at alt av trafikk som går over internett krypteres med IPsec før det sendes. Dersom VPN brukes på f.eks. en arbeidsplass og to datamaskiner skal sende noe mellom seg i samme subnett, altså uten at det må ut til internett, så trenger ikke dataen å krypteres.
Kapittel 8.8 : Securing Wireless LANs
Sikkerhetsmekanismer i 802.11 kalles samlet for Wired Equivalent Privacy og skal (som navnet antyder) gi en sikkerhet som ligner på den man finner i wired networks.
WEP krypterer data vha. CRC koder og ulike nøkler. - WEP går for å ikke være sikkert lenger og standaren har blitt WPA, nærmere bestemt WPA2 Personal eller WPA2 Enterprise med AES. Det samme gjelder for Wi-Fi Protected Setup (WPS), som også bør unngås.
Kapittel 8.9 : Operational security: Firewalls
En firewall isolerer en organisasjons nettverk fra det globale internett og passer på hvilke pakker som får slippe gjennom og ikke. En firewall har 3 mål:
- All trafikk til internett skal gå gjennom brannmuren.
- Bare godkjent trafikk skal komme gjennom.
- Brannmuren i seg selv skal være ugjennomtrengelig.
Traditional Packet Filters: Ser på hvert datagram for seg selv og bruker informasjonen det bringer med seg til å bestemme om det skal slippe gjennom eller ikke. Bestemmer som regel basert på IP adresser, protokoll-type, TCP flagg osv.
Stateful Packet Filters: Tracker TCP koblinger og gjør avgjørelser basert på disse. Dersom det kommer inn en pakke fra en sender det ikke er opprettet en tilkobling til slipper ikke denne pakken gjennom.
Application Gateway: Lager gateways for bestemte applikasjoner og sørger for at all data til og fra denne applikasjonen kommer gjennom.
Fremmedord med beskrivelse og eksempler.
Hovedsaklig basert på pensum i boka, men også basert på eksterne ressurser der beskrivelsen av ordene ble opplevd som mangelfullt.
Kapittel 1.3
Ord | Beskrivelse |
Packet switching | En packet switch overfører en datapakke fra den innkommende til den utgående linken. Packet switchen lagrer pakkene som skal bli sent i en output buffer. Bufferet er en endelig lagringsplass, og hvis den fylles helt opp vil datatap forekomme. Packet switching bruker statistical multiplexing, som er en metode for deling av en link avhengig av flere brukeres etterspørsel av båndbredde. |
Switch | En switch behandler delingen av datatrafikk til flere brukere på et nettverk. Switches er såkalt store-and-forward packet switches, se "packet switching". Switchen er annerledes enn en router da den opererer med MAC-adresser for å videresende datapakker. En switch har gode filtrering og videresendingsrater da de bare trenger å prosessere datagrammene opp til link-layeret (routere til network-layeret). |
Router | En router behandler delingen av datatrafikk til flere brukere på et nettverk, ved hjelp av store-and-forward packet switching (se "packet switches"). Routere tilbyr ekstra sikkerhet over link-layeret og bruker som regel litt lenger tid på å prosessere datapakker enn en switch fordi datapakkene må prosesseres helt opp til network-layeret. |
Internet Service Provider (ISP) | Internet service providers er grunnsteinen i nettverket. Disse tilbyr tjenester som DSL, fiber og WiFi. Man deler inn ISP i forskjellige tiers. Tier-1 ISP-ene har hastigheter opptil 10 Gbps og høy prosesseringskraft. De er tilkoblet alle andre tier-1 ISP-er, strekker seg altså internasjonalt, og endel tier-2 ISP-er. De store selskapene som Telenor, Verizon, AT&T og Sprint er typiske tier-1 ISP-firmaer. Tier-2 ISP-er er "kunder" av tier-1 ISP-ene. Disse er de mer hverdagslige endesystemene og er geografisk mer lokalt. |
Kapittel 1.5
Ord | Beskrivelse |
Encapsulation, upper layer / lower layer | I pensum vil encapsulation (innkapsling) innefatte hvordan et datagram bruker header-feltet til å vise frem til riktig nettverks-layer. Hvis en melding lages i application-layer, legger du til informasjon i header-feltet for hver layer neover til du når physical layer. Når pakken behandles i endesystemet vil de respektive header-feltene bli fjernet fra hver layer til pakken når endesystemets application-layer. |
Upper layers | Omfatter ofte Application Layer, Transport Layer og Network Layer. |
Lower Layers | Omfatter ofte Link Layer og Physical Layer. |
Kapittel 2.1
Ord | Beskrivelse |
Client | Klienten i en kommunikasjonsøkt mellom 2 prosesser er den prosessen som spør, eller først kontakter, den andre prosessen. |
Server, Host | Den prosessen i en kommunikasjonsøkt mellom 2 prosesser som blir spurt, eller venter på kontakt, kalles serveren. |
Peer-to-peer, P2P architecture | Tilkobling / Nettverk med liten, eller ingen avhengighet av en always-on server. Nettverket består av peers, brukere som er direkte tilkoblet hverandre på application-layer nivået. Dette er applikasjoner som BitTorrent, Limewire, Skype, eller IPTV. Mange bedrifter baserer seg mer på P2P-arkitektur fordi det er økonomisk og fordi hver peer vil bidra med å legge til server kapasitet. Selv i P2P vil man definere klient og server, se 'Client' og 'Server'. |
Client-server architecture | Nettverksarkitektur som består av en alltid-på server (eller ofte-på server) som behandler tjenesteforespørsler fra mange klienter. Denne arkitekturen tillater ikke at to klienter kan sende meldinger mellom hverandre direkte, men må heller gjennom serveren. Blir nettverket av klienter store nok, utvider man serverkapasiteten ved å lage en virtuell server som består av mange servere og virker som én, ofte kalt et data center. |
Kapittel 2.2
Ord | Beskrivelse |
HyperText Transfer Protocol (HTTP) | HTTP er en applikasjonsprotokoll som kjører på applikasjonslaget. HTTP er protokollen for å utveksle eller overføre hypertekst. Kort sagt: En klient kjører en applikasjon, som en nettleser, og sender en HTTP-request-melding til serveren. Serveren svarer med en response-message med completion status og evt. ressurser, som HTML-filer og annet innhold, i meldingsfeltet. HTTP er en pull protokoll. |
Non-persistent connection | Når all forespørsel og respons mellom klient og host kjører på separate TCP-tilkoblinger. Med HTTP prosesserer den bare én distinkt forespørsel om gangen. |
Persistent connection | Når all forespørslet og respons mellom klient og host kjører på den samme TCP-tilkoblingen. |
Kapittel 2.4
Ord | Beskrivelse |
Post Office Protocol -Version3 (POP3) | En veldig simpel protokoll for å få tilgang til mail. Den foregår i tre faser: autorisasjon, transaksjonering og oppdatering. Ingen av disse fasene holder på noen informasjon om tilstandene, som bidrar til å gjøre implementasjonen av POP3 relativt enkel. |
Simple Mail Transfer Protocol (SMTP) | Standardisert protokoll for hvordan en e-post skal sendes fra en datamaskin til en annen. User agent i denne sammenheng er mail reader (gmail). Andre protokoller kan også brukes mellom en user mail agent og en internet mail server. Scenario: En bruker lager en mail på sin user agent, og ber user agenten sende mailen. Mailen sendes videre til en mail server, og den settes i en mail kø. På dens tur åpnes en TCP tilkobling til en SMTP server til mottaker. Etter SMTP handshaking, sender senderen/klienten meldingen gjennom TCP-tilkoblingen. Mottakerens mail server mottar meldingen og plasserer mailen i mottakerens mail box. Mottakeren åpner mailen sin ved bruk av user agenten. |
Kapittel 2.5
Ord | Beskrivelse |
Domain Name System (DNS) | Domain Name System er et hierarkisk navnesystem for enhver ressurs koblet til Internettet eller et privat nettverk. Det behandler også domenenavn (som cnn.com) til IP-adresser. Et domene kan ha canonical names (hotmail.com) , som er aliaser for deres ekte navn (relay1.west-coast.hotmail.com). Dersom servere har mye trafikk og mange brukere, har man gjerne flere servere for samme ressurs (som f.eks. www.cnn.com eller e-mail-servere som hotmail), som har hver sin IP-adresse. 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). Man er også koblet til en lokal DNS server, som ofte er levert av ISP, unversitet e.l.. |
Kapittel 3.1
Ord | Beskrivelse |
Transport Layer | Transport layer er det 4. nettverksnivået, som har rollen å tilby kommunikasjonstjenester mellom applikasjonsprosesser mellom to brukere. I pensum er de to mest omtalte protokollene TCP og UDP. Transport layeret tilbyr tjenester som connection oriented data stream support, flow control, reliability og multiplexing - noe TCP er best på. UDP tilbyr derimot ikke reliability, flow control eller error-recovery, men åpner for rask overførsel mellom to brukere hvor det er greit med noe datatap. |
Transmission Control Protocol (TCP) | Er en connection-oriented protokoll. TCP er pålitelig, den bruker acknowledgements, gjensending og timeout. Den prøver å sende samme melding flere ganger og blir den borte på veien, vil serveren spørre om den tapte datapakken. Datapakker sendt med TCP kommer i en ordnet rekkefølge, og hvis ikke vil den bufre til den kan levere pakkene i riktig rekkefølge. TCP har congestion-control, og tilbyr byte streaming - men ikke message streaming. |
Transport-layer multiplexing | Når en applikasjon vil sende en pakke, tar multiplexing seg av å gjøre om til en pakke som kan bli sendt fra hosten. Når en pakke har nådd den mottakende hosten,kalles det demultiplexing å finne ut hvilken prosess som vil ha pakken. |
Kapittel 3.3
Ord | Beskrivelse |
Connection-oriented communication (CO-mode) | Hvis en nettverksøkt er connection-oriented, betyr det at kommunikasjonsøkten mellom 2 enheter må etablere en forbindelse før de begynner å overføre data til hverandre. Eksempelvis har TCP en 3-way-handshake før de begynner overføring, og er derfor connection oriented. UDP har ikke dette, og kalles derfor connectionless. Et layer som tilbyr en connection-oriented tjeneste, må bruke tilsvarende protokoller. |
Kapittel 3.4
Ord | Beskrivelse |
Go-Back-N (GBN) protocol | Beskrivelse |
Kapittel 3.5
Ord | Beskrivelse |
TCP Connection Establishment | Ofte referert til som en three-way-handshake fordi tilkoblingen skjer ved å sende et datagram mellom klient og vert i tre steg. Se eksempel. |
Eksempler:
Ord | Eksempel |
TCP Connection Establishment | Klienten(client) skal kobles opp mot en vert (host). Klienten sender først et forespørselsdatagram med satte verdier SYN=1 og sekvensnr = klient.inr (klientens initielle sekvensnr). Tilkoblingen bekreftes av verten ved å sende et datagram tilbake med verdiene SYN=1, sekvensnr = klient.inr og ACK = klient.inr + 1. Det siste datagrammet som sendes er fra klienten til verten med verdier SYN = 0, sekvensnr = klient.inr + 1 og ACK = server.inr + 1 (serverens initielle sekvensnr). |
Kapittel 4.2
Ord | Beskrivelse |
Virtual Circuit / virtual-circuit (VC) | IDK. Virtual circuit nettverk er connection oriented nettverk som bruker network-layer-tilkoblinger. Består av en path med links mellom routere og brukere. Det virtuelle nettverket nummererer hver link og forwarding table i hver router slik at de blir virtuelle subnett. |
Kapittel 4.4
- A realm with private addresses refers to a network whose addresses only have meaning to devices within that network.
Ord | Beskrivelse |
Network Address Translation (NAT) s.385: | NAT er en IP-oversettelses-prosess som modifiserer IP-informasjon fra en IPv4-header i en router for å dirigere trafikk utenfra til riktig lokale bruker. (Kort sagt kobler en router riktig server utenfor nettverket til riktig lokale PC ved å bruke en såkalt NAT-tabell med porter som identifiserer PC-en og serveren. Se eksempel.) |
Internet Control Mesage Protocol (ICMP) | ICMP er brukt mellom hosts og routere for å overføre informasjon over network-layeret. |
Dynamic Host Configuration Protocol (DHCP) | DHCP tildeler IP-adresser (enten permanente eller midlertidige) til brukere av en router automatisk (plug-and-play). Fire steg - DHCP server discovery: klient sender ut en UDP pakke til nettverket med destinasjons-IP-adresse 255.255.255.255 og en source-IP med 0.0.0.0. DHCP server offer: sender respons til klientens melding, fra alle noder på subnettet, med broadcast-IP-adresse 255.255.255.255. Hver responsmelding fra nodene inneholder hvert sitt forslag til IP-adresse, maske og gyldig tid. DHCP request: klienten velger mellom servertilbudene og sender tilbake en request message med paramterene. DHCP ACK: Serveren svarer med en ACK melding, og bekrefter klientens parametere. |
Eksempler:
Ord | Eksempel |
Network Address Translation (NAT) | Du kan tenke deg et hjemmenettverk med en rekke pc-er som er koblet til en router. Hvordan vet routeren hvilken lokale PC den skal sende dataen den får inn fra resten av verden til? Hvis en av PC-ene på hjemmenettverket har en typisk lokal ip-adresse 10.0.0.1 og skal koble seg opp på en Web-server (port 80) utenfra med IP 138.76.29.7, åpner PC-en en vilkårlig port, si port 3045, og sender datagrammet til routeren på denne porten. Routeren åpner en ny vilkårlig port, si port 5001, og sender datagrammet videre til Web-serveren. Når web-serveren svarer med et datagram til port 5001, vet routeren at dette datagrammet skal kobles til den lokale IP-en 10.0.0.1 i port 3045. Routeren består nemlig av en NAT-oversettelses-tabell som kobler sammen de forksjellige portene. Når routeren velger og åpner en ny port, velger den en tilfeldig port som ikke befinner seg i NAT-tabellen. |
Kapittel 4.5
Ord | Beskrivelse |
Global, decentralized, routing algorithm | Routere bruker routing algorithms for å finne den beste stien til ønsket destinasjon. For å finne den beste stien tar vi antall hopp, tidsforsinkelser og kommunikasjonskostnader av pakkeoverføringen i betraktning. Vi deler routing algorithms inn i to hovedkategorier: global and decentralized routing algorithms. I decentralized routing algorithms har routerne bare informasjon til de routerne de er tilkoblet til, disse kalles også Distance Vector (DV) algorithms, bruker bl.a. Bellman ford algoritmen. Global routing algorithms har alle routere informasjon om hverandre og trafikkstatus til nettverket. Disse algoritmene er også kalt Link State (LS) algorithms, bruker bl.a. Dijkstras algoritme. |
Kapittel 5.1
Ord | Beskrivelse |
Link layer | Link layer brukes til å sende et datagram over en individuell link. Dataenhetene i link layeret kalles frames, disse omslutter et network-layer-datagram - og brukere og routere kalles noder. Link layer protokollen tilbyr feil-deteksjon (error-detection), videresending (retransmission), flytkontroll (flow control) og random access. Eksempler på protokoller er Ethernet, 802.11 WLAN, token ring og PPP. |
Network bridge, bridging | En nettverksbro kobler sammen flere nettverkskoblinger på link layeret slik at de kan kommunisere. Siden dette foregår på de to nederste layerene vil det si at de opererer med frames, og bruker MAC-adresser for adressering. Eksempel: hvis du har en PC som er både koblet opp på et trådløst nett og et kabelnett, så vil en nettverksbro mellom disse to tilkoblingene gjøre at alle datamaskinene på begge nettverkene kan kommunisere ved bruk av broen. |
Kapittel 5.2
Ord | Beskrivelse |
Parity bit, parity check | Enkleste formen for feilbehandling, og er en type Cyclic redundancy check. Her legger man til et paritetsbit for å kontrollere om antall 1'ere i en bitstreng er partall eller oddetall. Dersom man har et oddetall antall 1'ere, legger man til paritets bit 1 slik at antall 1'ere blir partall - kalles even parity. Dersom det er partall antall 1-ere i en bitstreng legger man til en paritetsbit for å få oddetall antall 1-ere, kalles odd parity. Mark parity: Når paritetsbitet 1 er tilstede men ikke brukt. Space parity: Når paritetsbitet 0 er tilstede men ikke brukt. |
Cyclic redundancy check (CRC) | Feilbehandlingsmetode i link-layer. Effektiv. Først blir mottaker og sender enige om en bit pattern på |
Kapittel 5.3
Ord | Beskrivelse |
Point-to-point link | Består av en sender på en side og en mottaker på den andre siden. |
Broadcast link | Flere sender- og mottaker-noder på hver side, som alle er tilkoblet samme broadcast channel. |
Multiple access problem | Problemet som oppstår når en skal koordinere tilgangen til flere sendere og mottakere til en delt broadcast channel. |
Multiple Access Protocol | Når flere sendere og mottakere er tilkoblet samme broadcast channel, og alle kan kommunisere. Vi har en kollisjon når flere brukere sender inn frames samtidig og alle lytterne får inn framesene samtidig. Kollisjoner fører til datatap, og dette fører til unødvendig bruk av båndbredde --> å rette opp i dette er hovedjobben til M.A.P.. Multiple Access Protocols må tilfredstille noen punker. 1. Når én node har data å sende, har den throughput på R bps. 2. Når M noder ønsker å sende data, har de ca. gjennomsnittlig throughput på R/M bps. 3. Protokollen er desentralisert; det er ingen master node som representerer et single point of failure for nettverket. 4. Protokollen er simpel og billig å implementere. Multiple Access Protocols deles inn i channel partitioning protocols, random access protocols og taking-turns protocols. |
Time-division multiplexing (TDM), time division | TDM: Se for deg en kanal som kan overføre i R bps. TDM deler tid inn i time frames som videre deles inn i time slots. Hver time slot er tildelt hver sin node av de N nodene. Hver node overfører bare under sitt tildelte tidsintervall. |
Frequency-division multiplexing (FDM) | FDM deler inn kanalen i forskjellige frekvenser (hver med båndbredde R/N) og tildeler hver node sin frekvens. |
Code division multiple access (CDMA) | CDMA tilordner en kode til hver node. Hver node bruker coden til å omslutte pakken bitene de sender. Gitt at hver node på nettverket kjenner til de andre nodenes koder, vil bits som kolliderer fortsatt komme frem og hver node vil vite hvem bitene kommer fra. |
Random Access Protocols | Hver node kan overføre i R bps. Dersom to noder kolliderer venter de en tilfeldig mengde tid før de prøver å retransmitte. |
Slotted Aloha | Alle frames består av L bits. Tid er delt inn i slots på L/R sek. Nodene er synkronisert og prøver bare å overføre på begynnelsen av en time slot. Dersom kollisjon oppstår vil hver inngående node prøve å retransmitte på hver av de neste time slottene med en gitt individuell sannsynlighet på p. |
Aloha protocol | Noden sender framen når den ønsker. Dersom den kolliderer med en annen overføring vil den vente en frame-overførings-tid og så prøve på nytt med en sannsynlighet p. |
Carrier sense multiple access (CSMA), (CSMA/CD) | Carrier sensing er når er node lytter på en kanal før noden prøver å overføre. Dersom en annen node overfører, vil den vente en tilfeldig mengde tid og prøve igjen. Med collision detection vil man også lytte mens man overfører, og dersom en annen node ønsker å overføre vil man slutte sin egen overførsel og bruke en protokoll for å finne ut når neste forsøk på overførsel burde ta sted. |
Channel propagation delay | Tiden det tar før informasjon sendt ut av en node kommer frem til de andre. Dette er et kritisk punkt for ytelsen til CSMA, fordi det kan føre til kollisjon i overføring mellom 2 noder. |
Polling protocol | En taking-turns protocol, under IMAP. Setter én node som master-noden. Deretter hører master-noden med de andre nodene og tildeler en mengde tid til hver av nodene som ønsker å overføre. Dette skjer om og om og om og om osv. igjen. |
Token-passing protocol | En node får inn en frame som kalles en token som lar noden overføre opptil et maximum antall frames. Dersom den ikke har noe å overføre vil den sende token-framen videre. Alle nodene sender alltid token'en til samme, neste node. |
Kapittel 5.5
Ord | Beskrivelse |
Ethernet | Ethernet er den vanligste teknologien for koblinger i LAN, med en switch som tilkoblingspunkt mellom brukerne. Det er et connectionless nettverk, og såkalt plug-and-play. Ethernet's frame structure består av 6 felt, ulikt fra 802.11's frame structure. Preamble: Første 8 bytes; hvorav de 7 første synkroniserer de to adapterne, og de to siste bitsene i den åttende byten varsler at neste felt kommer. Destination address: MAC-addresse til destinasjonsadapteren. Hvis en adapter får inn en frame med like destinasjon som sin egen MAC-adresse videresendes framen til network layer. Alle frames med en annen MAC-adresse blir ignorert. Source Address: MAC-adresse til adapteren som sender framen. Type field: Viser hvilken protokoll som skal ha framens innhold. Samme som protocol field i network-layer-datagram. Data field: Feltet med IP datagrammet. Tar minimum inn 46 bytes, og maximum 1500 bytes. Er det for stor vil vi dele opp datapakken, og er den for liten vil vi fylle resten med tull. |
Ethernet hub | Physical layer device, som bruker bits i stedet for frames. En hub tar inn et bit fra en bruker, og gjenskaper og sender en kopi av biten til alle andre tilkoblede brukere. Dersom to brukere sender bits samtidig og det blir en "kollisjon" må brukerne som sendte framene sende på nytt. Hubs ble erstattet med switches rundt år 2000. |
Kapittel 6.1
Ord | Beskrivelse |
Wireless host | En bruker, et endesystemsenhet som kjører applikasjoner, laptoper, PDAs, telefoner eller stasjonære PC-er. |
Wireless communication links, wireless links | Linken er det som kobler en bruker med en base station. Forskjellige link teknologier tillater forskjellige overførings-hastigheter og distanser. |
Base station | Basestasjonen er for eksempel cell towers og access points. Basestasjonene er en grunnleggnde del av det trådløse nettverket og er ansvarlig for sending og mottakelse av data mellom trådløse brukere. |
Handoff | Når en trådløs bruker bytter fra en basestasjons trådløse sone til en annen. Her er utfordringene ofte å kunne opprettholde pågående prosesser, mens overgangen skjer. |
Infrastructure mode | Når en trådløs bruker opererer i assosiasjon med en basestasjon. |
Ad hoc networks | Når trådløse brukere ikke er i infrastructure mode, hvor de må tilordne tjenester som tildelelse av adresser og DNS-oversettelse e.l.. |
Network infrastructure | Nettverket en trådløs bruker ønsker å kommunisere med. |
Single-hop, infrastructure based | Nettverk med en basestasjon som er koblet til et større nettverk (som Internett). All kommunikasjonen foregår bare mellom den trådløse brukeren og basestasjonen. Eksempler på dette er vanlig internett du kobler til på cafeer, eller mobilt internett. |
Single-hop, infrastructure-less | Nettverk hvor trådløse brukere er tilkoblet hverandre og ikke gjennom en basestasjon. Eksempel er bluetooth og adhoc mode nettverk som settes mellom to PC-er. |
Multi-hop, infrastructure based | Et nettverk hvor basestasjonen er tilkoblet et større nettverk, men for å få kontakt med noen ønskede noder må man hoppe fra en trådløs node til en annen for å komme frem. |
Multi-hop, infrastructure-less | Nettverk uten basestasjon hvor en melding kan hoppe mellom flere trådløse noder for å komme frem til ønsket destinasjon. Mobile adhoc networks og vehicular adhoc networks går under denne kategorien. |
Kapittel 6.2
Ord | Beskrivelse |
Signal-to-noise ratio (SNR) | Et mål på hvor sterkt signalet er i forhold til støyen. Uttrykt i desibel (dB). 1:1-forhold betyr 0 dB. Desto høyere SNR, desto lettere er det å sile ut det overførte signalet fra senderen. |
Kapittel 8.1
Confidentiality | Bare senderen og mottakeren skal kunne tolke meldingen som sendes, så den må være kryptert |
Message integrity | Melding må ikke endres underveis i sendingen. |
End-point authentication: | Mottakeren skal vite hvem meldingen kommer fra og senderen skal vite at meldingen kommer frem til rett sted. |
Operational security: | Nettverk må være beskyttet mot angrep utenfra. |
Kapittel 8.2
Ord | Beskrivelse |
Plaintext/cleartext | Den originale meldingen, altså ikke kryptert tekst. |
Encryption algorithm | Algoritmen som brukes for å kryptere meldingen. |
Ciphertext | Kryptert tekst |
Key | En string av tekst som brukes som input til krypteringsalgoritmen, slik at kun de som har tilgang til nøkkelen kan dekryptere meldingen. |
Symmetric key systems | Nøklene senderen og mottakeren har er identiske og hemmelige. |
Public key systems | Den ene nøkkelen er offentlig mens den andre kun er kjent av enten senderen eller mottakeren. |
Ciphertext-only attack | Intrengeren har tilgang til cipherteksten men ingen kunnskap om innholdet i plaintext-meldingen. |
Known-plaintext attack | Inntrengeren har noe kjennskap til innholdet i plantext og kan derfor dekryptere noen bokstaver i meldingen. |
Chosen-plaintext attack | Inntrengeren klarer å kryptere plaintext til ciphertext. Dette betyr ikke alltid at inntrenger kjenner til krypteringsmetoden om det er brukt avanserte metoder, men ved bruk av mindre avanserte metoder (som Caesar cipher og monoalphabetic cipher) vil inntrengeren klare å dekryptere alle meldinger. |
Kapittel 8.3
Ord | Beskrivelse |
Message Authentication Code (MAC) | H(m+s), altså en hash av den originale meldingen m pluss en hemmelig string s |
Kapittel 8.8
Ord | Beskrivelse |
Wired Equivalent Privacy (WEP) | Sikkerhetsmekanismer i WiFi som sørger for authentication og data encryption mellom en host og et trådløst AP |
Forkortelser | Glossary
En alfabetisk liste over forkortelser som dukker opp.
ABR | Available Bit-Rate |
ARP | Address Resolution Protocol |
ARQ | Automatic Repeat reQuest |
ATM | Asynchronous Transfer Mode |
CDN | Content Distribution Network |
CDMA | Code Devision Multiple Access |
CIDR | Classless Inter-Domain Routing |
CRC | Cyclic Redundancy Check |
CSMA | Carrier Sense Multiple Access |
CSMA/CD | CSMA Collision Detection |
CSMA/CA | CSMA Collision Avoidance |
CTS | Clear To Send |
DHCP | Dynamic Host Configuration Protocol |
DHT | Distributed Hash Table |
DNS | Domain Name System |
DV | Distance-Vector |
FDMA | Frequency Division Multiple Access |
FEC | Forward Error Correction |
FTP | File Transfer Protocol |
HTTP | Hypertext Transfer Protocol |
ICMP | Internet Control Message Protocol |
IEEE | Institute of Electrical and Electronics Engineers |
IMAP | Internet Message Access Protocol |
IP | Internet Protocol |
ISP | Internet Service Provider |
LAN | Local Area Network |
LS | Link State |
LTE | Long Term Evolution |
MAC | Media Access Control |
MPLS | Multiprotocol Label Switching |
MSS | Maximum Segment Size |
NAT | Network Address Table |
P2P | Peer To Peer |
POP3 | Post Office Protocol |
PPP | Point To Point |
RTP | Real-time Transport Protocol |
RTS | Request To Send |
RTT | Round-Trip Time |
RTSP | Real-Time Streaming Protocol |
SIP | Session Initiation Protocol |
SMTP | Simple Mail Transfer Protocol |
SSL | Secure Sockets Layer |
TCP | Transmission Control Protocol |
TDMA | Time Division Multiple Access |
TTL | Time To Live |
UDP | User Datagram Protocol |
VoIP | Voice Over Internet Protocol |
VLAN | Vitual Local Area Network |
WiFi | (Er ikke en forkortelse, står ikke for noe.) |