TTM4100 - Kommunikasjon, tjenester og nett
[TOC]
Intro
Mine notater for TTM4100. De er på norsk, er potensielt fulle av skrivefeil, og sikkert litt faktafeil. Disse er beregnet på personlig bruk, så jeg går ikke inn for noe mer en det jeg forstår og som hjelper meg å huske.
Hvorfor er de her?
Fordi det er digg å skrive Markdown, og her var det enkelt å gjøre de tilgjenglig som pene kompilerte html sider.
Formler
|| Processing delay || Tiden det 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). || || Propagation delay || Tiden det tar for å reise fra en node til den neste. ||
Transmission delay
$$ d_{trans} = \frac{length}{rate} $$
Propagation delay
$$ d_{prop} = \frac{distance}{speed} $$
Nodal delay
$$ d_{nodal} = d_{process} + d_{queue} + d_{trans} + d_{prop} $$
End to end delay
$$ d_{end-to-end} = N (d_{process} + d_{trans} + d_{prop}) $$
Store and forward end to end delay
$$ d_{end-to-end} = (noHops * d_{prop}) + (noPackets * d_{trans}) + (noHops - 1)d_{trans} + (noHops - 1)d_{proc} $$
P2P distribusjon
$$ max( \frac{File Size}{Upload Server}, \frac{File Size}{min(DL client)}, \frac{noC * File Size}{(noC * Upload client) + Upload server}) $$
Broadcast throughput
$$ $$
DNS
DNS bruker TCP om pakken som skal sendes er større en 512 bytes
DNS bruker UDP som standard på grunn av kostnad. DNS med UDP vil bruke to pakker, en request og en response.
Om man skulle brukt TCP hver gang ville man sendt veldig mange pakker bare for å starte samtalen. Dette gir mye overhead.
TCP er backup protokoll
Routing
Routing table
Er en database som holder kontroll på alle ruter/veier til nettverksdestinasjoner.
Forwarding tables
Optimalisert for raske oppslag av destinasjons adresser.
Connection
Persistent connection
Bruker en tilkobling for å utføre flere ting, gjerne hele sesjonen.
Tilkoblingen blir holdt i live.
Fordeler: Raskere leveranse, mindre cpu bruk, mindre nettverks støy. Ulemper: Mulige skaleringsvansker, non-CDN vennlig.
Non-persisten connection
En tilkobling blir lukket når den er ferdig, den kan altså da ikke brukes om igjen.
Alle nye tilkoblinger vil lide av slow start.
Fordeler: Mulig mer skalerbar, simpel server arkitektur. Ulemper: Mulig mindre skalerbar, mer cpu bruk.
Connection oriented
Data sendes i riktig rekkefølge.
Koble maskin til nettverk
Tilkobling:
- 0.0.0.0, 255.255.255.255, UDP, DHCP req
- DHCP IP, NEW IP, UDP, DHCP ACK
- Switch MAC, ARP req
- Client MAC, ARP resp
- Client IP, DNS IP, UDP, DNS req
- DNS IP, Client IP, UDP, DNS resp
Tid for spesifikke server ting:
- Client IP, HTTP IP, TCP, SYN
- HTTP IP, Client IP TCP, SYN-ACK
- Client IP, HTTP IP, TCP, ACK
- Client IP, HTTP IP, TCP, ACK, HTTP req
- HTTP IP, Client IP TCP, ACK, HTTP resp
- HTTP IP, Client IP TCP, ACK, HTTP resp
- Client IP, HTTP IP, TCP, ACK
TCP finish:
- Client IP, HTTP IP, TCP, FIN
- HTTP IP, Client IP TCP, ACK
- HTTP IP, Client IP TCP, FIN
- Client IP, HTTP IP, TCP, ACK
Broadcast
Broadcast er Lag3 da den bygger på IP. Broadcast er en logisk adresse som alle nettverks enheter har mulighet til å bruke for å hente data.
Tilsvarende funksjonalitet eksisterer på Lag2 for MAC adresser. Broadcast MAC: FF:FF:FF:FF:FF:FF
Network congestion
Nettet blir fylt så ting ikke fungerer.
Queueing delay, pakketap og blokkering av nye tilkoblinger kan skje.
DDOS, bad backbones.
Congestion Control:
- Backoff in CSMA/CA (802.11 and original Ethernet)
- Window reduction in TCP
- Fair queueing
Flow control
Flow control er laget for å prøve å hindre at congestion skal skje, congestion control er i hovedsak for å løse problemet.
Implementert for å ikke oversvømme en treg mottaker fra en rask avsender.
Protokoller
Stop and wait
Veldig simpel, gjør at en host må vente på ack før neste pakke kan sendes. Sucks.
Sliding Window
Go-back-N:
Selective Repeat:
Virtual circuit
Connection oriented Mange VC leverer en pålitelig kommunikasjonstjeneste, pga error detection og automatic repeat request(ARQ).
VC kan kjøres på Lag 4,3,2.
Lag 4 gjøres over TCP.
I lag 3 og 2 må man bruke connection oriented packet switching, altså må all data gå samme nettverkssti for å garantere at alle pakker kommer frem i riktig rekkefølge.
VC i lag3 og 2 vil ha mindre overhead, muligheter for QoS, shit may be fast.
Virtual circuit brukes i GPRS.