Hfd 3 Flashcards
Transport laag
Voorziet in logical communication tussen applicaties die op verschillende hosts runnen. Applicaties gebruiken de logische communicatie van de transportlaag om elkaar te berichten. Protocollen alleen in endsystems, niet in netwerkrouters.
Segments
Transport-layer packets, klein gemaakte messages, verpakt in header.
Worden de netwerklaag ingestuurd om daar verpakt te worden tot datagrammen.
Netwerk routers lezen alleen de datagrammen niet de segmenten.
Transport vs netwerklaag
Transportlaag | logische communicatie tussen processen die op verschillende hosts lopen (de kinderen die alle brieven in huis weer verdelen/verzamelen onder de rest)
Leeft in endsystem, levert bericht alleen af naar network edge.
Netwerklaag | logische communicatie tussen de hosts zelf (de postal service)
Leeft in de networkcore.
UDP
User Datagram Protocol
Unreliablr, connectionless service
Voorziet alleen in 2 basis services van transport-laser services; process-to-process data delivery & error checking
Bijvoorbeeld gebruikt door DNS
TCP
Transmission Control Protocol
Reliable, connection-oriented service
Voorziet in 2 basis services van transport-laser services; process-to-process data delivery & error checking
Daarnaast ook reliable data transfer, congestion control.
TCP connectie is een logische connectie, geen fysieke. Dus onzichtbaar voor routers, switches, etc. Zij zien gewoon een datagram
Transport-layer multiplexing
Aka demultiplexing
Demultiplexing
Het afleveren van data in segment door de juiste socket.
Gedaan door de header die rond de message zit.
Multiplexing
Het verzamelen van data chunks van de host, om deze in te pakken in headers die data bevatten over de poort waar t naartoe moet.
Message wordt segment
Source port number field
Deel van de header die afkomst definieert dmv poort nummer
Destination port number field
Deel vd header die definieert naar waar de data moet dmv een poort nummer
Port numbers
Een 16-bit nummer van 0-65535
0-1023 zijn well-known poortnummers, zijn gereserveerd voor bekende applicatie protocollen zoals HTTP en FTP
bind()
Om na het creëeren van een socket in python dmv
clientSocket = socket(AF_INET, SOCK_DGRAM)
Een specifieke poort (19157) toe te kennen aan de applicatie dmv
clientSocket.bind((‘’, 19157))
TCP demultiplexing
Through a TCP socket
Identified by a Four-tuple met IPadres, source port number, destination IP & destination port numbet
UDP vs TCP demultiplexing
UDP
Heeft alleen bestemmings informatie, waardoor 2 segmenten van verschillende hosts dezelfde socket in kunnen
UDP verbinden socket
clientSocket = socket(AF_INET, DGRAM)
clientSocket.bind((‘’, 19175))
TCP
Bevat zowel bestemming als host info. Dus segmenten die aankomen van verschillende hosts of met verschillende bestemmingen zullen in andere socket eindigen
Verbinden welcoming socket, port 12000
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName,12000))
Nieuwe socket gemaakt door server, met de 4 eigenschappen van t gestuurde segment als eisen
connectionSocket, addr = serverSocket.accept()
Connectionless
Zonder handshake zenden en ontvangen in de transportlaag. UDP
Waarom wel kiezen voor UDP
Meer controle over welke data verstuurd wordt vanuit de application-layer en wanneer (TCP is meer bezig met congestion-control dus soms moet t wachten)
Dus handig voor applicaties met minimum sending rate, zonder dat teveel vertraging mag en wanneer de wel wat data-loss kunnen incasseren.
Dingen als netflix & teams bellen
UDP is sneller, want geen handshake nodig. Begint gelijk met zenden.
TCP onderhoudt allerlei parameters om de reliability te kunnen beloven tijdens een connectie. UDP doet dit niet. Hierdoor kan een server, overgeleverd aan een specifieke applicatie, meer actieve gebruikers dienen.
UDP heeft minder packet overhead (8vs20)
UDP segment structure
|———32 bits ———|
Source port - dest. port
Length - checksum
Application data (message)
Checksum
Biedt error-detection
UDP :
10110101
10000110
—————+
00111011
Wanneer het meest linker cijfer overflow heeft, gaat deze carry-bit (de bit die je naar bovenliggende som meeneemt) verloren
Dan is het tijdvoor de 1s complement. Dit betekend dat alle 1en een 0 worden en andersom. Checksum wordt dus
11000100
Aan de ontvangende kant worden alle 3 de 16-bit pakketjes toegevoegd (incl) checksum. Deze moeten dan op 1111111 uitkomen. Zit er een 0 in, dan fout.
End-end principle
Gezien sommige functionaliteiten geimplementeerd moeten worden van eind tot eind, worden deze functionaliteiten overbodig in lower levels, zoals error checking
Connection-oriented
Wanneer een applicatie proces niet kan beginnen zonder handshake. Zoals bij TCP.
Full-duplex service
TCP connectie tussen van proces A in een host naar proces B in een andere. Dan kan applicatie-data van A naar B, terwijl op hetzelfde moment data terug kan van B naar A
Point-to-point
TCP connectie zend van 1 verzender naar 1 ontvanger. Multicasten (het tegelijk verzenden naar meerdere ontvangers) is niet mogelijk in TCP.
TCP connection handshake
Client proces laat client transport-layer weten dat hij connectie wil maken
- Hierna stuurt de TCP in client een speciaal segment naar server proces, zonder payload met SYN bit set to 1. Het kiest een random initial sequence number
- Deze stuurt dan weer een speciaal segment terug, zonder payload met SYN=1 en initial sequence nummer +1 en een eigen initial sequence nummer (SYNACK segment)
- Uiteindelijk stuurt de client een derde segment, waarin initial server sequence number +1 SYN=0 en kan data gaan bevatten (connection-granted segment)
Send buffer
De buffer aan de clientkant van de TCP connectie. Eens in de zoveel tijd pakt TCP een stuk data uit de buffer en stuurt m door.