netværk og kommunikation
feltet netværk og kommunikation omfatter analyse, design, implementering og brug af lokale, bredt område, og mobilnetværk, der forbinder computere sammen. Internettet i sig selv er et netværk, der gør det muligt for næsten alle computere i verden at kommunikere.
et computernetværk forbinder computere sammen via en kombination af infrarøde lyssignaler, radiobølgetransmissioner, telefonlinjer, tv-kabler og satellitforbindelser. Udfordringen for computerforskere har været at udvikle protokoller (standardiserede regler for format og udveksling af meddelelser), der gør det muligt for processer, der kører på værtscomputere, at fortolke de signaler, de modtager, og engagere sig i meningsfulde “samtaler” for at udføre opgaver på vegne af brugere. Netværksprotokoller inkluderer også strømningskontrol, som forhindrer en datasender i at oversvømme en modtager med meddelelser, som den ikke har tid til at behandle eller plads til at gemme, og fejlkontrol, som involverer transmissionsfejldetektering og automatisk videresendelse af meddelelser for at rette sådanne fejl. (For nogle af de tekniske detaljer om fejlregistrering og korrektion, se informationsteori.)
standardisering af protokoller er en international indsats. Da det ellers ville være umuligt for forskellige slags maskiner og operativsystemer at kommunikere med hinanden, har den vigtigste bekymring været, at systemkomponenter (computere) er “åbne.”Denne terminologi kommer fra kommunikationsstandarderne open systems interconnection (OSI), der er oprettet af Den Internationale Organisation for standardisering. OSI-referencemodellen specificerer netværksprotokollstandarder i syv lag. Hvert lag er defineret af de funktioner, det er afhængig af fra laget under det og af de tjenester, det leverer til laget over det.
i bunden af protokollen ligger det fysiske lag, der indeholder regler for transport af bits over et fysisk link. Data-link-laget håndterer “pakker” af data i standardstørrelse og tilføjer pålidelighed i form af fejldetekterings-og strømstyringsbit. Netværk og transport lag bryde meddelelser i standard-størrelse pakker og rute dem til deres destinationer. Sessionslaget understøtter interaktioner mellem applikationer på to kommunikerende maskiner. For eksempel giver det en mekanisme til at indsætte kontrolpunkter (gemme den aktuelle status for en opgave) i en lang filoverførsel, så i tilfælde af en fejl kun skal dataene efter det sidste kontrolpunkt videresendes. Præsentationslaget beskæftiger sig med funktioner, der koder for data, så heterogene systemer kan engagere sig i meningsfuld kommunikation. På højeste niveau er protokoller, der understøtter specifikke applikationer. Et eksempel på en sådan applikation er file transfer protocol (FTP), som styrer overførslen af filer fra en vært til en anden.
udviklingen af netværk og kommunikationsprotokoller har også skabt distribuerede systemer, hvor computere, der er knyttet til et netværk, deler data-og behandlingsopgaver. Et distribueret databasesystem har for eksempel en database spredt blandt (eller replikeret på) forskellige netværkssider. Data replikeres på “spejlsteder”, og replikering kan forbedre tilgængelighed og pålidelighed. En distribueret DBMS administrerer en database, Hvis komponenter distribueres på tværs af flere computere på et netværk.
et klient-servernetværk er et distribueret system, hvor databasen er placeret på en computer (serveren), og brugerne opretter forbindelse til denne computer via netværket fra deres egne computere (klienterne). Serveren leverer data og reagerer på anmodninger fra hver klient, mens hver klient får adgang til dataene på serveren på en måde, der er uafhængig og uvidende om tilstedeværelsen af andre klienter, der får adgang til den samme database. Klientserversystemer kræver, at individuelle handlinger fra flere klienter til den samme del af serverens database synkroniseres, så konflikter løses på en rimelig måde. For eksempel implementeres flyreservationer ved hjælp af en klient-servermodel. Serveren indeholder alle data om kommende flyvninger, såsom aktuelle bookinger og sædetildelinger. Hver klient ønsker at få adgang til disse data med det formål at booke en flyvning, opnå en pladsopgave og betale for flyvningen. Under denne proces er det sandsynligt, at to eller flere klientanmodninger ønsker at få adgang til den samme flyvning, og at der kun er et sæde tilbage, der skal tildeles. Programmet skal synkronisere disse to anmodninger, så det resterende sæde tildeles på en rationel måde (normalt til den person, der først fremsatte anmodningen).
en anden populær type distribueret system er peer-to-peer-netværket. I modsætning til klient-servernetværk antager et peer-to-peer-netværk, at hver computer (bruger), der er tilsluttet den, kan fungere både som en klient og som en server; således er alle på netværket en peer. Denne strategi giver mening for grupper, der deler lydsamlinger på internettet og til at organisere sociale netværk som LinkedIn og Facebook. Hver person, der er tilsluttet et sådant netværk, modtager både information fra andre og deler sine egne oplysninger med andre.