Networking and communication
verkottumisen ja viestinnän alaan kuuluu tietokoneita yhteen yhdistävien paikallisten, laaja-alaisten ja mobiiliverkkojen analysointi, suunnittelu, toteutus ja käyttö. Internet itsessään on verkko, jonka avulla lähes kaikki maailman tietokoneet voivat kommunikoida keskenään.
tietokoneverkko yhdistää tietokoneet toisiinsa infrapunavalosignaalien, radioaaltolähetysten, puhelinlinjojen, televisiokaapelien ja satelliittilinkkien yhdistelmällä. Tietojenkäsittelytieteilijöiden haasteena on ollut kehittää protokollia (standardoituja sääntöjä viestien muotoon ja vaihtoon), joiden avulla isäntätietokoneissa käynnissä olevat prosessit voivat tulkita vastaanottamiaan signaaleja ja käydä mielekkäitä “keskusteluja” suorittaakseen tehtäviä käyttäjien puolesta. Verkkoprotokollat sisältävät myös virtauksen ohjauksen, joka estää tiedon lähettäjää hukkaamasta vastaanottimeen viestejä, joita sillä ei ole aikaa käsitellä tai tallentaa tilaa, ja virheenhallinnan, johon liittyy lähetysvirheiden havaitseminen ja viestien automaattinen resending tällaisten virheiden korjaamiseksi. (Joitakin teknisiä yksityiskohtia virheiden havaitsemisesta ja korjaamisesta, katso informaatioteoria.)
protokollien standardointi on kansainvälinen ponnistus. Koska erilaisten koneiden ja käyttöjärjestelmien olisi muuten mahdotonta kommunikoida keskenään, keskeinen huolenaihe on ollut järjestelmän komponenttien (tietokoneiden) “avoimuus.”Tämä terminologia on peräisin open systems interconnection (OSI) communication standards-standardeista, jotka on laatinut Kansainvälinen standardointijärjestö. OSI-viitemalli määrittää verkkoprotokollastandardit seitsemässä kerroksessa. Jokainen kerros on määritelty toiminnot se tukeutuu kerros sen alapuolella ja palvelut se tarjoaa kerros sen yläpuolella.
protokollan alaosassa on fysikaalinen kerros, joka sisältää säännöt bittien siirtämiseksi fyysisen linkin yli. Data-link-kerros käsittelee standardikokoisia datapaketteja ja lisää luotettavuutta virheiden havaitsemisen ja virtauksen ohjauksen bittien muodossa. Verkko-ja kuljetuskerrokset pilkkovat viestit vakiokokoisiin paketteihin ja reitittävät ne kohteisiinsa. Istuntokerros tukee kahden kommunikointikoneen sovellusten välistä vuorovaikutusta. Se tarjoaa esimerkiksi mekanismin, jolla voidaan lisätä tarkistuspisteitä (tehtävän nykyisen tilan tallentaminen) pitkään tiedostonsiirtoon siten, että vikatilanteessa vain viimeisen tarkistuspisteen jälkeiset tiedot täytyy lähettää uudelleen. Esityskerros koskee funktioita, jotka koodaavat dataa, jolloin heterogeeniset systeemit voivat harjoittaa mielekästä viestintää. Korkeimmalla tasolla ovat protokollat, jotka tukevat tiettyjä sovelluksia. Esimerkki tällaisesta sovelluksesta on file transfer protocol (FTP), joka ohjaa tiedostojen siirtoa palvelimelta toiselle.
verkkojen ja tietoliikenneprotokollien kehitys on synnyttänyt myös hajautettuja järjestelmiä, joissa verkkoon linkitetyt tietokoneet jakavat dataa ja käsittelytehtäviä. Esimerkiksi hajautetussa tietokantajärjestelmässä on tietokanta, joka on levitetty (tai monistettu) eri verkon sivustoille. Tiedot monistetaan “peilipaikoilla”, ja replikointi voi parantaa käytettävyyttä ja luotettavuutta. Hajautettu DBMS hallinnoi tietokantaa, jonka komponentit on jaettu useisiin tietokoneisiin verkossa.
asiakaspalvelinverkko on hajautettu järjestelmä, jossa tietokanta sijaitsee yhdellä tietokoneella (palvelimella) ja käyttäjät ovat yhteydessä tähän tietokoneeseen verkon kautta omista tietokoneistaan (asiakkailla). Palvelin tarjoaa tietoja ja vastaa kunkin asiakkaan pyyntöihin, kun taas kukin asiakas käyttää palvelimella olevia tietoja tavalla, joka on riippumaton ja tietämätön muiden samaan tietokantaan pääsevien asiakkaiden läsnäolosta. Asiakas-palvelinjärjestelmät edellyttävät, että yksittäiset toiminnot useilta asiakkailta samaan osaan palvelimen tietokantaa synkronoidaan, jotta ristiriidat ratkaistaan järkevällä tavalla. Esimerkiksi lentoyhtiöiden varaukset toteutetaan asiakas-palvelin-mallilla. Palvelin sisältää kaikki tiedot tulevista lennoista, kuten ajankohtaisista varauksista ja paikkamääräyksistä. Jokainen asiakas haluaa käyttää näitä tietoja lennon varaamista, istumapaikan saamista ja lennon maksamista varten. Tämän prosessin aikana on todennäköistä, että kaksi tai useampi asiakaspyyntö haluaa päästä samalle lennolle ja että vain yksi paikka jää varattavaksi. Ohjelmiston on synkronoitava nämä kaksi pyyntöä siten, että jäljelle jäävä paikka osoitetaan järkevällä tavalla (yleensä pyynnön ensin esittäneelle henkilölle).
toinen suosittu hajautetun järjestelmän tyyppi on vertaisverkko. Toisin kuin asiakas-palvelinverkot, vertaisverkossa oletetaan, että jokainen siihen liitetty tietokone (käyttäjä) voi toimia sekä asiakkaana että palvelimena; näin ollen jokainen verkossa oleva on vertainen. Tämä strategia on järkevä ryhmille, jotka jakavat äänikokoelmia Internetissä, ja sosiaalisten verkostojen, kuten LinkedInin ja Facebook. Jokainen tällaiseen verkkoon liitetty henkilö sekä vastaanottaa tietoa toisilta että jakaa omia tietojaan muille.