nätverk och kommunikation
fältet nätverk och kommunikation omfattar analys, design, implementering och användning av lokala, breda och mobila nätverk som länkar datorer tillsammans. Internet i sig är ett nätverk som gör det möjligt för nästan alla datorer i världen att kommunicera.
ett datornätverk kopplar samman datorer via en kombination av infraröda ljussignaler, radiovågsöverföringar, telefonlinjer, tv-kablar och satellitlänkar. Utmaningen för datavetare har varit att utveckla protokoll (standardiserade regler för format och utbyte av meddelanden) som gör det möjligt för processer som körs på värddatorer att tolka signalerna de får och att engagera sig i meningsfulla “konversationer” för att utföra uppgifter på uppdrag av användare. Nätverksprotokoll inkluderar även flödeskontroll, som håller en datasändare från att översvämma en mottagare med meddelanden som den inte har tid att bearbeta eller utrymme att lagra, och felkontroll, vilket innebär att överföringsfeldetektering och automatisk återsändning av meddelanden för att korrigera sådana fel. (För några av de tekniska detaljerna för feldetektering och korrigering, se informationsteori.)
standardiseringen av protokoll är en internationell insats. Eftersom det annars skulle vara omöjligt för olika typer av maskiner och operativsystem att kommunicera med varandra, den viktigaste oro har varit att systemkomponenter (datorer) vara “öppna.”Denna terminologi kommer från kommunikationsstandarderna open systems interconnection (OSI), som fastställts av International Organization for Standardization. OSI-referensmodellen anger nätverksprotokollstandarder i sju lager. Varje lager definieras av de funktioner det förlitar sig på från lagret under det och av de tjänster det tillhandahåller till lagret ovanför det.
längst ner i protokollet ligger det fysiska lagret, som innehåller regler för transport av bitar över en fysisk länk. Datalänkskiktet hanterar standardstora” paket ” med data och lägger till tillförlitlighet i form av feldetektering och flödeskontrollbitar. Nätverks-och transportlagren bryter meddelanden i standardpaket och dirigerar dem till sina destinationer. Sessionskiktet stöder interaktioner mellan applikationer på två kommunicerande maskiner. Det ger till exempel en mekanism för att infoga kontrollpunkter (spara aktuell status för en uppgift) i en lång filöverföring så att i händelse av ett fel måste endast data efter den sista kontrollpunkten sändas om. Presentationsskiktet handlar om funktioner som kodar data, så att heterogena system kan engagera sig i meningsfull kommunikation. På högsta nivå finns protokoll som stöder specifika applikationer. Ett exempel på en sådan applikation är file transfer protocol (FTP), som styr överföringen av filer från en värd till en annan.
utvecklingen av nätverk och kommunikationsprotokoll har också skapat distribuerade system, där datorer som är länkade i ett nätverk delar data-och bearbetningsuppgifter. Ett distribuerat databassystem har till exempel en databas som sprids mellan (eller replikeras på) olika nätverkssajter. Data replikeras på “spegelplatser” och replikering kan förbättra tillgängligheten och tillförlitligheten. En distribuerad DBMS hanterar en databas vars komponenter distribueras över flera datorer i ett nätverk.
ett klient-servernätverk är ett distribuerat system där databasen finns på en dator (servern) och användarna ansluter till den här datorn via nätverket från sina egna datorer (klienterna). Servern tillhandahåller data och svarar på förfrågningar från varje klient, medan varje klient får åtkomst till data på servern på ett sätt som är oberoende och okunnig om närvaron av andra klienter som har åtkomst till samma databas. Klient-serversystem kräver att enskilda åtgärder från flera klienter till samma del av serverns databas synkroniseras, så att konflikter löses på ett rimligt sätt. Till exempel implementeras flygbokningar med en klient-servermodell. Servern innehåller all information om kommande flygningar, till exempel aktuella bokningar och platsuppdrag. Varje kund vill få tillgång till dessa uppgifter i syfte att boka ett flyg, få en platsuppgift och betala för flygningen. Under denna process är det troligt att två eller flera klientförfrågningar vill komma åt samma flygning och att det bara finns en plats kvar att tilldelas. Programvaran måste synkronisera dessa två förfrågningar så att det återstående sätet tilldelas på ett rationellt sätt (vanligtvis till den person som gjorde begäran först).
en annan populär typ av distribuerat system är peer-to-peer-nätverket. Till skillnad från klient-servernätverk antar ett peer-to-peer-nätverk att varje dator (användare) som är ansluten till den kan fungera både som en klient och som en server; således är alla i nätverket en peer. Denna strategi är meningsfull för grupper som delar ljudsamlingar på Internet och för att organisera sociala nätverk som LinkedIn och Facebook. Varje person som är ansluten till ett sådant nätverk får både information från andra och delar sin egen information med andra.