Sieci komputerowe
Cel zajęć
Połączenie komputerów siecią było wielkim przełomem w historii informatyki. Stworzyło jednak także pewne problemy wynikające z potrzeby komunikacji miedzy maszynami różnych producentów. Pojawiła się potrzeba ustalenia protokołów komunikacji obowiązujących wszystkie komputery tworzące sieć. Okazuje się, ze reguły komunikacji ustalone są na siedmiu poziomach. Ich zrozumienie jest niezbędne po poznania zasad działania sieci komputerowych. Część teoretyczna zajęć poświecona jest wytłumaczeniu zasad komunikacji międzykomputerowej na przykładach zaczerpniętych z życia codziennego. Część praktyczna poświecona jest na zastosowanie nabytej wiedzy do przygotowania i konfiguracji komputerów do pracy w sieci. Uczestnicy zajęć poznają również zalety systemów rozproszonych (ogólnoświatowa siec Internet jest najbardziej znanym i największym z nich). Studenci będą mogli napisać i uruchomić proste programy działające jednocześnie na kilku komputerach i komunikujące się poprzez siec.
Warunki zaliczenia
Warunkiem zaliczenia przedmiotu jest aktywne uczestnictwo w ćwiczenia i rozwiązanie zadań programistycznych z ostatnich trzech zajęć.
Realizacja przedmiotu
Zajęcia praktyczne (ćwiczenia) odbywać się będą w małych grupach studenckich. Liczba osób w każdej z grup nie powinna być większa niż liczba dostępnych stanowisk komputerowych w pracowni. Umożliwi to sprawne wykonywanie zadań praktycznych i skuteczną ocenę postępów poszczególnych studentów.
Literatura
Zbigniew Weiss: „Komputery jak ludzie: Łagodne wprowadzenie do systemów operacyjnych”, WNT 1996.
Jerry Honeycutt: „Windows 2000 Professional: Vademecum profesjonalisty”, Helion 2000.
Olaf Kirch, Terry Dawson: „Linux: Podręcznik administratora sieci”, ReadMe 2001.
Tematy wykładów
Wprowadzenie. Sieci lokalne i rozlegle. Warstwowy model komunikacji sieciowej. Siedem warstw modelu ISO OSI (Open System Interconection Reference Model). Protokoły komunikacji sieciowej.
Fizyczne media transmisji . Komunikacja w warstwie fizycznej. Sposób przesyłania pojedynczych bitów i przerw. Standard RS-232C. Kod różnicowy. Kod Manchester.
Warstwa łącza. Rozstrzyganie konfliktów przy dostępie do medium transmisji. Sieć Ethernet jako przykład protokołu z nasłuchiwaniem i wykrywaniem kolizji (CSMA/CD). Protokoły z podziałem czasu i z unikaniem kolizji (CSMA/CA).
Topologie sieci. Ethernet jako przykład sieci o strukturze szyny. Sieci pierścieniowe. Przykłady protokółów warstwy łącza: krążące uprawnienie (Token Ring), wirujące tacki (Slotted Ring), wstawianie rejestru (register insertion). FDDI (Fiber Distributed Data Interface) jako przykład protokołu stosowanego w sieci miejskiej.
Ustalanie drogi komunikatu w sieci. Protokoły warstwy sieci. Protokół IP (Internet Protocol).
Połączenia punkt-punkt. Dostarczanie komunikatów w takiej kolejności w jakiej zostały nadane. Warstwa transportu. Protokoły TCP (Transport Control Protocol), UDP (User Datagram Protocol) i ICMP (Internet Control Message Protocol).
Komputery serwery i komputery klienci. Protokół RPC (Remote Procedure Call) jako sposób wysyłania zapytań do serwerów i odbierania odpowiedzi.
Ochrona zasobów sieciowych i hasła. Listy dostępu i dojścia. Szyfrowanie danych przesyłanych prze sieć.
Systemy rozproszone i sieciowe.
Wysyłanie komunikatów jako sposób rozproszonej synchronizacji. Podstawowe sposoby komunikowania w systemie rozproszonym: synchroniczne i asynchroniczne. Spotkania symetryczne i asymetryczne.
Zegar w systemie rozproszonym. Czas fizyczny i czas logiczny. Problem synchronizacji zegarów w różnych punktach sieci.
Zarządca nazwami jako jeden z najważniejszych modułów systemu rozproszonego. System nazw w sieci Internet.
Transakcje czyli operacje, których wykonanie jest ściśle od siebie uzależnione. Protokół dwufazowego kończenia (two phase commit) jako najprostsza metoda gwarantująca wykonanie rozproszonych transakcji.
Sposoby unikania przekłamań i zapewniania zgodności danych w sieci. Blokowanie dwufazowe i stemplowanie czasem. Algorytmy wybierania komputera koordynatora w sieciach. Algorytm zastraszania.
Dzielenie i równoważenie obciążenia komputerów w sieci. Problem migracji procesów.
Tematy ćwiczeń
Microsoft Windows jako przykład systemu sieciowego. Udostępnianie plików i drukarek.
Popularne protokoły komunikacji: http, ftp, smtp, pop, telnet. Praca zdalna na innym komputerze poprzez sieć.
Sieć Internet. Numery IP i serwery nazw. Śledzenie drogi pakietu w sieci. Wyświetlanie aktywnych połączeń sieciowych.
Sieci i podsieci. Netmaska. Numer sieci i numer podsieci. Poznawanie struktury sieci lokalnej.
Konfigurowanie systemu Windows do pracy w sieci.
Konfigurowanie dostępu do podstawowych zasobów w systemie Windows.
Konfigurowanie systemu Linux do pracy w sieci.
Konfigurowanie dostępu do podstawowych zasobów w systemie Linux.
Uruchamianie i wstępne konfigurowanie serwerów (min. www, ftp, telnet) w systemie Linux.
Serwery pocztowe.
Połączenia szyfrowane i nieszyfrowane.
MPI (Message Passing Interface) jako przykład systemu rozproszonego.
Pisanie i uruchamianie programów komunikujących się przez sieć (część 1).
Pisanie i uruchamianie programów komunikujących się przez sieć (część 2).
Pisanie i uruchamianie programów komunikujących się przez sieć (część 3).