infrastructure
Applicaties willen zich geen zorgen maken, doordat ze genoeg te doen hebben -> Om te communiceren
met de Transport laag neemt de applicatie een dienst af van de Transport laag. Als de applicatie laag,
bijvoorbeeld een berichtje wil versturen kan hij de Transport laag oproepen en die gaat dat voor de
applicatie regelen. Zelfde voor de Transportlaag, berichtjes versturen kan hij wel, maar er zit een heel
netwerk onder met kabels en knooppunten en verbinden. -> neemt dienst af aan de Network laag.
Voor het maken van een netwerk
applicatie:
Die applicaties draaien op eindsystemen (apparaten die we
verbinden met het internet: computers, telefoons, Xbox, smart
koelkast etc.). Bekendste voorbeeld is je pc met een
webbrowser, bijvoorbeeld Chrome of safari en ergens anders
in de wereld staat een webserver en die gaat communiceren
met jouw webbrowser, zodat jij de website kunt bekijken.
Voor een applicatie moet je kiezen voor een communicatie
architectuur. Als we het hebben over netwerken gaat het om
client-server en peer-to-peer (p2p) modellen.
Client-server model:
Dat veronderstelt dat je een client en een server hebt. Dit zijn alle
twee eindsystemen, maar met een andere rol. De client is
bijvoorbeeld ons laptop. Als wij bijvoorbeeld een webpagina
willen openen, maar dan hebben we een bepaalde dienst nodig
van een server. Hij moet ons namelijk de website toesturen. Als
client doe je een verzoek bij de server en dan krijg de client weer
antwoord van de server. Dit stelt eisen aan de server, want die
server moet altijd beschikbaar zijn, hiervoor worden meerdere
servers naast elkaar gezet, zodat ze veel verzoeken kunnen
afhandelen en als er 1 kapot gaat, kan de ander hem overnemen.
Die server moet ook op een vast adres staan, zoals een IP adres
zodat we verzoeken met elkaar kunnen delen. Aan de client
wordt dit allemaal niet geëist. Als jij eenmaal een verzoek stuurt,
ziet de server waar je bent en kan hij een reply terug sturen.
Typische voorbeelden zijn bekende web apps met client-server
model: HTTP en FTP.
P2P model:
Een alternatief voor als je bij de client-server model teveel servers
naast elkaar moet zetten en het teveel wordt. Bij de P2P model
gebruik je geen centrale server, maar verschillende servers werken
samen. Hoe meer mensen meedoen, hoe sneller het werkt, want we
,helpen elkaar met de bandbreedte en resources. Nadelen van P2P, complex systeem doordat je niet
altijd elkaar kunt helpen. Mensen verwijderen hun bestanden of als je bijvoorbeeld maar met vier
mensen bent, dan is het lastiger om samen te werken.
Bij het bouwen van je eigen applicatie heb je een app protocol nodig, zodat computers met elkaar
kunnen communiceren. Hiervoor moeten afspraken gemaakt worden over de taal die ze met elkaar
moeten spreken. Elke laag heeft zijn eigen protocolen, bijvoorbeeld applicatie protocol of transport
protocol.
De meeste applicatie protocollen draaien open-standaarden ( dus die standaarden staan op internet en
zijn opgeschreven in RFC’s (request for command). Voordeel, als we die afspraken hebben dan kan
iedereen zijn software maken die daarvan uitgaan. Als iedereen dezelfde protocol standaarden gaat
volgen, kan iedereen met elkaar samenwerken, behalve als je Skype bent, want die hebben liever
geheime standaard.
Transport protocolen
TCP:
Als een applicatie zegt ‘ wij gaan gebruik maken van TCP als transport protocol, dan zorgt TCP voor
betrouwbare data. Dat betekent dat er zekerheid is dat de transport in orde is en dat de dienst goed
aankomt. TCP heeft 2 services: flow control en congestion control. Deze regelen de snelheid van de
transport. Flow control zorgt ervoor dat het bericht niet sneller verstuurd dan dat de ontvanger het kan
verwerken, snelheid control dus. Congestion control houdt rekening met de drukte op het netwerk. Als
hij drukte op het netwerk tegenkomt, dan vermindert hij de snelheid tot dat de drukte verlaagd is.
Nadeel, je hebt geen control over de timing, je weet niet wanneer het bericht aankomt.
Hij geeft ook geen garantie over de bandbreedte en beveiliging.
UDP:
UDP biedt geen dienst, en is er alleen een best effort service -> Hij doet zijn best, maar belooft niets. Het
kan zijn dat je met UDP nooit berichten laat aankomen of dat er fouten zitten in het aangekomen model.
UDP is alleen gefocust op snelheid en biedt vrij weinig service, maar daardoor kan hij zich wel focussen
op zijn core business -> zo snel mogelijk pakketjes versturen.
Alles gebruikt TCP, maar alleen voor streaming multimedia en internet telephony kan UDP gebruikt
worden.
De host draait twee netwerk applicaties, die draaien
als een proces, binnen de computers. Zij kunnen aan
het operating systeem een verzoek doen om
zogenaamd een Socket te openen, een soort poort
of deur waar de gegevens doorheen kunnen. Onder
de operating systeem zit TCP of UDP en vervolgens
wordt over het internet ons bericht verstuurd, die
aankomt bij de andere computer waar ook TCP en
een operating systeem draait. Het berichtje dat je
wilt versturen wordt naar boven weergegeven door
de Socket naar de ontvanger.
, Doordat er op jouw computer meerdere applicaties draaien moeten die processen uit elkaar worden
gehouden -> port numbers. Port 80 wordt gebruikt HTTP voor webservers en port 25 door SMTP wordt
gebruikt voor e-mails.
HTTP is er om webpagina’s te versturen zodat wij kunnen surfen op het web. -> hoe werkt dat?
Een webpagina bestaat uit objecten, een daarvan is een zogenaamd HTML-file ( tekst bestand met wat
codes erin die beschrijft hoe de website eruit ziet). HTML bevat ook verwijzingen naar losse bestanden,
zoals plaatjes en filmpjes. Elke bestand heeft een unieke naam, URL. Elke object wordt uniek
geidentiviseerd door die URL. Een URL bestaat uit een host name en een path name.
HTTP is een typisch
voorbeeld
voor de
client-
server
model. Wij als client dienen een request in HTTP server geeft
ons een response terug.
HTTP requests, de meest gebruikte zijn GET en POST. GET is een
request van jou aan de webserver om jouw een bepaald object
te sturen. Bijvoorbeeld GET index.html of GET photo.jpeg.
POST biedt ons ook de
mogelijkheid om een request naar de webserver te sturen. POST
gebruik je als je bijvoorbeeld een formulier hebt ingevuld om
vervolgens iets terug te krijgen. Bijvoorbeeld POST login.html.
HTTP maakt overigens ook gebruik van TCP en is stateless protocol -> Hij houdt geen historie bij en
behandelt elk request hetzelfde. Cookies is een mechanisme van HTTP om toch iets van jou te kunnen
onthouden. Cookies zijn kleine stukjes informatie die worden opgeslagen op jouw eigen computer.
Je hebt client, mail servers en een protocol -> SMTP (simple mail
transfer protocol). Elke bedrijf heeft zijn eigen mail server,
bijvoorbeeld mail server van HvA. Een mail client is een stukje
software dat je download en gebruikt, zoals Outlook.
Als je niet online bent op je mail, kan iemand bijvoorbeeld
een mail versturen en je mail server vangt hem op tot dat je weer
online bent. SMTP gebruikt overigens ook TCP.
Stel Alice stuurt een mail naar Bob. Alice heeft een mailadres van
Ziggo en verstuurt een mailtje naar Bob. Eerst wordt het mailtje
verstuurt naar de mailserver van Alice en die is door Ziggo
onderhouden. De mailserver van Alice stuurt de mail daarna naar
de mailserver van Bob, die heeft een account bij Google. De mail
die staat in de wacht bij Google, Bob zijn mailserver, tot dat Bob
naar zijn mails gaat kijken. Dit gaat allemaal door het protocol SMTP. Om de mail te lezen kan Bob
kiezen met welk protocol hij de mail kan lezen.