Hoofdstuk 2: De toepassingslaag:
1) Principes van netwerktoepassingen:
1. Principes van netwerktoepassingen:
- Web en HTTP
- E-mail, SMTP, IMAP
- Het domeinnaamsysteem DNS
- P2P-toepassingen
- Videostreaming en inhoud distributienetwerken
- Socket programmering met UDP en TCP
2. Onze doelen:
Conceptuele-en uitvoeringsaspecten van protocollen voor de toepassingslaag
- Transport-layer service modellen
- Client-server paradigma
- Peer-to-peer paradigma
Leren over protocollen door het onderzoeken van populaire applicatie-laag protocollen en
infrastructuur
- HTTP
- SMTP, IMAP
- DNS
- Video streaming systemen, CDN's
Programmering van netwerk toepassingen
- Socket-API
- Draaien op (verschillende) eindsystemen
- Over een netwerk communiceren (bv: webserversoftware)
- Communiceert met browsersoftware
→ Niet nodig om software te schrijven voor netwerk-core apparaten
- Netwerk-core apparaten draaien geen gebruikers toepassingen
- Toepassingen op eindsystemen maakt voor snelle app-ontwikkeling,
verspreiding
4. Klant-server model/ paradigma:
Server:
- Altijd-on host
- Permanent IP-adres
- Vaak in datacenters, voor schaalvergroting
Klanten:
- Contact maken, communiceren met de server
- Kunnen met tussenpozen verbonden zijn
- Kunnen dynamische IP-adressen hebben
- Communiceren niet rechtstreeks met elkaar (bv: HTTP, IMAP, FTP)
1
,5. Peer-peer-architectuur
- Geen always-on server
- Willekeurige eindsystemen communiceren direct
- Peers vragen diensten aan andere peers
→ verlenen in ruil diensten aan andere peers
→ zelf schaalbaarheid: nieuwe peers brengen nieuwe dienst
capaciteit en nieuwe diensteisen
- Peers zijn met tussenpozen verbonden + veranderen van IP adres
→ complex management
Vb: P2P bestanden delen
6. Communicerende processen
PROCES = programma dat loopt binnen een host
CLIËNTPROCES = proces dat de communicatie initieert
SERVERPROCES = proces dat wacht om gecontacteerd te worden
- Binnen dezelfde host: 2 processen communiceren
→ mbv inter-proces communicatie (gedefinieerd door OS)
- In verschillende hosts: processen communiceren door uitwisselen van berichten
! Toepassingen met P2P-architecturen hebben klantprocessen & serverprocessen
7. Sockets
Proces zendt/ontvangt berichten naar/van zijn socket
Socket analoog aan deur
- Verzendend proces schuift bericht de deur uit
- Verzendend proces vertrouwt op transportinfrastructuur aan andere kant van deur om
bericht af te leveren bij socket van ontvangend proces
- 2 sockets betrokken: één aan elke kant
8. Processen aanpakken
- Berichten ontvangen → proces moet een identifier hebben
- Host-apparaat heeft uniek 32-bit IP-adres
- De identificatiecode omvat IP-adres en poortnummers geassocieerd met proces op de host.
Vb poortnummers: HTTP-server: 80
Mailserver: 25
- Om HTTP bericht te sturen naar gaia.cs.umass.edu webserver:
IP adres: 128.119.245.12
Poortnummer: 80
Vraag: Is het IP-adres van de host waarop het proces draait voldoende voor het proces te
identificeren?
→ Nee, veel processen kunnen draaien op dezelfde host
9. Een applicatie-laag protocol definieert:
2
, - Soorten berichten die worden uitgewisseld
vb: verzoek, antwoord
- Berichtensyntaxis:
= Welke velden in berichten & hoe velden worden afgebakend
- Semantiek van berichten
= Betekenis van informatie in velden
- Regels voor wanneer en hoe processen sturen en reageren op berichten
Open protocollen:
- Gedefinieerd in RFC's, iedereen heeft toegang tot protocol definitie
- Maakt interoperabiliteit mogelijk
Vb: HTTP, SMTP
Propriëtaire protocollen:
vb: Skype, Zoom
10. Welke vervoersdienst heeft een app nodig?
Gegevensintegriteit
- Sommige toepassingen (bv: bestandsoverdracht webtransacties) vereisen 100% betrouwbare
gegevensoverdracht
- Andere toepassingen (bv. audio) kunnen enig verlies tolereren
Timing
- Sommige toepassingen (bv. internet telefonie, interactieve spelletjes) vereisen een lage
vertraging om "effectief" te zijn
Doorvoer
- Sommige toepassingen (bv. multimedia) vereisen een minimale hoeveelheid doorvoer nodig
om "effectief" te zijn
- Andere toepassingen (= elastische toepassingen) maken gebruik van elke doorvoer die ze
krijgen
Beveiliging
- Encryptie, gegevensintegriteit, …
Vereisten voor vervoersdiensten: gemeenschappelijke apps
11. Diensten in verband met internetvervoerprotocollen
TCP-dienst:
- Betrouwbaar transport tussen zendende en ontvangend proces
- Flow control: verzender zal ontvanger niet ontvanger niet overweldigen
- Congestiecontrole: afzender afknijpen wanneer netwerk overbelast is
- Verbindingsgericht: setup vereist tussen client en server processen
- Biedt geen: timing, minimum doorvoer garantie, veiligheid
UDP-dienst:
3
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller emmaengelen12. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $7.54. You're not tied to anything after your purchase.