sieci i komunikacja
dziedzina sieci i komunikacji obejmuje analizę, projektowanie, wdrażanie i wykorzystanie lokalnych, rozległych i mobilnych sieci, które łączą ze sobą Komputery. Sam Internet jest siecią, która umożliwia komunikację prawie wszystkim komputerom na świecie.
sieć komputerowa łączy komputery ze sobą za pomocą kombinacji sygnałów światła podczerwonego, transmisji fal radiowych, linii telefonicznych, kabli telewizyjnych i łączy satelitarnych. Wyzwaniem dla informatyków było opracowanie protokołów (standaryzowanych zasad formatowania i wymiany wiadomości), które pozwalają procesom działającym na komputerach-hostach interpretować odbierane sygnały i angażować się w sensowne “rozmowy” w celu realizacji zadań w imieniu użytkowników. Protokoły sieciowe obejmują również kontrolę przepływu, która utrzymuje nadawcę danych przed zawaleniem odbiornika wiadomościami, które nie mają czasu na przetwarzanie lub miejsca do przechowywania, oraz kontrolę błędów, która obejmuje wykrywanie błędów transmisji i automatyczne ponowne wysyłanie wiadomości w celu skorygowania takich błędów. (Dla niektórych szczegółów technicznych wykrywania i korekcji błędów, patrz teoria informacji.)
standaryzacja protokołów jest wysiłkiem międzynarodowym. Ponieważ w przeciwnym razie komunikacja między różnymi rodzajami maszyn i systemów operacyjnych byłaby niemożliwa, kluczową kwestią było to, aby komponenty systemu (komputery) były “otwarte.”Terminologia ta pochodzi od standardów komunikacyjnych open systems interconnection (OSI), ustanowionych przez Międzynarodową Organizację Normalizacyjną. Model referencyjny OSI określa standardy protokołów sieciowych w siedmiu warstwach. Każda warstwa jest zdefiniowana przez funkcje, na których opiera się z warstwy pod nią i przez usługi, które zapewnia warstwie nad nią.
na dole protokołu znajduje się warstwa fizyczna, zawierająca reguły transportu bitów przez łącze fizyczne. Warstwa łącza danych obsługuje standardowe “pakiety” danych i zwiększa niezawodność w postaci wykrywania błędów i bitów kontroli przepływu. Warstwy Sieci i transportu dzielą wiadomości na pakiety o standardowej wielkości i kierują je do miejsc docelowych. Warstwa sesji obsługuje interakcje między aplikacjami na dwóch komunikujących się maszynach. Na przykład zapewnia mechanizm, za pomocą którego można wstawiać punkty kontrolne (zapisując bieżący status zadania) do długiego transferu plików, tak że w przypadku awarii tylko dane za ostatnim punktem kontrolnym muszą być retransmitowane. Warstwa prezentacji dotyczy funkcji kodujących dane, dzięki czemu heterogeniczne systemy mogą angażować się w sensowną komunikację. Na najwyższym poziomie znajdują się protokoły obsługujące określone aplikacje. Przykładem takiej aplikacji jest file transfer protocol (FTP), który reguluje transfer plików z jednego hosta na drugi.
rozwój sieci i protokołów komunikacyjnych zrodził również systemy rozproszone, w których komputery połączone w sieć udostępniają dane i zadania przetwarzania. Na przykład rozproszony system baz danych ma bazę danych rozproszoną między (lub replikowaną w) różnymi witrynami sieciowymi. Dane są replikowane w “witrynach lustrzanych”, a replikacja może poprawić dostępność i niezawodność. Rozproszony DBMS zarządza bazą danych, której komponenty są rozproszone na kilku komputerach w sieci.
sieć klient-serwer to rozproszony system, w którym baza danych znajduje się na jednym komputerze (serwerze), a użytkownicy łączą się z tym komputerem przez sieć z własnych komputerów (klientów). Serwer dostarcza dane i odpowiada na żądania każdego klienta, podczas gdy każdy Klient uzyskuje dostęp do danych na serwerze w sposób niezależny i nieświadomy obecności innych klientów korzystających z tej samej bazy danych. Systemy klient-serwer wymagają, aby poszczególne działania od kilku klientów do tej samej części bazy danych serwera były zsynchronizowane, tak aby konflikty były rozwiązywane w rozsądny sposób. Na przykład rezerwacje linii lotniczych są realizowane przy użyciu modelu klient-serwer. Serwer zawiera wszystkie dane o nadchodzących lotach, takie jak bieżące rezerwacje i przydziały miejsc. Każdy klient chce uzyskać dostęp do tych danych w celu rezerwacji lotu, uzyskania przydziału miejsc i opłacenia lotu. Podczas tego procesu jest prawdopodobne, że dwa lub więcej zgłoszeń klientów chce uzyskać dostęp do tego samego lotu i że pozostało tylko jedno miejsce do przydzielenia. Oprogramowanie musi zsynchronizować te dwa żądania, aby pozostałe miejsce zostało przypisane w racjonalny sposób (zwykle do osoby, która złożyła żądanie jako pierwsza).
Innym popularnym typem systemu rozproszonego jest sieć peer-to-peer. W przeciwieństwie do sieci klient-serwer, sieć peer-to-peer zakłada, że każdy komputer (użytkownik) podłączony do niej może działać zarówno jako klient, jak i jako serwer; tak więc każdy w sieci jest peerem. Strategia ta ma sens dla grup, które udostępniają kolekcje audio w Internecie i do organizowania sieci społecznościowych, takich jak LinkedIn i Facebook. Każda osoba podłączona do takiej sieci zarówno otrzymuje informacje od innych,jak i dzieli się własnymi informacjami z innymi.