Transportlaag

T. Issaris

24 Februari 2021

Intro

  • laag tussen applicatie- en netwerklaag
  • laag tussen b.v. HTTP en IP

Rol

communicatie tussen 2 applicaties

Fig 9.1

Verantwoordelijkheden

  • bijhouden van individuele communicatie
  • segmentering en samenstellen
  • identificatie van applicaties

Bijhouden conversaties

conversatie: data tussen source en destination-applicatie

Fig 9.2

Segmentering

  • beperking hoeveel data in 1 packet verstuurd kan worden
  • data in stukjes kappen
  • informatie toevoegen om samenstellen mogelijk te maken

Segmentering

Fig 9.3

Identificatie applicaties

  • poortnummer: unieke identifier per applicatie
  • noodzakelijk voor ieder softwareproces voor communicatie

Identificatie

Fig 9.4

Conversatie-multiplexing

  • multiplexing: segmenten van verschillende conversaties door elkaar
Fig 9.5

Reliability

Belangrijkste 2 protocollen:

  • TCP
  • UDP

UDP

  • best effort
  • lichtgewicht
  • geen betrouwbaarheid

UDP services

Fig 9.19

UDP header

  • stateless
  • minimale overhead (slechts 8 bytes)
Fig 9.20

Scheiden conversaties

  • meerdere conversaties
  • mogen niet door elkaar lopen (website/email/chat)
  • dmv unieke identifiers: poortnummers

Scheiden conversaties

Fig 9.21

Poortnummers

  • source poortnummer: lokale host
  • destination poortnummer: externe host
Fig 9.22

Source-poort

  • dynamisch gekozen
  • b.v. bij HTTP meerdere requests onderscheiden door verschillende source-ports

Destination-poort

  • om aan te geven welke service gevraagd wordt
  • ligt dikwijls vast
  • poort 80 is b.v. HTTP
  • server voorziet meerdere servers op 1 machine via meerdere poorten

Socket paar

  • combinatie: source IP, source port, dest IP, dest port
  • b.v. socket paar: 192.168.0.100:2002, 192.168.0.200:80
  • uniek: hierdoor meerdere verbindingen met zelfde server mogelijk
  • source-poortnummer: retouradres om antwoord terug te sturen naar juist applicatie

Socket paar

Fig 9.23

Groepen poortnummers

  • 0 t/m 1023: system/“well-known” poorten
  • 1024 t/m 49151: geregistreerde poorten
  • 49151 t/m 65535: dynamische poorten

Well-known

  • gereserveerd voor servers
  • webserver 80 en 443
  • mailserver 25, 110, 143
  • clients kunnen hierdoor automatisch poort kiezen (browser 80 b.v.)

Geregistreerde poorten

  • allerhande applicaties
  • MySQL 3306
  • Microsoft RDP 3389

Dynamische poorten

  • tijdelijke poorten
  • toegewezen aan client-applicaties om verbinding op te zetten

Netstat

  • toont actieve verbindingen
  • lokaal adres, remote adres, status
  • “-n” optie om numerieke vorm te tonen

UDP communicatie

  • lage overhead
  • geen garanties op bezorging
  • kunnen out-of-order aankomen
Fig 9.35

UDP communicatie

  • geen sequence-nummer
  • geen garanties op bezorging
  • kunnen out-of-order aankomen

UDP communicatie

Fig 9.36

UDP server

  • netwerkstack stuurt informatie naar juiste serversoftware dmv poortnummer
  • serversoftware luistert op een poortnummer
Fig 9.37

UDP client

  • client vraagt data aan server-proces
  • terugkerende packets omgekeerd
Fig 9.38

UDP communicatie

Fig 9.39

UDP communicatie

Fig 9.40

UDP communicatie

Fig 9.41

UDP communicatie

Fig 9.42

UDP gebruik

  • live video/audio
  • eenvoudige transacties: b.v. DNS, DHCP
  • applicaties die zelf betrouwbaarheid afhandelen (SNMP, TFTP)

UDP header

// reveal.js plugins