Herhalingsvragen (deel 3) Flashcards

1
Q
  1. Wat is het verschil tussen Forwarden en routeren?
A

Datelevel functie - forwarding:
Proces van het overbrengen van een packet van ingaande linkinterface naar de juiste uitgaande linkinterface.
- Gebruikt hiervoor de forwarding tabel, geïmplementeerd in de data-level.
o Packet wordt geforward aan de hand van de waarde van een of meer velden in de forwarding tabel.
- Forwarden gebeurt in een korte tijd O (nanoseconden) en gebeurt in de hardware.
Routing:
- Proces dat bepaalt welke pad er moet gevolgd worden om pakketten van bron naar bestemming te brengen.
- Rol van controle level functie is het coördineren van deze lokale, per router forwardingacties zodat de datagrams uiteindelijk overgedragen worden end-to-end, in een netwerk van routers, van host naar bestemming.
o Door middel van routeringsalgoritmen op controlelevel
 Een goede pad is één met minste cost.

  • De routing info komt terecht in de forwarding tabel op data-level
  • Routing vraagt meer tijd (enkele seconden) en gebeurt met software.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Wat zit er in een router en wat doen die verschillende zaken?
A

Input ports - Ingangen (HW)
- Fysieke laag functie: beëindigen van inkomende fysieke link naar een router

  • Link laag functie: samenwerken met link laag aan de andere zijde van de inkomende link
  • Lookup functie: forwarding tabel wordt hier geraadpleegd om de output port te bepalen waarnaar een binnenkomend packet zal worden doorgestuurd.
  • Controle packets (bv. packets die routing protocol informatie bevatten) moeten geforward worden vanuit inganspoort naar de routingprocessor
  • Aantal poorten is afhankelijk van de router

Switchingunit (HW)

  • Verbindt inputpoorten in de router met zijn outputpoorten.
  • Hart van een router. Alle packets moeten hier doorheen.
  • Bevindt zich in router: netwerk in een netwerkrouter
  • Kan via: geheugen, bus, crossbar

Uitgangen (HW)

  • Ontvangt packets van switchingunit en slaat deze op
  • Zend de packets op uitgaande link: door de link laag en fysieke laag functies.
  • Bij een bi-directionele link zal de uitgangspoort gekoppeld worden met de ingangspoort van de link op hetzelfde line card.

Routeringsprocessor (SW)
- Voert controlelevel functies uit

Een traditionele router:

  1. Voert netwerkprotocollen uit
  2. Beheert routing tabllen en link state informatie.

Een SDN routers:

  1. Ontvangt de berekende forwarding tabellendoor van en door remote controller
  2. Installeert deze entries in de input poorten van de router.
  3. Voert netwerkbeheerfuncties uit.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Hoe gebeurt de NAT (Netwerk Adres Translatie)?
A

NAT: dienst die wordt gebruikt in routers, om IP-adressen te vertalen en zo te besparen op de publieke IPv4 adressen.

Twee types IPv4 adressen: de publieke en de privéadressen.

Publieke adressen: nodig om toegang te krijgen tot het internet. Met privéadressen kan je niet rechtstreeks het internet bezoeken, deze worden enkel gebruikt voor interne apparaten, dus thuis, bedrijf, etc.

Een IP-adres voor elke apparaat is duur, en een verspilling van publieke adressen.

De router kent privéadressen toe aan de apparaten thuis en wanneer een apparaat het internet wil bezoeken wordt het privéadres vertaalt door NAT naar een publieke IP-adres.

Het vertalen kan in twee richtingen: zowel privé –> publiek als publiek –> privé

Alhoewel er maar 1 publieke adres is (alle hosts dezelfde bestemmingadres hebben) weet de NAT-router welke host een aankomende datagram moet ontvangen.

Gebruik van NAT translatie tabel: en zowel poortnummer als IP-adres op nemen in de tabel entries

Voorbeeld:
- Gebruiker in een home netwerk (bv. host 10.0.0.1) stuurt request naar webpagina.

  • De host (10.0.0.1) kent willekeurige bronpoortnummer (3345) toe aan de datagram en stuurt deze naar de LAN.
  • De NAT router ontvangt deze datagram, vervangt het bronpoortnummer met een nieuw-gegenereerde bronpoortnummer (5001) en de bron IP-adres (10.0.0.1) met publieke adres (138.76.29.7)
  • De webserver reageert op de datagram met bestemmingsadres (138.76.29.7) van de NAT router en bestemmingsportnummer (5001).
  • De router bevraagt de NAT translatie tabel met de bestemmings-IP-adres en bestemmingspoortnummer voor het juiste IP-adres van host (10.0.0.1) en bestemmingspoortnummer (3345).
  • De router herschrijft de bestemmingsadres en bestemmingspoortnummer en geeft de datagram door aan home netwerk.
  • Enkel IPv4
  • In de toekomst zullen NAT en privéadressen niet nodig zijn door de komst van de new generation of IP-adres, IPv6.

SNAT/DNAT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Bespreek kort de 2 transportlaag protocollen.
A

1) UDP – User datagram protocol
- Connectionless, proces naar proces gegevensoverdracht.

o Er moet geen logische verbinding opgezet worden (setup/handshaking-procedure), loopt dus geen round trip delay op (RTT)

  • Onbetrouwbaar, garandeert niet dat alle gegevens (intact: correct en in juiste volgorde) aankomen.
  • Best effort delivery dienst: doet zich best om segmenten tussen communicerende hosts te verplaatsen maar biedt geen garanties.
  • Checksum voor errorchecking, alhoewel de packets bij het detecteren van errors niet opnieuw worden verzonden mar gewoon worden gedropt.
  • Goed voor multimedia-applicaties zoals streamen van audio en video, waar dataloss niet erg uitmaakt.
  • Bijkomende functionaliteit: implementeren boven op de applicatie-laag (bv HTTP/3)

2) TCP – Transmission control protocol
- Connection-oriented: applicatieproces kan pas gegevens verzenden naar ander proces na een handshaking-procedure

  • Biedt een betrouwbare, geordende en op fouten gecontroleerde gegevensoverdracht aan
  • Maakt gebruik van flow control, volgnummers, bevestigingsnummers en timers.
  • -volgnummer: is eerste byte in bytestream
  • -bevestigingsnummer: ontvangstbevestiging = welke byte volgende keer verwacht wordt
  • -timer: meet RTT, start timer bij het verzenden van segment en stop bij ACK, als te lang duurt wordt segment opnieuw verzonden.
  • -flow control: TCP geeft free buffer space (in receive window) aan, en dit wordt gezien als de limiet. garandeert dat er geen overflow optreedt.
  • Congestie controle voorkomt dat een TCP-verbinding de links en routers tussen hosts overspoelt met een overmatige hoeveelheid verkeer en streeft ernaar om elk verbinding die een overbelaste link doorkruist een gelijke deel van de bandbreedte te geven.

o Door de snelheid te reguleren waarmee TCP-verbindingen verkeer kunnen verzenden in het netwerk.

  • TCP-status variabelen uitwisselen voor TCP-verbinding (3.7)
  • Andere eigenschappen:

o Full-duplexgegevensoverdracht:
 Bij een TCP-verbinding tussen processen kunnen applicatie-laag-processen elkaar tegelijk/bi directioneel (in beide richtingen) gegevens verzenden.

o Point-to-point:
 Verbinding tussen 1 verzender en 1 ontvanger.
 Geen multicasting.

o	MSG (maximale segmentgrootte): 
	Max hoeveelheid gegevens van de applicatie-laag in segment wordt bepaald door MTU (maximum transmission unit)
•	Lengte van de grootste datalink-laag-frame dat door lokale verzendende host kan worden verzonden.

 MMS verzekert dat een TCP-segment (ingekapseld in een IP datagram + TCP/IP header lengte (40 bytes) zal passen in een enkele link-laag-frame

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Welke zijn de 4 velden en inhoud van een UDP-segment header.
A

UDP-segment heeft slechts 4 velden, deze bestaan elk uit 2 bytes.

Poortnummers:
Elk poort is 16 bit groot varieert van 0 tot 65535.
Poort 0- 1023 zijn well-known ports zijn gereserveerd voor vaak-gebruikte (server) applicaties.

Er zijn 2 poortnummers:
1. Bronpoortnummer: UDP voegt bronpoortnummer toe aan applicatieproces voor [multiplex functie].

  1. Bestemmingspoortnummer: UDP gebruikt bestemmingspoortnummer om [data van segment aan correcte applicatieproces over te dragen]. Voor [de-multiplex functie].
  2. Lengte-veld
    - Specifieert de lengte van het UDP-segment, inclusief de header. (In bytes)
    - Nodig: lengte van dataveld kan verschillen per UDP-segment, UDP moet weten hoe groot de segment is.
  3. Checksum-veld
    Wordt door ontvangende host gebruikt om te controleren of er errors zijn voorgekomen in het segment en of er binnen het UDP-segment bits zijn gewijzigd.
    - Door ruis in de links, terwijl het is opgeslagen in een router of terwijl het van bron naar bestemming ging.
    - Doet niets om fout te herstellen.
    - Afhankelijk van de implementatie verwijdert UDP het beschadigde segment/geeft UDP het beschadigde segment met een waarschuwing door aan de applicatie.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Een TCP-segment heeft een volgnummer en een bevestigingsnummer, waarom?
A

Volgnummer en bevestigingsnummerveld: voor betrouwbare gegevensoverdracht.
TCP bekijkt data als ongestructureerde maar geordende stroom bytes

Volgnummer: worden gebruikt voor het opnieuw samenstellen van gegevens
- Volgnummer is gekoppeld aan een stroom bytes, en is het 1e bytestroomnummer van de eerste byte in het segment.

  • Wanneer proces via TCP-verbinding een stroom data wil verzenden naar ander proces: nummert de TCP-component elke byte in de stroom data.
  • Bij een stroom van 500.000 bytes en en MSG (maximale segmentgrootte): 1000 bytes construeert TCP 500 segmenten.

Het startvolgnummer 0 is relatief.

  • Er wordt door de TCP-verbinding een willekeurig startvolgnummer gekozen.
  • Vanaf 0 zijn volgnummers makkelijker te lezen en te vergelijken.
  • Met een willekeurig startvolgnummer kan men voorkomen dat een segment van eerder beëindigd verbinding tussen 2 hosts verward kan worden met een geldig segment die ook dezelfde poort nummers hebben.

Bevestigingsnummers: geeft de gegevens aan die zijn ontvangen

  • TCP is een fullduplexprotocol: hosts kunnen data ontvangen en (gelijktijdig) verzenden via dezelfde TCP-verbinding.
  • Aankomende segmenten hebben een volgnummer voor de gegevensstroom.
  • De ontvangende host plaatst het volgnummer van de volgende byte die hij verwacht te ontvangen in de bevestigingsveld van het segment.

o Voorbeeld 1:
Host A: ontvangt [S] – (bytes 0 – 535) van host B.
Wacht op byte 536 en opeenvolgende bytes in de gegevensstroom
Host A: plaatst bevestigingsnummer 536 in bevestigingsveld.

o Voorbeeld 2
Host A: ontvangt segment (bytes 0 – 535) en segment (bytes 900 – 1000) van host B.
Heeft segment (bytes 536 – 899) nog niet ontvangen en wacht nog op bytes 536 en de bytes die daarop volgen.
Het bevestigingsnummer – die host A in bevestigingsnummerveld plaatst – is weer 536

Cumulatieve bevestigingen:
Bevestigen van de bytes tot de eerst ontbrekende byte in de stroom.
Toont belangrijk probleem:

Wat doet de host als hij out -of-order segmenten in een TCP-verbinding ontvangt.

Hangt af van hoe de programmeur de TCP implementeert. Geen regels rond in de TCP-RFC.

  1. Ontvanger dropt alle out-of-order segmenten.
  2. Ontvanger houdt de out-of-order bytes bij en wacht op ontbrekende bytes om de gaten te vullen.
    Efficiënter keuze op vlak van netwerk bandbreedte en wordt vaak toegepast
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Bespreek kort de Three Way Handshake.
A

ACK-bit: flag bit die aangeeft dat segment een bevestiging bevat voor een segment die met succes is ontvangen
SYN- en FIN-bits: worden gebruikt voor het opzetten en beëindigen van de verbinding.

Stap 1)

    • Client stuurt SYN-segment naar Server **
  • SYN-segment: SYN-bit wordt op 1 gezet. SYN-bit is een flagbit en wordt gebruikt voor het opzetten van een verbinding.
-	Segment inhoud:
o	Geen data van applicatielaag
o	SYN-bit op 1 in header van segment 
o	Willekeurig gekozen startvolgnummer (client_isn) in volgnummerveld
-	Verpakt in IP datagram

Stap 2)

    • Server ontvangt IP datagram van Client **
  • Filtert de SYN-segment, reserveert de TCP-buffers en variabelen voor de verbinding.
    • Server stuurt SYNACK-segment naar Client **
  • SYNACK-segment: Bevestigingssegment (connection granted segment)
-	Inhoud segment:
o	Geen data van applicatie laag
o	SYN-bit op 1, ACK-bit op 1
o	Bevestigingsnummer (client_isn + 1) in bevestigingsveld van TCP-segment header
o	Startvolgnummer (server_isn)

Stap 3)

    • Client ontvangt SYNACK-segment van Server **
  • Reserveert buffers en variabelen voor verbinding

** Client verzendt ander segment {ACK-segment} naar Server (bevestiging voor ontvangst) **

  • Inhoud segment:
    o Bevestigingsnummer (server_isn + 1)
    o SYN-bit op 0 (verbinding is er), ACK-bit op 1
    o Kan payload gegevens van client voor de server bevatten

Conclusie)

  • Na de derde stap wordt de verbinding tot stand gebracht
  • Bij toekomstige segmenten wordt de SYN-bit op 0 gezet
  • Wordt three-way-handshake genoemd omdat er voor de verbinding 3 packets moeten verzonden worden.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Wat is multiplexen en demultiplexen?
A

Door te (de)multiplexen wordt de afleverdienst tussen hosts op de netwerklaag uitgebreid tot afleverdienst tussen applicaties die op die hosts worden uitgevoerd.

Demultiplexen = het bepalen voor welk proces het segment bestemd is, en het zorgen dat deze daar terechtkomt.
- De transportlaag ontvangt segmenten van de netwerklaag en bezorgt deze bij de juiste applicatieproces op de host.

Een implementatie van demultiplexing:
Sockets op hosts zijn gekoppeld aan een poortnummer
De transpoortlaag bekijkt het bestemmingspoortnummer in het segment en leidt deze naar de juiste socket.
De gegevens van het segment komen via socket terecht bij gekoppelde proces.

Multiplexen = het verzamelen van uitgaande gegevens van de sockets van verschillende applicatieprocessen,
toevoegen van de headerinformatie en het uiteindelijk doorgeven van de segmenten aan de netwerk laag.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly