Project:Netwerken/Concepten-brainstorm: verschil tussen versies

Uit Inf2019
Naar navigatie springen Naar zoeken springen
Regel 107: Regel 107:
* HTML documenten
* HTML documenten
* URL
* 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)
* Web-API's (REST principes)
** Resources
** Resources
Regel 114: Regel 119:
** idempotente opdrachten (GET, PUT, DELETE)
** idempotente opdrachten (GET, PUT, DELETE)
* push-protocollen (bijv. websockets)
* 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 ===
=== Wiskunde van netwerken ===

Versie van 5 jul 2017 15:29

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 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
  • 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