netwerken en communicatie
het gebied van netwerken en communicatie omvat de analyse, het ontwerp, de implementatie en het gebruik van lokale, brede en mobiele netwerken die computers met elkaar verbinden. Het Internet zelf is een netwerk dat het voor bijna alle computers in de wereld mogelijk maakt om te communiceren.
een computernetwerk verbindt computers met elkaar via een combinatie van infrarode lichtsignalen, radiogolven, telefoonlijnen, televisiekabels en satellietverbindingen. De uitdaging voor computerwetenschappers was het ontwikkelen van protocollen (gestandaardiseerde regels voor het formatteren en uitwisselen van berichten) waarmee processen die op hostcomputers draaien de ontvangen signalen kunnen interpreteren en zinvolle “gesprekken” kunnen voeren om taken namens gebruikers uit te voeren. Netwerkprotocollen omvatten ook flow control, waardoor een data-afzender een ontvanger niet kan overspoelen met berichten die hij niet kan verwerken of opslaan, en error control, waarbij de transmissie foutdetectie en het automatisch opnieuw verzenden van berichten nodig zijn om dergelijke fouten te corrigeren. (Voor enkele technische details van foutdetectie en-correctie, zie informatietheorie.)
de standaardisatie van protocollen is een internationale inspanning. Omdat het anders onmogelijk zou zijn voor verschillende soorten machines en besturingssystemen om met elkaar te communiceren, was de belangrijkste zorg dat systeemcomponenten (computers) “open” zijn.”Deze terminologie komt van de Open Systems interconnection (OSI) communicatiestandaarden, vastgesteld door de Internationale Organisatie voor normalisatie. Het OSI-referentiemodel specificeert netwerkprotocolstandaarden in zeven lagen. Elke laag wordt gedefinieerd door de functies waarop hij vertrouwt van de laag eronder en door de diensten die hij levert aan de laag erboven.
onderaan het protocol ligt de fysieke laag, die regels bevat voor het transport van bits over een fysieke link. De data-link laag behandelt standaardformaat “pakketten” van gegevens en voegt betrouwbaarheid in de vorm van foutdetectie en flow control bits. De netwerk-en transportlagen breken berichten in de pakketten van standaardformaat en leiden ze naar hun bestemming. De sessielaag ondersteunt interacties tussen applicaties op twee communicerende machines. Het biedt bijvoorbeeld een mechanisme om controlepunten in te voegen (het opslaan van de huidige status van een taak) in een lange bestandsoverdracht, zodat, in geval van een storing, alleen de gegevens na het laatste controlepunt opnieuw moeten worden verzonden. De presentatielaag houdt zich bezig met functies die data coderen, zodat heterogene systemen zinvolle communicatie kunnen aangaan. Op het hoogste niveau zijn protocollen die specifieke toepassingen ondersteunen. Een voorbeeld van een dergelijke toepassing is het file transfer protocol (FTP), dat de overdracht van bestanden van de ene host naar de andere regelt.
de ontwikkeling van netwerken en communicatieprotocollen heeft ook geleid tot gedistribueerde systemen, waarbij computers die in een netwerk zijn verbonden gegevens en verwerkingstaken delen. Een gedistribueerd databasesysteem, bijvoorbeeld, heeft een database verspreid over (of gerepliceerd op) verschillende netwerksites. Gegevens worden gerepliceerd op “mirror sites” en replicatie kan de beschikbaarheid en betrouwbaarheid verbeteren. Een gedistribueerde DBMS beheert een database waarvan de Componenten over meerdere computers in een netwerk worden gedistribueerd.
een client-server netwerk is een gedistribueerd systeem waarin de database zich op één computer bevindt (de server) en de gebruikers via het netwerk verbinding maken met deze computer vanaf hun eigen computers (de clients). De server levert gegevens en reageert op verzoeken van elke client, terwijl elke client toegang tot de gegevens op de server op een manier die onafhankelijk is en onwetend van de aanwezigheid van andere clients toegang tot dezelfde database. Clientserversystemen vereisen dat afzonderlijke acties van meerdere clients naar hetzelfde deel van de database van de server worden gesynchroniseerd, zodat conflicten op een redelijke manier worden opgelost. Reserveringen van luchtvaartmaatschappijen worden bijvoorbeeld geïmplementeerd met behulp van een client-server-model. De server bevat alle gegevens over aankomende vluchten, zoals actuele boekingen en stoeltoewijzingen. Elke klant wil toegang tot deze gegevens met het oog op het boeken van een vlucht, het verkrijgen van een zitplaats toewijzing, en het betalen voor de vlucht. Tijdens dit proces is het waarschijnlijk dat twee of meer verzoeken van klanten toegang willen tot dezelfde vlucht en dat er nog maar één stoel over is om te worden toegewezen. De software moet deze twee verzoeken synchroniseren zodat de resterende stoel op een rationele manier wordt toegewezen (meestal aan de persoon die het verzoek als eerste heeft gedaan).
een ander populair type gedistribueerd systeem is het peer-to-peer netwerk. In tegenstelling tot clientservernetwerken gaat een peer-to-peer-netwerk ervan uit dat elke computer (gebruiker) die ermee verbonden is, zowel als client als server kan fungeren; dus is iedereen op het netwerk een peer. Deze strategie is zinvol voor groepen die audio collecties Delen op het Internet en voor het organiseren van sociale netwerken zoals LinkedIn en Facebook. Elke persoon die verbonden is met een dergelijk netwerk ontvangt informatie van anderen en deelt zijn of haar eigen informatie met anderen.