Project:Netwerken/Concepten-brainstorm: verschil tussen versies
Regel 75: | Regel 75: | ||
* adressering en routering in netwerken | * adressering en routering in netwerken | ||
=== Internet === | |||
* pakket-communicatie (vs. verbinding) | * pakket-communicatie (vs. verbinding) |
Versie van 5 jul 2017 20:52
Concepten-brainstorm
Dit is een verzamelpagina voor de concepten rond het thema Netwerken en de context Internet of Things. Deze concepten werken we in een later stadium verder uit. Waar mogelijk geven we deze concepten ook weer in de vorm van concept maps.
Communicatie
Netwerken vormen een medium voor communicatie - naast veel andere media. Communicatie in de informatica/ICT gebeurt niet alleen via netwerken. We moeten eerst concepten rond communicatie formuleren. Deze hebben we nodig als "taal" bij communicatie via netwerken.
Bij communicatie is er altijd sprake van een "fysieke laag" en een "toepassingenlaag". De fysieke laag bestaat bijvoorbeeld uit geluid - als trillingen in de lucht. De toepassingenlaag bestaat bijv. uit gesproken taal. (Je kunt van veel communicatiesituaties deze analyse uitvoeren. - welke inzichten levert dit op?)
- Het bijzondere van de informatica/ICT is dat deze twee lagen gescheiden worden door een universele, logische laag. Hierdoor is de toepassing ontkoppeld van de fysieke laag. (gevolgen???)
- medium:
- we gebruiken dit in een andere betekenis dan "de media" of "mediawijsheid".
- communicatie: overbruggen van ruimte en/of tijd, meestel met meerdere personen (agents: kunnen zowel personen, computers, als "dingen" zijn).
- Shannon communicatiemodel: zender, ontvanger, kanaal, bericht (boodschap), codering, decodering, kanaalcapaciteit, foutkans, (betrouwbaarheid).
- Compressie in dit model: broncodering, kanaalcodering, doelcodering
- 1-1 communicatie; 1-N; N-M communicatie (dit is topologie op het niveau van de toepassing)
- gebruik van een gemeenschappelijk medium (bijv. meerdere personen in een lokaal)
- communicatie-topologie:
- 1-1 (draad; op hoger niveau noemen we dit een verbinding)
- N-M (bus; gemeenschappelijk medium) => adressering; collisions/collisionhandling
- netwerk => adressering en routering
- we hebben ook te maken met routering als we bijvoorbeeld een verbinding willen maken in een klassiek analoog telefoonnetwerk. (Ook in dat geval hebben we te maken met collisions en collision handling: er kunnen bijvoorbeeld te weinig schakelaars en verbindingen zijn voor alle aanvragen op een bepaald moment.)
- throughput/latency
Een belangrijke stelling: we kunnen alle informatie representeren door middel van bits. We verliezen geen fundamentele eigenschappen (...zonder verlies van algemeenheid...) als we ons alleen op de communicatie van bits richten (digitale communicatie).
We kunnen eventueel bij deze communicatie onderscheid maken tussen de fysische laag en de toepassingen-laag. In een later stadium kunnen we daar de universele logische laag tussen plaatsen.
Sommige concepten kom je op meerdere terreinen tegen; bijvoorbeeld throughput en latency.
Wat heb je aan deze concepten?
- welke problemen en oplossingen kun je formuleren in termen van deze concepten/modellen?
Codering, compressie, encryptie
- codering/decodering
- kanaalcodering: vergroten van data-betrouwbaarheid
- broncodering: (lossless) compressie
- gebruik van de eigenschappen (statistiek) van de bron (zender)
- doelcodering: (lossy) compressie
- gebruik van de eigenschappen (o.a. statistiek) van het doel (ontvanger)
Protocollen
"Betrouwbare communicatie over een onbetrouwbaar medium". Betrouwbaarheidsprobleem op meerdere niveaus (vgl. internet).
- stapeling van protocollen ("protocol stack")
- vgl. ook stapeling van coderingen
- protocol op één draad (of ander gemeenschappelijk medium)
- punt-naar-punt (twee agents);
- ACK
- bus (meerdere agents; adressering)
- vgl. ethernet; WiFi
- internet simulator: code.org
- collisions; collision detection, collision avoidance
- punt-naar-punt (twee agents);
- bidirectioneel - bijv. UART (Tx en Rx draden)
- alternating bit protocol (en sliding window)
Andere aspecten van protocollen/communicatie:
- veiligheid (o.a. tegen afluisteren, maar ook: man in the middle problemen, e.d.)
- authenticatie
Netwerken
- nodes, verbindingen
- netwerk-topologie:
- ring
- maas (internet)
- ster (WiFi; bluetooth)
- (bus)
- adressering en routering in netwerken
Internet
- pakket-communicatie (vs. verbinding)
- "best effort" (vs. betrouwbare communicatie)
- end-to-end principe
- bewerkingen voor toepassing in de eindpunten, niet in het netwerk
- adressering in het internet
- IPV4
- IPv6
- routering
- speciale onderwerpen
- lokale netwerken
- subnetwerken
- router -
- IP - UDP/TCP - enz. stack
- UDP/TCP: naast IP-adres, ook poortnr in adres
- naamgeving; DNS
- NB: hiërarchie, in een niet-hiërarchisch netwerk
- authenticatie; gebruik van certificaten
- internet op grote schaap: wat zijn de grote spelers
- o.a. rol van Amsterdam Exchange
Internet en security
Web
Web, als (belangrijke) toepassing van het internet.
- client-server model
- HTTP(S) protocol
- HTML documenten
- URL
- web-services (en APIs)
- statische en dynamische webpagina's
- client-side scripting (JavaScript)
- server-side scripting (Python, JavaScript (nodejs), PHP, ...)
- web-apps
- Web-API's (REST principes)
- Resources
- URLs
- documenten (representaties)
- HTTP-opdrachten <-> CRUD
- idempotente opdrachten (GET, PUT, DELETE)
- push-protocollen (bijv. websockets)
- webserver
Internet (en web) of Things
- IoT-architectuur
- sensor-nodes
- Pub/Sub protocollen (e.g., MQTT)
- ook voor "push" berichten
Wiskunde van netwerken
- aantal mogelijke 1-1 verbindingen in (verbonden) netwerk: O(N^2)
- bepaalt waarde van het netwerk
- resultaat: bijna-monopolie van bestaande, grote netwerken
- o.a. reden om eerst via gratis model aantal gebruikers te vergroten
- verschillende soorten netwerken
- "6 degrees of separation" - small world network
- groei van netwerken
- kwetsbaarheid van netwerken
- basisbegrippen
- node, verbinding
- (max.) doorsnede (afstand)
- in- en uitgraad