Prowadzony w
cyklu:
2022/23Z
Kod ISCED: 0613
Punkty ECTS:
6
Język:
polski
Organizowany przez:
Wydział Matematyki i Informatyki
Sieci komputerowe 1000-I1SKO
- Pliki i procesy
Operacje Wejście/Wyjście - standardowe funkcje IÓ. Praca z plikami i katalogami, funkcje stat i fstat. Procesy, tworzenie procesów, funkcje exec i wait, atrybuty procesów. - Komunikacja między procesami
Sygnały i ich programowanie. Komunikacja z użyciem potoków oraz FIFO. Kolejki komunikatów, semafory i pamięć wspólna: POSIX , SYSV. Model klient - serwer. - Sieci Komputerowe
Warstwy i protokoły sieciowe, model OSI. Protokoły IPv4 oraz IPv6, adresy w sieciach. Protokoły warstwy transportu: TCP oraz UDP. - Komunikacja między procesami na różnych maszynach
Gniazda, ich adresy. Typy i rodziny gniazd. Porty zastrzeżone i standardowe usługi w sieci Internet. Realizacja modelu klient-serwer z użyciem gniazd. - Zdalne Wywołanie Procedur
Implementacja RPC w systemach UNIX. Zastosowania RPC: protokół NFS. Kompilator protokołów rpcgen oraz jego zastosowania. - Współczesne protokoły sieciowe
Przegląd współczesnych implementacji RPC. Historia rozwoju protokołu HTTP.
Całkowity nakład pracy studenta
30 godzin - wykład,
30 godzin - laboratorium
30 godzin - bieżące przygotowanie do zajęć
25 godzin - studiowanie literatury
35 godzin - przygotowanie do egzaminu i zaliczenia
Razem: 150 godzin
Efekty uczenia się - wiedza
W1. Ma wiedzę na temat podstawowych elementów komunikacji między procesami na jednej i na różnych maszynach.
W2. Zna pojęcie "protokołu komunikacyjnego" w każdym powyższym przypadku.
W3. Zna model komunikacji sieciowej OSI oraz podstawowe protokoły sieciowe przypisane do każdej warstwy.
W4. Zna zasadę komunikacji opartą o model klient - serwer i
Efekty uczenia się - umiejętności
U1. Potrafi zaprojektować i zaprogramować zadanie związane z komunikacją między procesami na jednej maszynie z wykorzystaniem narzędzi IPC
U2. Potrafi zaprojektować i zaprogramować serwera i klienta zadania komunikacyjnego z użyciem gniazd i różnych protokołów transportowych.
U3.Potrafi sformułować i zaimplementować prosty protokół komunikacyjny.
U4. Potrafi poprzez analizę zadania komunikacyjnego przypisać je do właściwej warstwy metody OSI i potrafi zastosować właściwe dla tej warstwy protokoły sieciowe.
Efekty uczenia się - kompetencje społeczne
K1, Potrafi zaproponować właściwy algorytm dla utworzenia aplikacji klient - serwer.
K2. Potrafi zreferować problem i posiada umiejętność komunikacji i współpracy w grupie studentów.
Metody dydaktyczne eksponujące
- pokaz
Metody dydaktyczne podające
- wykład konwersatoryjny
- wykład problemowy
- wykład informacyjny (konwencjonalny)
- wykład problemowy
- wykład informacyjny (konwencjonalny)
Metody dydaktyczne poszukujące
- ćwiczeniowa
- laboratoryjna
- klasyczna metoda problemowa
- laboratoryjna
- klasyczna metoda problemowa
Metody dydaktyczne w kształceniu online
- metody wymiany i dyskusji
- metody służące prezentacji treści
- metody służące prezentacji treści
Rodzaj przedmiotu
przedmiot obligatoryjny
Wymagania wstępne
1. Znajomość języków skryptowych typu sh, awk, perl.
2. Znajomość języka programowania "C".
3. Znajomość systemu operacyjnego Linux na poziomie zwykłego użytkownika.
Koordynatorzy przedmiotu
Kryteria oceniania
Laboratoria:
Zaliczenia laboratoriów odbywają się na podstawie 3 projektów i 2 kolokwiów (w formie zdalnej).
Warunki zaliczenia:
* zaliczenie każdego z kolokwiów na >= 7,5pkt.,
* wykonanie co najmniej dwóch projektów:
* projekt jest uznany za wykonany jeśli zostanie ocenione na $>= 5pkt.$,
* do projektu nagrana jest prezentacja,
* obowiązkowo należy zrealizować zadanie nr 3,
* uzyskanie (w sumie) co najmniej 30 punktów z aktywności opisanych powyżej.
Wykład:
Egzamin pisemny po uzyskaniu pozytywnej oceny z ćwiczeń.
Literatura
Literatura podstawowa:
- W.R. Stevens, "Programowanie zastosowań sieciowych w systemie UNIX"
- W.R. Stevens, "UNIX Programowanie usług sieciowych”
- K. Haviland, B. Slama, "UNIX System Programming"
- St. A. Rego, "UNIX System V Network Programming"
- Dokumentacja systemów: Solaris , Linux, Cygwin
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: