Herhalingsvragen (deel 4) Flashcards
- Wat is een socket? Geef twee voorbeelden van een socket.
Socket is een API, of een soort deur tussen een proces in de applicatie laag en de transport laag.
Transportlaag ontvangt gegevens van de netwerklaag en levert deze met behulp van sockets (niet rechtstreeks)
De transportlaag kent een poortnummer toe aan socket (van 1024 - 65535)
Omdat een host meerdere sockets kan bevatten heeft elk socket een uniek identificatienummer.
Het formaat is afhankelijk van socket
Er zijn twee types sockets voor twee types transport-services:
UDP-socket en TCP-socket.
UDP-socket interactie:
Bestemmingsadres (doorgegeven aan packet): verzenden gegevens uit socket.
-> bestemming host.
Host kan meerdere applicaties uitvoeren, elk met 1 of meer sockets.
Bestemmingspoortnr
De transport laag protocol bekijkt bestemmingspoortnummer in segment en levert segment af bij socket gekoppeld aan die poort.
Bestemmingsadres is dus bestemming IP-adres + bestemmingspoortnummer
TCP-socket:
Wordt geïdentificeerd door vier-tupel:
Bron IP-adres, bronpoortnummer,
IP-bestemmingadres, bestemmingspoortnummer
TCP is connection-oriented. Er vindt dus eerst een handshake plaats. Bij het opzetten van de TCP verbinding wordt client socket adres en server socket adres door gegeven (IP adres en poortnummer).
Bij het verzenden wordt de data achtergelaten in geschikte socket. Er moet dus geen bestemming adres doorgegeven worden.
Als TCP-segment bij host komt, worden alle 4 velden gebruikt om segment om te leiden naar bijhorende socket (demultiplexen).
Twee aankomende TCP-segmenten met verschillende bron-IP-adressen of bronpoortnummer zullen dus bij verschillende sockets terechtkomen.
Hosts gebruiken beide zelfde bronpoortnummer, maar de bron IP-adres is verschillend, wat maakt dat server B beide verbindingen demultiplext.
Uitzondering: TCP-segment met het oorspronkelijke verzoek voor het tot stand brengen van een verbinding
(Connection-establishement request)
- Wat zijn de kenmerken van server software?
- Kenmerken van server software
o Is een applicatie dat één bepaalde dienst levert maar verschillende clients kan afhandelen
o Wordt automatisch geactiveerd wanneer een systeem opstart en blijft actief tijdens vele sessies
o Draait meestal op een server
o Kan meerdere clients op hetzelfde moment bedienen
- Geef schematisch weer en bespreek het client/server model.
In een client-serverstructuur is er een ‘altijd-aan’ host
- Server die verzoeken van andere hosts (clients) behandelt
- Client kan op elk moment contact opnemen met server door packet naar adres van server te verzenden
- Webserver ontvangt verzoek van client en stuurt gevraagde object naar client
- Clients communiceren niet rechtstreeks met elkaar
Bv. In de webapplicatie, twee browsers communiceren niet rechtstreeks.
Server: vast, bekend adres (IP)
Bekende: web, FTP, Telnet, e-mail
Datacenter
Eén server niet voldoende om alle requests af te handelen -> meerdere servers
Groot aantal hosts samen een krachtige virtuele server
Voorbeelden: zoekmachines, e-commerce, webmail, social media
Client = degene die communicatie initieert Server = proces dat wacht tot ander proces contact opneemt
- Geef een voorbeeld van eenduidige communicatie tussen een client en een server.
De communicatie tussen client 1 en de server wordt gekenmerkt door volgende socket:
Protocol: TCP SP: 4400 Source port – Bronpoort DP: 80 Destination port – Bestemmingspoort SA: 172.23.1.101 Source address – Bronadres DA: 172.23.2.51 Destination address – Bestemmingsadres
- Wat is een DNS systeem?
Definitie DNS:
DNS (= Domain name system) is een applicatie laag protocol, maar in tegenstelling tot web-bestandsoverdrachten en e-mail is DNS geen applicatie waar een gebruiker rechtstreeks mee communiceert.
DNS bevindt zich aan de ‘edge’ van het netwerk.
Host en voorkeuren
Een host identificeert zichzelf met een hostnaam. Mensen geven een voorkeur aan hostnamen maar routers geven een voorkeur aan IP-adres met een vast lengte.
Reden: hostnamen met variabele lengte zijn moeilijk om te verwerken door router.
Om de voorkeuren van de gebruiker en router in overeenstemming te brengen, is er nood aan een directoryservice om hostnamen te vertalen naar IP-adressen. Dit is de hoofdtaak van DNS.
DNS in depth:
Gedistribueerde database, geïmpl. in hiërarchie van DNS servers.
Applicatieprotocol waarmee hosts de database kunnen bevragen
Vaak gebruikt door andere protocollen op de applicatie laag (Bv. HTTP en SMTP)
om door de gebruiker aangeleverde host-namen te vertalen naar IP-adressen.
Gebruikt UDP en poort 53
IP-adres:
Om een http verzoekbericht te kunnen versturen naar de webserver moet de gebruiker de IP-adres ervan kennen.
Deze bestaat uit 4 bytes: bv. 121.7.106.83
En heeft een hiërarchisch structuur: bij het lezen van links naar rechts, komen we steeds meer specifieke informatie te weten.
DNS implementatie:
- De gebruikersmachine, dus de host die http-verzoek bericht verstuurd
- voert de clientcomponent van de DNS-applicatie uit - De browser
- extraheert de hostnaam uit de URL
- verzendt de hostnaam naar de clientcomponent van de DNS-applicatie - De DNS client
- stuurt de query die de hostnaam bevat naar de DNS-server
- krijgt uiteindelijk een reactie, die de IP-adres voor de hostnaam bevat. - De browser
- ontvangt de IP adres van DNS, en initieert een TCP verbinding met de HTTP-server
Enkele diensten van DNS:
Host aliasing:
Dienst van DNS om canonieke hostnaam en IP adres van de hostnaam te verkrijgen van opgegeven alias-hostnaam
* Moeilijke hostnamen ? Canoniek : mnemoniek
Mailserver aliasing:
Dienst van DNS om canonieke hostnaam en IP adres van de hostnaam van een mailserver op te vragen
MX-record:
Mail server en webserver van een bedrijf dezelfde aliased hostnamen te geven (werknemer@enterprise.be www.enterprise.be)
Loadbalancing:
Belasting van gerepliceerde servers verdelen (DNS rotation)
Vaak bezochte websites -> gerepliceerd over verschillende servers, waarbij elk server op een andere host draait en een andere IP-adres heeft
* clients voeren DNS-verzoek uit voor een naam gekoppeld aan serie adressen -> server antwoordt met serie IP-adressen, maar gebruikt algoritme om de adressen altijd te veranderen van volgorde.
- Bespreek de werking van het DNS protocol bij recursief zoeken (8 stappen plus figuur)
- De host stuurt een DNS query bericht naar zijn lokale DNS server
- De lokale DNS server stuurt querybericht naar de root DNS server
- De root DNS server stuurt een query bericht naar de TLD DNS server
- De TRL DNS server stuurt een query berciht naar de authoritative DNS server.
De authoritative DNS server reageert op de TLD DNS server.
De TLD DNS server reageert op de root DNS server
De root DNS server reageert op de local DNS server
De lokale DNS server reageert dan uiteindelijk op de host.
Wordt niet vaak gebruikt in praktijk, in plaats daarvan wordt de iteratieve versie gebruikt.
- Wat zijn cookies?
HTTP-server is stateless, dit simplificeert de server-ontwerp en liet toe om performante servers te ontwikkelen die duizenden gelijktijdige TCP-verbindingen aan kunnen.
Vaak is het wenselijk voor website om gebruikers te identificeren. Omdat de server de gebruikerstoegang wil beperken en inhoud wil dienen als functie van de identiteit van de gebruikers.
Voor deze doeleinden maakt HTTP gebruik van cookies [RFC 6265].
Cookies:
- stellen websites in staat om de gebruikers ‘op te volgen’, en een user-state bij houden.
- kunnen gebruikt worden om gebruikers te identificeren, en om een gebruikers sessie laag bovenop de stateless HTTP te creëren.
- simplificeren het online-winkelen maar controversieel:
Inbreuk op de privacy?
-> Website kan met combinatie van cookies en door de gebruiker versterkte accountinformatie veel leren over een gebruiker en deze informatie mogelijk verkopen aan derde partij.
Cookie technologie bestaat uit vier componenten:
Cookie header line in HTTP response message
Cookie header line in de HTTP request message
Cookie bestand dat wordt bijgehouden op de gebruikers eindsysteem en wordt onderhouden door de gebruikers browser.
Backend database website
- Gebruiker: bezoekt website 1e keer. request -> server website
- Server: creëert id-nummer + entry in backend db en HTTP-responsebericht -> browser met Set-cookie-header met id-nummer van gebruiker
- Browser: plaatst regel (hostnaam van server + id-nummer uit set-cookie-header) aan ‘t einde van speciaal cookiebestand dat door de browser wordt beheerd.
- Bij elk aanvraag van webpagina wordt cookiebestand geraadpleegt en wordt identificatienummer voor site eruit gehaald en geplaatst in HTTP request.
- Elk request naar een server bestaat uit de een bepaalde headerline.
- Zo is de website in staat om activiteit van de gebruiker op te volgen?
- Welke pagina bezocht, in welke volgorde, op welke tijdstip? - Gebruiker: kan bij een latere bezoek voorgestelde producten krijgen op basis van bezochte webpagina’s
- Eens de gebruiker registreert met zijn persoonlijke gegevens, wordt deze informatie toegevoegd aan de database, en wordt de gebruiker geassocieerd met het identificatienummer.
+ alle pagina’s bezocht in het verleden
- Wanneer wordt IMAP en POP3 gebruikt? Wat is het verschil tussen deze 2 protocollen?
Wanneer berichten moeten opgehaald worden kan dit niet met SMTP omdat SMTP een push protocol is. E-mails ophalen is een pull protocol. Bij web-gebaseerde mails zoals Gmail kan de user agent HTTP gebruiken.
Bij e-maiil clients als outlook kan dat enkel met IMAP (Internet Mail Access Protocol).
** Pop3 wordt gebruikt om e-mails te ontvangen van een remote server naar een lokale server. **
Eens de bericht gedownload is wordt deze verwijderd van de server, waardoor de bericht niet zichtbaar is op andere toestellen, omdat deze maar 1 keer wordt gedownload.
Gebeurt via UDP poort 110
** IMAP: Beheren en ontvangen e-mailberichten van de server. **
IMAP laat toe om e-mail te downloaden op meerdere apparaten.
Het synchroniseerd alle mappen en bestanden.
Wanneer een mail wordt verwijderd, wordt deze verwijderd van de mail server en daarna verwijderd van de mail op een andere toestel.
Gebeurt via TCP poort 143